• Home
BuildWithMatija
Get In Touch
Build With Matija Logo

Build with Matija

Matija Žiberna

I turn scattered business knowledge into one usable system. End-to-end system architecture, AI integration, and development.

Quick Links

Payload CMS Websites
  • Bespoke AI Applications
  • Projects
  • How I Work
  • Blog
  • Get in Touch

    Have a project in mind? Let's discuss how we can help your business grow.

    Contact me →
    © 2026BuildWithMatija•Principal-led system architecture•All rights reserved

    Knowledge Base

    Practical notes on systems, web architecture, and AI implementation.

    Browse articles by topic, author, or format to find decision-grade guidance for building usable business systems.

    Find a specific article

    Search + Filters

    Article Filters

    All Articles (24 of 24 articles)

    Minimal dark-themed horizontal illustration showing Contentful, Sanity, Payload, and WordPress logos bound by chains and padlocks, symbolizing CMS vendor lock-in, with a broken chain between Sanity and Payload on a solid dark background.
    Sanity
    CMS Vendor Lock-In Explained: Sanity vs Payload 2026

    Understand CMS vendor lock-in and which risks matter: data, query (GROQ), pricing, schema, and integrations. Get clear migration cost estimates and guidance.

    Matija Žiberna
    Matija Žiberna
    6 days ago
    • Previous
    • 1
    • 2
    • Next
    Page 1 of 2

    Explore Topics

    Discover curated content across our most popular categories

    Cloudflare
    Cloudflare

    Guides and insights on using Cloudflare for performance optimization, DNS management, security, and edge computing.

    How To Programmatically Add DNS Records To Cloudflare In Node

    How To Programmatically Add DNS Records To Cloudflare In Node

    by Matija Žiberna

    View all Cloudflare articles →
    Docker
    Docker

    Everything you need to know about using Docker to build, ship, and run applications in isolated environments.

    Newsletter

    Stay Updated

    Get practical notes and implementation updates without the noise.

    Browse

    Topics

    AI
    19
    CloudflareCloudflare
    4
    DockerDocker
    17
    EconomicsEconomics
    3
    Entrepreneurship
    15
    Journal
    3
    11 min read
    Checklist of real-world performance, pricing, migration, and security regrets in Sanity and Payload projects
    Sanity
    Sanity vs Payload: 6 Costly Regrets Teams Always Face

    Discover six common regrets teams face after choosing Sanity vs Payload - performance, pricing, migration, security - a checklist to avoid costly mistakes.

    Matija Žiberna
    Matija Žiberna
    15 days ago
    12 min read
    Minimalistic website window icon with a single speech bubble and a checkmark on a solid color background, representing an initial sales conversation.
    Sanity
    Outdated Website Content: Why Sales Teams Lose Deals

    Outdated website content weakens sales credibility and wastes reps' time. Learn the structural causes, why CRM can't fix it, and next steps to regain trust.

    Matija Žiberna
    Matija Žiberna
    about 1 month ago
    7 min read
    How-To GuideSanity
    Fix NEXT_PUBLIC_SANITY_DATASET Error in Sanity CLI

    Fix the 'Missing environment variable: NEXT_PUBLIC_SANITY_DATASET' error by loading dotenv in sanity.cli.ts and adding env.ts fallbacks so npx sanity dev runs…

    Matija Žiberna
    Matija Žiberna
    3 months ago
    2 min read
    sanity document preview customisation
    How-To GuideSanity
    How to Customize Document Previews in Sanity CMS Studio

    Learn to tailor Sanity Studio document previews with select and prepare: display publication dates, statuses, reference fields, media fallbacks, and computed summaries.

    Matija Žiberna
    Matija Žiberna
    5 months ago
    7 min read
    Sanity custom admin view
    How-To GuideSanity
    How to Add Custom Sorting Options to Sanity CMS Document Lists

    Learn to add custom sorting options to Sanity Studio document lists using the structure tool, including default sort, multi-field ordering, and domain-specific sorts.

    Matija Žiberna
    Matija Žiberna
    5 months ago
    5 min read
    Rest to SDK
    How-To GuideSanity
    How to Build a Professional TypeScript SDK for Any REST API

    Create a production-ready TypeScript SDK: clean architecture, strict typing, robust error handling, packaging, and a smooth developer experience for any REST API.

    Matija Žiberna
    Matija Žiberna
    5 months ago
    12 min read
    Sanity Newsletter pop-up in nextjs
    How-To GuideSanity
    How to Build Category-Aware Popups in Next.js Using Sanity CMS

    Increase conversions by showing targeted newsletter popups based on a post's category. Learn how to detect categories from Sanity, map them to tailored…

    Matija Žiberna
    Matija Žiberna
    5 months ago
    12 min read
    Sanity BREVO sync
    How-To GuideSanity
    How to Sync Your Sanity CMS Newsletter with Brevo Email Marketing

    Integrate Brevo with your Sanity CMS newsletter: add the official SDK, create a service module, and sync subscribers reliably after Sanity creation with…

    Matija Žiberna
    Matija Žiberna
    5 months ago
    8 min read
    Sanity Typegen
    How-To GuideSanity
    Sanity TypeGen: Optimal Project Structure and Production Workflow (2025 Update)

    Complete guide to implementing Sanity TypeGen at scale: project structure, query organization, type generation workflow, and production deployment strategies for large applications.

    Matija Žiberna
    Matija Žiberna
    5 months ago
    14 min read
    Grapql vs GROQ
    How-To GuideSanity
    GROQ vs GraphQL: Complete Guide to Choosing the Right Query Language (2025)

    Comprehensive comparison of GROQ and GraphQL: understand when to choose each query language for content-driven applications vs. complex multi-source APIs.

    Matija Žiberna
    Matija Žiberna
    5 months ago
    12 min read
    Sanity CMS webhook protection
    How-To GuideSanity
    How to Create Secure Sanity CMS Webhooks with Next.js App Router

    Secure your Sanity webhook endpoint in Next.js App Router with signature verification, raw body parsing, GROQ filters, and safe cache revalidation.

    Matija Žiberna
    Matija Žiberna
    5 months ago
    9 min read
    Remove Docker Volumes (Even When In Use) — 4 Methods

    Remove Docker Volumes (Even When In Use) — 4 Methods

    by Matija Žiberna

    Fix Docker Permission Denied: Volumes, Bind Mounts & CI/CD

    Fix Docker Permission Denied: Volumes, Bind Mounts & CI/CD

    by Matija Žiberna

    View all Docker articles →
    Economics
    Economics

    Before I pivoted to full-stack development, economics was my world—I studied it at university and still follow it closely. This category is a space for my personal takes on economic theory, policy, markets, and the way it all ties into tech and society. These are opinion-driven pieces, written more as a passion project than professional analysis, but always grounded in curiosity and a love for the subject.

    Beyond the Bubble: Debt, Demographics, and Slovenia's Competitive Future

    Beyond the Bubble: Debt, Demographics, and Slovenia's Competitive Future

    by Matija Žiberna

    View all Economics articles →
    Economics
    Economics

    Before I pivoted to full-stack development, economics was my world—I studied it at university and still follow it closely. This category is a space for my personal takes on economic theory, policy, markets, and the way it all ties into tech and society. These are opinion-driven pieces, written more as a passion project than professional analysis, but always grounded in curiosity and a love for the subject.

    Beyond the Bubble: Debt, Demographics, and Slovenia's Competitive Future

    Beyond the Bubble: Debt, Demographics, and Slovenia's Competitive Future

    by Matija Žiberna

    View all Economics articles →
    Next.jsNext.js
    88
    Nutrition
    1
    PayloadPayload
    64
    Psychology
    2
    ReactReact
    14
    RemixRemix
    4
    SanitySanity
    24
    ShopifyShopify
    14
    Sports
    3
    Tools
    14