Anton Veretennikov
Anton Veretennikov
my photo

Hey, I'm Anton Veretennikov.

Code is just the start. Shipping reliable, maintainable products is the goal.
Rust
Bun
npm

Panex

Terminal UI for running multiple processes in parallel. Like Turborepo's TUI without the monorepo, or a zero-config tmux alternative.
  • Split-pane view with full PTY support (QR codes, colors, interactive prompts)
  • Mouse forwarding, visual select with copy, scroll pinning, nestable
  • Run via bunx panex or npx panex
Panex
TypeScript/JavaScript
npm
Node.js
Bun

Synset

Query WordNet semantic dictionary for definitions, synonyms, and hypernyms. CLI + TypeScript library.
  • Fetches and caches WordNet database automatically
  • Both CLI and programmatic API
  • Zod-validated schema parsing
  • Export to SQLite database
import { getDefinitions, getSynonyms } from "synset";
const defs = await getDefinitions("happy");
const syns = await getSynonyms("happy");
Next.js
React
TypeScript/JavaScript
Node.js

OSHA 30 Helper

Interactive study tool for OSHA 30 certification with quiz-based approach and 1,500 searchable questions.
  • Full-text search across all questions
  • Quiz mode with instant feedback
  • Mobile-friendly interface
OSHA 30 Helper
Next.js
React
TypeScript/JavaScript
PixiJS
Node.js

Parcheesi

Local multiplayer board game for shared-screen play with PixiJS rendering and player-oriented UI.
  • Smooth 60fps PixiJS animations
  • Designed for shared tablet play
  • Touch and mouse support
Parcheesi
TypeScript/JavaScript
npm
Node.js
Bun

Precise Colors

High-precision color space conversions for TypeScript/JavaScript. Supports 12 color models with CIE 15.3 compliance.
  • 12 color models (RGB, Lab, LCH, etc.)
  • CIE 15.3 standard compliance
  • Tree-shakeable ESM exports
import { rgb2lab, lab2lch, lch2css } from "precise-colors";

const lab = rgb2lab({ r: 100, g: 150, b: 255 });
const lch = lab2lch(lab);
console.log(lch2css(lch)); // "lch(62.55% 62.44 279.76)"
TypeScript/JavaScript
npm
ESLint
Node.js

eslint-plugin-no-in-array

Type-aware eslint rule that detects misuse of the in operator with arrays in TypeScript.
  • Catches common JS gotcha
  • Type-aware analysis
  • Auto-fix suggestions
// The 'in' operator checks keys, not values!
"a" in ["a", "b", "c"]; // false! indices are "0", "1", "2"
// Use .includes() instead
Bun
Swift
TypeScript/JavaScript
Node.js

Favicon Fella

CLI tool that generates all favicon and app icon variants from a single PNG image.
  • Generates favicon.ico, Apple Touch Icon, Android Chrome icons
  • Smart background color detection
  • Outputs site.webmanifest for PWAs
# Output for each source image:
favicon-16x16.png, favicon-32x32.png, favicon-48x48.png
favicon.ico (16/32/48 bundled)
apple-touch-icon.png (180x180)
android-chrome-192x192.png, android-chrome-512x512.png
site.webmanifest
TypeScript/JavaScript
npm
Node.js

Termi-link

Drop-in replacement for terminal-link providing clickable hyperlinks in supported terminals.
  • Cross-platform (macOS, Linux, Windows)
  • Drop-in terminal-link replacement
  • Graceful fallback for unsupported terminals
import termiLink from "termi-link";
console.log(termiLink("Click me", "https://example.com"));
C#
Windows

DisplayedAppSwitcher

Windows system tray utility for multi-monitor workflows using Win32 API keyboard shortcuts.
  • Global hotkeys for window management
  • Multi-monitor aware
  • Lightweight system tray app
TypeScript/JavaScript

P.F. Engineering

Full-stack SSR e-commerce site with searchable image galleries, Markdown content, and PayPal integration.
  • Server-side rendering for SEO
  • PayPal checkout integration
  • Markdown-driven content
