12 projects

Backends

Services with an API, a database and tests. All Go for now; the language filter grows with the first project in another one.

  • 386 tests
  • 227 routes
  • 24,370 lines of Go

Backends: Projects

Amber: kanban board

A multi-user kanban board: sign-up, boards, columns, drag-and-drop cards. Go + SQLite without CGO, the front end is embedded in the binary.

APIGo
tests
7
routes
18

Short: link shortener

Link shortening with aliases and expiry, click statistics by day, browser and device, a token-protected dashboard. IP addresses are not stored.

APIGo
tests
12
routes
11

Appointment booking

Online booking: free slots computed from service duration and working hours, double-booking protection, an admin panel. A fictional studio, demo.

APIGo
tests
12
routes
18

Pulse: uptime monitor

An uptime monitor: scheduled HTTP and TCP checks, uptime, p50/p95, an incident detector, a live SSE dashboard and a public status page. Go + SQLite without CGO.

infrastructureGo
tests
18
routes
15

Conveyor: job queue

A background job queue: priorities, delayed and cron jobs, retries with backoff and jitter, dead-letter, idempotency keys, leases with fencing, Prometheus metrics.

infrastructureGo
tests
25
routes
19

Rooms: realtime chat and board

Realtime rooms: chat with SQLite history, an online list, a typing indicator, a shared board with strokes and cursors, anonymous nicknames. WebSocket (RFC 6455) written on the stdlib.

realtimeGo
tests
48
routes
7

Sluice: API gateway

An API gateway on the pure stdlib: host/prefix routes from a JSON config with hot reload that keeps connections alive, round-robin and least-conn balancing, health checks, a per-node circuit breaker, retries of idempotent requests, rate limiting, hashed API keys, Prometheus metrics and a live SSE dashboard.

infrastructureGo
tests
48
routes
11

Card Index: notes with search

A Markdown notes base on Go and SQLite: [[wiki]] links with backlinks and a link graph, FTS5 full-text search (bm25, highlighting, simplified Russian morphology), version history with its own diff, autosave with conflict resolution, .md export and import.

dataGo
tests
32
routes
19

Raft KV: a key-value store on Raft

A from-scratch teaching implementation of Raft on the pure stdlib: leader election, log replication, quorum commit, a log and term/vote on disk with fsync, snapshots with compaction, linearizable reads (read-index) and follower-to-leader redirects. It is tested with a deterministic network and time simulator that checks linearizability; the dashboard can kill the leader and cut the network (demo).

dataGo
tests
27
routes
13

Keyring: an authentication service

An authentication and authorization service in Go: EdDSA JWTs with key rotation and JWKS, refresh tokens with rotation and theft detection, TOTP 2FA (RFC 6238) with backup codes, RBAC, lockout on brute force, password reset by a one-time token, an audit log, a device list, openapi.yaml. Not independently audited, not a production IdP.

authGo
tests
50
routes
35

Ledger: personal finance tracker

Personal finance tracking: accounts in different currencies with manual exchange rates, income, expenses and transfers, budgets, payments on a cron-like schedule, CSV import with a preview, reports. Money is stored only in integer minor units, users' data is isolated, and the charts are drawn in SVG with no library. Go + SQLite with a Nuxt 4 front end.

APIGo
tests
30
routes
45

Pixel Wall: a shared canvas

A shared 256x256 canvas in the spirit of r/place: 16 colors, a cooldown per session and IP, an own WebSocket layer on the stdlib (RFC 6455) with a binary protocol (4 bits per pixel), a snapshot plus deltas, a snapshot with a journal and recovery, a timelapse, zoom and pan, a minimap, PNG export and admin tools. A side project.

realtimeGo
tests
77
routes
16