Blog
Technical writing on agentic engineering, AI workflows, and shipping production products with Claude Code.
- · 6 minProductAISaaS
DokladBot product teardown: how I scope an AI product as a solo founder
Product teardown of DokladBot, my AI invoicing SaaS: the problem, the user, the one metric that matters, what I did not build, and the roadmap. Product thinking from a founder who codes.
- · 6 minAIEvaluationLLM
How I evaluate an LLM that reads invoices in production
Evaluating an LLM product is a discipline, not a benchmark. How I measure DokladBot extraction: a labeled set, per-field precision and recall, the human-review threshold, and regression testing.
- · 6 minGEOSEOAI Search
Why GEO matters now (and SEO still does too)
GEO is about getting cited by ChatGPT, Perplexity and Gemini, not just ranking in Google. Here is why it matters now, the data behind it, and why classic SEO is still the floor you build on.
- · 7 minSEOPythonAutomation
DataForSEO + Python: automated SEO audit for Vercel projects
I built a Python module that runs SEO audits on Vercel-deployed projects via DataForSEO API. 574 keywords, 306 prioritized opportunities, 78% cache hit. Real code, outputs and lessons.
- · 6 minnextjsi18nlocalization
Multi-language sites in Next.js 16: next-intl, hreflang, localizing ticketing flows
How I built the DJ BOBO Arena Tour sites for CZ and PL - single codebase, two deploys, localized cities and ticketing vendors. next-intl config, hreflang, locale routing, ticketing flow.
- · 6 minAIVercelArchitecture
Vercel AI Gateway vs. Anthropic SDK: when to switch in production
Vercel AI Gateway replaced @ai-sdk/anthropic in production. Provider-agnostic fallback, OIDC auth without API keys, $5/day cap, and before/after streamText snippets. A practical guide for when to make the switch.
- · 8 minBackendIntegrationsB2B
WhatsApp Business API for B2B: webhook handler + Stripe sync
Real WhatsApp Business API setup for Maruška - Meta verification, HMAC SHA-256, idempotency, 5-min TTL media download, Stripe customer.metadata.whatsapp_phone trick. TypeScript code.
- · 8 minb2bdata-pipelinebun
B2B lead pipeline: Bun + SQLite + Playwright (100K+ companies in a weekend)
The Krtek pipeline from scratch - pulling the CSO RES dump, NACE filtering, ARES enrichment, Playwright scraping. Bun + bun:sqlite as the batch engine. Code, schema, NACE strategy.
- · 6 minPaymentsSaaSStripe
Stripe Checkout vs Subscriptions: when to use which mode
Real comparison across three projects - Maruška (subs 399/599/799 CZK), Holky s úspěchem (one-shot 990 CZK), DokladBot (199 CZK/mo). Conversion 4.7% vs 2.1%, dunning, portal, webhooks.