We all start somewhere.
A friend showed me how to build a basic website. HTML, a bit of CSS. Nothing extraordinary, but the act of typing code and seeing an immediate result in the browser hooked me right away.
1. The beginnings
At first, it was all tinkering. I copied snippets of code I found on Stack Overflow without really understanding what they did. My first website piled up nested divs, inline CSS and zero responsiveness. But it worked, and that was enough to keep the motivation going.
JavaScript was another step up. Callbacks gave me a hard time for weeks. I had to reread the same explanations about promises a dozen times before the logic finally clicked.
The React click
A colleague suggested I try React. My first impression: pointless complexity. Why add a layer of abstraction when the native DOM does the job?
But after a few projects, the philosophy made complete sense. Manipulating the DOM directly became a thing of the past. Reusable components fundamentally changed the way I structure an application.
Adopting TypeScript
TypeScript came shortly after. I was skeptical at first — yet another tool to add to the chain. Then I spent three hours tracking down a typo in a property name.
Argument settled.
Today, coding without TypeScript feels like working without a safety net. Static typing is no longer a luxury, it's a necessity.
Efficiency with Next.js
Next.js was a revelation. No more configuring Webpack by hand for hours. Automatic routing, SSR, API routes — everything is built in and ready to use. The tool let me focus on the product rather than the infrastructure.
Tailwind CSS
Tailwind CSS divided me at first. Utility classes right in the markup seemed hard to maintain. But once I embraced the philosophy, going back became unthinkable.
No more CSS files thousands of lines long where nobody knows what's still being used. Every class is explicit, scoped and safe to remove.
2. Today
Spinning up a Next.js, TypeScript and Tailwind project has become second nature. What used to take days now takes a few hours. Components are optimized, the code is structured, performance is under control.
What hasn't changed: I learn something new every day. A hook, a better way to organize components, a technique to cut down re-renders. Web development remains a never-ending learning process.
And after all these years, watching code come to life in the browser still brings the same satisfaction.