The blacksmith's blunt knife: how we finally built our own website

Years designing and developing websites for clients, while our own waited its turn. This is the story of why it happened, how we fixed it, and everything we put inside.

"The blacksmith's children go unshod." It's a reality anyone in creative services knows well. For years we've been building digital presences for clients (medical insurance calculators, automation platforms, portfolios that convert) while our own website, tresojotas.com, patiently waited its turn. The previous site wasn't bad: it did its job and represented who we were at the time. But we knew we could do something far more sophisticated, more complete, more truly ours.

The problem wasn't a lack of ideas or capability. It was the eternal priority conflict: client projects always won. And it makes sense: that's where the monthly income comes from. But at some point you start noticing the gap between what you build for others and what you have for yourself. That gap was the signal to stop, breathe, and tackle it with the same dedication we give every client project.

The decision to start from scratch was easy. What was hard was resisting the temptation to dive straight into code. We have a talented creative team (designers with real vision and judgment) and we'd learned from previous projects that skipping the design phase always ends badly: screens that lack visual consistency, decisions made mid-sprint, inconsistencies that pile up. This time we were going to do what we recommend to all our clients: design first, then code.

Ludmi took charge of the process in Figma. Information architecture, wireframes, complete design system (typography, palette, spacing, states) before Michael touched a TypeScript file. The logic is simple: changing the padding on a component in Figma takes 2 seconds. Doing it in code when you already have 30 screens built costs an entire afternoon. Order matters. The discipline of separating "thinking" from "doing" is what defines the quality of the final result.

The stack we chose is no accident: React + Vite + TypeScript + Tailwind CSS + Framer Motion. Each tool has a clear role. Vite because feedback time during development matters: a slow dev server destroys your flow. TypeScript because when the project scales, typing saves you from silent bugs. Framer Motion because scroll animations, entrance effects and page transitions aren't decoration: they're part of the experience. And Tailwind because it lets you implement Ludmi's design system precisely, without inventing new classes or accumulating dead CSS.

The result is the website you're looking at right now. Every detail (the load speed, the way elements appear as you scroll, the typographic spacing, the contrast) was a conscious decision. We're not sacrificing our own experience for lack of time. Quite the opposite: we use our own site as a testing ground for everything we then bring to client projects. If you've also been putting off building your own digital presence, take this as a sign. This blacksmith's knives are finally razor sharp.