How I'm building my website: one branch per change
I’m rebuilding martivillalba.com the way I work on a product: small changes, each on its own branch, with a preview I review before anything goes live. Between 8 and 12 November 2026, 21 changes made it to the live site.
From Hostinger to a site I can change every day
The previous version lived on Hostinger. Now the site is hand-written HTML, CSS and JavaScript, with no frameworks or dependencies. The fonts are served from my own domain and there are no cookies or third-party analytics; the legal page explains it in one paragraph.
The code lives on GitHub and Cloudflare Pages publishes the main branch. What I use most is the preview: every branch gets its own URL, so I can see a whole change before it exists on the real site.
How a change gets onto the site
- Every change has its own name and branch: the hero, the Fluxput case study, the mobile cover, hiding a project.
- I review the preview on desktop and on mobile, in light and dark mode.
- If I’m happy with it, it’s merged into the main branch and goes live. If not, it stays on its branch.
I write the code with Claude Code. I decide what changes and why, and before anything is touched I ask for a plan of five or six lines. Then I review the preview and, quite often, ask for something to be taken out.
Spanish is the source. The Catalan and English versions are generated by a script from a translation table, and if I add a Spanish text without translating it, the script tells me.
What happened in five days
The first commit is from 8 November. On the 11th I published a new, more restrained version, with the legal page and self-hosted fonts. The Catalan and English versions and the mobile menu arrived the same day.
The 12th was mostly about removing things:
- The hero carousel. With only two case studies on show, it added nothing.
- The animated thumbnail next to the headline.
- For now, the Vecinfy and Apogeo case studies.
- A figure in the Fluxput case study that I couldn’t verify. I’d rather have a case study with fewer numbers than one with a number I can’t defend.
And I put real things where there were stopgaps: client logos, in grey, instead of their names in text, and an actual photo of me instead of the frame with my initials.
So far that’s 21 changes on the main branch and seven working branches with their own preview: the new version of the site, the hero, the Fluxput case study, the mobile cover, the WindowSight case study, hiding projects and the portrait.
What I’m taking away
I treat the site like any other product: short cycles and someone who decides what doesn’t go in. Looking at every change in its preview before it goes live means that, almost every time, I end up taking something out.
This journal started on its own branch too. If you want to see the result, start with the Fluxput case study or the WindowSight one. And if you have a product to build, get in touch.