Writing
What I built, what broke, what I measured and what I changed. Mostly Rust, distributed systems and my own projects, with some music along the way.
2026
Teaching CrowdRelay Autopilot to learn from its own decisions
Deterministic state machines made CrowdRelay safe and repeatable, but they couldn't learn which actions grew a fanbase. This is how the Autopilot now forms beliefs, tests them and updates them.
· 8 min read
What CrowdRelay Autopilot delivers today
The Autopilot could already make decisions. The past weeks added what makes them land: supply requests, evidence-backed pitch waves, verified placements, ramped sending and a quiet daily brief.
· 6 min read
CrowdRelay Autopilot should remember deadlines, not run the band
ViryaOS got useful once I made its automation accountable: deterministic decisions, bounded authority, execution receipts and a single view of the exceptions that need a person.
· 4 min read
CrowdRelay Autopilot makes the boring decisions in deterministic Rust
How CrowdRelay Autopilot turns band data into safe, measured actions with deterministic Rust and explicit limits, without putting an LLM in charge.
· 6 min read
Synesthesia turns an album into a place you can enter
How I built Synesthesia, a mobile-first Godot experience in the browser where Virya's songs become rooms you reveal by touch.
· 5 min read
Virya Signal is one app with two trust boundaries
Fans and staff share one Virya Signal mobile shell, but their credentials, permissions and failure handling are kept separate.
· 4 min read
Retry versus reissue for one-time tokens in CrowdRelay
A retried CrowdRelay webhook returned HTTP 200 but sent no email, because retention had already removed the one-time token. Recovery needed a reissue instead.
· 3 min read
Proof of fair draws without a blockchain
The draw stays local and deterministic. Rekor only proves that a public commitment existed at a specific time.
· 3 min read
A concert announcement shouldn't be copied five times
One new concert used to mean Bandsintown, Facebook, email, reminders and several chances to forget one of them.
· 3 min read
Discord stopped being a special node
A convenient n8n integration node turned into one more hidden dependency, so I replaced it with plain HTTP webhooks.
· 3 min read
A QR code is not a ticket
Generating the QR image was easy. The real work in CrowdRelay ticketing is deciding who may enter, exactly once.
· 3 min read
Nineteen workflows and no front door
The event branches were ready. Nothing verified, accepted or routed the events that were supposed to reach them.
· 3 min read
How a referral link grew into CrowdRelay
I wanted a useful backend for independent artists. A smart link grew into campaigns, rewards, concerts, tickets and QR check-ins.
· 3 min read
Weighted draws and explaining why someone won
More referrals should mean a better chance, but a draw is only fair when I can explain exactly what went into it.
· 2 min read
A referral counter is never just a counter
I started with counter++. Then I had to explain where the number came from, and the referral system grew identities, states and history.
· 2 min read
The Meta API was connected and nothing worked
OAuth was green and the credentials were valid, but external profiles still returned nothing. Notes on the layers between a connected badge and working Meta data.
· 2 min read
VIRYA AREA, a browser game played in the real world
How I built VIRYA AREA, a location-based browser game on the Virya website, and the backend problems hiding behind "go here and claim a reward".
· 3 min read
AI in the band? Yes, but it doesn't get the keys
Where AI helps in the systems around Virya (reading, classifying, drafting) and why it never runs the band or presses Send on its own.
· 2 min read
Automating outreach without becoming a spam machine
How I automated the preparation of Virya's outreach (research, hooks, drafts, follow-ups) while a person still decides what gets sent.
· 2 min read
Why the Virya CRM stayed in Google Sheets
My backend instinct wanted PostgreSQL and an admin panel. The band needed a table it could edit, so I kept Sheets and added structure around it.
· 2 min read
Self-hosting n8n on one small VM
Caddy, n8n and PostgreSQL fit on one small VM. Most of the work went into backups, recovery, reachability checks and safe updates.
· 2 min read
How I stopped running Virya from memory
The band already had Sheets, Gmail, Drive and Discord. I gave each tool one job and built the missing process between them with n8n and CrowdRelay.
· 3 min read
Building a small Ask my CV assistant
An "Ask my CV" form on my website: one source, one model call and clear refusals. No RAG, because the whole CV fits in one prompt.
· 2 min read
Goodbye Gatsby, hello Astro
I moved two mostly static sites from Gatsby to Astro. Most of the gain came from deleting JavaScript they never needed.
· 2 min read
Moving our RabbitMQ client from Actix to plain Tokio
I replaced an actor-heavy generated client with plain Tokio, bounded workers and batched confirms, then measured the result in production.
· 2 min read
How a band website became a small platform
It started as a fast place for music and concerts. Then I kept adding the things an independent band needs.
· 3 min read
Redis 8 was only part of the optimisation
The Redis 8 upgrade helped, but most of the gain came from storing less, batching more and deleting requests.
· 2 min read
2024
Refaktor, my new two-man band
A few words about the new project I've joined.
· 1 min read
Virya
A modern metal band that mixes metalcore with influences from well outside the genre.
· 1 min read
Singularity
The story behind Singularity, my two-part release about a civilization travelling into the heart of a black hole.
· 2 min read
2023
The Nightingale, my solo debut
How I released and promoted my first solo track, and what the first week brought.
· 1 min read
Patronite, for patrons of the arts
What Patronite is, what I'm raising money for and what my patrons get.
· 1 min read
A few words on Bandcamp
What Bandcamp is, how it pays artists and where to buy my single.
· 1 min read
Lootnick Singularity, my new guitar
My new Lootnick Singularity 7-string: the woods, the pickups, the headless design and the name.
· 2 min read
Scoring for Arkham Radio
Writing the music and sound design for Radio Arkham radio plays in 2020.
· 1 min read
A new tool in the armory
The Arturia KeyLab 49 joins my Axe-Fx III, and why a guitarist sometimes needs keys.
· 2 min read
An artist's résumé
I'm Wojciech Bator, but you probably knew that already. Want a few facts?
· 1 min read
No posts match that search.