August 10, 2026
Why I use pure CSS (and not Tailwind)
The reasoning behind my stack choice for portfolio projects: pure CSS with custom properties, no utility-framework overhead.
Why I use pure CSS (and not Tailwind)
When you build portfolio websites, you eventually end up in the framework debate: Tailwind or plain CSS? I chose the second, and this is why.
The trade-off
Tailwind is a great tool. The utility-first approach makes it fast to build consistent designs without leaving your CSS files. But for a portfolio website with a fixed house style, I ask myself: do I really need that overhead?
What I use instead
For Rhine Solution I use pure CSS with custom properties. Here's why:
- Faster load times — No utility-class explosion in the HTML, no framework bundle. Only the CSS I actually use.
- Simpler debugging — A
class="grid grid-2"tells me nothing. Adisplay: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr))is directly readable. - Design tokens in CSS custom properties —
--c-bg: #F8F5F0; --c-accent: #C4A882;are just as powerful as Tailwind config, but directly inspectable in the browser.
When Tailwind is the right choice
Let me be clear: this is not an anti-Tailwind manifesto. For teams of 5+ developers, for apps with lots of dynamic UI, for design systems maintained by multiple designers — there, Tailwind (or another component framework) is the better choice.
For a solo project like this portfolio, pure CSS is faster, smaller, and more readable.
Conclusion
It's not about "Tailwind is bad" or "CSS is better". It's about choosing the right tool for the job. For portfolio sites, personal projects, and small teams, pure CSS is the better choice. For large products and design systems, Tailwind (or similar) is too.
What's your preference? Let me know — or better yet, book a first call and let's talk about it.