ALL CASE STUDIES
A newly founded renovation company in Barcelona had no website, no indexed URL and no positioning. The job was deciding which company it would be online before designing a single screen.
Challenge: No pages, no positioning, and a saturated market where a generic "we do all renovations" site is indistinguishable from forty others
Solution: Market research, 8 buyer personas and 6 competitors turned into one defensible position, a two-mode design system and 31 pages, one per search intent
The only driving school in Barcelona offering every licence had a website that hid it. Rebuilt as a bilingual lead-gen system with real prices in HTML and WhatsApp as the only channel.
Challenge: Prices locked in PNG posters, a unique offer buried in 16 identical tabs, and a cookie banner the Spanish regulator has banned since 2020
Solution: One provable value proposition, 14 indexable licence pages with full cost breakdown, WhatsApp-only conversion and a static bilingual Next.js build
A five-person renovation company with no technical staff needed one system to sell, execute, bill and collect. Shipped in two days, then hardened for three weeks.
Challenge: Every record pointing at the same job, one audit trail nobody can edit, and fiscal invoice numbering that can never have a gap under Spanish tax law
Solution: One core object for the whole job, versioned quotes, gapless invoicing and a copilot that only proposes. Built with AI under a written quality bar, then audited adversarially
A neighbourhood cooking school in Barcelona sold three-hour classes through a shop cart. I rebuilt the site and the booking engine so reserving a seat is one screen, and the person running the kitchen operates it without calling me.
Challenge: Dates and free seats hidden until checkout, 25 WordPress plugins, and real money on a real headcount, where a concurrency bug is someone at the door with no seat
Solution: Booking embedded in every workshop page, an own engine with 30-minute holds, a gift wallet, a trilingual static site and an admin built for one operator
A two-person veterinary clinic competed for local attention against bigger practices with no ad budget and no digital identity. The build made "we're only two people" the pitch, not the limitation, and backed it with a 99/100 PageSpeed build.
Challenge: A generic Next.js template start, source photos too small to enlarge, and a Catalan site already indexed that couldn't lose a single byte when Spanish was added
Solution: A byte-parity verification script, a route-group split instead of shared locale routing, a hand-rolled image pipeline on static export, and a CLS fix traced to its real cause instead of masked