Espurna
EspurnaStudio Light up your project

Web development studio in Girona We don’t build websites. We light brands up.

Websites that are fast, secure and error-free, with design that stays with people. I design and build them myself, end to end, for the business behind them.

Scroll to keep exploring Tap to lift off
01 · Mercury

Your site loads before they can blink.

53% of mobile visits are abandoned if a site takes more than 3 seconds to load. Every tenth of a second you gain is money you don’t lose.

  • Measured before delivery. Lighthouse and Core Web Vitals, and I show you the number.
  • No heavy frameworks where they aren’t needed. Code tuned by hand.
  • Optimised images and fonts so everything appears instantly.
I want a fast site →
02 · Earth

Get found before your competition.

The prettiest website in the world is worthless if nobody sees it. I get it ready for Google and for AI search engines, so you turn up when people look.

  • Technical and content SEO: structure, schema, sitemap, speed.
  • Ready for AI (AEO): so ChatGPT and Google cite you, not them.
  • Measurable: analytics that tell you what works and what to improve.
I want to rank →
03 · Venus

Design that stays with people.

You have 50 milliseconds to make a first impression. I make it count with bespoke design, motion with intent and an identity that is nobody else’s.

  • 100% bespoke design. No recycled templates.
  • Motion with a purpose that guides the eye and tells your story.
  • Complete coherence between brand, message and experience.
I want to stand out →
04 · Mars

Hardened websites. Tested before we light them.

A site that goes down or gets hacked costs you customers and reputation. Mine are born protected, tested and ready not to fail when it matters most.

  • HTTPS, headers and security best practice as standard.
  • Tested on every device before we switch it on.
  • Optional maintenance to keep it fresh and safe.
I want peace of mind →
05 · Jupiter

Sometimes the problem isn’t the website.

Some businesses don’t need another page: they need a tool that doesn’t exist yet. I build that too, and it goes down its own road.

See the bespoke systems →

The pilot · Who I am

Behind the ship there is a person.

My name is Javier Caballero and I build bespoke websites and applications: every project is thought through and written for the business that asked for it, instead of being poured into a template. Five years writing code, and you always talk to me.

You talk to the person who builds it

No account managers, no broken telephone: you tell me, and I build it. Whoever designs it, whoever writes the code and whoever answers your email are the same person.

It ships documented

The code is commented and documented so any other developer can pick it up later on. You are not tied to me.

It is tested before it goes live

Small phones, tablets, large screens, keyboard, screen reader and measured contrast. If something could not be checked, I say so.

No lock-in

Standard technology, with the domain, hosting and accounts in your name. If one day you want to move it somewhere else, you take all of it with you.

What I build it with

The rule is to pick the simplest thing that solves the problem. This site, for instance, uses no framework at all: it is hand-written HTML, CSS and JavaScript. What I use every day:

Interface
HTML · CSS · JavaScript · TypeScript · React · Astro · Next.js · Tailwind
Motion and 3D
GSAP · Three.js · WebGL
Server and data
PHP 8 · Node.js · SQLite · PostgreSQL · Supabase

If your project calls for something else —a native app, a specific integration, a database you already run— we talk it through and I tell you whether it suits you or whether there is a shorter road.

Flight plan · How I work

Five steps, and you know where you are in each one.

None of that "I’ll show you something when it’s ready". At every point you know what is happening, what I need from you and what you can still decide.

  1. Video call or phone, whichever you prefer. You tell me what you sell, who to, and what is going wrong now. I come out of it knowing whether what you need is a website, something else, or nothing — and if it is nothing, I say so, because selling you something useless costs me more than it earns.

    From you: the honest version, including what isn’t working.

  2. What is in, what is out, by when and for how much. If something can be done more cheaply and get the same result, it says so there instead of me keeping quiet. And if you ask for something out of scope mid-project, you see it as a separate add-on before it exists: never at the end and never as a surprise.

    From you: yes, no, or ask me to change something. You have paid nothing up to here.

  3. Structure first —what gets said and in what order— then the design. The order matters: moving a block on a sketch takes a moment, moving it on a built site means rebuilding it. That is why I show it while your opinion is still free.

    From you: copy and photos if you have them; if not, I write the copy and tell you exactly which photos are needed.

  4. You can open it whenever you like, unannounced and without asking, to see where it is going. Before it goes live it is tested on small phones, tablets and large screens, with a keyboard, and with the contrast measured rather than eyeballed. And whatever could not be checked, I tell you: I would rather hand over a report with real snags than an "all done" that does not hold up.

    From you: look at it and tell me what grates. That is exactly what the revisions are for.

  5. Domain, hosting and accounts in your name, not mine. Code commented and documented, so any other developer can pick it up. And an explanation of how to change the things you will want to change. If one day you want to move on, you leave with everything and without asking me for anything. And if you would rather not deal with it, I keep the maintenance.

    From you: nothing. It’s yours.

