juanjo cuts Mike's cord to Supabase

One docker command now stands up the whole stack - no third-party accounts, no cloud sign-ups, no credit card.

infrastructuresecurity

juanjo has rebuilt Mike's front door so a developer can clone the repo and have a working legal-AI app running locally in minutes. Out goes Supabase, the hosted service that was handling both the database and user logins; in comes a local Postgres database, Auth.js (an open-source login library) for signup and sessions, and MinIO - a free, S3-compatible file store - standing in for cloud object storage. The defaults still point at the real cloud providers in production, so nothing breaks for teams already deployed.

The clever bit is the handshake between the two halves of the app: the login cookie issued by the Next.js frontend is decoded directly by the separate backend service using a shared secret, so a user signs in once and everything just works. juanjo has flagged one bug in the production cookie path that needs fixing before any real deployment, and a small pile of pre-prod hardening is openly tracked rather than swept under the rug.

So what Anyone evaluating Mike as a starting point for an internal legal tool now has a near-zero-friction way to kick the tyres before committing to vendors.

View this fork on GitHub →

Spotted something wrong? Or know the PR text has fresher detail than the writeup above?

Commits in this thread

7 commits from juanjo/mike, oldest first. Source extracted verbatim from the harvested git log.

SHA Subject Author Date
20ea4b25 feat(frontend): wire Auth.js + Drizzle (signup, login, session provider) Juan Vidal 2026-05-08 ↗ GitHub
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
1ab63b75 fix(frontend): align signup min-length with server (6→8) Juan Vidal 2026-05-08 ↗ GitHub
2d8ee13b fix(signup): max-length cap + unique-race backstop + wire org/name to profile Juan Vidal 2026-05-08 ↗ GitHub
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
7baab523 feat: cookie-based auth bridge between Auth.js and Express Juan Vidal 2026-05-08 ↗ GitHub
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
9e99b3ac chore(backend): document salt hard-coding in auth middleware Juan Vidal 2026-05-08 ↗ GitHub
c7d112e2 feat(backend): migrate user-profile route to Drizzle (vertical slice) Juan Vidal 2026-05-08 ↗ GitHub
Adds GET /user/me; ports POST /user/profile and DELETE /user/account from
supabase-js to Drizzle. Cookie-based requireAuth still gates all three.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
d2a95f5f docs(serena): update memories for local-Postgres + Auth.js stack (Plan 1) Juan Vidal 2026-05-08 ↗ GitHub

Capture this thread into my fork

Download a single Markdown prompt that tells Claude how to port every commit above into your working tree — adapting paths and structure to match your repo. Run it via claude -p < capture-thread-181.md from inside the repo you want the changes in.

⬇ Download capture-thread-181.md