
Every Post So Far
Every post I've written so far: on shipping software, building products, and figuring things out as a solo developer running Varstatt.
Mirror Your Site as Markdown
How varstatt.com serves every page as machine-readable markdown — prebuilt at deploy, discoverable via headers, and ready for agents.
404 Pages as Lead Magnets
Fake Next.js crash overlay morphs into a chat. The broken URL becomes the first message. Every conversation pings my inbox.
SOAPNoteAI V2 Now Serves 100% of Users
Eight months of building V1 and V2 side by side. The bridge mechanics, shipping continuously behind flags, and why stability — not features — gated the final cutover.

What an AI & Automation Retainer Looks Like
AI automation services on a weekly retainer — personal AI assistant setup, workflow scripts, ongoing maintenance. Same retainer, same person, same cadence as building.
What a White Label Web Development Retainer Looks Like
White label web development on a weekly retainer — senior dev capacity behind an agency or design studio's brand, invisible to their clients.
Errors That Never Left The Device
Eleven silent failure paths in a clinical iOS app. None of them surfaced as a backend alert.
Works Locally, Fails After Deployment
File tracing misses runtime paths, Cloud Run changes the working directory, CloudFront eats routes, and OG images silently vanish — four failures that pass every local test.
When the LLM Remembers Too Much
A vendor rate becomes a budget constraint and reasoning leaks across step boundaries — two failures from implicit state crossing where it shouldn't, and the architecture that fixed both.
What a Firebase Audit Looks Like
Firebase consulting, structured as a one-week audit. Firestore queries, security rules, cost drivers — find what's exposing data and what's running up the bill.
What a Software Maintenance Retainer Looks Like
Software maintenance services on a weekly retainer: dependencies, security, performance, monitoring, bug fixes, and new features — same diligence as building.
Null Bytes, Dead Streams, Last Chunk
SSE adds overhead for mixed events, silent streams hang without error, and the last audio chunk vanishes on page close — three LLM streaming fixes.
200 OK, Data Wrong
Imagen rewrites your prompt, Lambda corrupts your binary buffer, GSC returns empty rows, and structured output truncates without error.
What a Code Audit Looks Like
Code audit, software audit, technical due diligence — same work, different buyers. One week, $997, prioritized by risk: security, architecture, tech debt.
Filling Forms No Tool Can Template
Every tender form is different, templating tools need placeholders you can't insert, and markdown round-trips destroy the document.
What a PWA Build Looks Like
PWA development service in 6 weeks. The most budget-efficient way to ship an app: web + installable + app stores from one codebase.
SVG Animation Is Not DOM Animation
Rebuilding an old chart race challenge in React taught me five things SVG handles differently than the DOM. Coordinates, transforms, text, and more.
What a Legacy App Modernization Looks Like
Legacy application modernization services in 6 weeks: feature-by-feature migration, live app throughout, no big-bang rewrite, no frozen branch.
45 Tabs I Stopped Opening
A JWT decoder, a mesh gradient engine, an animation system, and everything in between. Three of them outgrew the toolkit.
What a 2-Week PoC Looks Like
Rapid prototyping service structured as a 2-week engagement. Validate the riskiest technical assumption, get a working prototype + go/no-go.
npm Publish Without Tokens
Trusted publishing with OIDC replaces long-lived npm tokens. The setup has one undocumented requirement that returns a misleading 404.
It Works, But You Can't Ship It
Two AI providers fill the form correctly. Both route document data through global endpoints that don't meet every customer's residency policy.
Three Ways the Wrong Value Won
A race condition, a stale default, and a spread operator each delivered the wrong value to production. None threw an error.
An Empty AI Response Corrupted Chat History
Gemini returned HTTP 200 with zero content. I saved the empty response to conversation history. The chat never recovered. Here's what went wrong.
How do you know if your idea is worth building?
The discovery questions that separate good ideas from projects destined to fail. Demand validation, core features, and appetite-based scoping.
Why should you think of software as a business cost, not a craft?
Reframing software development from an art form to a predictable business expense changes how you build.
What a DevOps Audit Looks Like
DevOps audit in the original sense — how your team ships software. CI/CD, deployment, rollback, monitoring. Not cloud administration.
Software Engineering Principles for Startups
39 principles I use to ship software every week: a working system built from years of product development
Why Varstatt Uses Weekly Retainers, Not Sprints
How continuous priority queue work differs from sprint-based development. Weekly retainers create accountability without the ceremony of sprints.
Why Scrum Fails In Small Teams
Scrum was designed to coordinate large cross-functional teams. When your team is small enough to just talk, the ceremonies become the bottleneck.
What an Automation Audit Looks Like
Workflow automation service review in one week. Map internal portals, admin panels, and n8n / Make workflows — what you have, what's broken, what to consolidate.
Why do software projects fail?
The root causes of scope creep, budget overruns, and misalignment that waste time and money. What goes wrong and how discovery prevents it.
Three Bugs That Were Actually My Prompts
Three debugging sessions where I chased AI misbehavior for hours. Each time the model was executing my instructions exactly as written.
What a Freelance Web Developer Actually Charges
My actual pricing model, why hourly billing is broken, and what clients should expect when hiring a freelance web developer in 2026.
Nobody Finishes a 15-Minute AI Interview
How I decomposed a monolithic AI discovery interview into 8 standalone tools — each with its own deliverable, landing page, and search intent.
What a Fractional CTO Engagement Looks Like
Fractional CTO for early-stage startups: same person as the founding engineer who builds your first version. The retainer is the engagement.
How does software get shipped without breaking things?
Continuous deployment, feature flags, monitoring from day one, and safe-to-fail design replace big-bang releases and lengthy QA cycles.
What happens when a client wants to stop or pause?
Weekly billing, full client ownership, and no lock-in mean stopping or pausing is mechanically simple and penalty-free.
How does async collaboration work without daily meetings?
Async-first communication replaces status meetings with written updates, full transparency, and documentation that builds itself.
How should non-technical founders evaluate developers?
You can't fully evaluate a developer before working with them. The goal is to minimize risk until you have enough real data.
What do most founders get wrong about building AI products?
AI is a tool, not a product. What makes a product valuable is domain expertise. Without it, AI products are generic and replaceable.
The Production Bugs That Never Threw an Error
Six bugs across OAuth, Next.js, launchd, n8n, browser APIs, and OpenAI. Every log said success. Every result was wrong.
Firestore Transactions: Handling Race Conditions Between Cloud Functions
A runTransaction example for the case where two Cloud Function instances race to create the same external resource and one needs to win.
Merging Two Firestore Listeners for Cross-Field OR Queries
Firestore can't OR across different field types in a real-time query. Two parallel listeners merged client-side can.
When should you build custom vs buy off the shelf?
Default to buy. Build custom only when the custom part IS your product's value. Everything else is glue — and glue should come off the shelf.
How should a startup choose its tech stack?
There is no best stack. There's a best stack for your specific situation. Match the stack to business reality, not trends.
How should founders think about SaaS development costs?
SaaS development isn't a one-time build. It's a weekly investment. The real question is how much per week you're willing to invest.
What's the difference between freelancer, agency, and retainer?
Three service models with different incentive structures. The key insight: productize the workflow, not the service.
How much does it really cost to build an MVP?
The $5K-$500K ranges you see online are mostly noise. They reflect service model and overhead, not code quality.
SwiftUI Is Like React + CSS-in-JS
I had to jump into an iOS codebase with no SwiftUI experience. The fastest way in was mapping everything I already knew to the Swift equivalent.
What makes a good project brief?
A good brief describes the problem and the business, not the deliverable. Bad briefs say 'build me a mobile app.'
What a 6-Week MVP Build Looks Like
MVP development for startups, structured as a 6-week retainer. From idea to working SaaS — auth, core features, payments, production deploy.
How do you scope an MVP that ships in weeks, not months?
Six-week appetite-based planning. Fix the time, flex the scope. Shape the solution to fit the constraint.
How do you go from idea to working product?
The real path from idea to product is discovery of the problem first, then solution. Most founders skip this entirely.
Your Market Tells You Who You Are
Launched as an MVP shop. Clients stayed for 12 months. Eventually I listened to what the market was telling me about who I actually am.
Being Good To Be Referred
Split your business brand (clients) from personal brand (peers). Build referral relationships through authentic content, not polished marketing.
The Fourth Evolution of MVP
Frank Robinson invented MVPs in 2001. Eric Ries redefined them in 2011. AI is redefining them again in 2025.
Using Shared Packages in Firebase Monorepos
Firebase breaks with file:../shared deps. Use npm pack + tarball approach: preinstall script creates .tgz locally, gets included in deploy.
Build Apps Like LEGO Bricks
Use ports & adapters architecture to swap AI providers like LEGO bricks. Avoid vendor lock-in, optimize costs, test new models easily.
When "Polish Over Security" Costs Real Money
Client wanted to "polish features first, security later." Found exposed OpenAI API key in frontend code. Anyone could steal it and rack up unlimited charges.
Fidder Overengineering Made Me Pay
Reduced Fidder's maintenance costs $17/month → $1/month by fixing architectural mistakes, like expensive Firestore secutiry rules and unnecessary VPS-polling.
If You Throw Away Your MVP Code, It Wasn't an MVP
6-day "MVPs" are prototypes disguised as products. Real MVPs use foundation-first architecture for extension, not throwaway code.
When Optimization Culture Breaks Human Judgment (Digest)
A reading digest on how systems designed to optimize metrics are undermining the human capabilities that actually matter.
I renamed (again) my newsletter (and why)
Changed "Self × Tech" to "Jurij's Workshop" because of etymology and cultural connections; here's the messy process
"It Works" Isn't Enough for Commercial Software
Vibe-coding excels for personal projects but creates dangerous technical debt in commercial products that require human-designed architecture and oversight
How We Built a Zero-Cost CMS Portfolio That Actually Works
Using Next.js, Airtable, and Vercel's free tiers, we built a content-managed portfolio site with zero ongoing costs and hourly updates.
Simple E-Commerce Request Uncovered a Wholesale Business's True Need
What began as an e-commerce project revealed a deeper need: tracking products across the entire supply chain, not just processing orders
The Tiny App That Eliminated a Shipping Processing Bottleneck
Custom app cut shipping preparation time from 10 minutes to 60 seconds, slashed errors by 80%, and paid for itself in 30 days — all for $3/month
Building an Embeddable DIY Diamond Mosaic PDF Generator
Created a web app that transforms photos into diamond art patterns using client-side processing, eliminating server costs while enhancing UX
The Algorithm that Transformed Warehouse Chaos
Reduced shipment prep time by 70%, improved accuracy to 95%, and cut costs by 40%. Five years later, it's still the company's operational backbone.
Domain Experts Still Need Tech Partners (Even in AI Era)
Industry experts know the problems; tech partners know how to build solutions. Why domain knowledge alone isn't enough to ship a software product.
Newsletter Framework / Service Evolution / Open Source Journey
New weekly newsletter format, pivoting to rapid prototyping services, and open-sourcing Fidder and Content Pal (4 min read)
Messy Truth > Perfect Lie
Relaunching my personal blog with a new direction. What comes next, what didn't work, and choosing messy truth over polished performance.
Start Now; Iterate and Saturate Later
A project that survives starts with the core value, adapts to real feedback, and improves over time. Why launching early beats planning forever.
A Story of Fidder: The RSS Reader Without the Noise
The story behind Fidder, an RSS reader built to follow your favorite sites without the social media noise, algorithms, or distraction.
A Launch Story of MyCointainer: Ultimate Staking Service Platform
The launch story of MyCointainer: a staking platform where users choose crypto assets, transfer coins to a staking wallet, and earn passive rewards.
Deliver Ideas To Market With Applied R&D
Applied R&D allows entrepreneurs to innovate quickly, adapt to changing conditions, and solve real-world problems efficiently.
Workflow Automation Is Business' Superpower
Workflow automation transforms how businesses operate, replacing manual effort with technology to execute recurring tasks.
Smooth Operator of Software Development Lifecycle
Everything should have its place and time, and the engineering work should flow. How to structure delivery so nothing blocks and nothing drifts.
Streamlining Software Release Process: A Case Study
Automating releases transforms them from error-prone, anxiety-inducing events into confident, one-click routines that teams like to perform