Skip to content

GeekyMoore/Kanbanish

Repository files navigation

Kanbanish

License: GPL v3 Next.js React TypeScript Tailwind CSS Supabase Bun

A lean Kanban board for teams that want clarity without the bloat.

Status: Open-source and self-hosted. Run it locally or deploy your own instance with your own Supabase project.

Screenshots

Board and card inspector

Kanban board with card inspector

Completion confetti

Confetti when a card lands in the rightmost column

Workspace customization

Workspace settings — customization tab

Sign in

Sign in screen

Features

Board

  • Custom columns — add, rename, duplicate config, delete (cards move to the first remaining column), tint colors, collapse/expand
  • Drag-and-drop cards across columns (@dnd-kit)
  • Cards with type (Feature / Fix / Chore), priority, title, notes, and source URL
  • One image attachment per card (client-side WebP encode, stored in Supabase Storage)
  • Card inspector with Issue, Activity, and Artifacts tabs
  • Activity history and comments (authenticated workspaces)
  • Keyboard shortcuts: N new card, C new column, Esc close dialogs and inspector

Workspace

  • One auto-provisioned workspace per user, blank on first sign-in
  • Custom workspace title, logo, and background image
  • Light / dark / system color mode; comfortable or compact density
  • Optional celebration confetti and sound when a card lands in the rightmost column

Sharing and auth

  • Google OAuth and email/password sign-in
  • Public read-only share links at /share/{token}
  • Account deletion from settings

Tech stack

Prerequisites

  • Bun
  • A Supabase project (Free tier works for local development)
  • Optional: Google OAuth in Supabase Auth if you want Google sign-in on the login page

Quick start

  1. Clone the repository.

  2. Install dependencies:

    bun install
  3. Copy .env.example to .env.local and fill in your Supabase values (see Environment variables).

  4. Set up Supabase manually — see Supabase setup.

  5. In Supabase Auth, add a redirect URL: {NEXT_PUBLIC_SITE_URL}/auth/callback (for local dev, use http://localhost:3000/auth/callback).

  6. Start the dev server:

    bun run dev
  7. Open http://localhost:3000.

Scripts

Command Description
bun run dev Start Next.js dev server
bun run build Production build
bun run start Run production server
bun run lint Run ESLint

Environment variables

Variable Required Purpose
NEXT_PUBLIC_SUPABASE_URL Yes Supabase project URL
NEXT_PUBLIC_SUPABASE_ANON_KEY or NEXT_PUBLIC_SUPABASE_PUBLISHABLE_KEY Yes Client-side auth and data access
SUPABASE_SERVICE_ROLE_KEY For public shares Server-only; used by /share/{token} SSR. Never expose as a NEXT_PUBLIC_* variable.
NEXT_PUBLIC_SITE_URL Recommended App origin for OAuth redirects and share links (e.g. http://localhost:3000 locally; your domain in production)

See .env.example for placeholders.

Security: Do not commit .env.local, service role keys, OAuth secrets, agent notes, or real user data.

Supabase setup

All SQL is applied manually in the Supabase SQL editor. Nothing in this repo connects to or runs against your project automatically.

1. Core schema

Run docs/supabase-schema.sql first. It creates the core workspace/board tables, RLS policies, and the private kanbanish-attachments Storage bucket.

2. Patches (as needed)

Apply these in the SQL editor when setting up a new project or updating an existing one:

File Purpose
docs/supabase-blank-workspaces-patch.sql New workspaces start blank (no seeded demo columns)
docs/supabase-workspace-shares-token-patch.sql Share token constraint + service_role grants for public share pages
docs/supabase-comment-added-patch.sql Extend card activity event types for comments
docs/supabase-celebration-confetti-patch.sql Confetti preference column on user_preferences
docs/supabase-card-activity-prune-patch.sql Lock down prune_card_activity_events() RPC
docs/supabase-demo-user-seed.sql Optional dev demo seed (replace placeholder user ID)

3. Auth

  • Email/password sign-in works once you create a user in Supabase Auth (dashboard or SQL).
  • Google OAuth is optional: enable the Google provider in Supabase Auth if you want the "Continue with Google" button.
  • Add redirect URLs for each environment, e.g. http://localhost:3000/auth/callback.

4. Storage buckets

The core schema defines kanbanish-attachments (private). The app also expects:

  • workspace-assets — public bucket for workspace logo and background images (displayed via public URLs)
  • user-avatars — private bucket for profile avatars

These buckets and their policies are not yet fully defined in repo SQL. You will need to create them in the Supabase dashboard or add DDL in a follow-up schema update.

5. Additional tables

The app also uses profiles, user_preferences, workspace_shares, and card_activity_events. Some patch files assume these tables already exist. A consolidated bootstrap SQL file is planned; until then, refer to the queries in lib/supabase/ for the expected shape.

Public shares

Public share pages (/share/{token}) require SUPABASE_SERVICE_ROLE_KEY on the server. Run docs/supabase-workspace-shares-token-patch.sql so service_role can read activity and attachment metadata.

Project layout

app/              Routes: board (/), login, public share, auth callback, account delete API
components/       Kanban board, columns, cards, inspector, settings, UI primitives
lib/supabase/     Board sync, attachments, profiles, public share SSR
lib/              Types, helpers, celebration effects
docs/             Supabase SQL (manual paste only)

Deployment

Deploy as a standard Next.js application on your host. Set the environment variables from .env.example and configure Supabase Auth redirect URLs for your domain.

License

Kanbanish is licensed under the GNU General Public License v3.0.

Contributing

Pull requests are welcome. Use Bun for install and scripts, stick to Tailwind color tokens for styling, and apply Supabase SQL changes manually in your own project (nothing in this repo runs migrations against a hosted database).

Keep secrets, production credentials, .env.local, and real user data out of the repository.

About

Hyper lean Kanban board for rapid web implementation.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Sponsor this project

 

Packages

 
 
 

Contributors

Languages