Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

615 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GitBox

codecov E2E Coverage E2E Tests Build Test Lint

GitBox is a web app for organizing your scattered GitHub repositories in Kanban-style boards—perfect for managing the chaos of Vibe Coding projects and beyond.

GitBox App Screenshot

Why?

Because let's be honest—GitHub's repository list is kind of a mess 😅

When you have dozens (or hundreds) of repos from side projects, experiments, and Vibe Coding sessions, finding what you need becomes a treasure hunt. GitBox lets you visually organize everything in customizable Kanban boards, so you can finally bring order to the chaos.

Features

  • Kanban boards for GitHub repositories
  • Drag-and-drop organization (cards, columns, boards)
  • Move cards between boards
  • GitHub OAuth-based access
  • Supabase-backed persistence with RLS
  • Rich text project notes (Plate.js editor)
  • Project info links (55 built-in types + custom presets)
  • Inline comments on repo cards with color customization
  • Inline editable board title and subtitle
  • Public board sharing with unique share links
  • Maintenance mode for archived projects
  • 14 themes (7 light + 7 dark) + system preference
  • Collapsible sidebar with state persistence
  • Command palette (⌘K)
  • Rate limiting and security headers
  • PWA-friendly experience

Tech Stack

  • Framework: Next.js 16 (App Router)
  • UI: React 19.2, Tailwind CSS 4, shadcn/ui
  • State: Redux Toolkit + @laststance/redux-storage-middleware
  • Database: Supabase (PostgreSQL + Auth + RLS)
  • Rich Text: Plate.js (Platejs 53)
  • Drag & Drop: @dnd-kit
  • Validation: Zod 4
  • Monitoring: Sentry 10
  • Testing: Playwright (E2E), Vitest (Unit), Storybook 10

Getting Started

Prerequisites

  • Node.js >=24.12.0
  • pnpm 10.26.2

Setup

pnpm install
cp .env.local.example .env

Fill in the values in .env with your configuration.

Environment Variables

Variable Required Description
NEXT_PUBLIC_SUPABASE_URL Supabase project URL
NEXT_PUBLIC_SUPABASE_ANON_KEY Supabase anonymous key
SUPABASE_SERVICE_ROLE_KEY Supabase service role key (server-only)
GITHUB_CLIENT_ID GitHub OAuth App client ID
GITHUB_CLIENT_SECRET GitHub OAuth App client secret
NEXT_PUBLIC_SITE_URL Site URL for OAuth callbacks
SENTRY_AUTH_TOKEN Sentry authentication token (optional)
APP_ENV Environment mode (development, test, production)
NEXT_PUBLIC_ENABLE_MSW_MOCK Enable MSW mocking for tests
BOARD_TIMING_LOG Opt-in /board/[id] server-side timing logs (off)

Vercel Environment Variables:

When deploying to Vercel, the following are auto-injected:

  • VERCEL_ENV - Current deployment environment
  • VERCEL_URL - Deployment URL

Local Supabase Setup

Prerequisites: Docker Desktop running

# Start local Supabase (sources OAuth env vars + applies migrations)
pnpm db:start

# Check status and credentials
supabase status

# Stop when done
pnpm db:stop

# Reset database (re-apply all migrations)
pnpm db:reset

Local URLs:

GitHub OAuth for Local Development

Supabase CLI reads OAuth credentials from supabase/.env (not root .env).

  1. Create supabase/.env:
GITHUB_CLIENT_ID="your-github-oauth-client-id"
GITHUB_CLIENT_SECRET="your-github-oauth-client-secret"
  1. Configure GitHub OAuth App with callback URL: http://127.0.0.1:54321/auth/v1/callback

  2. Restart Supabase after adding/changing .env:

supabase stop && supabase start

Start Development Server

pnpm dev

Open http://localhost:3008 in your browser.

Scripts

  • pnpm dev - Start dev server (port 3008)
  • pnpm build - Production build
  • pnpm start - Start production server (port 3008)
  • pnpm lint - ESLint (zero warnings)
  • pnpm typecheck - TypeScript type check
  • pnpm test - Unit tests (Vitest)
  • pnpm e2e - E2E tests (Playwright, sequential)
  • pnpm e2e:parallel - E2E tests (parallel shards, recommended)
  • pnpm storybook - Storybook dev server (port 6006)
  • pnpm db:start - Start local Supabase (Docker)
  • pnpm db:stop - Stop local Supabase
  • pnpm db:reset - Reset local database

Security

See SECURITY.md.

License

MIT. See LICENSE.

About

A web application for managing GitHub repositories in Kanban board format

Resources

Code of conduct

Security policy

Stars

Watchers

Forks

Releases

Used by

Contributors

Languages