Notes on software development and lessons learned.
This article has not been translated yet.
Review Parts 1–14, see how TDD changed the code, and explore where to go next with end-to-end and visual regression testing.
Explore the costs and benefits of introducing TDD to a production project, strategies for adopting it as a team, and how CI/CD makes testing sustainable.
This article has not been translated yet.
This article has not been translated yet.
Recognize hard-to-test components and improve testability through UI/logic separation and provider-aware test setup.
This article has not been translated yet.
Introduce Mock Service Worker to intercept network requests, manage mock responses, and test success and server-error cases without a real server.
This article has not been translated yet.
Extract business logic into a custom hook and test it independently with renderHook and act.
This article has not been translated yet.
This article has not been translated yet.
Implement the minimum component code to turn failing tests green, then use useState to complete its interactive behavior.
This article has not been translated yet.
This article has not been translated yet.
Learn why frontend testing matters, what TDD offers React projects, and which behaviors to cover with tests.
Explore View Transitions, stronger Server Actions security, useOptimistic, useEffectEvent, and Activity in Next.js 16 and React 19.
A step-by-step guide to upgrading a Next.js 15 project to version 16, covering codemods, asynchronous APIs, image security settings, and other required changes.
This article has not been translated yet.
This article has not been translated yet.
This article has not been translated yet.
This article has not been translated yet.
This article has not been translated yet.
This article has not been translated yet.
This article has not been translated yet.
This article has not been translated yet.
This article has not been translated yet.
Explore micro frontend architecture, its benefits and costs, and implementation options including single-spa and Webpack Module Federation.
This article has not been translated yet.
This article has not been translated yet.
Learn React Router v6 through the History API, URL matching, nested routes and Outlet, Link, navigation hooks, and code splitting.
This article has not been translated yet.
This article has not been translated yet.
This article has not been translated yet.
This article has not been translated yet.
This article has not been translated yet.
This article has not been translated yet.
This article has not been translated yet.
Abstract React Query into reusable custom hooks for pages and components, with practical JSONPlaceholder examples.
Install TanStack Query in React and learn to fetch, cache, and refetch API data, with examples of query keys, Suspense, SSR, and error handling.
This article has not been translated yet.
This article has not been translated yet.
Upgrade Tailwind CSS 3 to 4 and review browser support, the new configuration structure, breaking changes, and before-and-after examples.
This article has not been translated yet.
This article has not been translated yet.
Compare Next.js data-fetching approaches and choose strategies for static content, authenticated dashboards, interactions, and frequently changing data.
Customize fetch headers and cookies, invalidate tagged caches, and build backend communication with Next.js route handlers.
Handle multiple requests with parallel, sequential, and conditional fetch patterns, and fetch data in client components using useEffect and SWR.
Understand fetch caching, no-store, revalidation, ISR, and cache-key generation in Next.js.
Understand data fetching in the Next.js App Router and server-component-centered data flow.
Practical performance improvements in a Next.js blog, including removing duplicate fetches, simplifying Suspense, and formatting dates on the client.
Walk through an upgrade from Next.js 14 to 15, including dependencies, request APIs, codemods, and troubleshooting.
Display static HTML files inside Next.js App Router pages with public assets and iframes.
This article has not been translated yet.
Set up a typed Axios client with interceptors and shared request and response types in Next.js, with patterns you can adapt to React, React Native, or Node.js.
Customize Tailwind themes, reusable CSS sets, global styles, and fonts with configuration files and plugins.
Learn basic file-system routing, dynamic routes, and API route handlers with Next.js App Router.
Set up a Next.js project and configure Tailwind CSS, Shadcn/ui, and the typography plugin.
The technology stack and libraries used to build this blog, their roles, and why I chose them.
Goals for the blog as a publishing platform and as a software project.
Why I decided to build and run my own blog.
Serve blog images through Amazon S3 and CloudFront, test the distribution, and connect an optional custom domain.
This article has not been translated yet.