Some businesses don’t need another page: they need a tool that doesn’t exist yet. The place where you stop redoing work, chasing data and betting everything on nobody making a mistake. That gets built too, and it gets built for you.

  • Admin panel

    You run everything on spreadsheets and they no longer fit.

    Your own panel, with your records, your statuses and your permissions: each person sees their own work, every change is logged and nobody overwrites anybody. You log in from the browser — nothing to install, phone included.

  • CRM

    Your customers live scattered across email, your phone and your head.

    A CRM built around the way you sell: contacts, follow-ups, reminders of what is due today and the full history of every conversation. No per-seat monthly fee, and no bending your way of working to fit a generic tool.

  • ERP and operations

    The same data gets typed in three times, and the third time someone gets it wrong.

    Connecting what you already use — shop, invoicing, stock, that one spreadsheet, your accountant’s software — so a figure is written once and travels on its own. Where no integration exists, the missing piece gets built.

  • SaaS

    Your product is the software, and it doesn’t exist yet.

    A real product: user accounts, plans, recurring billing, an admin panel and the safeguards that holding other people’s data demands. It ships in stages, with something that works and can be shown early.

  • Automation

    There’s a task somebody repeats every day that nobody dares touch.

    Reports that write themselves, alerts that go out when they should, data that moves from one place to another without anyone copying it. The machine does the repetitive part and your team does what a machine can’t.

What does one of these look like inside?

Vesta is a complete estate-agency system and it is open: public catalogue, admin panel with listings, photos, a change log and enquiries, on its own database. Log in as an administrator and poke around all you like — it is a mockup of ours, nobody’s real site, and nothing you do is saved.

Open the Vesta admin panel (opens in a new tab)

There’s no starting price, and that isn’t a dodge. No two systems are alike: the number comes from the scope, and the scope comes from a conversation about how you work today. You get a written quote with the scope spelled out before anything starts. No strings attached.

Ship’s log · Cases

Four problems, and what got built.

Real work 1 case

Commissioned, paid for and delivered to a client, who gave written permission to publish it. Today there is one. When there are more, they will be here.

  1. The problem

    Amorin Artificial Grass installs artificial grass in Miami-Dade. They had eighteen months of work on Instagram and no website at all: the traffic died inside the app. Researching the market turned up what mattered — of nine competitors in the county, not one had a Spanish-language site, in a county where two in three people speak Spanish at home.

    What got built, and why

    A bilingual site with Spanish as the main language, not a courtesy translation: that is the advantage the whole sector was leaving on the table. The real work comes from their own posts, and the before/after slider only appears where both photos were taken from the same spot — a misaligned slider proves nothing and everyone can tell. And the heat is addressed head-on: it is the best-documented objection in the sector and not one of the nine touches it.

    Measured score

    • 98Performance
    • 100Accessibility
    • 100Best practices
    • 100SEO

    Lighthouse, mobile · Measured on the build the client publishes on their domain, served compressed. It is the worst of the three pages measured (the other two score 99 and 100). Like any measurement of a live site it depends on the server and the moment: run it yourself if you want.

    Delivered in August 2026 and published by the client on their own domain. All four scores are from the delivered build, measured before they put it up: run Lighthouse on it yourself and check.

    Open amorinartificialgrass.com (opens in a new tab)

Concept proposals 3 cases

