🗒️ next-notes is a collaborative web application for note-taking, powered by Next.js and TipTap.
- Collaborative Cursor: Real-time user cursor representing each transaction.
- Collaborative Note Writing: Real-time collaboration capabilities for note-taking.
- Realtime Data Storage: Instantaneous data updates and synchronization.
- OAuth Integration: Seamless authentication through Google or GitHub.
- Modern, User-Friendly UI: Intuitive and aesthetically pleasing user interface design.
- Light/Dark Mode.
🗒️ next-notes uses a number of open source projects to work properly:
- Next.js: React framework for server-side rendering.
- TypeScript: Typed JavaScript for safer code.
- Auth.js: Authentication library for web applications.
- Y.js: Shared data types for building collaborative software.
- WebSocket: Realtime data-transfer using TipTap Cloud.
- TipTap: Suite of open source content editing and real-time collaboration .
- MongoDB: NoSQL database for scalable storage.
- Prisma: ORM for database management.
- TailwindCSS: Utility-first CSS framework.
- shadcn: Styled component library for React.
🗒 ️next-notes requires Next.js (https://nextjs.org/) v14 to run.
Install the dependencies and devDependencies and start the server.
I am using TipTap Cloud as my Websocket Backend as Vercel does not support WebSocket Servers. You can create your own WebSocket server and manage the documents and their connections manually.
If not using TipTap Cloud Server, remove last two env veriables (NEXT_PUBLIC_APP_ID and NEXT_PUBLIC_JWT)
GOOGLE_CLIENT_ID=
GOOGLE_CLIENT_SECRET=
GITHUB_CLIENT_ID=
GITHUB_CLIENT_SECRET=
NEXTAUTH_SECRET=
SENDER_GMAIL=
SENDER_GMAIL_APP_PASSWORD=
NEXT_PUBLIC_APP_URL=
NEXT_PUBLIC_APP_ID=
NEXT_PUBLIC_JWT=
DATABASE_URL=
For testing production builds in local environments, (if Next gives error)
NEXT_AUTH_HOST=
npm install
npm run dev
npm run build
npm run start