andrsschultz/mike

Full local stack: filesystem storage, local LLM, local Supabase, vendored assets

Six topics, all infrastructure-removal work. R2 replaced by local filesystem storage. Local LLM provider wired in place of Claude/Gemini. Supabase configured for local operation. PDF.js standard fonts and other frontend assets vendored locally to remove CDN dependencies. Cloudflare deployment config and unused lockfile artifacts pruned. No product feature changes.

View on GitHub →

andrsschultz/mike is a self-hosting-focused fork that strips every cloud dependency from the default Mike stack. Cloudflare R2 is replaced with a local filesystem path (LOCAL_STORAGE_DIR), Supabase is configured to run locally, Claude/Gemini are swapped for a local LLM provider, and frontend assets that previously loaded from unpkg and Google Fonts CDNs are vendored into the repo. Cloudflare deployment tooling and unused dependency artifacts are also removed.

The result is a fork that runs with no external service accounts required beyond a model API key (or none, if a local model is in play). The tradeoff is that nothing here is designed to scale beyond a single machine - there's no shared storage, no managed auth, no CDN.

What's in it

Direction

infrastructuresecurity

Activity

Themed changes and pull requests touching this fork, newest first. Themed changes that haven't been turned into a public post yet still appear — they're real work even without a published writeup.

📝 Prune Unused Dependency Artifacts 1 commit 3mo ago minor change
📝 Local Supabase config added for one-command dev setup 1 commit 3mo ago infrastructure draft
andrsschultz added a `supabase/` directory with `config.toml`, a one-shot schema migration, and a runbook, replacing the previous "paste this SQL into the Supabase editor" onboarding. A few rough edges to watch for befor…

Threads of work (detailed view)

8 threads have been distilled into posts.

PDF.js fonts vendored locally; CDN dependency removed

andrsschultz swaps `STANDARD_FONT_DATA_URL` from the unpkg CDN to a local `/pdfjs/standard_fonts/` path, bundling all 10 Foxit `.pfb` files and 4 Liberation Sans `.ttf` files directly into the repo. The rest of the commit strips Google Fonts and rewrites upstream brand links - fork personalization you can skip.

Claude and Gemini backends replaced by a local OpenAI-compatible provider

andrsschultz deleted both LLM provider files and replaced them with a single `local.ts` that routes all calls to a `LOCAL_LLM_BASE_URL` endpoint. The streaming implementation handles reasoning models and multi-round tool use, and is the one part of this commit worth cherry-picking.

R2 replaced with local filesystem storage

andrsschultz swapped Cloudflare R2 out for a local `fs`-backed storage layer, removing the entire AWS SDK dependency tree. The replacement isn't pluggable - R2 is gone, not feature-flagged.

Local Supabase config added for one-command dev setup

andrsschultz added a `supabase/` directory with `config.toml`, a one-shot schema migration, and a runbook, replacing the previous "paste this SQL into the Supabase editor" onboarding. A few rough edges to watch for before adopting.