P.F. Engineering
Cloudflare Workers
TypeScript/JavaScript

QR Code Worker

Cloudflare Worker generating QR codes with optimized API for resource-constrained IoT devices.
  • Optimized for low-memory IoT
  • 3x3 module grid packing
  • Edge-deployed globally
// 3x3 module grids packed into 9-bit integers
// Reduces CPU and memory overhead on low-end hardware
+-----+-----+     +-----+-----+
|0 0 0|1 1 0| ->  |  24 | 235 |
|1 1 0|1 0 1|     |     |     |
+-----+-----+     +-----+-----+

Caddy Config Injection

gRPC-based dynamic configuration server for Caddy enabling runtime route registration.
  • Runtime route injection
  • gRPC protocol
  • No Caddy restart required
fn := lib.Fn(*addr, &pb.Route{
  Id: "example.com",
  Matches: []*pb.Match{{
    Hosts: []string{"example.com"},
  }},
})
C#
Visual Studio

Kanagawa Theme

Visual Studio color theme inspired by Hokusai's Great Wave off Kanagawa for comfortable coding sessions.
  • Low-contrast, eye-friendly palette
  • Inspired by Japanese ukiyo-e art
  • Full syntax highlighting coverage
Kanagawa Theme

Go run SASS

CLI wrapper for go-libsass eliminating recompilation overhead for build pipelines.
  • Pre-built binary, no compilation
  • Faster than node-sass
  • Cross-platform CLI

JSON Walk

Recursive JSON traversal library for Go with path-based callbacks for flexible data extraction.
  • Path-based matching
  • Type-aware callbacks
  • Zero allocations on hot path
jsonwalk.Walk(&v, jsonwalk.Callback(func(path jsonwalk.WalkPath, ...) {
  if path.Path() == "[0].Config.Env" && tp == jsonwalk.Array {
    // extract data
  }
}))

Fresh

Live-reload development tool for Go that automatically rebuilds and restarts applications on source code changes.
  • Watches file changes recursively
  • Configurable via YAML
  • Graceful process restart
$ fresh -help
Usage of fresh:
  -c string  config file path (default "./.fresh.yaml")
  -generate  generate sample settings file

Voronoi Diagrams

Fortune's algorithm implementation for computing Voronoi diagrams in Go with O(n log n) complexity.
  • O(n log n) time complexity
  • Bounding box support
  • Returns edges and vertices
sites := []voronoi.Vertex{{4, 5}, {6, 5}}
bbox := NewBBox(0, 0, 20, 10)
diagram := NewVoronoi().Compute(sites, bbox, true)

Interval

Numeric range normalization library with wrap and clamp operations—ideal for polar coordinates and cyclic values.
  • wrap for cyclic values (angles, hue)
  • clamp for bounded ranges
  • Integer and float variants
interval.WrapInt(0, 360, 400)  // => 40
interval.WrapInt(0, 360, -90)  // => 270
interval.ClampInt(0, 100, 500) // => 100

dos2unix

CLI utility for converting Windows line endings to Unix format.
  • Skips non-text files automatically
  • Recursive directory processing
  • In-place conversion

Terminal

Cross-platform terminal control library for Go with cursor positioning, colors, and alternative buffer.
  • Cursor and color control
  • Alternative screen buffer
  • Windows and Unix support

Ifchanged

File change detection library for Go using SHA256 hashing for build automation.
  • SHA256-based change detection
  • Persistent hash storage
  • Ideal for build scripts
Dart

Tree Structures

Dart red-black self-balancing BST with O(log n) operations and Graphviz visualization support.
  • Self-balancing red-black tree
  • O(log n) insert/delete/search
  • Graphviz DOT output

Gamut Mask

Color theory tool implementing gamut masking techniques for harmonious palette generation.
  • Interactive gamut mask editor
  • Real-time palette preview
  • Export color schemes
Gamut Mask
av
Anton VeretennikovPersonal Landing Page