Studio

Apps and small products I build on my own — the joy side of being a product builder.

Tennis Cosmos

Court booking app

teniskosmos.com · 2026

Tennis Cosmos booking page on a phone, with a day selected and available time slots listed.

Online booking and training-request app for a five-court tennis academy in Novi Sad. Clients reserve courts with email-verified confirmation; coaches get a callback queue for training enquiries.

  • Court booking with email-verified confirmation that writes the event to the academy's Google Calendar.
  • Training-request flow that creates a Google Task for the coach with skill level, equipment, and availability captured up front.
  • Trilingual (Serbian / English / Russian) with dark + light themes.

Vanilla JS frontend, Google Apps Script backend, GitHub Pages — zero recurring cost.

Cupboard

Personal music tool

Cupboard app on a phone: 5×12 listen heatmap with one cell selected, showing The Well-Tempered Clavier album.

A private tool to choose what to listen to from a physical CD collection. Maps the collection to a real 5×12 cupboard at home: weighted-random picker, listen log with 1–10 marks and style tags, MusicBrainz lookup, and a heatmap of what's been played by cell.

  • Weighted-random picker — recently-listened albums are deprioritised, the long tail keeps surfacing.
  • Per-disc listen log with 1–10 marks, genre / style tags, and MusicBrainz metadata lookup.
  • 5×12 cupboard heatmap with All / Cycle / Year / Month / Week views — see which corners of the collection have gone quiet.

Python + FastAPI backend, vanilla-JS PWA frontend, JSON-file storage. Self-hosted behind basic auth.