DataDrop Headless
A role-based data management platform where admins upload CSV datasets and share them with viewer users, who can then explore the data through tables and charts. Built as a pnpm + Turborepo monorepo with a React 19 + Vite frontend and an Express 5 + Drizzle ORM backend on PostgreSQL, with credential-based authentication via Better Auth. Deployed on Fly.io across two apps (API + web) behind nginx.
Tech stack
- Client: React 19, React Router 7, TanStack Query, Tailwind CSS v4, Vite
- Server: Express 5, Drizzle ORM, Better Auth, Zod
- Database: PostgreSQL 16
- Infra: pnpm workspaces, Turborepo, Docker, Fly.io
Try the demo
Open www.datadrop-app.com and sign
in with one of the accounts below. Both demo users share the same password:
DataDropPass123.
Admin — [email protected]
Signs in with full access to the admin surface. Things to try:
- Go to Users to browse, create, and edit users (admin or viewer).
- Go to Datasets to see the seeded eCommerce Store Performance dataset, then open its Uploads page to upload a CSV and assign the dataset to viewer users.
- Switch over to the viewer surface to see how the data looks to the people you just granted access to.
Sample CSVs
Download any of these to upload from the admin Uploads page:
- orders.csv — baseline valid dataset
- orders-variant-1.csv
- orders-variant-2.csv
- orders-variant-3.csv
- orders-variant-4.csv
- orders-variant-5.csv
- orders-invalid.csv — intentionally malformed, to see validation errors
Viewer — [email protected]
Signs in with read-only access to datasets assigned to them. Things to try:
- Go to Datasets to see the datasets the admin has shared.
- Open a dataset to browse rows with pagination.
- Open the Charts view for a dataset to visualize uploaded data.



