# Build with Matija > Technical deep dives, product experiments, and services from Matija Ziberna, a full-stack developer helping founders ship production software. ## About Matija Ziberna Matija Ziberna is a full-stack developer and technical founder partnering with teams to ship production-ready products, automation, and AI-enabled workflows. ## Services - [Productized Web App Development](https://buildwithmatija.com/services/web-app-development): Fractional CTO partnership to scope, build, and operate complex web applications with strong product thinking and technical ownership. - Model: retainer (Monthly partnership starting at €4.5k with minimum 4-week engagement.) - Spec: https://buildwithmatija.com/services/web-app-development/spec.json - [SEO-Friendly Websites](https://buildwithmatija.com/services/seo-friendly-websites): High-performance marketing websites with structured data, localization, and content workflows tuned for search visibility and speed. - Model: project (Fixed project pricing starting at €6k for 4–6 week delivery.) - Spec: https://buildwithmatija.com/services/seo-friendly-websites/spec.json - [Single-Purpose Tools](https://buildwithmatija.com/services/single-purpose-tools): Rapidly build internal tools, data enrichment bots, and workflow automations with measurable ROI within two weeks. - Model: fixed-bid (Builder package from €3k delivered in 10–14 days.) - Spec: https://buildwithmatija.com/services/single-purpose-tools/spec.json - [MVP Roadmapping](https://buildwithmatija.com/mvp): Strategy workshop to scope, price, and plan an investor-ready MVP with clear technical milestones. - Model: workshop (€1.5k flat workshop fee with credit toward future build.) - Spec: https://buildwithmatija.com/mvp/spec.json ## Markdown Content Index All blog posts listed below have dedicated Markdown versions designed for LLM consumption. Use the category sections to find content relevant to your task. ## Recent Posts by Category ### AI - [MCP Server For Business: Why Does Your Company Need It](https://buildwithmatija.com/blog/md/why-your-business-needs-an-mcp-server) (2025-12-10): Connect your CRM, email platform, and company docs to AI assistants. Give sales and marketing teams instant access to customer data, campaign history, and contracts - [AI App Planning: Proven Workflow to Keep Plans Coherent](https://buildwithmatija.com/blog/md/ai-app-planning-proven-workflow) (2025-12-08): Reproducible process using chat AI for ideation, local AI for surgical edits, and git to prevent context drift. ### Cloudflare - [Cloudflare Outage Sparks 500 Errors, Multiple Sites Offline](https://buildwithmatija.com/blog/md/cloudflare-outage-500-errors-2025-12-05) (2025-12-05): Why Cloudflare’s proxy is returning 500 Internal Server Errors and disrupting AI services like Claude and Perplexity —… ### Docker - [Unlock n8n: Enable External & Internal Libraries with Docker](https://buildwithmatija.com/blog/md/enable-external-internal-libraries-n8n-docker-ubuntu) (2025-11-08): Discover how to configure n8n in Docker to allow internal and external libraries securely on Ubuntu. ### Next.js - [OAuth for MCP Server: Complete Guide to Protecting Claude](https://buildwithmatija.com/blog/md/oauth-mcp-server-claude) (2025-12-07): Implement OAuth 2.1 with Dynamic Client Registration and PKCE to secure your MCP server for Claude clients - [Expanding Your Next.js MCP Server — Editing & Revalidation](https://buildwithmatija.com/blog/md/expanding-mcp-server-nextjs) (2025-12-06): Add write capabilities to your MCP server and handle Next.js cache revalidation for instant updates. - [Payload CMS & Next.js 16: Compatibility Breakthrough](https://buildwithmatija.com/blog/md/payload-cms-nextjs-16-compatibility-breakthrough) (2025-12-02): How the Turbopack HMR fix clears the main blocker and what to expect when upgrading Payload CMS to Next.js 16 securely - [Prisma v7 Migration on Next.js 16 — Turbopack Fix Guide](https://buildwithmatija.com/blog/md/migrate-prisma-v7-nextjs-16-turbopack-fix) (2025-12-01): Step-by-step migration from Prisma v6 to v7 in Next.js 16, resolving Turbopack module errors and configuring… - [Build a Production MCP Server in Next.js — Quick Guide](https://buildwithmatija.com/blog/md/build-mcp-server-nextjs) (2025-11-30): Step-by-step Next.js 16 guide to create an MCP server for Claude Code using mcp-handler, Upstash Redis, SSE, and… - [Build a Production MCP Server in Next.js — Quick Guide](https://buildwithmatija.com/blog/md/build-mcp-server-nextjs) (2025-11-30): Step-by-step Next.js 16 guide to create an MCP server for Claude Code using mcp-handler, Upstash Redis, SSE, and… - [Pre-Built Deploys to Vercel: Build Locally & Ship Fast](https://buildwithmatija.com/blog/md/prebuilt-deploy-to-vercel-nextjs) (2025-11-23): Step-by-step guide using Vercel CLI to build Next.js locally, prepare .vercel/output, and deploy with --prebuilt for… - [Next.js 16 Google Fonts: Global Inter & Exo 2 Setup](https://buildwithmatija.com/blog/md/nextjs-16-google-fonts-inter-exo-2) (2025-11-12): Use next/font/google to self-host Inter for body and Exo 2 for headings with Tailwind; zero layout shift and global… - [Schema-First Next.js: Build CMS-Ready Sites in 5 Steps](https://buildwithmatija.com/blog/md/schema-first-nextjs-build-cms-ready-sites) (2025-11-11): Define TypeScript data schemas first, build dumb components, and swap any headless CMS (Payload, Strapi, Sanity)… - [Next.js Contact Form: Zod, useActionState & Sonner](https://buildwithmatija.com/blog/md/nextjs-contact-form-zod-sonner-useactionstate) (2025-11-10): Build a resilient Next.js contact form with Zod v4, reCAPTCHA, server actions and Sonner toast feedback. - [Stop Next.js 16 Crashes: Fixing `searchParams` Errors](https://buildwithmatija.com/blog/md/stop-nextjs-16-from-crashing-on-searchparams) (2025-11-09): Learn to normalize `searchParams` in Next.js 15 and avoid runtime crashes with our step-by-step guide. - [Build a Unified Routing System with Next.js ISR in 5 Steps](https://buildwithmatija.com/blog/md/building-a-unified-multi-source-routing-system-with-nextjs-isr) (2025-11-07): Learn to integrate multiple data sources into a single routing layer using Next.js 16's Incremental Static Regeneration. ### Payload - [Migrate to Payload CMS: Seamless Swap from Dummy Data](https://buildwithmatija.com/blog/md/migrate-to-payload-cms-swap-dummy-data) (2025-11-21): How to replace example data with Payload CMS queries, preserve frontend types, and add getPage/getBlock utilities for… - [Creating Collections: Reusable Data Entities — Types & Examples](https://buildwithmatija.com/blog/md/creating-collections-reusable-data-entities) (2025-11-18): Step-by-step guide to define collection types, create example data, export for blocks, and prepare for Payload… - [Create Custom Block Types in Payload CMS — 5-Step Guide](https://buildwithmatija.com/blog/md/create-custom-block-types-payload-cms) (2025-11-17): Step-by-step TypeScript guide to define block types, build shadcn/ui components, map Lucide icons, and integrate with… - [Complete Guide: Use Existing Payload CMS Block Types](https://buildwithmatija.com/blog/md/payload-cms-use-existing-block-types) (2025-11-16): Use @payload-types to build Hero, Services and CTA blocks with shadcn/ui + Tailwind for type-safe components - [Design-Driven Development: Build Types from Figma Quickly](https://buildwithmatija.com/blog/md/design-driven-development-build-types-from-figma) (2025-11-15): Turn Figma mocks into TypeScript types and components, reduce refactors, and simplify Payload CMS integration. - [Design-Driven Block Systems: Complete 7-Part Guide](https://buildwithmatija.com/blog/md/design-driven-block-systems) (2025-11-14): Turn Figma mockups into production-ready Payload CMS block systems—TypeScript types, components, collections, and… - [Payload CMS Admin UI Components: Complete Glossary](https://buildwithmatija.com/blog/md/payload-admin-ui-components-glossary-v3-6) (2025-11-13): Authoritative reference for @payloadcms/ui elements & fields (v3.6+). Props, imports, usage examples, and best… - [Mastering Payload CMS API: Authentication & Queries Explained](https://buildwithmatija.com/blog/md/fetch-payload-cms-data-rest-api) (2025-11-05): Unlock the power of Payload CMS with our guide to REST API authentication and efficient data querying techniques. ### React - [Next.js, React RCE, and the npm Breach: A Developer's Week of Realising How Fragile Our Tooling Really Is](https://buildwithmatija.com/blog/md/nextjs-react-cvss10-npm-supply-chain) (2025-12-04): How the npm breach and React RCE exposed Next.js risks — practical defenses, pnpm tips, and supply-chain practices - [Block Component Templates: Quick Reference & Checklists](https://buildwithmatija.com/blog/md/block-component-templates-checklists) (2025-11-20): Copy-paste TypeScript + React templates, example data, and practical checklists for building blocks, collections, and… - [3 Proven Practices: Lucide React Icons & shadcn/ui](https://buildwithmatija.com/blog/md/lucide-react-shadcn-ui-cta-best-practices) (2025-11-19): Enforce UI consistency with Lucide React icons, shadcn/ui components, and a reusable CTA type to cut duplication and… - [Create a Dynamic Card Hover Effect in React](https://buildwithmatija.com/blog/md/self-adjusting-card-hover-effect-react) (2025-11-06): Master self-adjusting card hover effects with CSS transitions in React. No hardcoding, just smooth animations. ### Sanity - [Fix NEXT_PUBLIC_SANITY_DATASET Error in Sanity CLI](https://buildwithmatija.com/blog/md/fix-missing-next-public-sanity-dataset-sanity-cli) (2025-11-22): Load .env in sanity.cli.ts and add env.ts fallbacks to stop NEXT_PUBLIC_SANITY_DATASET errors running npx sanity dev ### Tools - [Why Serverless Postgres (NeonDB) Beats VPS for Solo Devs](https://buildwithmatija.com/blog/md/neondb-branching-serverless-postgres-solo-developer) (2025-12-03): How NeonDB branching and copy-on-write isolation simplify schema changes, testing, and migrations for solo developers. ## Discovery Notes - Sitemap: https://buildwithmatija.com/sitemap.xml - Markdown endpoints follow the pattern https://buildwithmatija.com/blog/md/{slug} - Machine manifest: https://buildwithmatija.com/blog/md/index.json - NDJSON corpus: https://buildwithmatija.com/llm/corpus.ndjson