Arbitrary Highlights
- My works on Github.
- Core Spirit: current employer.
- Astrotips: video guides on Astroneer.
- ProstoPoi (language: Russian): poi community website. We have our own video lessons, go check us out!
Chronological
Sorted by start time. Some "old"-looking projects are actively used and continually developed. Some private projects are excluded.
| name | desc | role | tech | start | status/end |
|---|---|---|---|---|---|
| Tabularius | Browser-based companion app and toolkit for Tower Dominion. | author | JS | 2025 | broken by game updates, still an awesome experiment |
| dock_hotkeys | MacOS app for activating Dock apps by ordinal hotkeys. | bot-prompter | Swift | 2025 | pretends to work, used all the time |
| gg | Essential tools missing from the Go standard library. | author | Go | 2022 | used all the time |
| js | "JS standard library" that doesn't suck. Foundation for JS apps. | author | JS | 2022 | used all the time |
| ur | Superior URL and query implementation for JS. Similar to built-in URL but actually usable. | author | JS | 2022 | subsumed |
| test | Superior testing and benchmarking library for JS. Runs in all environments. High benchmark accuracy. | author | JS | 2021 | subsumed |
| oas | OpenAPI specs for your Go server, generated at server runtime using reflection. | author | Go | 2021 | works |
| gr | Short for "Go Request-Response". Shortcuts for making HTTP requests and reading HTTP responses in Go. | author | Go | 2021 | actively used |
| ded | Experimental tool for deduplicating concurrent background operations in Go, with limited-time caching. | author | Go | 2021 | subsumed |
| gt | Short for "Go Types". Important data types missing from the Go standard library. | author | Go | 2021 | actively used |
| cc | Tiny Go tool for running multiple functions concurrently and collecting their results into an error slice. | author | Go | 2022 | subsumed |
| cmd | Missing feature of the Go standard library: ability to define subcommands while using | author | Go | 2021 | used all the time; should be subsumed into "gg" |
| sublime-scss | Redesigned CSS and SCSS syntaxes for Sublime Text. Built on open-ended principles. Designed for forward compatibility. | author | Sublime | 2021 | done, actively used |
| ProstoPoi SSG | Poi community website. Runs since 2014. Now converted from Django (Python) to static generation (JS), open sourced. | implementer | JS | 2021 | |
| gax | Simple system for writing HTML as Go code. Use normal Go conditionals, loops and functions. Benefit from typing and code analysis. Better performance than templating. | author | Go | 2021 | done, actively used |
| imperouter | Simple imperative router for hybrid SSR+SPA. | author | JS | 2021 | subsumed |
| jol | JS Collection Classes. Tiny extensions on JS built-in classes, with nice features such as easy-to-use typed collections, dictionary with structured keys, and more. | author | JS | 2021 | subsumed |
| web-starter | Starter templates for minimal web apps, from simplest to complex. Sucks less than X. Work in progress. | author | JS | 2021 | |
| afr | Flexible library for serving files, with optional client integration for CSS injection and page reload. | author | JS | 2021 | subsumed |
| espo | Observables via proxies. Particularly suited for UI programming. Supports automatic, implicit sub/resub and resource deinit. | author | JS | 2021 | subsumed |
| prax | Simple rendering library for hybrid SSR+SPA. Superior replacement for rendering frameworks like React. | author | JS | 2021 | subsumed |
| jtg | "JS Task Group". Simple JS-based replacement for Make, Gulp, etc. | author | JS | 2021 | worse than Make |
| try | Shorter error handling in Go. Supports two styles: explicit | author | Go | 2022 | subsumed |
| srv | Extremely simple Go tool that serves files out of a given folder, using a file resolution algorithm similar to Github Pages, Netlify, or the default Nginx config. | author | Go | 2021 | done |
| gtg | Go task group / task graph. Good for CLI task orchestration. Replaces Make and Mage. | author | Go | 2021 | worse than Make |
| gord | Simple ordered sets for Go. | author | Go | 2021 | done |
| goh | Go HTTP handlers. Utility types that represent a not-yet-sent HTTP response as a value (status, header, body) with NO added abstractions or interfaces. | author | Go | 2021 | done, actively used |
| frac | Missing feature of Go stdlib: integers ↔︎ fractional numeric strings, without rounding errors or bignums. Arbitrary fraction precision and radix. | author | Go | 2021 | done, actively used |
| rout | Imperative router for Go HTTP servers. Procedural control flow with declarative syntax. Doesn't need middleware. | author | Go | 2021 | done, actively used |
| sublime-sql | Sublime Text syntax definitions for SQL, rebuilt with better semantics. Currently only Postgres dialect. | author | Sublime | 2021 | done, actively used |
| sublime-lisp | Lisp support for Sublime Text. Supports multiple dialects. Immature work in progress. | author | Sublime | 2021 | |
| emptty | Clears the terminal, for real. | author | Go | 2021 | done |
| sublime-forth | Sublime Text syntax for the Forth programming language. | author | Sublime | 2021 | |
| sublime-rebol | Immature syntax for Rebol/Red in Sublime Text. | author | Sublime | 2020 | |
| jsonfmt | Flexible JSON formatter. Supports comments, single-line until width limit, fixes punctuation. Library and optional CLI. | author | Go | 2020 | done, actively used |
| jel | "JSON Expession Language". Expresses a whitelisted subset of SQL with simple JSON structures. | author | Go | 2020 | subsumed |
| sqlb | SQL query builder in Go. Highly flexible and efficient. | author | Go | 2020 | actively used |
| sqlp | Parser for rewriting foreign code embedded in SQL. | author | Go | 2020 | subsumed |
| gos | Tool for mapping between Go structs and plain SQL. Not an ORM. | author | Go | 2020 | subsumed |
| rd | Tool for decoding HTTP requests into Go structs. Transparently supports multiple formats: JSON, URL-encoded, multipart. | author | Go | 2020 | done, actively used |
| untext | Missing feature of the Go standard library: unmarshal arbitrary string into arbitrary value. | author | Go | 2020 | subsumed |
| rf | Important utilities missing from the | author | Go | 2020 | done, actively used |
| sublime-fmt | Sublime Text generic formatter plugin; formats arbitrary code by calling arbitrary executables, such as | author | Python | 2020 | done, actively used |
| Core Spirit | Current employer. Platform for practitioners of spiritual arts. Combines articles, services, and more. | tech lead | Postgres, Go, JS | 2020 | |
| eth | Client library for interacting with Ethereum from Go. Superior alternative to the "official" client libraries provided with | author | Go | 2018 | 2018 |
| gow | Missing watch mode for Go commands. Watch Go files and execute a command like | author | Go | 2018 | actively used by many |
| repr | Pretty-print Go data structures as valid Go code. | author | Go | 2018 | subsumed |
| sublime-goasm | Syntax definition for Go assembly for Sublime Text. | author | Sublime | 2018 | actively used |
| sublime-caser | Sublime Text plugin for converting typographic cases. | author | Sublime | 2018 | actively used |
| sublime-gox | [Merged into ST] Sublime Text syntax for Go. | author | Sublime | 2018 | officially adopted |
| sb | Minimal CSS foundation. | author | CSS | 2018 | used by this website |
| papyre | Build tool for static websites. Bring your own rendering engine. Works well with React and Netlify CMS. | author | JS | 2018 | 2018 |
| sublime-themes | Custom color schemes for Sublime Text. | author | Sublime | 2017 | continuously used and updated |
| wordplay | the PUNS 🔥 | colab | 🧠 | 2017 | we invented more puns than some humans know WORDS |
| epdf | Render any URL to PDF using Electron. | author | JS, Node | 2017 | 2017 |
| posterus | Asynchronous primitives. Superior replacement for JS promises. Synchronous by default. Supports true cancelation. Supports fibers. | author | JS | 2017 | useful but paused |
| Bolala | E-commerce platform. Had some interesting tech but didn't launch. Permanently down. | frontend | JS | 2017 | 2018 |
| clj-ws-client | WebSocket client (not server) written in pure Clojure with no dependencies. Less bad than most alternatives. | author | Clojure | 2017 | 2017 |
| clojure-datomic-starter | Quickstart/template for a Clojure/Ring webserver with Datomic. | author | Clojure | 2017 | 2017 |
| clojure-auth0-starter | Quickstart/template for a Clojure/Ring webserver with Auth0. | author | Clojure | 2017 | 2017 |
| clojure-forge | Development tool for Clojure. Especially useful for Ring servers. Watches files, reloads code, restarts system, displays system errors on a webpage. | author | Clojure | 2017 | 2018 |
| sublime-clojure | [Merged into ST] Sublime Text syntax for Clojure. | author | Sublime | 2017 | officially adopted |
| Shanzhai City | Various webapps and websites for Shanzhai City, a joint US-Chinese startup aiming at making charity effective. | tech lead | Go, JS, Clojure | 2017 | 2018 |
| Render.js | Experimental service for prerendering JS SPA into HTML. An order of magnitude faster than the alternatives. | member | JS, Node | 2016 | 2017 |
| fpx | Functional programming utils and type assertions for JS. | author | JS | 2016 | subsumed |
| emerge | Utils for using plain JS objects as immutable data structures with extremely memory-efficient updates. Heavily inspired by clojure.core. Much lighter and simpler than the popular alternatives. | author | JS | 2015 | done |
| chat | Realtime chat demo made with Firebase and React. | author | JS, Firebase, React | 2015 | |
| statil | Simple templating utility that uses JS for embedded scripting. Superseded by Prax. | author | JS | 2015 | replaced |
| alder | Experimental rendering library inspired by React and Reagent. Represents view components with plain functions and DOM with plain JavaScript data structures. Superseded by Prax. | author | JS | 2015 | replaced |
| ToBox | Stylish, visual platform for creating online shops. Part of the web frontend team. Permanently down. | member | JS, React | 2015 | 2016 |
| atril | Experimental rendering library inspired by React and Angular. Documented with flashy demos, but unused. Superseded by Prax. | author | TypeScript | 2015 | subsumed |
| GorodDeti | First version of a website about the kindergarten ran by a friend's friend. See https://goroddeti.ru for the current version (not mine). | implementer | JS, SCSS | 2015 | 2015 |
| simple-pjax | Drop-in JS library that dramatically speeds up page transitions on server-rendered websites. See the explanatory blog post. | author | JS | 2015 | done |
| xhttp | Shortcuts for the native JS fetch/Request/Response API. Provides a fluent builder-style API for request building and response reading. | author | JS | 2014 | subsumed |
| stylific | CSS library/framework. Similar to Bootstrap, built on different principles. Accompanied by stylific-lite, succeeded by sb. | author | SCSS | 2015 | simplified |
| codex | Generator of random synthetic words or names. | author | Go | 2015 | paused |
| ProstoPoi | Poi community website. We have our own video lessons, go check us out! | implementer | Python, Django, React; later: custom JS | 2014 | frozen |
| jisp | Lisp-style language that compiles to JavaScript. | author | JS, Jisp | 2014 | update upcoming |
- Tabularius (author; JS; 2025+; broken by game updates, still an awesome experiment)
Browser-based companion app and toolkit for Tower Dominion.
- dock_hotkeys (bot-prompter; Swift; 2025+; pretends to work, used all the time)
MacOS app for activating Dock apps by ordinal hotkeys.
- gg (author; Go; 2022+; used all the time)
Essential tools missing from the Go standard library.
- js (author; JS; 2022+; used all the time)
"JS standard library" that doesn't suck. Foundation for JS apps.
- ur (author; JS; 2022+; subsumed)
Superior URL and query implementation for JS. Similar to built-in URL but actually usable.
- test (author; JS; 2021+; subsumed)
Superior testing and benchmarking library for JS. Runs in all environments. High benchmark accuracy.
- oas (author; Go; 2021+; works)
OpenAPI specs for your Go server, generated at server runtime using reflection.
- gr (author; Go; 2021+; actively used)
Short for "Go Request-Response". Shortcuts for making HTTP requests and reading HTTP responses in Go.
- ded (author; Go; 2021+; subsumed)
Experimental tool for deduplicating concurrent background operations in Go, with limited-time caching.
- gt (author; Go; 2021+; actively used)
Short for "Go Types". Important data types missing from the Go standard library.
- cc (author; Go; 2022+; subsumed)
Tiny Go tool for running multiple functions concurrently and collecting their results into an error slice.
- cmd (author; Go; 2021+; used all the time; should be subsumed into "gg")
Missing feature of the Go standard library: ability to define subcommands while using
flag. - sublime-scss (author; Sublime; 2021+; done, actively used)
Redesigned CSS and SCSS syntaxes for Sublime Text. Built on open-ended principles. Designed for forward compatibility.
- ProstoPoi SSG (implementer; JS; 2021+)
Poi community website. Runs since 2014. Now converted from Django (Python) to static generation (JS), open sourced.
- gax (author; Go; 2021+; done, actively used)
Simple system for writing HTML as Go code. Use normal Go conditionals, loops and functions. Benefit from typing and code analysis. Better performance than templating.
- imperouter (author; JS; 2021+; subsumed)
Simple imperative router for hybrid SSR+SPA.
- jol (author; JS; 2021+; subsumed)
JS Collection Classes. Tiny extensions on JS built-in classes, with nice features such as easy-to-use typed collections, dictionary with structured keys, and more.
- web-starter (author; JS; 2021+)
Starter templates for minimal web apps, from simplest to complex. Sucks less than X. Work in progress.
- afr (author; JS; 2021+; subsumed)
Flexible library for serving files, with optional client integration for CSS injection and page reload.
- espo (author; JS; 2021+; subsumed)
Observables via proxies. Particularly suited for UI programming. Supports automatic, implicit sub/resub and resource deinit.
- prax (author; JS; 2021+; subsumed)
Simple rendering library for hybrid SSR+SPA. Superior replacement for rendering frameworks like React.
- jtg (author; JS; 2021+; worse than Make)
"JS Task Group". Simple JS-based replacement for Make, Gulp, etc.
- try (author; Go; 2022+; subsumed)
Shorter error handling in Go. Supports two styles: explicit
tryand exceptions. - srv (author; Go; 2021+; done)
Extremely simple Go tool that serves files out of a given folder, using a file resolution algorithm similar to Github Pages, Netlify, or the default Nginx config.
- gtg (author; Go; 2021+; worse than Make)
Go task group / task graph. Good for CLI task orchestration. Replaces Make and Mage.
- gord (author; Go; 2021+; done)
Simple ordered sets for Go.
- goh (author; Go; 2021+; done, actively used)
Go HTTP handlers. Utility types that represent a not-yet-sent HTTP response as a value (status, header, body) with NO added abstractions or interfaces.
- frac (author; Go; 2021+; done, actively used)
Missing feature of Go stdlib: integers ↔︎ fractional numeric strings, without rounding errors or bignums. Arbitrary fraction precision and radix.
- rout (author; Go; 2021+; done, actively used)
Imperative router for Go HTTP servers. Procedural control flow with declarative syntax. Doesn't need middleware.
- sublime-sql (author; Sublime; 2021+; done, actively used)
Sublime Text syntax definitions for SQL, rebuilt with better semantics. Currently only Postgres dialect.
- sublime-lisp (author; Sublime; 2021+)
Lisp support for Sublime Text. Supports multiple dialects. Immature work in progress.
- emptty (author; Go; 2021+; done)
Clears the terminal, for real.
- sublime-forth (author; Sublime; 2021+)
Sublime Text syntax for the Forth programming language.
- sublime-rebol (author; Sublime; 2020+)
Immature syntax for Rebol/Red in Sublime Text.
- jsonfmt (author; Go; 2020+; done, actively used)
Flexible JSON formatter. Supports comments, single-line until width limit, fixes punctuation. Library and optional CLI.
- jel (author; Go; 2020+; subsumed)
"JSON Expession Language". Expresses a whitelisted subset of SQL with simple JSON structures.
- sqlb (author; Go; 2020+; actively used)
SQL query builder in Go. Highly flexible and efficient.
- sqlp (author; Go; 2020+; subsumed)
Parser for rewriting foreign code embedded in SQL.
- gos (author; Go; 2020+; subsumed)
Tool for mapping between Go structs and plain SQL. Not an ORM.
- rd (author; Go; 2020+; done, actively used)
Tool for decoding HTTP requests into Go structs. Transparently supports multiple formats: JSON, URL-encoded, multipart.
- untext (author; Go; 2020+; subsumed)
Missing feature of the Go standard library: unmarshal arbitrary string into arbitrary value.
- rf (author; Go; 2020+; done, actively used)
Important utilities missing from the
reflectpackage in the Go standard library. - sublime-fmt (author; Python; 2020+; done, actively used)
Sublime Text generic formatter plugin; formats arbitrary code by calling arbitrary executables, such as
gofmt. - Core Spirit (tech lead; Postgres, Go, JS; 2020+)
Current employer. Platform for practitioners of spiritual arts. Combines articles, services, and more.
- eth (author; Go; 2018—2018)
Client library for interacting with Ethereum from Go. Superior alternative to the "official" client libraries provided with
go-ethereum. - gow (author; Go; 2018+; actively used by many)
Missing watch mode for Go commands. Watch Go files and execute a command like
go runorgo test. - repr (author; Go; 2018+; subsumed)
Pretty-print Go data structures as valid Go code.
- sublime-goasm (author; Sublime; 2018+; actively used)
Syntax definition for Go assembly for Sublime Text.
- sublime-caser (author; Sublime; 2018+; actively used)
Sublime Text plugin for converting typographic cases.
- sublime-gox (author; Sublime; 2018+; officially adopted)
[Merged into ST] Sublime Text syntax for Go.
- sb (author; CSS; 2018+; used by this website)
Minimal CSS foundation.
- papyre (author; JS; 2018—2018)
Build tool for static websites. Bring your own rendering engine. Works well with React and Netlify CMS.
- sublime-themes (author; Sublime; 2017+; continuously used and updated)
Custom color schemes for Sublime Text.
- wordplay (colab; 🧠; 2017+; we invented more puns than some humans know WORDS)
the PUNS 🔥
- epdf (author; JS, Node; 2017—2017)
Render any URL to PDF using Electron.
- posterus (author; JS; 2017+; useful but paused)
Asynchronous primitives. Superior replacement for JS promises. Synchronous by default. Supports true cancelation. Supports fibers.
- Bolala (frontend; JS; 2017—2018)
E-commerce platform. Had some interesting tech but didn't launch. Permanently down.
- clj-ws-client (author; Clojure; 2017—2017)
WebSocket client (not server) written in pure Clojure with no dependencies. Less bad than most alternatives.
- clojure-datomic-starter (author; Clojure; 2017—2017)
Quickstart/template for a Clojure/Ring webserver with Datomic.
- clojure-auth0-starter (author; Clojure; 2017—2017)
Quickstart/template for a Clojure/Ring webserver with Auth0.
- clojure-forge (author; Clojure; 2017—2018)
Development tool for Clojure. Especially useful for Ring servers. Watches files, reloads code, restarts system, displays system errors on a webpage.
- sublime-clojure (author; Sublime; 2017+; officially adopted)
[Merged into ST] Sublime Text syntax for Clojure.
- Shanzhai City (tech lead; Go, JS, Clojure; 2017—2018)
Various webapps and websites for Shanzhai City, a joint US-Chinese startup aiming at making charity effective.
- Render.js (member; JS, Node; 2016—2017)
Experimental service for prerendering JS SPA into HTML. An order of magnitude faster than the alternatives.
- fpx (author; JS; 2016+; subsumed)
Functional programming utils and type assertions for JS.
- emerge (author; JS; 2015+; done)
Utils for using plain JS objects as immutable data structures with extremely memory-efficient updates. Heavily inspired by clojure.core. Much lighter and simpler than the popular alternatives.
- chat (author; JS, Firebase, React; 2015+)
Realtime chat demo made with Firebase and React.
- statil (author; JS; 2015—2021; replaced)
Simple templating utility that uses JS for embedded scripting. Superseded by Prax.
- alder (author; JS; 2015—2015; replaced)
Experimental rendering library inspired by React and Reagent. Represents view components with plain functions and DOM with plain JavaScript data structures. Superseded by Prax.
- ToBox (member; JS, React; 2015—2016)
Stylish, visual platform for creating online shops. Part of the web frontend team. Permanently down.
- atril (author; TypeScript; 2015—2015; subsumed)
Experimental rendering library inspired by React and Angular. Documented with flashy demos, but unused. Superseded by Prax.
- GorodDeti (implementer; JS, SCSS; 2015—2015)
First version of a website about the kindergarten ran by a friend's friend. See https://goroddeti.ru for the current version (not mine).
- simple-pjax (author; JS; 2015+; done)
Drop-in JS library that dramatically speeds up page transitions on server-rendered websites. See the explanatory blog post.
- xhttp (author; JS; 2014+; subsumed)
Shortcuts for the native JS fetch/Request/Response API. Provides a fluent builder-style API for request building and response reading.
- stylific (author; SCSS; 2015+; simplified)
CSS library/framework. Similar to Bootstrap, built on different principles. Accompanied by stylific-lite, succeeded by sb.
- codex (author; Go; 2015+; paused)
Generator of random synthetic words or names.
- ProstoPoi (implementer; Python, Django, React; later: custom JS; 2014+; frozen)
Poi community website. We have our own video lessons, go check us out!
- jisp (author; JS, Jisp; 2014+; update upcoming)
Lisp-style language that compiles to JavaScript.