This repository contains a webâbased collaborative whiteboard that mimics the core features of Miro. Users can create boards, add sticky notes, draw shapes, and move objects in realâtime with other participants. The app is built with Next.js 16, React, TailwindâŻCSS, and Liveblocks for live synchronization.
Why this matters for nonâtechnical people?
- You can think of it as an online canvas where teams can brainstorm together, no installation required â just open a web browser.
- The code is organized so that developers can easily add new tools (e.g., a new shape or a chat widget) without breaking existing functionality.
- Realâtime collaboration â changes appear instantly for all participants.
- Infinite canvas â pan and zoom to any size.
- Sticky notes, shapes, and freeâhand drawing.
- User authentication via Clerk (signâin with email, Google, etc.).
- Dark / light mode toggle.
- Responsive design â works on desktop, tablet, and mobile browsers.
| Layer | Technology | What it does |
|---|---|---|
| Frontâend framework | Next.js 16 (React) | Renders pages, handles routing, and provides serverâside rendering for fast load times. |
| Styling | TailwindâŻCSS + custom CSS | Gives the app a modern, polished look without writing lots of CSS from scratch. |
| Realâtime sync | Liveblocks | Handles the live collaborative state so everyone sees the same board instantly. |
| Authentication | Clerk | Manages signâup / signâin flows securely. |
| Backend / data | Convex | Simple serverâless backend for storing board data. |
| Language | TypeScript | Adds type safety to JavaScript, reducing bugs. |
- Node.js (v20 or later) â the JavaScript runtime. Download from nodejs.org.
- Git â for version control (already used for this repo).
- An internet connection (to install dependencies and run the liveâsync service).
- (Optional) A GitHub account if you want to push changes.
- Clone the repository
git clone https://github.com/Prem759-0/Miro-clone-public.git cd Miro-clone-public/boardv2 - Install dependencies
This reads the
npm install
package.jsonfile and downloads all required libraries. - Create a
.env.localfile (do not commit this file). Add the following keys (replace the placeholder values with the ones you obtain from the respective services):NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY=yourâclerkâpublishableâkey CLERK_SECRET_KEY=yourâclerkâsecretâkey LIVEBLOCKS_PUBLIC_KEY=yourâliveblocksâpublicâkey CONVEX_DEPLOYMENT=yourâconvexâdeploymentâurl - Run the development server
Open your browser and go to
npm run dev
http://localhost:3000. You should see the whiteboard UI. - Create a board â click the âNew Boardâ button, signâin with Clerk, and start drawing!
When you are ready to share the app with others (e.g., on a public website):
npm run build # creates an optimized production bundle
npm start # serves the built appYou can also deploy to Vercel (the creators of Next.js) by connecting the GitHub repo â Vercel will automatically run the build step.
boardv2/
ââ app/ # Next.js app router â page components
ââ components/ # Reâusable UI pieces (buttons, toolbars, etc.)
ââ hooks/ # Custom React hooks for logic
ââ lib/ # Utility functions
ââ providers/ # Context providers (Liveblocks, Convex, Clerk)
ââ public/ # Static assets (images, favicons)
ââ store/ # Zustand store for clientâside state
ââ convex/ # Convex backend schema & functions
ââ .gitignore # Files Git should ignore
ââ package.json # Project metadata & dependencies
ââ tsconfig.json # TypeScript configuration
ââ README.md # YOU ARE READING THIS!
- Fork the repository.
- Create a new branch:
git checkout -b feature/yourâfeature. - Make your changes.
- Run
npm run lintto ensure code quality. - Commit and push, then open a Pull Request.
This project is licensed under the MIT License â you are free to use, modify, and distribute it.
- Author: Prem759â0
- GitHub: https://github.com/Prem759-0
- For questions, open an issue in the repository or reach out via the GitHub Discussions page.
-Email - a70064182@gmail.com -My WhatsApp Phone no - 9619111051
Happy collaborating!