Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

59 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Handoff Logo HANDOFF

Handoff brings projects, sprints, teams, releases, documentation, compliance, and AI intelligence into one hyper-structured, high-performance workspace. Designed for engineering and product teams to sync seamlessly.

Next.js Supabase Gemini TypeScript Tailwind CSS


✨ Features

  • πŸ“… Projects & Sprints β€” Interactive Kanban boards, agile sprint planning, and burndown chart tracking.
  • βœ… Task Lifecycle β€” Manage tasks with custom priorities, assignees, security classifications, and real-time state updates.
  • πŸ‘₯ Role-Based Access (RBAC) β€” Secure team workspaces with custom roles and permission control.
  • πŸš€ Release Management β€” Automated release pipelines with approval-gated deployments.
  • 🚨 Incidents & Post-mortems β€” Log incidents, maintain resolution timelines, and compile collaborative post-mortems.
  • πŸ›‘οΈ QA & Security Workspace β€” Streamlined bug tracking coupled with compliance and security review workflows.
  • πŸ“„ Rich Documentation β€” Collaborative docs editor with revision history and publishing approval flows.
  • πŸ€– Context-Aware AI Assistant β€” Side-panel powered by Gemini to help summarize tasks, draft post-mortems, and offer project insights.
  • ⚑ Real-Time Collaboration β€” Live user presence, instant board updates, and global notifications powered by Supabase Realtime.
  • πŸ” Comprehensive Audit Trails β€” Track every state change, document approval, and sprint transition automatically.

πŸ› οΈ Tech Stack

  • Frontend & Routing: Next.js 15 (App Router, Server Actions, Client Hydration)
  • Database & Real-time: Supabase (PostgreSQL, Row Level Security policies, Realtime subscriptions)
  • Authentication: Supabase Auth (SSR-compatible middleware)
  • AI Integration: Google Gemini SDK (@google/genai)
  • Styling: Tailwind CSS & Radix UI primitives
  • Testing: Vitest (Unit/Integration) & Playwright (End-to-End)

πŸ“ Project Structure

β”œβ”€β”€ app/                  # Next.js pages, layouts and API routes
β”œβ”€β”€ components/           # Reusable UI component library (Shadcn + Radix)
β”‚   └── ui/               # Core atomic components (button, input, textarea, etc.)
β”œβ”€β”€ hooks/                # Custom React Hooks
β”œβ”€β”€ lib/                  # Shared utility functions (supabase client, api wrapper)
β”œβ”€β”€ services/             # API and business logic helpers (Gemini integrations)
β”œβ”€β”€ supabase/             # Local database schema, seed files, and migration scripts
β”œβ”€β”€ tests/                # Testing suites
β”‚   β”œβ”€β”€ integration/      # Integration test flows
β”‚   └── unit/             # Unit tests for helpers & hooks
β”œβ”€β”€ playwright.config.ts  # End-to-end testing configuration
└── next.config.ts        # Next.js configurations

πŸš€ Getting Started

Prerequisites

  • Node.js 18.17.0 or higher
  • Supabase CLI (for local migrations)
  • A active project on Supabase

Local Development Setup

  1. Clone the Repository

    git clone https://github.com/VenomDevX/HANDOFF.git
    cd HANDOFF
  2. Install Dependencies

    npm install
  3. Configure Environment Variables Duplicate the example file and populate the credentials:

    cp .env.example .env.local

    Populate .env.local:

    NEXT_PUBLIC_SUPABASE_URL=https://your-project.supabase.co
    NEXT_PUBLIC_SUPABASE_PUBLISHABLE_KEY=your-anon-key
    SUPABASE_SECRET_KEY=your-service-role-key
    NEXT_PUBLIC_APP_URL=http://localhost:3000
    GEMINI_API_KEY=your-gemini-api-key
    AI_PROVIDER=gemini

    See .env.example for the full list of variables and which are server-only vs. browser-exposed (NEXT_PUBLIC_).

    ⚠️ Security: rotate any previously hardcoded secrets

    All secrets are now loaded exclusively from environment variables. If any secret (Supabase service-role/secret key, GEMINI_API_KEY, ENCRYPTION_KEY, GitHub/Google OAuth client secrets, SMTP or Upstash credentials, CRON_SECRET, etc.) was ever committed to the repository or hardcoded in source, it remains recoverable in git history even after removal. Rotate every such secret immediately in the respective provider dashboard before deploying, and treat the old values as compromised. Never commit .env.local β€” it is gitignored by default.

  4. Database Migration Link your local CLI configuration to your remote Supabase instance:

    supabase link --project-ref your-project-ref
    supabase db push
  5. Run Development Server

    npm run dev

    Open http://localhost:3000 to view your local workspace.


πŸ§ͺ Testing

Handoff includes a robust testing configuration:

  • Run Unit Tests:
    npm run test
  • Run Integration Tests:
    npm run test:integration
  • Run End-to-End Tests:
    npx playwright install
    npm run test:e2e

🌐 Deployment

Frontend (Vercel)

  1. Connect your GitHub repository to Vercel.
  2. Configure build settings (automatically detected as Next.js).
  3. Inject variables from .env.local into the Environment Variables panel in Vercel.
  4. Configure CORS and Site URL settings in your Supabase Auth panel under Authentication -> URL Configuration.

πŸ“„ License

Distributed under the MIT License. See LICENSE for more information.

About

πŸ§‘β€πŸ’»Handoff is a hyper-structured, high-performance workspace syncing projects, sprints, teams, releases, documentation, compliance, and AI intelligence.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages