Overview

Next.js 14

React

TypeScript

PostgreSQL

Project Goal

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 - mobile.png

Dashboard Design

Party - mobile.png

Event Page Design

Workflow

Frontend (Next.js + React)

The entire UI is built in Next.js (App Router) with React client components.

Its responsibilities are:

The frontend never stores sensitive data. It just reacts to whatever Supabase returns.

Supabase Database (Postgres)

The core app data lives in three tables:

  1. parties
  2. user_parties (many-to-many join)
  3. profiles (metadata, optional)

The frontend sends CRUD queries like:

Supabase handles:

Create Party - mobile.png

Deployment (Vercel)

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 Auth (User Accounts + Sessions)

Supabase handles all authentication:

The frontend calls:

Sign - Up - mobile.png

This is how pages verify the user is logged in.

Sessions automatically sync between tabs, refresh, etc.

Relationship Between Auth & Database

Supabase automatically gives every authenticated user a UUID id.

That UUID is used as a foreign key inside your tables.

Example connections: