Nobins is a zero-knowledge pastebin for sharing encrypted text.
The browser encrypts paste content before it is sent to the server. The server stores encrypted data and never receives the decryption key.
Paste links keep the decryption key after the
#hash.
Browsers do not send that hash fragment to the server, so the key stays client-side.
- Next.js
- React
- TypeScript
- Drizzle
- Postgres
Install dependencies:
npm installCreate a .env file:
NEXT_PUBLIC_SITE_URL=http://localhost:3000
DATABASE_URL=postgresql://user:password@host:5432/databaseRun database migrations:
npm run db:migrateSeed sample pastes:
npm run db:seedStart the dev server:
npm run devOpen http://localhost:3000.
npm run dev # start local development
npm run build # build for production
npm run start # start production server
npm run check # type-check, lint, and format check
npm run lint # run eslint
npm run format # format files
npm run db:generate # generate drizzle migrations
npm run db:migrate # run drizzle migrations
npm run db:seed # seed sample pastes
npm run db:studio # open drizzle studio