Resend's global suppression list was silently eating my customers' license key emails, so I migrated anukari.com to Postmark for deliverability.
Evan Mezeske
Feb 2026
After Railway's software audit policy and Northflank's broken 503-throwing proxy, anukari.com now runs on Cloud Run behind a global load balancer.
Dec 2025
Railway blocked my emergency deploy over dependency CVEs already live in prod, and why piling on safety checks eventually causes the outage.
With 85 factory presets and a preset maker contracted, I'm prepping the first public release. Payments will go through Shopify, app store gripes included.
Mar 2025
License activation C++ is in, and instead of mocking HTTP I wrote integration tests that hit the real license server with a test-only reset API.
Aug 2024
Pre-alpha builds now download via short-lived Cloudflare R2 URLs so leaks go stale fast, plus license key verification in C++ and a round of vcpkg pain.
The devlog and newsletter now live on anukari.com, imported from Discord and Substack, which I'm shutting down. Pre-alpha invite tooling is next.
I built the site's blog engine, imported the old Discord devlog entries, added tagging and RSS, and wired a bot to pipe new posts back into Discord.
A missing await on an async function led me to typescript-eslint's promise rules, which surfaced a dozen similar bugs in the new website's code.
Moving MongoDB index creation into version-controlled TypeScript, then hitting a next.js bug where failed middleware makes server actions return undefined.
The licensing API is done. The plugin sends a machine fingerprint plus license key and the server signs it back, a simple lock on the front door.
Auth, server-validated React form actions, and CSRF protection are working, so I'm pushing the website toward pre-alpha product key management.
Jul 2024
Six hours fighting next-auth.js to get email and password login working for product registration, since the docs push everyone toward OAuth.
After boost's interval library threw baffling singleton exceptions in my GUI fuzz tests, I replaced it with a 25-line Interval class that just works.
Voice stealing now prefers released notes, which made MPE playable when holding a root note under a melody. Lots of polyphony GUI details cleaned up too.
Porting the whole website from Python to next.js took about three hours, and JSX plus React components beat every Python templating option I have tried.
Google Cloud Run made mapping a custom domain such a slog that I moved the site to railway.app, which had it serving in five minutes. NiceGUI is out too.
Plugged in the ROLI Seaboard and MPE just worked, two notes bending in opposite directions. Also switched the new website from App Engine to Cloud Run.
Spent the day on a new website in Python, FastAPI, and NiceGUI on App Engine, and landed on a three word tagline for Anukari, 3D Physics Synthesizer.
Voice instancing works and it's better than I hoped. Time dilation retunes a full physics sim per note, and parallel GPU voices add zero slowdown.
Anukari finally builds and links on my M1 Macbook after homebrew Clang pain, though the OpenCL code crashes whenever a microphone or modulator appears.
Jun 2024
Anukari has a built-in tuner now. After wading through GPL-licensed and broken pitch estimation libraries, I settled on cycfi's q, fast and stable.
May 2024
Envelope followers are working, and reusing delay lines instead of a new link type made them simpler and added free signal delay as a bonus.
New exponential and multiplicative modulation modes make the MIDI note follower play in tune and also unlock audio-rate FM synthesis.
Apr 2024
Seeding the GPU PRNG from the current sample number made rendered audio depend on buffer size, so it now seeds once at startup and stays deterministic.
Mar 2024
New unit tests keep finding real bugs, including a broken plane-sphere intersection in frustum selection and an infinity check that accepted NaN.
Bigger JUCE typefaces and slider hover polish, plus finding Google Filament, which beats DiligentEngine for cross-platform graphics.
Feb 2024
Grinding through pre-alpha chores like window position saving, a recent presets menu, open source license credits, and LLC paperwork.
The precision sliders are finally done, and loading 3D assets in a thread pool took the GUI startup time from about 4 seconds down to 400ms.
Surveying no-code tools for the sales site and hating it. Lock-in, revenue cuts, and $1k/year for a custom product registration domain.
Dials are gone. The new PrecisionSlider pairs a coarse slider with an adaptive thumbwheel so parameters spanning orders of magnitude stay precise.
After a jam session made distortion problems obvious, I built a GPU compressor for the microphones so live experimenting stays clean.
Dec 2023
Modulators are becoming their own 3D entities with routing stored on links, plus a JUCE crash fix upstream and more polish on my ADC23 slides.
Oct 2023
The Audio Units logo and the Audio Units symbol are trademarks of Apple Computer, Inc.
VST is a trademark of Steinberg Media Technologies GmbH, registered in Europe and other countries.