Skip to content

Sakilalakmal/nexus_app

Repository files navigation

nexus

Nexus

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.

🚀 Key Features

  • 💬 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.

🛠️ Tech Stack

Frontend

  • 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

Backend

  • Database: PostgreSQL
  • ORM: Prisma
  • Auth: Kinde Auth
  • API: ORPC (Type-safe RPC)

Infrastructure & Services

  • Storage: UploadThing
  • Security: Arcjet
  • AI: Vercel AI SDK, OpenRouter

🏗️ Getting Started

Follow these steps to set up the project locally.

Prerequisites

  • Node.js (v20+ recommended)
  • pnpm (Package Manager)
  • PostgreSQL Database URL
  • Accounts for Kinde, Arcjet, UploadThing, and OpenRouter.

Installation

  1. Clone the repository:

    git clone https://github.com/your-username/nexus.git
    cd nexus
  2. Install dependencies:

    pnpm install
  3. Configure Environment Variables:

    Create a .env file 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-..."
  4. Setup the Database:

    Push the schema to your database.

    npx prisma db push
  5. Run the Development Server:

    pnpm run dev

    Open http://localhost:3000 to view the application.

📁 Project Structure

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 assets

🤝 Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

  1. Fork the project
  2. Create your feature branch (git checkout -b feature/AmazingFeature)
  3. Commit your changes (git commit -m 'Add some AmazingFeature')
  4. Push to the branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

📝 License

This project is proprietary and confidential.


Made with ❤️ by Sakila Lakmal

About

create a collabaration application for teams. using vercel ai sdk.use oRPC for types safety .use arcjet for security and used postgre sql shadcn for ui components and uploadthing for easier file uploading.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors