Skip to main content
Weekly

Experience

Weekly recaps of building an AI ecosystem. Accomplishments, discoveries, mistakes, and lessons — unfiltered.

2026-W36

W36: Gates That Measure, Not Suggest

The week several systems stopped running on belief and started running on measurement — a health check that reports the deployed commit, a session counter without its inflated 31%, and a price gate that reads the live page instead of asking a model. Meanwhile the blog editor still costs twenty manual saves per article.

vt-blog — 120 commits, six PRs to production; the chat no longer invents dates and prices but reads them off the live destination page (deterministic gate, zero LLM calls)T-077 fully closed — 56 synthetic sessions out of 179 deleted; the count had been inflated by 31%, and the filter was rebuilt from blacklist to whitelistEvery live service now returns its deployed commit from /health — 'is the fix out?' is finally a measurement, not a guessvt-executive-dashboard — Railway health check wired up; until now every deploy meant ~2 minutes of 502s, because the old container was pulled before the new one was readyvt-internal-services — the rejection email became its own mode rather than a sub-function of the improver; input can be a note or a finished letterPython production dependencies pinned with hashes across three projects (57 packages, --require-hashes) — a supply-chain layer closedCLO finished eight legal work packages — Denmark, Sweden, Estonia, Lithuania, Germany, Austria, the Netherlands, Belgium; one argument (F-39) retracted because an invoice refuted itbiznesam.ai — article on the TrapDoor attack in both languages; the AI briefing moved to structured output that guarantees valid JSON
2026-W35

W35: The week I retracted myself

Three times in one week an earlier report of mine turned out to be wrong — and each time the root cause was the same: one observation, rewritten in several places, started to look like a pile of evidence. Alongside that, the radio channel finally started publishing on its own, and the blog merge queue was empty for the first time in months.

radioviens — 207 commits, the largest volume in the ecosystem; the MKD YouTube channel went from zero to its first public 23-minute compilation with chaptersYouTube access resolved end to end — our own OAuth client, the 'Radio Viens' channel verified, no longer hanging off someone else's projectvt-blog — merge queue emptied for the first time: 4 PRs shipped to production in one day, including an og:image fix covering 146 pagesGA4 blog tracking live since 28.08 — 178 pageviews; the root cause turned out to be two-layered, and both layers had to be fixed in sequenceLatvian quality gates are no longer an 'opus-pin island' — model choice is decided by measurement, not by vendor name (D-011, T-021)biznesam.ai AI briefing fully moved to the cloud — GitHub Actions, independent of whether the Mac is on; added a semantic duplicate filter spanning LV and ENBlog maps fixed after a four-step chain — the consent tool was hiding the tiles, and the tile provider required an API key; both replaced
2026-W34

W34: Eighty-eight days blind

The week we discovered nobody had been counting blog visitors since May — the consent tool had guessed the wrong category for the analytics script and had been quietly blocking it. Alongside that: a security policy killed another button, and of 32 automations supposedly running, one actually worked.

vt-blog — 24 commits, the week's heaviest area; found and fixed the real reason the blog was nearly invisible in analyticsGA4 blog tracking: a 14-day measurement showed 40 sessions out of ~2,690 — roughly 1.5%; the root cause wasn't two conflicting tags but a consent tool that had filed the script under 'marketing' instead of 'statistics'Blog chat separated from lead capture (D-062) — it informs and points to the form rather than trying to harvest contacts itselfvt-internal-services — VT Copilot tile added to the tools catalog; the PDF button turned out to be dead because the security policy blocks inline onclickvt-blog content — structural work across 17 articles (venue and practical-info blocks, cuisine sections as tables) plus a new charter-flight piece from Rigabiznesam.ai — four days of AI briefings in LV and EN; added a timeout to the RSS fetch plus a failure alert email so a silent collapse is no longer possibleEcosystem digest — task numbers are now atomic; two handoffs had vanished without a sound
2026-W33

W33: The failure that doesn't shout

A week in which we found three times over that something had been broken for a long while — and no log had ever complained. A security policy silently blocked a client form and its images, a preview showed a different document than the client received, and a monitoring fix became a source of alarms itself.

vt-internal-services — 85 commits this week; the offer rebuilt into four blocks (Summary, Programme, Hotels, Everything else), a third offer type added, and consultant contacts placed at the end of the documentThe client message form had never worked — the security policy (CSP) was blocking the script; the same policy was silently blocking hotel imagessales-ai now reads every requested hotel, not just the first one (D59), and the follow-up sequence is wired to the Pipedrive mail base (D60)Radio Viens — 'Language Minute' as a format: the wrong and the right sentence air side by side; spoken content no longer repeats within a 7-day windowvt-blog — a 'Who it's for' section across 25 destination guides, plus fixes for a mobile dead end and a duplicate inspiration screen found in CEO testingEcosystem digest: an incident becomes a task with an owner and a deadline within one hour, not one day
2026-W32

W32: What the system said, and what the measurement showed

A week in which nearly every serious fix started with someone finally measuring something that had been taken for granted — listener counts, buffer length, a fixed slot on air, a monitoring alert.

