From the studio
Field notes
What we learn building products.
Latest
SaaS design agency in Spain: what to check before you sign
Since June 2025, Spain's Ley 11/2023 puts accessibility duties on private digital products, with sanctions reaching one million euros. Six questions to ask.Visual hierarchy without color: 7 tools that replace the accent
Two greys can carry a whole interface. Size, weight, spacing and value do the work an accent color takes credit for, in the order that actually works.Empty state design: the 4 states every screen needs
A screen needs four empty states: first use, no results, cleared, and error. Baymard finds close to half of sites leave the no-results screen a dead end.Website photography for software: the 7-step shot list
Software has no object to photograph, so most product sites default to stock. The 7 steps we use to pick, grade and ship a set of 8 to 12 images.Manufacturing software development partner: a 2026 buyer's brief
Two EU deadlines land in September 2026: CRA vulnerability reporting and Data Act access by design. What to vet in a manufacturing software partner.SaaS development agency in Italy: how to choose one in 2026
Five checks before signing with an Italian SaaS development agency: NIS2 supplier duties, AI Act Article 50, and EAA fines up to 40,000 euros.When to hire an agency for a design system (and when to wait)
Four thresholds decide it: repeated surfaces, release cadence, who owns it after handover, a fixed date. Below them a design system costs more than it returns.Fintech development studio: what to vet on KYC, PSD3 and DORA
DORA applies since January 2025, the EU AML rulebook from July 2027, EUDI wallet acceptance from 2027. What to check before hiring a fintech build partner.Optical alignment in UI: 7 spacing fixes math gets wrong
Round letters overshoot flat ones by 1% to 3% of cap height, and UI inherits the same problem. Seven optical fixes, and what CSS now handles for you.GEO vs AEO: what actually differs, and what changes in 2026
AEO grew out of featured snippets. GEO came from a Princeton paper at KDD 2024. The mechanics, the crawlers and the reporting split. The checklist does not.Next.js Agent DevTools: the AI debugging setup in 2026
Next.js 16.3 gives coding agents terminal access to build errors, routes and the React tree. The MCP and agent-browser setup, in five steps.MCP governance in 2026: what the Linux Foundation handoff changed
Anthropic donated MCP to the Linux Foundation in December 2025. Who decides the spec now, what the 2026-07-28 release removed, and what to check.All articles
2026
SaaS design agency in Spain: what to check before you sign
Visual hierarchy without color: 7 tools that replace the accent
Empty state design: the 4 states every screen needs
Website photography for software: the 7-step shot list
Manufacturing software development partner: a 2026 buyer's brief
SaaS development agency in Italy: how to choose one in 2026
When to hire an agency for a design system (and when to wait)
Fintech development studio: what to vet on KYC, PSD3 and DORA
Optical alignment in UI: 7 spacing fixes math gets wrong
GEO vs AEO: what actually differs, and what changes in 2026
Next.js Agent DevTools: the AI debugging setup in 2026
MCP governance in 2026: what the Linux Foundation handoff changed
Cloudflare AI Gateway: what it does and when to route through it
SaaS pricing page design: 6 fixes that stop losing deals
How to run a design system audit in 5 days: a checklist
SaaS Art Direction: How a Product Stops Looking Like a Template
SOW vs MSA: which contract structure protects your SaaS build
Typographic scale for product UI: sizes that hold on every screen
Next.js Server Actions in production: patterns we use and avoid
SaaS onboarding UX patterns that cut first-week churn
AI feature token cost: budget it before it eats your margin
Software agency contract red flags: 8 clauses to check in 2026
llms-full.txt vs llms.txt: what each does and when to add it
TypeScript 7's Go compiler: what the 10x speedup changes
Harden an MCP server for enterprise: SSO, audit, gateway
In-house vs agency for a design system: when each wins
Agency vs freelancer for MVP: a 2026 decision framework
How to brief a software development agency for a SaaS build
10 mistakes founders make hiring a SaaS studio in 2026
AI search traffic converts 4.4x better: the SaaS capture playbook
What a discovery phase delivers (and what it should not)
Partial Prerendering is stable in Next.js 16: how to structure routes
Hybrid craft: the AI-and-human design workflow in 2026
Claude Code context window: manage it like a token budget
AI Overviews vs AI Mode: why they cite different sources in 2026
SaaS activation metric: Slack's 2,000-message rule
npm dependency sprawl: the real cost and how to cut it in 2026
Product design retainer pricing in 2026: the real monthly ranges
Anthropic API in Next.js: streaming, caching, and cost control
Brand mentions vs backlinks: what predicts AI citations in 2026
Next.js i18n without a library: the App Router pattern we ship
Google's scaled content abuse policy: the AI pipeline that survives
Discovery phase cost in 2026: what to pay and what to refuse
Stripe Checkout vs Customer Portal: which does what (2026)
TanStack in 2026: Query, Router, Start, and what each one solves
Sitemap strategy for a large content site: split, index, lastmod
AI integration cost for a SaaS in 2026: real ranges
Stripe integration cost and timeline for a SaaS in 2026
SaaS website design cost in 2026: a founder's pricing guide
Design system pricing in 2026: project, retainer, or shared ownership
Design system ROI: measure it as a P&L line item
WebGL vs CSS animation: when to use each (2026)
SaaS dashboard design: show data without drowning users
How to write a CLAUDE.md file that steers Claude Code reliably
How to add JSON-LD to a blog article the right way in 2026
Web font performance in 2026: subset, self-host, swap
Design token naming conventions: a 3-tier system that scales
Designing for AI agents: building a UI the non-human user can read
MVP development cost in 2026: ranges by scope and stack
Technical SEO checklist for a B2B SaaS launch in 2026
6 frontend mistakes that tank your Lighthouse score in 2026
Component drift: how design systems decay and how to catch it
Docker vs Vercel for Next.js: self-host when it pays off
How to hire a product engineering studio in 2026
Type-safe RPC with Next.js Server Actions: skip the API layer
Design system structure: the 7 categories and the build order
Content freshness in 2026: the 90-day rule for SEO and GEO
How much does it cost to build a SaaS in 2026? Real ranges by scope
AI consulting firm vs AI studio: which fits your stage in 2026
What is a Claude Code studio in 2026 (and how to pick one)
How to hire a product engineering studio in 2026: a buyer's playbook
Website architecture in 2026: SPA homepage, static for the rest
Why we kill components instead of adding them: the design system diet
Short-lived MCP server URLs: the TTL pattern for AI agents in 2026
GEO KPIs in 2026: Citation Rate, Mention Rate, Position
How to write an RFP for software that attracts the right vendors
Core Web Vitals on Next.js in 2026: how to ship green
Functional UI animation in 2026: the checklist before it ships
Claude Code skills: when to use them, when they cost tokens
Where to find a SaaS design partner in 2026: 6 places that work
Cloudflare R2 vs Supabase Storage: when to add R2 in 2026
Immersive web stack in 2026: Lenis, GSAP, and what to skip
Upstash Redis: 5 patterns for rate limiting, sessions, locks
TypeScript strict mode: the 8 settings we never turn off
AI integration agency in 2026: what their pitch should actually contain
12 mistakes we see teams make building their first multi-agent ops system
Cloudflare R2 vs Supabase Storage vs S3 (2026): which to pick
Supabase Supavisor: when the connection pooler adds 80ms
Next.js development agency vs in-house: when each one wins in 2026
Design system as a service: 6 agency models compared in 2026
Claude integration partner: what to look for before you sign
How to choose a B2B SaaS design agency in 2026
Stripe integration partner vs DIY: when each one wins in 2026
MVP development agency in 2026: how to pick one that ships
Best SaaS design agencies in 2026: how to actually compare them
What an AI-native studio actually means in 2026
Next.js Server Actions security: 13 advisories and 2026 fixes
Dark mode is not a toggle: context-aware theming in 2026
Multi-agent system design patterns that survive production
Supabase RLS at scale: 7 patterns that stop the 11x slowdown
Post-launch rot: why your site falls apart 6 months after handover
Edge runtime vs Node runtime: Next.js 16 moved the default
Accessibility-first design after the EU Accessibility Act
Claude Code hooks: PreToolUse, PostToolUse, and patterns that scale
Cloudflare blocks AI crawlers: allow GPTBot and ClaudeBot
Multi-tenant from day one: why single-tenant SaaS is a 5-year mistake
Why we removed Tailwind from production: a CSS-only design system
Calm UI in 2026: the shift away from animation theatrics
AI-native vs AI bolted-on: how to tell in 60 seconds
The 7 schema markup types every blog needs in 2026
RevenueCat vs Stripe Billing in 2026: 1% vs 0.7% fees
Modern CSS 2026: cascade layers, container queries, :has()
How to govern a design system across 10+ consumer projects
Claude Code workflow patterns we use to ship production code daily
llms.txt: what it is, what to put in it, and if you need one
SaaS usage metering and billing: the 6-step Stripe setup
Why we still pick Next.js over Astro for most SaaS in 2026
10 design system mistakes that wreck consistency at scale
Managed vs self-hosted MCP server: 6 axes that decide it
How to write the first 200 tokens so AI engines cite your article
One team, one invoice: why founders stop stacking SaaS vendors
React Compiler 1.0: when you still need useMemo and useCallback
Design tokens vs CSS variables vs Tailwind, explained (2026)
How to build a Next.js MCP server on an existing SaaS (2026)
The 12 GEO best practices that actually move citation rates in 2026
Studio vs freelancer vs agency in 2026: who fits which budget
Server Components vs Client Components: the decision tree we follow
Third-party component libraries: an expensive shortcut
What is MCP and why your SaaS needs an MCP server in 2026
What is Generative Engine Optimization (GEO) vs SEO
The agency tax: why mid-market companies overpay for digital work
Next.js 16 + React 19: the 3 changes that break old SaaS code
What is a design system audit and when you need one
7 Claude app mistakes that cost tokens, money, or the company