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
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.
Cockpit
Tasks & notes panel for Joplin
Joplin plugin registry · 2026
A Joplin panel that replaces the notes and notebooks sidebars, gathering every to-do, note, and inline checkbox into one view grouped by due date — the plan and the archive at once. Runs on desktop and Android, with interval, date-list, month-calendar, and week-planner views.
- Saved view profiles bundle the view, filters, search, and what counts as done — switch profiles to switch the whole panel.
- Reschedule by dragging a to-do onto a day or a group, or set an exact date and time in the alarm picker.
- Full Joplin search with autocomplete for tag:, notebook:, and title:, plus notebook filters, themes, and a progress ring on every row.
Open source under MIT, forked from the Agenda plugin. Published on npm as joplin-plugin-cockpit.
Ridgeline
Note minimap for Joplin
Joplin plugin registry · 2026
A Joplin plugin that lines the editor's edge with a compact stack of thin bars — a minimap of the note, one bar per heading, its length set by the heading level. It turns a long note into a shape you can read at a glance and navigate without scrolling.
- Bar length encodes the heading level and the current section stays highlighted, so you always see where you are in the note.
- Rest the mouse on the strip to expand a full table of contents; click any heading to jump straight to it.
- Works in both the Markdown editor and the rendered viewer, across multiple windows, as a floating overlay or a reserved margin.
Free and open source under MIT. Published on npm as joplin-plugin-ridgeline.
Harper
Grammar & spell checker for Joplin
Joplin plugin registry · 2026
A Joplin plugin that checks grammar and spelling in the Markdown editor as you type, powered by Automattic's Harper engine — each finding gets a coloured underline by kind, and clicking one opens a card with the problem and one-click fixes. The whole checker is a WebAssembly engine bundled in the plugin, so it runs entirely offline and your notes never leave your machine.
- Colour-coded underlines, one colour per issue type — Harper sorts findings into 21 lint kinds (spelling, grammar, punctuation, word choice, repetition, and more), in both light and dark themes.
- Click an underline for a card with the issue, an explanation, and one-click fixes — plus add-to-dictionary, dismiss a single finding, or disable a rule everywhere.
- Check against American, British, Australian, or Canadian English, and point Harper at your own plain-text dictionary to sync a word list between machines.
Open source under MIT, powered by Automattic's Harper (Apache-2.0). Desktop and Android, about 21 MB with the bundled engine. Published on npm as joplin-plugin-harper.
Whereabouts
Notebook location chip for Joplin
Joplin plugin registry · 2026
A Joplin plugin that keeps a small notebook chip next to the note title on every note, in every view — the notebook name or the full path. Joplin shows that only in search, tag and All-notes views; this shows it always, and makes it clickable.
- Four placements: its own row below the title, that row with the title-row icons moved down, inline right of the title, or first item of the editor toolbar.
- Left click selects the notebook in the sidebar and keeps the note open, double click reveals the note in the note list, right click opens the move-to-notebook picker.
- Optional notebook icon, configurable path separator, and an option to hide Joplin's own "In: Notebook" pill so nothing shows twice.
Desktop only, Markdown editor, Joplin 3.7 or newer. Free and open source under MIT. Published on npm as joplin-plugin-whereabouts.
Cupboard
Personal music tool
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.