Anton Sviridov
indoorvivants.com
Anton Sviridov
@indoorvivants.com
I keep a detailed account of my various projects over at https://blog.indoorvivants.com/ and specifically the summary page: https://blog.indoorvivants.com/projects
I'm a big fan of Decline, but I still think that leaving macro-derived CLIs off the table is incorrect – you can get quite far with enums, case classes, and annotations in small to medium apps. In my projects I use both the raw Decline API and my own derivation mechanism for it.
November 14, 2025 at 9:26 AM
New post!

Self-contained multi-stage Dockerfiles are rad

Post: blog.indoorvivants.com/2025-10-14-s...

Repo: github.com/indoorvivant...

I use this old approach a lot in my apps (fullstack mostly) and I'm confident it's good enough for most people.
October 14, 2025 at 9:29 AM
To celebrate the release of Cats Effect for Native 0.5, I rebuilt my web interface for sn-bindgen in Smithy4s and Http4s.

Now on Native 0.5, and actually working!

Blog post: blog.indoorvivants.com/2025-09-22-s...

App: sn-bindgen-web.indoorvivants.com

Repo: github.com/indoorvivant...
September 22, 2025 at 12:11 PM
Got invited to Imperial College of London to do some livecoding for students, this time making a simple Electron app with Scala.js searching Scala libraries.

github.com/keynmol/scal...
May 27, 2025 at 2:44 PM
For something more relatable, here's a Scaladex MCP server: github.com/keynmol/scal....

Note that the model did not get any project descriptions and decided to just wing it.
May 11, 2025 at 12:43 PM
I've been playing around with MCP to understand the hype, and wrote a small library (codegen, really): github.com/indoorvivant...

This image itself was generated by my CLI (Scala Native btw!) tools, into which I added a mcp subcommand.
May 11, 2025 at 12:43 PM
With AST seemingly explorer not maintained, I decided to try and implement it in Scala.js.

Lots of fun, until I hit several recursion bugs in my interval tree implementation, and it was hell from that point onwards.

This will soon be hosted under Scalameta org and website.
March 14, 2025 at 4:08 PM
Released scala-uri 4.2.0, now with Scala Native 0.5 support: github.com/indoorvivant...

The native part currently depends on libidn2, but I'm working on a pure Scala Punycode implementation, to remove dependency on scalajs-dom (and browser) in Scala.js as well.
March 1, 2025 at 12:55 PM
Calling Scala Native from Java using Foreign Function & Memory API

blog.indoorvivants.com/2025-02-16-s...

Code:
- example with Scala CLI: github.com/keynmol/scal...
- self-contained SBT template: github.com/keynmol/scal...
- sbt-jextract plugin: github.com/indoorvivant... pic.x.com/VaCkgTVEVm
February 16, 2025 at 7:55 PM
toml-scala 0.3.0 is out: now with Scala 3 derivation!

github.com/indoorvivant...
February 9, 2025 at 5:10 PM
New blog post.

Let's call Java/Scala JVM from Scala Native using JNI. Because why not.

blog.indoorvivants.com/2025-02-08-j...
February 8, 2025 at 3:05 PM
Don't just take my word for it – I added a HLJS comparison mode
December 17, 2024 at 11:48 AM
Last night I added a bunch of improvements to my Tree Sitter powered Scala syntax highlighter.

Themes, facelift, latest tree-sitter-scala (now with named tuples support!), and a bunch of build niceties.

keynmol.github.io/scala-treesi...

I plan to write a blogpost about how all of this works.
December 17, 2024 at 11:48 AM
Here's an interactive cue4s demo running in the browser, using xterm.js and Scala.js!

Have a go: keynmol.github.io/cue4s-xterm-...
See how it's built: github.com/keynmol/cue4...
December 1, 2024 at 4:39 PM
Cue4s 0.0.3 is out, and with this version I was able to port dexsearch to it, removing the javascript prompts dependency entirely!

cue4s: github.com/neandertech/...
dexsearch: github.com/neandertech/...
December 1, 2024 at 7:58 AM
Quickest I ever deployed anything probably

Mimalyzer: check if a change triggers a MiMa problem

Try it: mimalyzer.fly.dev
Code: github.com/keynmol/mima...
Template: github.com/indoorvivant...

It's built in like 40 minutes, so it will constantly crash, bye :P
November 14, 2024 at 5:23 PM