[solvere]
$
← work
project 02template page. Replace with real project content.

Jewel Case

A music review site for one writer. Readers browse a numbered catalog. The author drafts, rates, and publishes from a signed-in admin.

clientpersonal
year2026
roledesign and build
statusin production
what was built

The public site is a shelf. Home puts one featured review next to album art, a 0 to 5 spin score, and a short lead, then a latest grid and a short archive of retrospectives. Browse is the full catalog: search, type, genre, sort. Each review is a catalog entry (JC-0001, JC-0002) with artwork, metadata, standout and skip tracks, and a short essay. Artists have their own pages. About explains the name and the rating.

The author is the only other user. Admin is email-and-password behind /admin. The form takes the release, the copy, the score, standouts and skips, cover art, and an optional featured flag, then saves a draft or publishes.

the pieces
-Home, browse, and the review page. The shelf a reader walks.
-/admin: list, draft, upload art, publish, feature. Artist photos in the same bucket.
-Supabase for data, auth, and artwork.
-RLS: anyone can read published reviews and all artists. Authenticated owner can write both tables. Storage writes go through the same session. Drafts stay invisible to the public. No roles beyond signed-in / not. No audit log. updated_at is the record.
screens
homepage: featured review, latest grid
review page: catalog entry, spins, standouts
about: name, ratings, contact
stack & architecture notes

Next.js on Vercel talks to Supabase from server components on the public site and from the browser in admin. There is no app-owned API. Postgres, auth, and the artwork bucket are one project; row-level security is the permission model. Public pages are force-dynamic so a publish shows up without a rebuild.

[ start a project → ]
$ cat stack.txt
frontend typescript · react · next.js
backend supabase (postgres + storage) · no app api
data postgres
auth session · email/password · rls
hosting vercel · supabase