From 7b540a37ee59f0d8e7a0dac91135d69424f455e7 Mon Sep 17 00:00:00 2001 From: Catherine Renelle <32781029+catrenelle@users.noreply.github.com> Date: Wed, 25 Feb 2026 22:24:43 -0500 Subject: [PATCH] Rebrand to Pounce, the Open Source Kanban Solution - Rename project from "kanban" to "pounce" - Update landing page: "Pounce on your tasks" - Replace navbar icon with cat paw - Update seed hostname to pounce.catrenelle.com - Write proper README with setup instructions Co-Authored-By: Claude Opus 4.6 --- README.md | 66 ++++++++++++++++++++++----------------- package.json | 2 +- prisma/seed.ts | 2 +- src/routes/+layout.svelte | 12 +++---- src/routes/+page.svelte | 6 ++-- 5 files changed, 48 insertions(+), 40 deletions(-) diff --git a/README.md b/README.md index 210fcbc..80611bb 100644 --- a/README.md +++ b/README.md @@ -1,42 +1,50 @@ -# sv +# Pounce -Everything you need to build a Svelte project, powered by [`sv`](https://github.com/sveltejs/cli). +An open source, self-hosted, multi-tenant kanban board. -## Creating a project +## Tech Stack -If you're seeing this, you've probably already done this step. Congrats! - -```sh -# create a new project -npx sv create my-app -``` - -To recreate this project with the same configuration: - -```sh -# recreate this project -npx sv create --template minimal --types ts --no-install . -``` - -## Developing - -Once you've created a project and installed dependencies with `npm install` (or `pnpm install` or `yarn`), start a development server: +- **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 ```sh +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 - -# or start the server and open the app in a new browser tab -npm run dev -- --open ``` -## Building - -To create a production version of your app: +### Docker ```sh -npm run build +docker compose up ``` -You can preview the production build with `npm run preview`. +The app will be available at `http://localhost:3000`. -> To deploy your app, you may need to install an [adapter](https://svelte.dev/docs/kit/adapters) for your target environment. +### Default Credentials + +- **Email**: admin@example.com +- **Password**: admin123 + +## 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 diff --git a/package.json b/package.json index 819ae54..2c9439d 100644 --- a/package.json +++ b/package.json @@ -1,5 +1,5 @@ { - "name": "kanban", + "name": "pounce", "private": true, "version": "0.1.0", "type": "module", diff --git a/prisma/seed.ts b/prisma/seed.ts index 14062a7..b0f9707 100644 --- a/prisma/seed.ts +++ b/prisma/seed.ts @@ -17,7 +17,7 @@ async function main() { }); // Map hostnames to default tenant - const hostnames = ['localhost', '127.0.0.1', 'kanban.catrenelle.com']; + const hostnames = ['localhost', '127.0.0.1', 'pounce.catrenelle.com']; for (const hostname of hostnames) { await prisma.tenantHostname.upsert({ where: { hostname }, diff --git a/src/routes/+layout.svelte b/src/routes/+layout.svelte index cf2a31f..813ab03 100644 --- a/src/routes/+layout.svelte +++ b/src/routes/+layout.svelte @@ -10,13 +10,13 @@
- - - - - + + + + + - {data.tenant?.name ?? 'Kanban'} + {data.tenant?.name ?? 'Pounce'}
diff --git a/src/routes/+page.svelte b/src/routes/+page.svelte index 3446f47..24ca2d0 100644 --- a/src/routes/+page.svelte +++ b/src/routes/+page.svelte @@ -3,13 +3,13 @@ - Kanban Board + Pounce
-

Organize your work

+

Pounce on your tasks

- A collaborative Kanban board for your team. Create boards, organize tasks, and track progress in real-time. + An open source kanban board for your team. Create boards, organize tasks, and track progress in real-time.