These are not commissions and there is no client behind them. I picked three sectors, studied what goes wrong in their websites over and over, and built the whole answer with invented brands, so I can show how I work without showing anybody else’s work. They are finished and browsable: open them and measure them yourself.

  1. The problem

    It is the commonest pattern in the sector: the menu lives in a PDF designed for paper, the phone number is an image —so you cannot tap it— and booking means leaving for another app. Somebody checking a menu at two in the afternoon is standing up, one-handed and in a hurry.

    What got built, and why

    A real HTML menu, readable without zooming and with allergens next to each dish: the PDF goes entirely, because any patch on top of a PDF is still a PDF. A tappable phone number, an address that opens the map, and opening hours you understand at a glance. No app in between.

    Measured score

    Lighthouse, mobile · measured on *SEO does not reach 100 on purpose: the mockups are set to noindex so an invented business never shows up in Google. That is the only thing missing.

    Open the mockup (opens in a new tab)

  2. The problem

    An estate agency moves its catalogue every week. If adding a property, changing a price or uploading four photos means ringing whoever built the site, the catalogue goes stale — and a stale catalogue costs calls.

    What got built, and why

    Not a website: a system. A public catalogue with a page per property and an enquiry form, and behind it an admin panel with listings, photos, a change log and an enquiry inbox, on its own database. It was built that way because the problem was never the design, it was who can change the content: if that keeps depending on me, the site is born going stale. You can log into the panel and poke around.

    Measured score

    Lighthouse, mobile · measured on *SEO does not reach 100 on purpose: the mockups are set to noindex so an invented business never shows up in Google. That is the only thing missing.

    Open the mockup (opens in a new tab)

  3. The problem

    In barbershops, salons, garages or clinics the diary is kept by hand and bookings arrive as messages. They get answered when there is a gap, and every minute that passes the customer is looking at the place next door. Somebody working with their hands cannot watch the phone.

    What got built, and why

    Services with their price and their duration up front, with nothing to ask: half the messages that interrupt are "how much is it?". Booking in one step, from a phone, with nothing to install. And the site in three languages, which in Girona is not a whim.

    Measured score

    Lighthouse, mobile · measured on *SEO does not reach 100 on purpose: the mockups are set to noindex so an invented business never shows up in Google. That is the only thing missing.

    Open the mockup (opens in a new tab)

  4. The problem

    In a city with tourism, a good share of the people who open the menu do not read the language it is written in. The usual patch is one PDF per language, or an automatic translator bolted on top: the first goes stale the day a price changes —and only in three of the four files— and the second translates the names of the dishes, which is exactly what must not be translated.

    What got built, and why

    One single site in four languages —Catalan, Spanish, English and French— each with its own address and with hreflang, so Google serves the right one instead of translating it itself. The menu is not a document, it is data: a price is changed once and it changes in all four languages at the same time.

    It is built with React (Next.js) and that has a price: 84 in performance, against the 90-97 of the plain-HTML mockups above. The code that lets you switch language without a reload has to be downloaded. With two languages it would not pay off; with four, it does.

    Measured score

    Lighthouse, mobile · measured on *SEO does not reach 100 for the same deliberate reason as the others: noindex. The 84 in performance is real and explained above: it is what a React application costs next to a static page.

    Open the mockup (opens in a new tab)

How these numbers were measured

Lighthouse (the one built into Chrome, under "DevTools"), mobile profile: 412 × 823 screen, fast 3G and a 4× CPU slowdown. The home page of each mockup is measured with the cache disabled. The four scores are Lighthouse’s four categories as they come: no picking the best run, no averaging.

Two caveats, so the number means something. First: Performance depends on the day, the network and the machine, so if you repeat it you will get something close, not identical — the other three are stable. Second: the mockups are deliberately set to noindex, because they are invented businesses and should not compete with anyone in Google; Lighthouse counts that as an SEO failure, which is why that column sits in the sixties. It is the only thing three of the four are missing; the fourth also pays the price of being built with React, and says so on its own card. It would be worse.

You can repeat all of this in a minute: open the mockup, Lighthouse tab, mobile mode, "Analyse". That is what they are open for.

Pricing station · Pricing

Choose how brightly you want to burn.

Three website plans, with the price up front and no surprises. All of them include bespoke design, a layout that genuinely works everywhere and a site ready for search engines. Bespoke systems are a different thing and are quoted separately.

La Chispa

To start shining

