Anton Veretennikov
Anton Veretennikov
my photo

Hey, I'm Anton Veretennikov.

Software Engineer |Building software like it's art

Rust

Panex

Zero-config TUI to run regular or interactive TUI apps in a single terminal.
  • Full PTY support for colors and interactive prompts
  • Split-pane view for multiple processes
  • 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