An advanced, AI-ready team collaboration platform designed to help teams ship 10x faster. Nexus organizes conversations into channels with real-time threads, providing a seamless and intelligent environment for communication and workflow management.
- 💬 Real-time Messaging: Instant communication with channels and threads, powered by ORPC and React Query.
- 🔐 Robust Authentication: Secure sign-up/login flows using Kinde Auth.
- 🤖 AI-Powered: Built with the Vercel AI SDK to bring intelligent assistance directly into your workflow.
- 📂 Workspace Management: Create and manage distinct workspaces for different teams or projects.
- ☁️ Seamless File Sharing: Integrated file uploads and management using UploadThing.
- 🛡️ Advanced Security: Protected by Arcjet for bot detection, shield protection, and rate limiting.
- 🎨 Modern UI/UX: A fast, responsive, and beautiful interface built with Next.js 16, Tailwind CSS 4, and Radix UI (Shadcn) components.
- Framework: Next.js 16 (App Router)
- Library: React 19
- Styling: Tailwind CSS 4
- Components: Radix UI, Shadcn UI
- Icons: Lucide React
- Rich Text: Tiptap
- Animations: Framer Motion
- Database: PostgreSQL
- ORM: Prisma
- Auth: Kinde Auth
- API: ORPC (Type-safe RPC)
- Storage: UploadThing
- Security: Arcjet
- AI: Vercel AI SDK, OpenRouter
Follow these steps to set up the project locally.
- Node.js (v20+ recommended)
- pnpm (Package Manager)
- PostgreSQL Database URL
- Accounts for Kinde, Arcjet, UploadThing, and OpenRouter.
-
Clone the repository:
git clone https://github.com/your-username/nexus.git cd nexus -
Install dependencies:
pnpm install
-
Configure Environment Variables:
Create a
.envfile in the root directory and add the following keys:# Database DATABASE_URL="postgresql://..." # Authentication (Kinde) KINDE_CLIENT_ID="your_client_id" KINDE_CLIENT_SECRET="your_client_secret" KINDE_ISSUER_URL="https://your-domain.kinde.com" KINDE_SITE_URL="http://localhost:3000" KINDE_POST_LOGOUT_REDIRECT_URL="http://localhost:3000" KINDE_POST_LOGIN_REDIRECT_URL="http://localhost:3000/dashboard" # Storage (UploadThing) UPLOADTHING_SECRET="sk_live_..." UPLOADTHING_APP_ID="your_app_id" # Security (Arcjet) ARCJET_KEY="aj_..." # AI (OpenRouter / Vercel AI SDK) OPENROUTER_API_KEY="sk-or-..."
-
Setup the Database:
Push the schema to your database.
npx prisma db push
-
Run the Development Server:
pnpm run dev
Open http://localhost:3000 to view the application.
nexus-app/
├── app/ # Next.js App Router pages and API routes
│ ├── (auth)/ # Authentication routes
│ ├── (dashboard)/ # Protected dashboard and workspace pages
│ ├── (marketing)/ # Public marketing pages
│ └── api/ # Backend API endpoints
├── components/ # Reusable UI components
├── lib/ # Utility functions and service configurations
├── prisma/ # Database schema
└── public/ # Static assetsContributions are welcome! Please feel free to submit a Pull Request.
- Fork the project
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
This project is proprietary and confidential.
Made with ❤️ by Sakila Lakmal