saswata.hashnode.devWhy I Chose Monorepo: From Copy-Paste Hell to 2.8s BuildsWhy I Chose Monorepo: From Copy-Paste Hell to 2.8s Builds Friday, 11:47 PM. Portfolio site: white screen. Button component broke. I'd updated the variant prop in my UI library repo. Pushed it. Forgot the portfolio had its own copy of Button.tsx—same ...Dec 9, 2025·8 min read
saswata.hashnode.devWhy I Chose Monorepo Architecture: From Code Chaos to 2.8s BuildsWhy I Chose Monorepo Architecture: From Code Chaos to 2.8s Builds I broke production on a Friday night. Changed a Button prop in the UI library. Committed. Deployed. Felt good. Except I forgot the portfolio app had its own copy of Button.tsx. Differe...Dec 9, 2025·45 min read
saswata.hashnode.devTailwind CSS v4: Why I Chose CSS-First Config Over Styled ComponentsTailwind CSS v4: Why I Chose CSS-First Config Over Styled Components I've been building React components for years, and I've tried every styling solution: CSS Modules, Styled Components, Emotion, Sass, and Tailwind v3. When Tailwind CSS v4 alpha land...Dec 5, 2025·23 min read
saswata.hashnode.devNext.js 16 vs Remix vs Astro: Choosing the Right React Framework in 2025Next.js 16 vs Remix vs Astro: Choosing the Right React Framework in 2025 I'll be honest: choosing a React framework in 2025 is overwhelming. When I started building CodeCraft Labs, I had to decide: Do I use Next.js 16 with the App Router? Or try Remi...Dec 5, 2025·18 min read
saswata.hashnode.devWhy I Chose Vite Over Webpack: 10x Faster Builds & Instant HMRWhy I Chose Vite Over Webpack: 10x Faster Builds & Instant HMR I'll never forget the first time I saved a file and watched Webpack rebuild. 8 seconds. Eight. Whole. Seconds. Just to see if my button component looked right. Then I tried Vite. The dev ...Dec 4, 2025·15 min read