14 projects

Backends

Services with an API, a database and tests: mostly Go, with some in Python and TypeScript. A language filter sits inside the section.

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

Backends: Projects

Screenshot of the project "Amber: kanban board" at 1280 pixels wide

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
Screenshot of the project "Short: link shortener" at 1280 pixels wide

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
Screenshot of the project "Appointment booking" at 1280 pixels wide

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
Screenshot of the project "Pulse: uptime monitor" at 1280 pixels wide

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
Screenshot of the project "Conveyor: job queue" at 1280 pixels wide

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
Screenshot of the project "Rooms: realtime chat and board" at 1280 pixels wide

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
Screenshot of the project "Sluice: API gateway" at 1280 pixels wide

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
Screenshot of the project "Card Index: notes with search" at 1280 pixels wide

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
Screenshot of the project "Raft KV: a key-value store on Raft" at 1280 pixels wide

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
Screenshot of the project "Keyring: an authentication service" at 1280 pixels wide

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
Screenshot of the project "Ledger: personal finance tracker" at 1280 pixels wide

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
Screenshot of the project "Pixel Wall: a shared canvas" at 1280 pixels wide

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
Screenshot of the project "catalog-api: a catalog API with search" at 1280 pixels wide

catalog-api: a catalog API with search

A product catalog API on Python 3.12 and FastAPI: SQLite with FTS5 full-text search (bm25 ranking), facets by category, price, availability, tags and attributes, cursor pagination, ETag, CSV import and export, price history, API keys with roles and an audit log. The storefront and the admin panel are served by the app itself, with no framework. A side project.

Python
Screenshot of the project "Konvert: notes encrypted in the browser" at 1280 pixels wide

Konvert: notes encrypted in the browser

A one-time note service on TypeScript, Cloudflare Workers and D1: the text is encrypted in the browser (AES-256-GCM), the key lives only in the URL fragment and never reaches the server. A note has a lifetime, an optional password and burns after the first read. A side project.

TypeScript
Live site