Next.js 14
React
TypeScript
PostgreSQL
Inspired by Partiful, LetMeIn was created as a more sleek and personable way to distribute events. LetMeIn is a lightweight dashboard and database connection software that allows a user to create events and assign a password to that event, allowing users who are given the password the ability to add the party to their dashboard.

Dashboard Design

Event Page Design
The entire UI is built in Next.js (App Router) with React client components.
Its responsibilities are:
useRouter)useEffect)The frontend never stores sensitive data. It just reacts to whatever Supabase returns.
The core app data lives in three tables:
partiesuser_parties (many-to-many join)profiles (metadata, optional)The frontend sends CRUD queries like:
select()insert()update()eq().single()Supabase handles:

The entire frontend (Next.js) deploys directly to Vercel, which serves the app as a globally distributed serverless site. Supabase stays external and already provides its own backend.
Since the app does not use any custom backend API routes, Vercel is simply hosting the Next.js UI and handling routing. All dynamic data still flows directly between the browser and Supabase’s database and auth service.
This keeps deployment extremely lightweight:
Vercel = frontend host
Supabase = backend
Supabase handles all authentication:
user.idThe frontend calls:
supabase.auth.signInWith...()supabase.auth.getUser()supabase.auth.getSession()
This is how pages verify the user is logged in.
Sessions automatically sync between tabs, refresh, etc.
Supabase automatically gives every authenticated user a UUID id.
That UUID is used as a foreign key inside your tables.
Example connections:
creator_iduser_parties connects user_id to party_id