NOTE-HUB is a real-time collaborative note-taking and document editing platform, built with modern web technologies. It allows multiple users to edit, update, and delete notes or documents in real time while integrating AI assistance for enhanced productivity.
- Real-time collaboration with live cursors and instant updates.
- AI-powered assistance for calculations, content generation, and structuring notes.
- Granular access control, allowing document owners to manage permissions.
- Authentication & User Management with Clerk.
- Cloud storage & database using Firebase and Firestore.
- Interactive UI components with ShadCN & Tailwind CSS.
- Live editing & sync powered by Liveblocks.
- Dark mode support for a seamless user experience.
- Next.js (App Router & Server Components)
- ShadCN UI (Tailwind CSS & Radix UI)
- Clerk (Authentication & User Management)
- Firebase & Firestore (Cloud Database & Storage)
- Liveblocks (Real-time Collaboration & Live Editing)
- Google Gemini AI (AI-powered assistance)
- Framer Motion (Animations)
- React.js
npx create-next-app@latest note-hubOptions:
- TypeScript: Yes
- ESLint: Yes
- Tailwind CSS: Yes
- App Router: Yes
- Turbopack: Yes
- Import Alias: No
ShadCN provides a collection of UI components built with Tailwind CSS.
npx shadcn@latest init
npx shadcn@latest add buttonClerk provides user authentication and session management.
npm install @clerk/nextjs- Create a Header component.
- Add Sidebar with router buttons including a "New Document" button.
npx shadcn@latest add drawer # Drawer button
npx shadcn@latest add sheet # Sidebar toggle for mobile screens- Create a Firebase project.
- Register a web app in Firebase.
- Retrieve the SDK snippet and add it to
firebase.tsx.
npm install firebase- Download the private key from Firebase service accounts.
- Rename the JSON file to
service_key.json. - Create
firebase-admin.ts.
npm install firebase-admin- Import required modules in
firebase-admin.ts.
- Create an
actions/folder to handle add/delete operations in Firestore collections.
- Create a
types/folder withtypes.tsxto define user data types.
- Create
globals.d.tsfor interface extensions. - Fix middleware errors by moving it to
src/middleware.ts.
npm install --save react-firebase-hooks- Modify
sidebar.tsxto display real-time documents. - Add Firestore indexes for
roomIdanduserId.
- Create a
doc/folder. - Inside
doc/, create[id]/folder. - Create
pages.tsxfor document routing.
- Update
document.tsxto sync changes in real time. - Add breadcrumbs navigation using
breadcrumbs.tsx.
npm install @liveblocks/client @liveblocks/react @liveblocks/yjs yjs @blocknote/core @blocknote/react @blocknote/mantine
npx create-liveblocks-app@latest --init --framework react- Retrieve Liveblocks API keys and store them in
.env.local. - Update
document.tsxto enable live editing with multiple users.
- Add dark mode support to the editor (
editor.tsx). - Update
document.tsxto allow inviting and removing users from a room. - Display user avatars in
document.tsx. - Implement document sharing functionality.
npm install @google/generative-ai- Create a
genai.tsxfile to handle AI interactions. - Implement AI-based note suggestions, text enhancements, and basic calculations.
- Create an API route:
route.ts: Handles GenAI requests and responses.chat.ts: Manages AI-powered chat functionalities within documents.
NOTE-HUB is designed to streamline real-time document collaboration with AI-powered assistance. It integrates authentication, cloud storage, and live editing seamlessly, making it a powerful alternative to traditional note-taking apps.
Feel free to contribute or provide feedback! 🚀