from 800+ VAT

  • Bespoke presentation site, up to 2 pages
  • Exclusive design, never a template
  • Flawless on mobile and lightning fast
  • Contact form straight to your inbox
  • Basic SEO so you show up on Google
  • Delivered in 1–2 weeks
Light La Chispa

La Hoguera

To be impossible to ignore

from 3,000+ VAT

  • A one-off immersive experience (like this site), up to 10 pages
  • Integrations: bookings, admin panel, shop, catalogue…
  • Advanced SEO + ready for AI (AEO)
  • Extended multilingual setup
  • Top-tier performance and security
  • Delivered in 2 weeks – 1 month, agreed in writing before we start
  • 60 days of priority support
Light La Hoguera

The fourth path

Bespoke systems · quoted per project

CRMs, ERPs, internal panels, SaaS and process automation. There’s no starting price because no two are alike: the number comes from the scope, and the scope comes from a conversation. See what gets built →

Request a quote

“From” = starting price, depending on the scope of the project. Revisions included, depending on the plan. Booked with a 30 % deposit, the rest on delivery. Optional maintenance from 75 €/month, and I look after it myself.
All amounts are excluding VAT: Spanish VAT at the applicable 21 % is added on the invoice.

Final station · Contact

Send your signal.

Tell me what you need and I reply myself with a clear proposal —usually within 24 working hours— with no commitment and no jargon. If you would rather see a ballpark first, the calculator is right here.

Prefer to email me directly? javier@espurna.studio

  • Reply in < 24 h
  • Quote with no obligation
  • Straight to the person who builds it

Signal received.

I’ll write back myself, Javier, from javier@espurna.studio, within 24 working hours. If you see nothing, check your spam folder and mark it as wanted.

Required fields

Ground control · Questions

What people always ask me.

How long does a website take?

A presentation site (La Chispa) takes one or two weeks. A full website (La Llama), about a month. An immersive experience (La Hoguera) takes two weeks to a month depending on what goes into it, and the exact deadline is agreed in writing in the quote before we start, not afterwards. The clock starts when I have the copy and the photos: if I write them, I tell you what that adds.

I have no copy and no photos. Is that a problem?

No, that is the normal starting point. I write the copy from the conversation we have: you already know how to sell what you do out loud, and my job is to put it in writing so it sells on the page too. For photos I tell you exactly which shots are needed and how to take them, or we find a photographer. In the calculator you can tick «I have nothing» and see what it adds.

Who owns the domain and the hosting?

You do. They are bought in your name and on your card, directly from the provider: I only configure them. They cost whatever the provider charges —I take no commission and I don’t resell them— and if one day you want to move elsewhere, or work with someone else, you take everything without asking me. That is the difference between owning a website and renting one.

What does the €75/month maintenance include?

Two things. First, the small changes you want to make —a line of copy, a price, a photo, new opening hours—: you ask me and I do them. Second, that the site does not go down, does not hang and does not throw errors: I watch it, and if something breaks I fix it without you having to notice. To be able to hold that up, it includes backups, security updates and a heads-up before the domain and hosting expire. A new feature or a redesign is quoted separately, and I tell you before touching anything. It is optional: the site works just the same without it, and you can cancel whenever you like.

What if I want to change something once it is done?

Fixing a mistake of mine —something that does not work, looks wrong or is not what we agreed— is never charged. After delivery, small changes are covered by maintenance and anything else is quoted. And since the code ships commented and documented, you can also take it to any other developer.

How does payment work?

With a 30 % deposit that books the date, and the remaining 70 % on delivery. An example: if the site is 1,000 €, you pay 300 at the start and the other 700 when you get it. With an invoice and VAT itemised. There are no hidden fees and no lock-in period: maintenance, if you want it, is separate and can be cancelled.

I’m not in Girona. Do you work remotely?

Yes. I am in Girona and I like having a coffee with people who are nearby, but the work goes just as well over video: the last project delivered was for a company in Miami, in Spanish and English (it is in the cases). The only thing distance changes is what time we schedule the calls.

What exactly is a «bespoke system»?

A program built around how you work, rather than a website: a panel to keep your records in, a CRM with your customers, the bridge between two programs that don’t talk to each other today. You use it from the browser, with nothing to install. It is quoted per project and carries no starting price because no two are alike. They are explained one by one in Out of orbit, and there is one you can browse (Vesta) and try out.