Costa Fotiadis

Projects

JET day job

❯ glow jet.md

Just Eat Takeaway.com#

Mid 2010s I thought it would be nice if I got some steady employment so I could reliably pay my rent.

The app(s) go by many names these days – Just Eat, Lieferando, Thuisbezorgd and a bunch of others.

The last published figure was 79 million active consumers, at the end of 2024.

The trick in writing a nice android app is making it extensible for:

  • migrations
  • buyouts
  • mergers
  • new markets
  • abandoned markets (!)
  • …and all sorts of corporate takeovers

The JET android app mono-repo has been through quite a few of those throughout the years. 🫡

Omarchy plugins

Android Dev

A companion plugin for the typical stuff an Android developer does on the day-to-day. Devices, packages, developer toggles, screenshots and recording, APKs, the emulator, scrcpy with a strip of the phone's keys beside it, and wireless debugging by QR code. The Omarchy port of my ADB Extension, except it escalated.

Inappropriate Clippy

Clippy as-a-plugin, on the Omarchy bar. He walks, parks between your widgets and mouths off every few minutes. You can slap him, drag him around, or fling him off the end of the bar. He gets a last word in.

Markets

Stocks, crypto and currencies in the Omarchy bar. A ticker strip with your money-losing favourites, and a keyboard-driven panel with search, watchlist, portfolio and charts. A much funnier port of my Command Palette extension, since there were no Microsoft Store constraints to fight this time.

Yeet

Share to Telegram and Viber from the bar, from Brave and from Files. Clipboard, files, and videos that yt-dlp grabs from a copied link. Replaces the download, open folder, find window, drag-drop dance.

Autoduck

Mutes the music tab when another browser tab starts playing audio, and unmutes it a couple of seconds after that stops. Browser audio only. Music is muted, not paused, so the track keeps advancing silently.

bb plugins

Windows Command Palette

Markets Extension

Stock, crypto and currency data on the Command Palette dock. Bring your own API key (Twelve Data or Finnhub). Watchlist, favourites, a portfolio with cost basis, and a news ticker.

Agents Panel

Shows how much of your Claude Code, Codex and Copilot quota you have burned, on the Command Palette dock. Polls the same endpoints the apps use. Will it steal your tokens? Hah!

DogeClock

A floating desktop clock in Kotlin Multiplatform and Compose Desktop. A rewrite of a perfectly functional 100-line PowerShell script, because it had to be done.

Android apps

Deckard

An AI-slop detector for Android. A floating Deckard reads the text on the current screen, through the accessibility tree or on-device OCR, and a local Gemma decides whether it is slop. Compose UI in a system overlay.

Web sites & plumbing

Things

Links, ideas, notes, photos and videos I send myself. I type /things <url> <comment> into a Claude Code session on the phone, the agent fetches the title, tags it, commits, and Railway rebuilds.

Lab

Small web experiments. Some of them are strangely addictive.

❯ journalctl --user -u clippy -o cat graveyard: 2,471 slaps and 195 killsclippy.service: Main process exited, code=killed, status=SIGSLAPclippy.service: Failed with result 'signal'.clippy.service: Scheduled restart job, restart counter is at 195.Started clippy.service - Inappropriate Clippy. ❯

The Graveyard

The global leaderboard for the best Clippy slappers out there.

❯ stats --since 7d ADB Extension 6,306 +322Markets Extension 1,051 +76Agents Panel 110 +22Visualizer 167 +34──────────────────────────────total 7,634 +454 this week ❯

Extension stats

One dashboard for install numbers across the four extensions. GitHub Actions records Store and release downloads daily onto an orphan branch, and the page reads the CSVs straight from GitHub.

Hit counter

A retro visitor counter rendered as an SVG, backed by Umami. Six styles, odometer, LED, LCD, strip, nixie, flip. Scroll down and find out

❯ gh repo view CostaFot/claps-api

Claps 🍺

The beer button under every post. A Flask app on Railway with Postgres, a Telegram ping per clap, and a weekly cron that commits the counts to a repo as JSON so nothing gets lost.

❯ gh repo view CostaFot/flagstone

Flagstone 🚩

A primitive feature management tool. I use it for my own personal projects in order to turn stuff on/off without worrying about distribution on Microsoft Store/Google Play etc. It is a simple ktor app on Railway. In the end, it's all just a json file, eh? 😊