A curated, open library of enterprise brand & messaging prompts. Public catalog is zero-friction and instantly copyable; the most complex ~30% are gated behind OAuth as a lead-gen / PLG demonstration.
Tagline: Prompts with a point of view. · By: Nicole Miñoza
- Next.js (App Router) + Tailwind — server-rendered, payloads resolved server-side
- Supabase (Postgres + Auth) — metadata/payload split, RLS-gated premium
- PostHog — active users, sign-ups, copy events
Public metadata (prompts) and secret strings (prompt_payloads) live in
separate tables. RLS exposes public payloads to everyone but premium payloads
only to authenticated users — so a premium payload is never reachable by an
anonymous client, even through the API. The catalog is a Server Component
(app/page.tsx); locked payloads are never serialized to the browser.
npm install
npm run dev # http://localhost:3000Without Supabase env vars the app falls back to supabase/seed.json (the library of more than 40 prompts exported from the source data file). Premium prompts show a locked state.
- Create a Supabase project; copy
.env.example→.env.localand fill keys. - Apply the schema: run supabase/migrations/0001_init.sql
in the Supabase SQL editor (or
supabase db push). - Seed it:
npm run seed. - Enable Google + LinkedIn providers in Supabase Auth.
- (Optional) Add PostHog keys to light up the dashboard.
/— public catalog (search + category/tag filters)/demo— interactive "fill the variables" sandbox/method,/about— the method behind the prompts, and the bio/dashboard— secure telemetry view (shell)
The single source of truth is the typed library in content/prompts.ts
(+ content/categories.ts). Edit prompts there, then regenerate the DB seed:
npm run export-seed # content/prompts.ts → supabase/seed.jsonsupabase/seed.json is the build artifact the app reads (and npm run seed
loads into Supabase).