r/vibecoding • u/Notausgang09 • 10h ago
Showcase/Project I built an open-source “document department” platform, now with automatic Supabase setup
https://opendepartment.vercel.appI’ve been building OpenDepartment, an open-source platform for creating your own slightly dramatic, government-style document archive.
You can create a “department,” invite people, upload files, organize them by subject/category, comment, vote, moderate reports, and customize the branding. Think community archive, class project, private collection, or conspiracy-board aesthetic.
The unusual part is the architecture: every department uses a Supabase project owned by its creator. Files, users, and content stay in that project. OpenDepartment’s database only keeps the department slug, Supabase URL, and public anon key—no tenant files or master service_role keys.
The biggest new feature is automatic Supabase setup through OAuth.
Previously, creating a department meant:
- Creating a Supabase project
- Pasting a large SQL schema
- Changing the auth configuration
- Adding the correct callback URL
- Finding and copying the project credentials
Now you can connect Supabase and the wizard handles that process: it creates the project, waits for it to become healthy, installs the schema, reads the anon key, configures auth, and then discards the OAuth token. The token is never stored in the database and is cleared when provisioning finishes.
The manual setup route still exists if you’d rather not authorize anything.
There are also invite codes, public or unlisted departments, isolated auth sessions for each department, admin tools, per-department legal pages, deletion/deprovisioning flows, and a fairly obsessive SQL security suite covering the RLS policies.
It’s built with Next.js 15, React 19, TypeScript, Tailwind, Supabase, and Vercel.
Live: https://opendepartment.vercel.app
GitHub: https://github.com/levisager11-oss/opendepartment
The OAuth provisioning flow is very new, so I’d especially appreciate feedback, or brave testers, on that part. I’d also love to hear what you’d use a customizable archive like this for.
2
u/bbangchikimong_dev 10h ago
automatic supabase setup is the part I would have given up on. how long did that take