Mert Özen Further With Every Line

Blog

Mert Özen's blog posts on software development, backend, frontend, and DevOps.

Series
16 posts found
Testing React: Vitest, React Testing Library and Mocking APIs with MSW
Frontend PART 13

Testing React: Vitest, React Testing Library and Mocking APIs with MSW

The practical way to test React is to run React Testing Library, which queries the UI as a user does, on Vitest, which reuses the Vite config, and to fake the API at the network level with MSW without touching the code. In Bookstore we test the pure applyChange function, useDebouncedValue and useCart with renderHook, BookCard with user-event, and the catalog and checkout screens through the real route tree in a memory router, with real failures for getBy vs findBy and leaking store state.

15 Nov 2026 20 min 4
Finishing the Bookstore SPA End to End: Feature Folders, Authentication, Environments and Deployment
Frontend PART 14

Finishing the Bookstore SPA End to End: Feature Folders, Authentication, Environments and Deployment

Getting a React SPA ready for production means guarding feature boundaries with a lint rule, knowing that VITE_ variables are written into the bundle at build time so secrets stay out of the browser, and handing the session to a BFF that uses an HttpOnly cookie instead of a token. We add a small ASP.NET Core and YARP BFF to Bookstore and show the sign-in flow, the SPA fallback, cache headers, an nginx config and bundle analysis with real output.

15 Nov 2026 15 min 4
A Brief Look at Next.js: Server Components, the App Router, Server Actions, Cache Components and When an SPA Is Enough
Frontend PART 15

A Brief Look at Next.js: Server Components, the App Router, Server Actions, Cache Components and When an SPA Is Enough

Next.js runs React on the server: Server Components await data directly and their code never reaches the browser, Cache Components let you choose what is cached with 'use cache' and cacheLife, and every Server Function is a public endpoint that needs validation and authorization. We serve Bookstore's book details as a Partial Prerender with Next.js 16.4, call a Server Function directly with curl, and discuss when an SPA is enough.

15 Nov 2026 13 min 3
From React 18 to 19.3: Concurrent Rendering, Actions, use(), ref as Prop, Activity, useEffectEvent, ViewTransition and Fragment Refs
Frontend PART 16

From React 18 to 19.3: Concurrent Rendering, Actions, use(), ref as Prop, Activity, useEffectEvent, ViewTransition and Fragment Refs

React 18 laid the base for concurrent rendering (createRoot, batching, transitions), 19 brought Actions, use() and ref as a prop, 19.2 Activity and useEffectEvent, and 19.3 stable ViewTransition and Fragment refs. We add ViewTransition and a Fragment ref to Bookstore, apply React Router 8.5's deprecation, and upgrade a small React 18 project to 19.3 with the 18.3 warnings, the TypeScript codemod and manual fixes.

15 Nov 2026 12 min 3
Blog Map