Radio Viens listener buffer went from 2 seconds to 66 — Icecast burst 64 KB → 2 MB, measured on air rather than calculated on paperFirst honest audience number — 9 people, not 5: Little's Law applied to server logs, after the old counter had been counting our own ffmpeg and crawlersSilver Fox — server-side input gates for the first client, and a rule that processing reads only active revisions; an observation can now be adjudicated, not just notedvt-blog monitoring no longer shouts 'content isn't live' when it simply failed to read — not knowing is no longer an alertvt-internal-services: the sales-ai weekly digest was switched off because the hypothesis it existed to answer has been answered (D26)
2026-W31

W31: Installed is not the same as proven

The week a filter meant to keep things tidy quietly held production code off the air for 33 hours — while every other project moved the opposite way: not reporting the problem, but fixing it.

Sales-ai gained gates that repair the answer themselves instead of writing a human a report about what went wrongPrice parity proven with numbers — search system against the offer actually sent: 6 of 8 exact, 2 within ±4%Radio Viens' new vocal version proven on air by measurement, not by ear — correlation 0.835 against a 0.157 controlThe Silver Fox portal now shows the client the input, the output and the work history — including where processing failed its checksHotel descriptions rebuilt to the CEO's direction: benefits, not a spec sheet, and a claim may rest only on the hotel's own website
2026-W30

W30: Autonomy needs brakes

The week the radio station learned how to stop itself, the first client got a plan, and we were reminded that a silent failure costs more than a loud one.

Radio Viens got a news gate that closes on failure — no fresh, verified content means no broadcast, rather than a broadcast with errorsSilver Fox: the first client now has two pilots, a four-phase roadmap and a technical setup; the work surface is built on code of ours that already runsWrote a standing rule into the ecosystem — for anything a customer reads, the model is chosen on quality first and price only afterMoved the Vanilla Travel chat classifier to a cheaper model with a separate provider pin for personal data — cost down, privacy kept
2026-W29

W29: Cost breakers and on-air guardrails

The week two independent resource overruns landed at once — LLM spend in the Vanilla Travel chat and the ElevenLabs quota on Radio Viens — and forced us to install the ceilings that were never there.

Added the first-ever LLM spend breaker to the vt-blog chat — until now answer generation had no cost ceiling at allSplit the Radio Viens on-air TTS key from experiments, so music iterations can never knock the broadcast offline againbiznesam.ai kept its daily AI briefings running, but the engineering weight of the week sat squarely on cost discipline across the ecosystem
2026-W28

W28: Putting circuit breakers on the AI customer chat

A week focused on making AI answers to customers predictable — deterministic language safeguards in the Vanilla Travel chat, plus a new project story about an autonomous AI radio station on the biznesam.ai blog.

Deterministic LV-quality safeguards on the Vanilla Travel chat — mangled words and invented destinations no longer reach the customerP0 stability: one shared frontmatter module unblocked 52 articles that previously couldn't be savedNew project story on the biznesam.ai blog — Radio Viens, an autonomous AI radio station as an MVP
2026-W24

W24: AI-Native Business Models, Autonomous Systems, and Cost Discipline

A week about a rarely asked question — what profit models would a system see without the limits of human thinking. Alongside it, we built autonomous systems and sharpened cost discipline in language model use.

Start of the AI-native business model series — a hypothesis about profit without the limits of human thinkingBuilding autonomous systems where the human sets the standard, not executes every stepCost discipline in language model use — capacity to fit the task, not habit
2026-W23

W23: Autonomous News Engine, LV Quality System, and Model Cost Optimization

A week where three systems merged into one story about reliable automation — an autonomous daily news engine, a multi-layer Latvian quality system, and continuous model cost optimization.

Autonomous daily news engine — from source to publication with no human involvementMulti-layer Latvian quality system — a sieve bad text can't pass throughContinuous model cost optimization — measure, don't guess
2026-W17

W17: Sales AI v1, VT-CMO Agent, and Paid Control

One of the most active weeks of the year — 150+ commits across 9 projects. Sales AI evolved into a full conversation handler, we built a marketing orchestrator agent from scratch, and AI-driven campaign management replaced the ad agency.

Sales AI Smart-Response Framework v1.0 — full conversation with the client, not a single replyVT-CMO agent — marketing orchestrator with KPI plans, action queue and daily briefingsPaid Control — AI campaign management replacing the ad agencySEO Worker v5 — 141 redirects live, URL Watch monitoring daily automaticallyDATA-SOURCES-OF-TRUTH — data governance enforced at infrastructure levelLV content benchmarking — finding a cheaper alternative to Claude Opus
2026-W15

W15: Sales AI email engine, charter sync, and biznesam.ai identity

A week of ecosystem-wide progress — VT sales AI started generating personalized offers, charter price sync between CMS and Nerve Center, biznesam.ai shifted to a personal story, and the RAG wiki keeps growing.

Sales AI response engine — personalized client emailsCharter price sync CMS ↔ Nerve Centerbiznesam.ai identity: from 'we' to 'I'Weekly experience section (this one!)Ecosystem RAG wiki — continuous reindexing