Skip to content
Project index · 03 Public source 2026

Three projects.
Three very different itches.

Setlist and Fennevia are my two main projects: a public music-search service and a modular four-edge shell for stock Firefox. Dial Canvas is the smaller Firefox-first experiment alongside them. All three are public and still evolving.

Setlist search interface showing VTuber karaoke song results
Search · Music data · Self-hosted Live service

Setlist

Setlist is a self-hosted search index for VTuber karaoke. It finds public YouTube archives, extracts timestamped song lists from comments, and links each result to the start of the performance.

  • Fast song search with channel, content type, and date filters
  • Timestamp-aware YouTube links to each performance
  • English, Traditional Chinese, and Japanese interface

Architecture

Setlist crosses the whole stack: search UI, ingestion workers, a relational data model, and a deployment I operate on my own infrastructure.

Frontend

  • React 19
  • TypeScript
  • TanStack
  • Vite

Backend

  • FastAPI
  • Python
  • SQLAlchemy
  • yt-dlp

Data

  • PostgreSQL 18
  • Flyway
  • LLM cleanup

Delivery

  • Docker
  • Nginx
  • GitHub Actions
  • GHCR
Fennevia Browse Your Way brand artwork showing a modular four-edge browser shell and widget placement guides
Firefox shell · Modular UI · Windows Public prerelease

Fennevia

Fennevia is an experimental, content-first interface for stock Firefox. It turns browser chrome into a modular four-edge workspace where nearly every visible control can be moved, nested, or reoriented. A narrow, validated bridge leaves security-sensitive flows with Firefox and can fall back to the retained native interface. The Windows prerelease tracks current Firefox Release builds and is intended for a dedicated profile.

  • Drag nearly every visible control between four edge panels and compose nested Row and Column layouts
  • Tabs, bookmarks, downloads, and the address launcher adapt to horizontal or vertical placement
  • A validated bridge keeps security-sensitive flows in Firefox and fails open to the retained native interface
Stylized Dial Canvas new-tab layout with movable dials and widgets
Browser extension · Firefox-first Available on Firefox

Dial Canvas

A free-form speed-dial canvas for the new tab page. Dials and widgets can be moved, resized, and arranged without a rigid grid. Data stays local unless optional Firefox Sync is turned on.

  • Free-form dials can be moved, resized, grouped across pages, and arranged without a fixed grid
  • Clock, weather, notes, tasks, calendar, holidays, and wallpaper information widgets
  • Local by default, with optional Firefox Sync when you choose to turn it on
  • Svelte 5
  • WXT
  • TypeScript
  • Firefox

The common thread

I build the part people touch and the part that has to survive.

The shape changes from project to project, but the test is the same: the interface should feel clear, the system should be recoverable, and the maintenance should still make sense six months later.

Meet the person