Sanity CMS project handover checklist: what you should receive
A Sanity CMS project handover checklist for clients: project and Vercel ownership, env vars, README, roles, training and backups to demand at launch.
Notes on Next.js, Sanity CMS, performance, and SEO — written from real production builds. 163 posts.
Start with a guide
A Sanity CMS project handover checklist for clients: project and Vercel ownership, env vars, README, roles, training and backups to demand at launch.
A WordPress to Next.js migration SEO plan: permalink parity, Yoast metadata transfer, image URLs, edge redirects, and 8 weeks of Search Console tracking.
Hiring a white label Next.js developer for agencies? Learn how capacity, communication, handoff and client pricing work, plus subcontractor red flags.
Improve your Sanity Studio editor experience: fix flat schemas, missing previews, cluttered desks and weak validation so your marketing team uses it.
Next.js website maintenance cost for a Sanity site: monthly ranges for upgrades, Sanity and Vercel plans, monitoring and content support.
How to do a website redesign without losing SEO on Sanity + Next.js: URL inventory, 301 map, metadata parity, schema, sitemap and GSC monitoring.
Sanity website slow on Next.js? Learn to tell GROQ waterfalls, uncached fetches, heavy images and bundle bloat apart, and what a fix engagement looks like.
How to migrate Next.js Pages Router to App Router route by route: when it's worth it, Sanity data fetching, SEO risks and effort ranges.
How to take over an existing Next.js project and Sanity codebase: first-week audit, access and ownership steps, red flags, and repair vs rebuild.
A practical contentful to sanity migration walkthrough: model mapping, rich text to Portable Text, assets, references, locales, import script and cutover.
Still on Sanity Studio v2? What breaks in the v2 to v3 rewrite, why you should land straight on v6, and the real upgrade path by Studio size.
Gatsby's plugin ecosystem has stalled. Here's the real migration path to Next.js App Router, keeping Sanity, URL parity, and your editors sane.
Sanity vs WordPress.org: real annual costs including hosting, plugins, and CDN. Side-by-side pricing table for teams at every scale.
Sanity vs Webflow pricing compared at every scale — free tier limits, per-seat costs, CDN delivery, and when each platform gets expensive.
Sanity vs Prismic side-by-side: schemas, GROQ vs query API, pricing, and which fits a Next.js App Router project in 2026.
Exact Prismic pricing tiers for 2026: free plan limits, per-seat costs, what triggers an upgrade, and how it compares to Sanity and Contentful.
Webflow pricing for 2026: free plan limits, CMS plan and seat costs, bandwidth thresholds, and the upgrade triggers that catch teams off guard.
Ghost pricing broken down: self-hosted infrastructure costs, Ghost Pro tiers, member limits, and what actually forces an upgrade in 2026.
Cloudinary vs Sanity CDN for Next.js image delivery — formats, transforms, pricing thresholds, and which to pick for your project.
Cloudflare Images pricing breakdown: free tier limits, per-image storage costs, delivery fees, and when a Next.js or Sanity project should upgrade.
Vercel Blob's Hobby tier gives you 1 GB of storage — here's exactly what storage, data transfer, and operations cost before and after you hit the limits.
Sanity vs Ghost for Next.js projects: schema flexibility, pricing, editor experience, and API delivery compared with no vendor bias.
Side-by-side cost breakdown of Sanity CMS vs WordPress.com — free tiers, paid plans, hosting, and when each gets expensive. Updated September 2026.
Sanity vs Webflow side-by-side: editor experience, developer control, pricing, and which fits a Next.js project in 2026.
Sanity, headless WordPress, and Webflow compared on DX, editor UX, pricing, and Next.js fit. Honest trade-offs with a decision table.
Sanity, Hashnode, and Dev.to compared on data ownership, Next.js integration, content API, and real running costs for developer blogs in 2026.
Cloudflare R2 free tier: 10 GB storage, 1M Class A and 10M Class B operations a month, no egress fees. Paid rates, cost examples, and how it compares with S3.
Supabase free tier in 2026: 2 projects, 500 MB database, 5 GB bandwidth, and projects pause after a week of inactivity. Pro pricing, compute costs, upgrades.
Algolia pricing in 2026: free tier limits, paid plan thresholds, record and search costs, and what actually triggers an upgrade. Includes a cost table.
Cloudflare Pages free plan: 500 builds a month, 1 concurrent build. Pro is $20/month billed annually; Workers Paid starts at $5. What forces an upgrade in 2026.
Railway pricing for 2026: Hobby is $5/month with $5 of usage included, then usage-based rates. Free-tier limits, real cost examples, and when to upgrade.
A concrete TCO breakdown comparing Sanity CMS + Next.js against headless WordPress for real production sites in 2026.
Bunny Stream has a 14-day free trial, then pay-as-you-go storage and delivery with free encoding. 2026 rates, cost examples, and when Mux or Cloudinary fit.
Sanity vs Kontent.ai compared on schema flexibility, GROQ vs REST/GraphQL, pricing, and Next.js fit. Pick the right CMS for your project.
Sanity vs Keystatic side-by-side: hosting model, editor UX, GROQ vs reader collections, and which fits your Next.js project in 2026.
Sanity, Storyblok, and Contentful pricing compared across free tiers, growth plans, and hidden costs. Real numbers for Next.js teams in 2026.
Netlify moved new accounts to credit-based plans in Sept 2025: Free gets 300 credits, Personal is $9 and Pro is $20/month. What the free tier covers and costs.
Keystatic pricing broken down: the free open-source and Cloud tiers, Keystatic Cloud Pro and per-user costs, and exactly when a paid plan makes sense in 2026.
Kontent.ai pricing broken down: what the free Developer plan actually includes, how quote-based paid plans and environments work, and the thresholds that trigger an upgrade in 2026.
Cloudinary's free tier looks generous until transformations stack up. Real numbers on credits, paid plans, and what triggers an upgrade in 2026.
Storyblok vs Sanity compared on DX, editor experience, pricing, and Next.js fit. Real trade-offs, no vendor spin.
Hygraph pricing broken down tier by tier: free Hobby plan limits, Growth plan seats and features, and what actually forces an upgrade in 2026.
A practical decision framework for headless CMS setup — covering team size, content velocity, channel count, and budget before you commit.
Thinking about hiring a JavaScript developer? Here's what full-stack JS actually means, why TypeScript matters, and what to ask before you commit. Read this first.
A practical process for building web apps for startups — discovery brief, thin-slice milestones, staging from day one, and a launch checklist.
What Next.js hosting actually costs in 2026 across Vercel, Netlify, Railway, Render, Fly, and a VPS — with real monthly figures and hidden cost traps.
A CMS website should let editors publish without calling a developer. Here is what good actually looks like — preview, content models, performance, handover.
Thinking about hiring React developers? Here's how to read seniority signals, structure interviews, and benchmark rates before you commit. Updated 2026.
Next.js in 2026 is more capable than ever — and more complicated. A practitioner's view on RSC, PPR, caching, and upgrade churn from production work.
A practical guide to scoping a Next.js project — page inventory, CMS decision, integrations, performance budget, and timeline maths. For founders and teams.
A practical Next.js Tailwind workflow: design tokens as CSS variables, reusable component conventions, and a build sequence for shipping pages fast.
A production next.js typescript setup: strict tsconfig, typed routes, Zod boundaries, safe env vars, and a CI type-check gate that catches real bugs.
Directus Core is free to self-host with 3 seats; Team is $499/month billed annually; Cloud hosting adds $99/month. Plus the $5M licence threshold explained.
The React Next.js patterns I reuse on every project: server components by default, colocated data fetching, typed API boundaries, and error conventions.
Thinking about how to hire a developer for your startup? Here's how to set scope, pick the right budget tier, and avoid the mistakes that burn runway.
Hiring a freelance web developer? Here's what to expect on communication, staging, pricing models, handover, and warranty — before you sign anything.
Set up Next.js 16 with Tailwind CSS v4: the create-next-app flags that matter, and how the default setup compares with popular starter boilerplates over time.
A practical guide to API-first CMS architecture — omnichannel delivery, developer control, editor experience trade-offs, preview complexity, and glue code cost.
Sanity CMS agency or freelancer? The real cost, speed, and accountability differences — with a clear decision framework for startups, founders, and agencies needing Sanity development.
What does a Sanity CMS developer actually cost in 2026? Freelance rates run $80–$160/hour or $8k–$25k per project. Agency retainers start higher. Breakdown of what drives the price and what you get at each tier.
Next.js route handlers and server actions work for many backend needs, but have real limits. Here's where they hold and where they break.
Yes, Sanity CMS has a genuinely free plan — not a trial. At the time of writing: 20 users, 2 public datasets, 10k documents, 1M API CDN requests/month, 100 GB bandwidth. Full breakdown of what's included and when you'll need to upgrade.
How to hire a Sanity CMS developer who actually knows the platform — not a React developer with Sanity bolted on. The skills checklist, portfolio signals, and interview questions that separate specialists from generalists.
A straight total-cost comparison of Webflow site plans vs a custom Next.js + CMS build. Real numbers, one table, honest about where each wins.
A web CMS should work for editors and developers without compromise. Here is the baseline I hold every platform against before recommending it.
Vetting guide for founders and PMs: portfolio signals, App Router interview questions, Core Web Vitals checks, and real rate benchmarks for 2026.
Choosing a Node.js CMS for a custom website? Honest trade-offs across Payload, Strapi, Directus, Keystone, and Sanity with a side-by-side comparison table.
A practical guide to the Next React stack — React, Next.js, hosting, CMS, and styling — what each layer does, why this combination won, and when to walk away.
Thinking about hiring a Shopify developer? This guide covers when you need one, what to ask, and how budget signals reveal build quality before you commit.
Pages Router API routes vs App Router route handlers compared — caching, streaming, edge runtime, and a clear migration path with real code examples.
Hobby, Pro, and Enterprise Vercel pricing explained with real usage line items, per-seat maths, and a realistic monthly total for a mid-traffic marketing site.
Marketing website performance affects conversions, ad ROI, and SEO rank. Here's what the numbers mean in business terms and what to demand from any build.
A founder's practical guide to hiring a web developer — budget ranges, freelance vs agency vs in-house trade-offs, vetting, and contract structure.
A practical setup checklist for a CMS for marketing teams — roles, content models, preview, publishing workflow, and analytics wiring. Done right the first time.
Practical advice for founders on scoping an MVP, picking boring tech, and staging from day one — before startup app development begins.
Static generation, pagination, image handling, and bundle discipline for a Next.js blog that doesn't slow down as content grows. Practical code included.
Pick the right SEO CMS by understanding rendering strategy, structured data support, sitemap control, and editorial workflow. A practical guide for 2026.
Storyblok pricing for 2026: free Starter with 1 seat, Growth at $99/month per space with 5 seats, Growth Plus at $349. Limits, extra seats, upgrade triggers.
Thinking about hiring a web designer? This guide covers portfolio signals, performance questions, and the designer vs developer trade-off. Read before you sign.
A plain-English guide to how modern CMS apps work — content models, editing UI, publishing workflows, and integrations — for non-developers choosing the right tool.
Tailwind CSS v4 rewired how teams configure, share, and ship styles. Here's what the CSS-first engine means in practice.
Comparing Mux, Cloudinary, and Bunny Stream for sanity video hosting — upload workflow, adaptive streaming, pricing, and LCP poster handling.
A steady-state cost breakdown of Sanity + Next.js vs WordPress: hosting, plugins, security, and editor time. Real annual totals compared.
Sanity hotspot not applying to your rendered image? Here are the four real causes and exact fixes for each one.
Sanity vs Directus compared across data ownership, schema design, querying, editor UX, and self-hosting for Next.js projects in 2026.
Contentful free tier: 10,000 records, 10 users, 2 locales. The jump to paid starts at ~$300/month — here's what triggers that cliff, what Enterprise actually costs, and which teams should consider alternatives.
Payload CMS is open-source and free. The real cost is hosting, database, and storage. Realistic monthly costs from $5/month to $200+ depending on your setup — full infrastructure breakdown for 2026.
Strapi is free to self-host. Strapi Cloud starts at $35/month per project, with Pro at $90 and Business at $450. Real infra costs and when Cloud pays off.
Sanity vs Hygraph in 2026: GROQ content lake vs GraphQL-native federation compared on DX, editor UX, pricing, and Next.js fit. Make the right call.
Switching from Contentful? Compare Sanity, Payload, Strapi, Storyblok, and Hygraph as Contentful alternatives for Next.js in 2026 — pricing, schema model, and fit.
A step-by-step guide to exporting WordPress content, mapping schemas, running an import script, converting HTML to Portable Text, and preserving SEO with 301 redirects.
Step-by-step guide to indexing Sanity content with native Embeddings, running a semantic query, and wiring a debounced search UI in Next.js App Router.
How to configure Sanity Agent Actions to trigger AI content workflows from the API — generate drafts, translate, and enrich fields at scale. Includes working code examples and real automation patterns.
Step-by-step setup of Sanity AI Assist (@sanity/assist) in a Next.js + Sanity project: install, config, field instructions, and real editor workflows. Updated for 2026.
Strapi vs Contentful 2026 — self-hosted open-source vs managed SaaS. Pricing, admin UX, API, Next.js fit, and lock-in compared honestly.
Learn how to vet a senior Sanity CMS developer before you hire — portfolio signals, honest questions, and the red flags that reveal real seniority.
A plain-English walkthrough of a Sanity CMS project from first call to support — discovery, content modelling, Studio build, migration, and handoff.
Step-by-step guide to Sanity Mux video playback in Next.js: signed URLs, hls.js adaptive streaming, poster images, and LCP optimisation.
Step-by-step: custom Sanity document actions to unpublish, archive, and restore content without deleting, plus Next.js front-end handling for archived docs.
Learn how to write Sanity custom validation rules: required fields, regex, async checks, cross-field logic, and clear editor error messages.
Learn how to configure Sanity Structure Builder's defaultOrdering, documentTypeList grouping, and icons so a 20+ schema Studio still feels deliberate.
A practical guide to Sanity scheduled publishing in Next.js: enabling scheduling in Studio, wiring SANITY_REVALIDATE_SECRET, and triggering ISR so content goes live on time.
Payload CMS vs Contentful compared on schema control, API, pricing curve, and Next.js fit for 2026. Pick the right tool before you commit.
Comparing the best free headless CMS options for Next.js in 2026 — Sanity, Payload, Strapi, Contentful, and Storyblok free tier limits and trade-offs.
Headless CMS pricing compared for 2026: Sanity, Payload, Contentful, Strapi, Storyblok, Prismic, Directus, Hygraph and Keystatic — free tiers, paid plans, and upgrade triggers.
Sanity vs Strapi 2026: GROQ content lake vs self-hosted SQL, editor UX, image pipelines, pricing, and lock-in trade-offs compared honestly.
Payload vs Strapi: compared on self-hosting costs, TypeScript support, plugin ecosystem, and real migration complexity. Here's which one wins for most teams — and why.
Step-by-step guide to wiring the Sanity Presentation tool for live preview in Next.js App Router, with overlay clicks, live GROQ queries, and draft mode.
Step-by-step guide to wiring Sanity CMS role-based access control with document-level permissions in a Next.js project. Covers custom roles, GROQ filters, and Studio UI.
Tailwind v4 migration in Next.js, step by step: the upgrade codemod, CSS-based @theme config, dropped utilities like bg-opacity-*, PostCSS changes, and production gotchas.
How useFormStatus, useActionState, and use() from React 19 changed the way I build forms and async UI in Next.js App Router. Concrete before/after code.
Wondering if Next.js and Sanity CMS gives marketing teams real editorial control? Here is what the editor experience looks like in practice.
Hiring a Next.js developer without a solid brief wastes time and money. Here is what a good agency brief contains and the mistakes to avoid first.
Next.js vs Astro for content-heavy sites — rendering models, Sanity CMS integration, bundle size, ISR, and when to pick each for a real project.
Step-by-step guide to Framer Motion page transitions in Next.js App Router, cutting CLS to 0 and lazy-loading animation features with LazyMotion to save bundle size.
Step-by-step: webhook-driven Sanity-to-Algolia sync, InstantSearch React UI, and handling stale index edge cases in Next.js. Practical and production-tested.
Step-by-step guide to building a Sanity Studio custom input component using definePlugin, useFormValue, and PatchEvent with a real colour-picker example.
A practical guide to adding JSON-LD structured data to Next.js App Router pages using BlogPosting, BreadcrumbList, FAQPage, and Person schemas.
Step-by-step guide to connecting Sanity document internationalisation to next-intl in the App Router, with schema design, GROQ patterns, hreflang, and slug pitfalls.
How to set up true scheduled publishing in Sanity via the Releases API, plus custom document actions: an approval gate before publish and Slack notifications.
Deep dive into advanced GROQ queries in Sanity: inline joins, the coalesce() function, conditional projections, and array flattening with real payload sizes measured.
An honest look at Next.js partial prerendering PPR in production — what it solves, where it breaks, and which page patterns benefit most.
A Sanity CMS development services proposal should show milestones, staging URLs, and scope guardrails. Here is what good looks like.
Every Sanity plan, explained: Free (20 seats, 10k docs), Growth at $15/seat/mo, and custom Enterprise — plus the real limits that trigger each upgrade. Verified Oct 2026.
Payload CMS vs Sanity for Next.js in 2026: hosting, GROQ vs the local API, TypeScript DX, pricing, and lock-in — compared honestly from a Sanity developer's point of view.
A practical walkthrough of Next.js bundle size analysis with the Turbopack Bundle Analyzer or @next/bundle-analyzer, and the fixes that usually shrink first-load JS.
Step-by-step: route handlers, cookie strategy, and Vercel Edge Config secret rotation for Sanity draft mode preview in Next.js. No leaks.
Step-by-step guide to Mux video hosting in Next.js and Sanity CMS: sanity-plugin-mux-input setup, direct uploads, signed playback URLs, and poster images for fast LCP.
Learn when to use Sanity's auto=format image URL API vs next/image formats, how cache keys work, and how to keep payloads small in a Next.js project.
A honest breakdown of WordPress to Sanity migration cost, including plugin savings, hosting, editorial gains, and when the switch simply isn't worth it.
Before you hire a Sanity CMS developer, ask these five questions. Know what a strong answer sounds like — and which answers should worry you.
Sanity vs WordPress headless CMS compared on editor UX, performance, dev experience, and migration cost. Honest about where WordPress still wins.
Which CMS wins for a Next.js project in 2026? Sanity, Strapi, and Payload compared on pricing, editor UX, schema modelling, and lock-in. Payload vs Strapi gets its own section. No affiliate bias.
Deciding whether to hire a Sanity developer or an agency? Five honest trade-offs covering cost, speed, accountability, and risk to help you choose right.
A plain-English breakdown of Sanity CMS website cost in 2026, from small marketing sites to complex multi-locale builds. Real ranges, real drivers.
Kill CLS on Sanity images for good. Pull metadata.dimensions into next/image sizes and aspect-ratio boxes — exact GROQ and component code.
A practical guide to wiring up Vercel Analytics and @vercel/speed-insights/next for real-user Core Web Vitals monitoring in Next.js, with a workflow for catching regressions fast.
Use @sanity/image-url with hotspot, crop, fit, width, and height to crop Sanity images to an exact size in next/image — focal point preserved, with code and the exact GROQ.
Learn how to build Sanity Portable Text custom components in Next.js — code blocks, callouts, embedded forms, and captioned images with full TypeScript types.
Slow pages, locked content, and plugin chaos are warning signs your WordPress site has hit its ceiling. Here's how to know when a headless rebuild makes sense.
Which headless CMS works best with Next.js App Router in 2026? Honest comparison of Sanity, Contentful, Payload, and Storyblok on DX, pricing, and real integration complexity — with a clear recommendation by team type.
A step-by-step guide to Sanity TypeGen: CLI config, generating TypeScript types from GROQ queries, CI integration, and handling schema evolution gotchas.
A practical Next.js App Router tutorial guide for 2026. Covers layouts, route groups, Server Components, data fetching, static export, and the metadata API.
A step-by-step Sanity CMS + Next.js tutorial for developers setting up schemas, GROQ queries, and Sanity Studio with the App Router for the first time.
Step-by-step guide to connecting Sanity webhooks to Next.js route handlers for on-demand ISR revalidation, with correct HMAC signature verification and error handling.
Sanity CMS or Contentful for your next Next.js build? Honest comparison — pricing, GROQ vs GraphQL, editor DX, lock-in, and which one wins where.
A pattern for consolidating dozens of per-document Next.js revalidations into one tagged endpoint using SANITY_REVALIDATE_SECRET, cutting webhook noise and redundant cache purges.
Sanity's slug field only checks uniqueness within a single document type by default. Here's the custom GROQ validation that blocks duplicate slugs at publish, across multiple document types.
A production pattern for rolling schema changes in Sanity without throwing runtime errors or requiring a full site rebuild — coalesce in GROQ, migrate later.
A step-by-step approach to identifying orphaned Sanity schemas, measuring Studio bundle impact, and safely removing dead document types without breaking production.
Sanity Studio's default structure lists every document type in one flat sidebar. I use structure builder filters, defaultOrdering, and custom panes to cut editor noise.
A pattern for projecting only the fields your Next.js components actually render, using GROQ's select() and type filters to prune unused blocks from a union array.
A pattern for structuring Sanity references and GROQ projections that eliminates query waterfalls in server components by resolving references in a single round-trip.
Cut LQIP overhead on Sanity + Next.js sites to nearly zero using Sanity's built-in metadata.palette instead of inline Base64 blur data. Exact GROQ and component code.
A singleton pattern for i18n navigation that keeps GROQ queries fast, using dynamic field access (field[$param]) instead of string interpolation.
Denormalising references and embedding common fields in Sanity schemas keeps list queries lean and fast in Next.js server components. Here's the pattern I ship.
Next.js TTFB optimization in practice: Partial Prerendering for the shell, cached and streamed dynamic fragments, and tight GROQ projections — with illustrative before/after targets.
Portable Text can bloat client bundles when it renders inside a client component. Here's how to keep it in Server Components, lazy-load only the heavy interactive blocks, and where lazy-loading trades away SEO visibility.
A production pattern for Sanity draft previews in Next.js that keeps published pages on the edge while editors see real-time changes.
INP is responsiveness. Learn how to find long tasks, profile React re-renders, reduce main-thread work, and ship fast interactions consistently.
LCP is usually one big image. Here’s how to identify the true LCP element, reduce TTFB, ship the right image bytes, and consistently hit <2.5s on real devices.
Core Web Vitals 2026 explained: LCP, INP, and CLS thresholds, how much they really affect Google rankings, field vs lab data, and the fixes that consistently move each metric.
A practical breakdown of when Next.js + Sanity is the right stack, what it buys you for SEO and velocity, and the trade-offs to watch.