Frontend

How we rewrote our tech stack in under a day

Last week, we deleted 16,000 lines of code, rewrote 11,500, migrated frameworks, ripped out React, and swapped our entire CSS setup with AI. It took less than 6 hours.

No designer? No problem with v0

For small teams without a designer, v0 is a game-changer. The cost justifies itself by letting you explore and validate ideas in minutes rather than days.

Learning from OSS: configuring your Link component via a Provider (Braid)

Learn how SEEK’s Braid Design System uses a linkComponent provider to flexibly support routing across React apps. A great pattern for design systems, and one madewithlove engineers keep coming back to when building scalable front-end libraries.

Redux is legacy - modern ways to approach state in React

Stuck in Redux boilerplate for a simple React task? You're not alone. Learn how tools like Tanstack Query, nuqs, and react-hook-form help you replace Redux with simpler, more maintainable solutions—backed by madewithlove's engineering expertise.

Why front-end rewrites are more common than refactors

Why do engineering teams keep rewriting frontends? Let’s explore the leadership bias and tech churn that makes refactors feel harder—yet ultimately more sustainable.

Lynx: a new contender in cross-platform development?

Lynx could revolutionize cross-platform mobile development with its unique approach and performance benefits. Is it time to switch from React Native or Flutter?

Branded types in TypeScript: when string just isn’t enough

Discover how branded types can improve your TypeScript code quality, make your intent clearer, and catch bugs before they even compile.

Taming a Python: don't let the snake bite

Adapting to a new tech stack is all about mindset. Switching from PHP to Python was an eye-opener. Package management confusion, unexpected paradigms, and a lack of encapsulation made for an interesting challenge. Embracing constraints is the secret to growth.

Learning from OSS: legacyBehaviour property on Next.js 's Link component

Ever introduced a breaking change and instantly regretted it? Components evolve, but forcing users into painful refactors isn’t ideal. Next.js tackled this with a legacyBehaviour flag—letting devs opt out of the new behavior while they migrate at their own pace.

Caching routes, components and functions with "use cache" in Next.js 15 (canary)

"use cache" is an experimental Next.js 15 Canary feature and may change. In this tutorial, we explore "use cache" for caching, covering fetching and inserting comments with Drizzle to reduce database calls and improve performance while maintaining control.

Instant feedback using the useOptimistic hook in React

Implement optimistic updates in React with the useOptimistic hook for instant UI feedback. This technique enhances user experience by updating the interface immediately while the server processes actions in the background, creating a faster and more responsive app.

Crossing boundaries: Handling data mutations in client components

Discover how to efficiently mutate data in client components using server actions in Next.js. Learn to handle form submissions with React’s evolving hooks like useActionState, eliminate the need for API endpoints, and streamline client-server interactions for faster, more responsive applications.

Crossing boundaries: Passing server data to client components in React

Learn how to optimize performance by fetching data server-side without blocking the page render. This guide explores passing promises to React client components and resolving them asynchronously using Suspense, ensuring a smoother, faster user experience.

Cookie-based authentication with Laravel Sanctum

This is a detailed step-by-step guide for setting up Laravel Sanctum with cookie-based authentication. It explains the logic behind each step and how to set up Postman. We also tackle the most common CORs issues.

“Fake” e2e tests with react-testing-library

How to run fake e2e tests using react-testing-librabry? Here's a quick tutorial on how to speed up your feedback loop when working in front end applications.

Subscribe