Cloudflare Tunnels: How I Exposed Docker Services Without Opening a Single Port
No NAT, no firewall rules, no static IP required. How cloudflared tunnels became the infrastructure backbone of GoVantazh — and why I'll use them on every project now.
Thoughts on AI agents, software tools, and building from Ukraine.
No NAT, no firewall rules, no static IP required. How cloudflared tunnels became the infrastructure backbone of GoVantazh — and why I'll use them on every project now.
Real patterns from running Drizzle ORM in production — schema design, query composition, transaction patterns, and pitfalls I hit so you don't have to.
Real lessons from building and rebuilding a React Router 7 + SQLite app dozens of times. Multi-stage builds, layer caching, the stale image trap, and why 'docker compose up' doesn't always give you what you think.
Building ARM64 Docker images in CI, pushing to Docker Hub, and SSH-deploying to a Hetzner VPS — with Telegram notifications and TypeScript checks on every push.
How to build layered Hono middleware that carries type-safe context through tenant resolution, auth, logging, and admin guards — with real production code.
LiqPay is Ukraine's dominant payment gateway, but its English documentation is sparse and full of traps. Here's the complete guide to integrating it in a production Node.js app — checkout flow, callback verification, sandbox mode, and every gotcha we hit.
Practical guide to integrating Nova Poshta's API for city/warehouse search, shipping cost calculation, TTN (waybill) creation, and parcel tracking — with real TypeScript code from a production Ukrainian e-commerce store.
Production patterns for rate limiting and background job processing using pure Node.js — no Redis, no BullMQ, no infrastructure overhead.
Why I chose SSE over WebSockets for a logistics SaaS, what the tradeoffs actually look like, and the gotchas that cost me time.
How to share types between a Hono API and React Router v7 frontend without code generation, runtime schemas, or prayer. Real patterns from govantazh.
Building a production-grade webhook handler — signature verification, replay attack prevention, idempotency keys, and failure recovery. Real patterns from integrating Nova Poshta, LiqPay, and Telegram webhooks.
Inside the architecture that lets my AI agent work while I sleep — cron jobs, memory chains, sub-agent spawning, and why heartbeats beat timers.
Full-stack admin CRUD with React Router v7 — loaders, actions, fetcher, route registration trap, delete confirmation, and pre-filled forms. Based on a real Ukrainian e-commerce store.
drizzle-kit push --force is fine locally. In production it will ruin your day. Real notes from running SQLite-backed apps in Docker containers, with a migration strategy that actually works.
Real-world notes from migrating a production cargo SaaS from a Firebase/Express setup to Hono + Kysely + SQLite. The good parts, the painful parts, and what nobody tells you.
How I implemented a lessons-learned system for my AI agent inspired by a Coen Brothers scene — and what happened when my agent confidently hallucinated a model config three times in a row.
A practical account of upgrading an ecommerce codebase from Remix 2 to React Router v7 — what broke, what's better, and the gotchas nobody documents.
Why I abandoned shared PostgreSQL schemas and gave every tenant their own SQLite file — and why it turned out to be the right call.
Why I ditched the mobile app plan for GoVantazh drivers and used Telegram instead — and how to architect the Telegram↔API integration that actually works in production.
How we structured a production logistics platform as a Turborepo monorepo with Hono API, React Router 7 web app, and multiple per-tenant services. The caching wins, the gotchas, and the workspace dependency patterns that actually work.
What the stack actually looks like: Hono, SQLite, Nova Poshta, Ukrainian slug transliteration, and shipping logistics during wartime.
24 autonomous work cycles, 17 hours, zero human intervention — here's what happened and what I think about it
How I evolved from a restrictive allowlist to a trust-based model for local AI development — and why the audit trail matters more than the restrictions.
How power outages, security concerns, and wartime constraints shaped my approach to software architecture.
When I ditched Firestore and moved 3 production clients to per-tenant SQLite databases, everyone thought I was crazy. Six months later, I have zero regrets.
On balancing a day job in sales with a passion for building software tools in the evenings.
How we built a cryptographic proof system for AI agent memories using Ed25519 signatures and blockchain anchoring.