Private
Public Access
1
0
Catherine Renelle 7559102479 Phase 8: Polish & UX — dark mode, toasts, keyboard shortcuts, responsive, accessibility
- Add dark mode with theme toggle, localStorage/cookie persistence, anti-FOUC script
- Add toast notification system with auto-dismiss and color-coded types
- Add api() fetch wrapper with auto JSON, X-Socket-ID, and error toasts
- Add keyboard shortcuts (/ search, b boards, ? help, n new card, Esc close)
- Add error page with status code and navigation
- Add focus trap utility and apply to CardModal with full ARIA dialog support
- Add hamburger menu for mobile, responsive columns, fullscreen card modal on mobile
- Add aria-labels to icon-only buttons and DnD live region
- Migrate all ~30 fetch calls to api() wrapper with success toasts
- Add dark: Tailwind variants to all 20+ pages and components

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-26 01:09:17 -05:00

Pounce

An open source, self-hosted, multi-tenant kanban board.

Tech Stack

  • Frontend: SvelteKit + Svelte 5 + Tailwind CSS v4
  • Backend: SvelteKit API routes + Prisma ORM
  • Database: PostgreSQL 16
  • Real-time: Socket.IO
  • Auth: Email/password with bcrypt + session cookies
  • Deployment: Docker Compose + Portainer

Getting Started

Prerequisites

  • Node.js 22+
  • PostgreSQL 16+

Development

npm install
cp .env.example .env   # edit DATABASE_URL as needed
npm run db:push         # sync schema to database
npm run db:seed         # seed default tenant + admin user
npm run dev

Docker

docker compose up

The app will be available at http://localhost:3000.

Default Credentials

Multi-Tenancy

Pounce supports multiple tenants on a single instance. Each tenant is identified by hostname — map additional domains via the tenant_hostnames table.

License

MIT

S
Description
No description provided
Readme 1 MiB
Languages
Svelte 57.5%
TypeScript 40%
JavaScript 1.4%
CSS 0.5%
Shell 0.3%
Other 0.3%