Arbitrary Highlights
- My works on Github.
- Astrotips: video guides on Astroneer.
- ProstoPoi: poi community website (in Russian). We have our own video lessons, go check us out!
Sadly, all the commercial projects I've worked on are either private, or have been taken down.
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 | slightly broken by game updates, still awesome |
| dock_hotkeys | MacOS app for activating Dock apps by ordinal hotkeys. | bot-prompter | Swift | 2025 | heavily in use |
| gg | Essential tools missing from the Go standard library. | author | Go | 2022 | heavily in use |
| js | "JS standard library" that doesn't suck. Foundation for JS apps. | author | JS | 2022 | heavily in use |
| 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 | Platform for connecting coaches with customers. Articles, services, live calls, books, videos, courses, messaging, advertizing, analytics, and more. Didn't get off the ground due to poor marketing. | tech lead | Postgres, Go, JS | 2020 | taken down |
| 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-asm | Near-universal assembly syntax definition for Sublime Text. Supports Go assembly too. | 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+; slightly broken by game updates, still awesome)
Browser-based companion app and toolkit for Tower Dominion.
- dock_hotkeys (bot-prompter; Swift; 2025+; heavily in use)
MacOS app for activating Dock apps by ordinal hotkeys.
- gg (author; Go; 2022+; heavily in use)
Essential tools missing from the Go standard library.
- js (author; JS; 2022+; heavily in use)
"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—2025; taken down)
Platform for connecting coaches with customers. Articles, services, live calls, books, videos, courses, messaging, advertizing, analytics, and more. Didn't get off the ground due to poor marketing.
- 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-asm (author; Sublime; 2018+; actively used)
Near-universal assembly syntax definition for Sublime Text. Supports Go assembly too.
- 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.