What is Spotcraft
Your portfolio content, your Supabase, your frontend.
Spotcraft is an open-source, self-hosted headless portfolio CMS built on Supabase. It’s for developers and creatives who want their own portfolio site without hand-editing JSON or running a full CMS: you bring your own Supabase project, edit your content in the Spotcraft dashboard, and fetch it from whatever frontend you like — Next, Astro, SvelteKit, or plain HTML.
Spotcraft is being built to power vin.ski.
How it works
Section titled “How it works” Spotcraft dashboard ── edits ──▶ Your Supabase project ◀── reads published content ── Your frontend (self-hosted app) (Postgres + Auth) (planned) (Next, Astro, …)- Your Supabase project holds your content and your team’s accounts. You own the data.
- Spotcraft is the dashboard you self-host to edit it, with invite-only accounts and roles.
- Your frontend reads published content straight from Supabase — with
supabase-jsor the REST API and your project’s publishable key. Drafts stay private. (Planned.)
There’s no Spotcraft cloud and no lock-in: if you stop using Spotcraft, your content is still plain Postgres tables in your own Supabase project.
Who it’s for
Section titled “Who it’s for”- Developers who want to design and build their own site, but not hard-code its content.
- Creatives working with a developer: they edit in the dashboard, the site updates.
- Anyone who finds a full CMS too much for a portfolio, and JSON files in a repo too little.
Status
Section titled “Status”Works today
- Invite-only accounts — no public sign-up
- Roles: admin (everything, including the team), editor (content), default user (own account only) — see Roles
- User management: invite, resend, change role, remove
- Account page: change password, sign out everywhere; password reset by email
- Database workflow: Drizzle schema → generated Supabase migrations
- Unit and end-to-end tests, CI, this documentation
Next
- Content types: projects, case studies, work experience, testimonials, contact submissions
- Public read access for published content (read-only policies; drafts stay private)
- Examples for fetching content from Next, Astro, SvelteKit and plain HTML
Next steps
Section titled “Next steps”- Using the dashboard: start with the Guide.
- Running or contributing: Getting started.
- Running your own: Self-hosting.