BLOG

Guides, stories & hard-won lessons

Everything we know about building production Next.js apps — no fluff, no filler, just things that actually help you ship.

N+1 Query Problems: How to Spot and Fix Them Before They Kill Your App
database7 min read

N+1 Query Problems: How to Spot and Fix Them Before They Kill Your App

The N+1 problem silently destroys app performance. Here's how to catch it in your ORM logs, fix it with eager loading, and stop writing it in the first place.

Robert Seghedi

Robert Seghedi · May 24, 2026

AI Code Review: Using LLMs to Catch Bugs Before Humans Do
vibecoding8 min read

AI Code Review: Using LLMs to Catch Bugs Before Humans Do

We added LLM-powered code review to our workflow and it caught real bugs. Here's exactly how we set it up and where it still fails.

Robert Seghedi

Robert Seghedi · May 24, 2026

Playwright vs Cypress in 2025: We Switched and Here's What Happened
best-practices8 min read

Playwright vs Cypress in 2025: We Switched and Here's What Happened

We migrated a full test suite from Cypress to Playwright. Here's the honest breakdown — what's better, what's worse, and what nobody tells you.

Robert Seghedi

Robert Seghedi · May 24, 2026

React 19 Features — What's Actually Useful in Production
react8 min read

React 19 Features — What's Actually Useful in Production

React 19 shipped with a lot of fanfare. Here's what we actually use day-to-day and what you can safely ignore for now.

Robert Seghedi

Robert Seghedi · May 24, 2026

OAuth Flows Explained for Developers Who Just Want Login to Work
auth8 min read

OAuth Flows Explained for Developers Who Just Want Login to Work

Authorization Code, PKCE, Client Credentials — OAuth has too many flows. Here's which one you actually need and why.

Ștefan Binisor

Ștefan Binisor · May 24, 2026

Vibecoding with AI: How to Use Claude and Cursor Without Drowning in Tech Debt
vibecoding10 min read

Vibecoding with AI: How to Use Claude and Cursor Without Drowning in Tech Debt

AI coding tools are genuinely magic — until six weeks later when you're untangling a mess you don't fully understand. Here's how we keep the vibes without the regret.

Ștefan Binisor

Ștefan Binisor · May 24, 2026

Stripe Dunning Done Right: Recovering Failed Payments Without Losing Customers
payments7 min read

Stripe Dunning Done Right: Recovering Failed Payments Without Losing Customers

Failed payments kill SaaS revenue silently. Here's how to build a dunning system that recovers money and keeps subscribers from churning.

Ștefan Binisor

Ștefan Binisor · May 24, 2026

Graceful Degradation: Building Apps That Don't Fall Apart When Things Break
best-practices9 min read

Graceful Degradation: Building Apps That Don't Fall Apart When Things Break

Third-party API down? Database slow? Here's how to build apps that limp along gracefully instead of dying spectacularly.

Ștefan Binisor

Ștefan Binisor · May 24, 2026

Landing Page Optimization for Developer Tools — What Actually Converts
best-practices10 min read

Landing Page Optimization for Developer Tools — What Actually Converts

Most dev tool landing pages explain what the product does but fail to show why it matters. Here's what we learned building pages that actually convert.

Robert Seghedi

Robert Seghedi · May 24, 2026