# 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://www.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://www.buildwithmatija.com/services/web-app-development/spec.json - [SEO-Friendly Websites](https://www.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://www.buildwithmatija.com/services/seo-friendly-websites/spec.json - [Single-Purpose Tools](https://www.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://www.buildwithmatija.com/services/single-purpose-tools/spec.json - [MVP Roadmapping](https://www.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://www.buildwithmatija.com/mvp/spec.json ## Service Markdown Docs - [Homepage Overview](https://www.buildwithmatija.com/home.md): Machine-readable homepage positioning, service paths, fit criteria, and CTA for https://www.buildwithmatija.com/. - [Payload CMS Pricing](https://www.buildwithmatija.com/payload-cms-pricing.md): Machine-readable pricing, scope, FAQ, and engagement details for https://www.buildwithmatija.com/payload-cms-pricing. ## 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 ### Medusa.js - [Medusa Architecture Explained: How It Works for Developers](https://www.buildwithmatija.com/blog/md/medusa-architecture-explained-developers-guide) (2026-04-20): Developer breakdown of Medusa's modules, services, workflows, links, and Admin extensions for building custom commerce - [Medusa vs Vendure: Choose the Best Open-Source Commerce](https://www.buildwithmatija.com/blog/md/medusa-vs-vendure-open-source-commerce) (2026-04-19): Practical Medusa vs Vendure comparison for headless commerce — B2B fit, licensing differences, Payload CMS pairing… - [Payload CMS Ecommerce Plugin vs Medusa.js: Which Should You Use?](https://www.buildwithmatija.com/blog/md/payload-cms-ecommerce-plugin-vs-medusa) (2026-03-31): A practical developer guide to choosing between Payload’s new ecommerce plugin and Medusa for B2B and mid-market builds ### Next.js - [Construction Company Website: 6 Essentials to Convert Leads](https://www.buildwithmatija.com/blog/md/construction-company-website-essentials) (2026-04-16): Portfolio, services pages, case study, contact flow, and CMS checklist to boost contractor inquiries. - [Next.js Internationalization: Complete Architecture Guide](https://www.buildwithmatija.com/blog/md/nextjs-internationalization-architecture-guide) (2026-04-15): Three-layer i18n architecture for Next.js App Router: routing, Payload CMS content, and hreflang with next-intl. - [Next.js Email Architecture: Transactional & Newsletters](https://www.buildwithmatija.com/blog/md/nextjs-email-architecture-transactional-notifications-newsletters) (2026-04-14): How to separate transactional, notification, and marketing email flows in Next.js using React Email and the right… - [TanStack Start vs Next.js 16: Ultimate Comparison 2026](https://www.buildwithmatija.com/blog/md/tanstack-start-vs-nextjs-16-comparison) (2026-04-09): Senior developer guide comparing TanStack Start and Next.js 16 on routing, SSR, type safety, performance - [Best Headless CMS for Next.js in 2026: Decision Guide](https://www.buildwithmatija.com/blog/md/best-headless-cms-nextjs-2026-decision-framework) (2026-04-07): A five-axis framework to pick the best headless CMS for Next.js—App Router, AI readiness, hosting model, and TCO. - [Best Construction Company Websites 2026: What Works](https://www.buildwithmatija.com/blog/md/best-construction-company-websites-2026) (2026-04-04): Mid-market contractor guide: CMS choices, portfolio freshness, mobile performance, and SEO-focused sector pages. - [unstable_catchError() in Next.js Is More Important Than It Looks](https://www.buildwithmatija.com/blog/md/nextjs-unstable-catcherror-explained) (2026-03-31): Why Next.js’s new unstable_catchError() API matters more than it first appears, and how it gives developers finer control over failure, recovery, and UI resilience. - [Next.js Is Becoming Agent-Native](https://www.buildwithmatija.com/blog/md/nextjs-agent-native) (2026-03-31): How Vercel is redesigning Next.js so coding agents can understand docs, inspect runtime state, and debug apps directly from the terminal - [OpenNext on AWS: The Honest 2026 Guide to Self-Hosting](https://www.buildwithmatija.com/blog/md/opennext-aws-honest-2026-guide) (2026-03-29): Practical architecture, ISR, image optimization, cold-start strategies, and Amplify comparison for Next.js deployments… - [Next.js Self-Hosting: Why It's Finally Becoming Practical](https://www.buildwithmatija.com/blog/md/nextjs-self-hosting-adapters-opennext-working-group) (2026-03-28): How adapters, OpenNext, and the Next.js Ecosystem Working Group reduce Vercel lock-in and simplify self-hosted… ### Payload - [Payload Postgres Adapter Guide: Drizzle Config & Migrations](https://www.buildwithmatija.com/blog/md/payload-postgres-drizzle-adapter-config-queries-migrations) (2026-04-21): Deep dive into payload.db.drizzle, schema hooks, migrations, read replicas, and practical Payload CMS Postgres best… - [Payload vs Medusa: Presentation vs Process Explained](https://www.buildwithmatija.com/blog/md/payload-vs-medusa-presentation-vs-process) (2026-04-21): Why Payload centers on content and presentation, while Medusa focuses on process, workflows, and events in commerce. - [Why Payload CMS Users Should Never Be Tenant-Scoped](https://www.buildwithmatija.com/blog/md/payload-cms-users-not-tenant-scoped) (2026-04-18): Make identity global in multi-tenant Payload CMS: use tenant membership arrays to prevent createdBy validation errors… - [Payload CMS Concurrency Keys: Prevent Race Conditions](https://www.buildwithmatija.com/blog/md/payload-cms-concurrency-keys) (2026-04-17): How to enable concurrency control, use exclusive vs. supersedes modes, and scope keys for multi-tenant Payload jobs. - [Active Tenant Scoping vs Access Control: A Practical Guide](https://www.buildwithmatija.com/blog/md/active-tenant-scoping-vs-access-control) (2026-04-13): Why active tenant scoping matters: prevent wrong-tenant reads, enforce tenant filters, and secure multi-tenant… - [Payload Async Hooks: Avoid the Transaction Trap - 3 Fixes](https://www.buildwithmatija.com/blog/md/payload-async-hooks-transaction-trap) (2026-04-12): Why passing req in Payload CMS hooks can break transactions - learn 2 safe patterns to prevent silent rollbacks - [Payload CMS Jobs: Separate Web & Worker Roles for Safe Scale](https://www.buildwithmatija.com/blog/md/payload-cms-jobs-separate-web-worker-roles-safe-scale) (2026-04-11): How to run Payload's web and worker runtimes separately, use concurrency keys, and scale background jobs without… - [Stop Runtime Payload Migrations in Distributed Systems](https://www.buildwithmatija.com/blog/md/stop-runtime-payload-migrations) (2026-04-10): Why prodMigrations fails at scale and how to run Payload CMS schema migrations once per deployment on Kubernetes or ECS - [Complete 2026 WordPress to Payload Migration Guide](https://www.buildwithmatija.com/blog/md/wordpress-to-payload-migration-guide) (2026-04-08): End-to-end ETL for ACF, media re-uploads, HTML→Lexical conversion, URL redirects, and SEO-safe Next.js cutover. - [Multi-tenant CMS: Reduce Website Fragmentation Fast](https://www.buildwithmatija.com/blog/md/multi-tenant-cms-reduce-website-fragmentation) (2026-04-06): One shared multi-tenant CMS (Payload CMS + Next.js) that reduces fragmentation, speeds launches, and preserves brand… - [CMS Migration Checklist: Complete 5-Phase Guide 2026](https://www.buildwithmatija.com/blog/md/cms-migration-checklist-5-phase-guide-2026) (2026-04-06): Complete process: content audit, model redesign, ETL, SEO & URL preservation to ensure a safe cutover - [Complete Strapi to Payload CMS Migration Guide — 7 Steps](https://www.buildwithmatija.com/blog/md/strapi-to-payload-cms-migration-guide) (2026-04-05): Migrate Strapi v4/v5 to Payload CMS: schema mapping, Slate→Lexical rich text conversion, ID remapping, and admin tips. - [Payload Import Triggers: 4 Essential Ways to Queue Imports](https://www.buildwithmatija.com/blog/md/payload-import-triggers) (2026-04-02): How admin UI buttons, webhooks, scheduled jobs, and scripts all queue the same Payload import job with progress… - [Contentful to Payload CMS: The Complete Migration Guide](https://www.buildwithmatija.com/blog/md/contentful-to-payload-cms-migration-guide) (2026-04-01): Step-by-step TypeScript migration: export Contentful JSON, transform Rich Text to Lexical, import assets and entries. - [Sanity to Payload CMS: The Complete 5-Step Migration Guide](https://www.buildwithmatija.com/blog/md/sanity-to-payload-5-step-migration-guide) (2026-03-30): Step-by-step TypeScript scripts to export NDJSON, convert Portable Text to Lexical, migrate assets, map schemas, and… ### Tools - [rclone Google Drive client_id: Create Your Own OAuth App](https://www.buildwithmatija.com/blog/md/rclone-google-drive-client-id-oauth-app) (2026-03-31): Step-by-step guide to create a Google OAuth app and use its client_id/client_secret with rclone to avoid Drive API… ### Uncategorized - [Construction Company Website Cost: Budget Guide 2026](https://www.buildwithmatija.com/blog/md/construction-company-website-cost-2026) (2026-04-03): Detailed breakdown of tiers, portfolio, hosting, SEO, and headless CMS vs WordPress to plan a 3–5 year website budget ## Discovery Notes - Sitemap: https://www.buildwithmatija.com/sitemap.xml - Markdown endpoints follow the pattern https://www.buildwithmatija.com/blog/md/{slug} - Machine manifest: https://www.buildwithmatija.com/blog/md/index.json - NDJSON corpus: https://www.buildwithmatija.com/llm/corpus.ndjson