Collaborate with your team using real-time messaging, boards, notes, calendar, and AI features. Built with Next.js, Convex, and Shadcn UI.
- Next.js 14 — React framework
- Convex — Backend and real-time data
- Bun — Package manager and runtime
- Shadcn UI / Radix UI — Components
- Tailwind CSS — Styling
- TypeScript — Type safety
-
Clone the repo
git clone https://github.com/ProddyAI/platform.git cd platform -
Install dependencies
bun i
-
Environment — Next.js
Copy.env.next.exampleto.env.localin the project root and fill in the values. -
Environment — Convex
In the Convex dashboard, open your project → Settings → Environment Variables, and add the variables listed in.env.convex.example. -
Run the app
- Terminal 1 (Next.js):
bun next→ open https://localhost:3000 - Terminal 2 (Convex):
bun convex
- Terminal 1 (Next.js):
-
You’re set to contribute.
platform/
├── .github/ # PR template, agents
├── convex/ # Convex backend
│ ├── _generated/ # Convex generated (do not edit)
│ └── *.ts # Domain modules (auth, board, messages, etc.)
├── public/ # Static assets
├── src/
│ ├── app/ # Next.js App Router (routes, layouts, api/)
│ ├── components/ # Shared components + ui/
│ ├── config/ # App config (e.g. Convex provider)
│ ├── features/ # Feature modules (see below)
│ ├── hooks/ # Shared hooks
│ └── lib/ # Utilities, clients, helpers
└── worker/ # Worker scripts
Features (src/features/<feature>/) typically contain:
api/— Convex queries/mutations hooks (e.g.use-get-channels.ts)components/— Feature UI componentshooks/,utils/,types/,store/,contexts/— when needed
| What | Convention | Example |
|---|---|---|
| Convex modules | camelCase | workspaceInvites.ts, ragchat.ts |
| React components | kebab-case or PascalCase | board-card.tsx, sign-in-card.tsx |
| Hooks | use- prefix, kebab-case |
use-channel-id.ts, use-debounce.ts |
| API routes | kebab-case dirs | src/app/api/connections/, password-reset/ |
| Path aliases | @/ |
@/components, @/lib, @/hooks, @/components/ui |