Skip to main content
A quiet workspace with a notebook of prompts open beside a laptop, soft natural light from the side

Prompt Library

Local-first prompt manager in Next.js 15. Prompts stay in the browser, API key never leaves the machine. Fifty features shipped across twenty stacked branches.

Role
Solo builder
Year
2026

Tech

  • Next.js 15
  • TypeScript
  • Vitest
  • localStorage
  • GitHub Pages

Tags

  • #ai
  • #tools
  • #local-first

The problem

My AI prompts were scattered across notes, markdown files, and memory. I needed one searchable place to keep them — and a hard requirement: nothing leaves the browser. No API keys hitting a backend. No prompts stored in the cloud. The privacy constraint wasn't a nice-to-have; it was the whole product.

The approach

Built in Next.js 15 with localStorage as the entire data layer. One constraint — "everything stays on the user's machine" — became the governing design principle. Search? localStorage query. Tags, favorites, import, export, dark mode — all local-first. I shipped across 20 stacked branches over several months, adding features without ever standing up a server.

The constraint forced discipline. You can't cheat with a backend. Every feature had to be thoughtfully scoped because there was nowhere to offload decisions.

What shipped

A local-first prompt manager with full-text search, tag filtering, favorites, bulk import/export, and dark mode. Fifty features shipped. Zero backend. Deployed as a static site on GitHub Pages and open-sourced under a permissive license.

Reflection

Local-first privacy isn't a limitation — it's a competitive advantage. Building everything in the open with no server made the product sharper, not weaker. I'd make the same call again.

Have a project like this?
Let's talk.

Get in touch