emal-avala/data-room

Opensource investor data room template — gated documents, viewer analytics, and an admin console. Next.js + Supabase + Vercel.

0

stars

65

commits

TypeScript

primary language

Aug 26, 2026

updated

data-room-coral.vercel.app
dataroom
investor-relations

README

Data Room

Data Room

Investor relations for a seed or Series A raise.
Next.js · Supabase · Vercel · MIT

Live demo · Onboarding · Deploy · Vercel + Supabase

CI License: MIT


A partner opens this between board meetings. They scan the numbers, open the room, download what they need. You see the session in /admin.

Fork it. Put your name, domain, and documents in. Deploy. Sample pages are templates — fill them from your books.

New here? docs/ONBOARDING.md is the full checklist (brand, fonts, Supabase, Google login, Vercel).

git clone https://github.com/emal-avala/data-room.git
cd data-room
./scripts/onboard.sh
bun install && bun dev    # http://localhost:3000

Live demo: data-room-coral.vercel.app — the Next.js app on Vercel (mock auth when Supabase is unset).

Deploy

Deploy with Vercel

StepWhat to do
1Supabase project. SQL Editor: supabase/migrations/001_schema.sql, then supabase/seed.sql.
2Auth → Google and/or Azure. Redirect https://<project>.supabase.co/auth/v1/callback. Site URL = your Vercel URL. App redirect = https://<app>.vercel.app/auth/callback.
3Vercel env from .env.example. SUPERADMIN_EMAIL is the address you sign in with.
4Deploy. Sign in. Open /admin. Sync documents. Approve the rest of the team on /admin/access.

docs/deploy/vercel-supabase.md · docs/deploy/environment-variables.md

What ships

RouteWhat it is
/Acme overview: metrics, why-now, recognized revenue, contracted yards.
/roadmapPath, next ship, competitive matrix.
/financialsBooks hub — P&L, forecast, pipeline, revenue by customer.
/docs, /docs/[slug]Data room. Registry: src/lib/documents.ts.
/company, /contactFounders, offices, risks, IR contact.
/loginGoogle + Microsoft. New emails go to /pending-approval.
/adminAccess queue, viewers, rooms, analytics.

How a viewer gets in:

  1. Middleware refreshes the Supabase session.
  2. Verified email on your domain, an env allowlist, an admin row, or an approved waitlist row.
  3. Each viewer maps to one fund and one room (core or full). A broken room shows zero documents.
  4. Decks and PDFs are stamped with their email. Files live in content/documents/, not public/.

ARCHITECTURE.md

Make it yours

JobFile
Name, domain, accent.env.local / src/config/site.ts
Fontsrc/app/layout.tsx
Colorssrc/app/globals.css + DESIGN.md
Copydocs/guides/branding.md
Documentsdocs/guides/add-document.md
Roomsdocs/guides/dataroom-variants.md

Docs

Guide
OnboardingBrand → Supabase → Vercel
Vercel + SupabaseProduction
Environment variablesEvery key
Local developmentSupabase CLI
GitHub Pages (retired)Do not republish demo/
BrandingName, color, font, copy
Deck themeTen-slide HTML deck + restyle
Add a documentRegistry + gating
Room variantsCore vs full
AnalyticsEvents, digest
DatabaseTables + RLS
Auth flowLogin → room

Coding agents: AGENTS.md.

Layout

src/app/             Pages, admin, API
src/lib/             Auth, documents, rooms, analytics
src/config/          Company defaults
content/documents/   Decks and PDFs (not public/)
supabase/            Schema + seed
docs/                Onboarding and how-to
demo/                Local HTML snapshot (not a public host)
scripts/onboard.sh   Copy .env.example

License

MIT

Contributors

emal-avala

65 commits

emal-avala/data-room

Opensource investor data room template — gated documents, viewer analytics, and an admin console. Next.js + Supabase + Vercel.

0

stars

65

commits

TypeScript

primary language

Aug 26, 2026

updated

data-room-coral.vercel.app
dataroom
investor-relations

README

Data Room

Data Room

Investor relations for a seed or Series A raise.
Next.js · Supabase · Vercel · MIT

Live demo · Onboarding · Deploy · Vercel + Supabase

CI License: MIT


A partner opens this between board meetings. They scan the numbers, open the room, download what they need. You see the session in /admin.

Fork it. Put your name, domain, and documents in. Deploy. Sample pages are templates — fill them from your books.

New here? docs/ONBOARDING.md is the full checklist (brand, fonts, Supabase, Google login, Vercel).

git clone https://github.com/emal-avala/data-room.git
cd data-room
./scripts/onboard.sh
bun install && bun dev    # http://localhost:3000

Live demo: data-room-coral.vercel.app — the Next.js app on Vercel (mock auth when Supabase is unset).

Deploy

Deploy with Vercel

StepWhat to do
1Supabase project. SQL Editor: supabase/migrations/001_schema.sql, then supabase/seed.sql.
2Auth → Google and/or Azure. Redirect https://<project>.supabase.co/auth/v1/callback. Site URL = your Vercel URL. App redirect = https://<app>.vercel.app/auth/callback.
3Vercel env from .env.example. SUPERADMIN_EMAIL is the address you sign in with.
4Deploy. Sign in. Open /admin. Sync documents. Approve the rest of the team on /admin/access.

docs/deploy/vercel-supabase.md · docs/deploy/environment-variables.md

What ships

RouteWhat it is
/Acme overview: metrics, why-now, recognized revenue, contracted yards.
/roadmapPath, next ship, competitive matrix.
/financialsBooks hub — P&L, forecast, pipeline, revenue by customer.
/docs, /docs/[slug]Data room. Registry: src/lib/documents.ts.
/company, /contactFounders, offices, risks, IR contact.
/loginGoogle + Microsoft. New emails go to /pending-approval.
/adminAccess queue, viewers, rooms, analytics.

How a viewer gets in:

  1. Middleware refreshes the Supabase session.
  2. Verified email on your domain, an env allowlist, an admin row, or an approved waitlist row.
  3. Each viewer maps to one fund and one room (core or full). A broken room shows zero documents.
  4. Decks and PDFs are stamped with their email. Files live in content/documents/, not public/.

ARCHITECTURE.md

Make it yours

JobFile
Name, domain, accent.env.local / src/config/site.ts
Fontsrc/app/layout.tsx
Colorssrc/app/globals.css + DESIGN.md
Copydocs/guides/branding.md
Documentsdocs/guides/add-document.md
Roomsdocs/guides/dataroom-variants.md

Docs

Guide
OnboardingBrand → Supabase → Vercel
Vercel + SupabaseProduction
Environment variablesEvery key
Local developmentSupabase CLI
GitHub Pages (retired)Do not republish demo/
BrandingName, color, font, copy
Deck themeTen-slide HTML deck + restyle
Add a documentRegistry + gating
Room variantsCore vs full
AnalyticsEvents, digest
DatabaseTables + RLS
Auth flowLogin → room

Coding agents: AGENTS.md.

Layout

src/app/             Pages, admin, API
src/lib/             Auth, documents, rooms, analytics
src/config/          Company defaults
content/documents/   Decks and PDFs (not public/)
supabase/            Schema + seed
docs/                Onboarding and how-to
demo/                Local HTML snapshot (not a public host)
scripts/onboard.sh   Copy .env.example

License

MIT

See what people are saying

Contributors

emal-avala

65 commits

Languages

TypeScript

86.2%

HTML

12.6%