Private
Public Access
1
0

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 <noreply@anthropic.com>
This commit is contained in:
Catherine Renelle
2026-02-25 22:24:43 -05:00
parent bdb8af6ca2
commit 7b540a37ee
5 changed files with 48 additions and 40 deletions
+37 -29
View File
@@ -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! - **Frontend**: SvelteKit + Svelte 5 + Tailwind CSS v4
- **Backend**: SvelteKit API routes + Prisma ORM
```sh - **Database**: PostgreSQL 16
# create a new project - **Real-time**: Socket.IO
npx sv create my-app - **Auth**: Email/password with bcrypt + session cookies
``` - **Deployment**: Docker Compose + Portainer
To recreate this project with the same configuration: ## Getting Started
```sh ### Prerequisites
# recreate this project
npx sv create --template minimal --types ts --no-install . - Node.js 22+
``` - PostgreSQL 16+
## Developing ### Development
Once you've created a project and installed dependencies with `npm install` (or `pnpm install` or `yarn`), start a development server:
```sh ```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 npm run dev
# or start the server and open the app in a new browser tab
npm run dev -- --open
``` ```
## Building ### Docker
To create a production version of your app:
```sh ```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
+1 -1
View File
@@ -1,5 +1,5 @@
{ {
"name": "kanban", "name": "pounce",
"private": true, "private": true,
"version": "0.1.0", "version": "0.1.0",
"type": "module", "type": "module",
+1 -1
View File
@@ -17,7 +17,7 @@ async function main() {
}); });
// Map hostnames to default tenant // 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) { for (const hostname of hostnames) {
await prisma.tenantHostname.upsert({ await prisma.tenantHostname.upsert({
where: { hostname }, where: { hostname },
+6 -6
View File
@@ -10,13 +10,13 @@
<div class="mx-auto max-w-7xl px-4 sm:px-6 lg:px-8"> <div class="mx-auto max-w-7xl px-4 sm:px-6 lg:px-8">
<div class="flex h-14 items-center justify-between"> <div class="flex h-14 items-center justify-between">
<a href="/" class="flex items-center gap-2 text-white font-bold text-lg"> <a href="/" class="flex items-center gap-2 text-white font-bold text-lg">
<svg class="w-6 h-6" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"> <svg class="w-6 h-6" viewBox="0 0 24 24" fill="currentColor">
<rect x="3" y="3" width="7" height="7" rx="1" /> <circle cx="7" cy="5" r="2.2" />
<rect x="14" y="3" width="7" height="4" rx="1" /> <circle cx="12" cy="3.5" r="2.2" />
<rect x="14" y="10" width="7" height="7" rx="1" /> <circle cx="17" cy="5" r="2.2" />
<rect x="3" y="13" width="7" height="8" rx="1" /> <ellipse cx="12" cy="14" rx="6" ry="7" />
</svg> </svg>
{data.tenant?.name ?? 'Kanban'} {data.tenant?.name ?? 'Pounce'}
</a> </a>
<div class="flex items-center gap-3"> <div class="flex items-center gap-3">
+3 -3
View File
@@ -3,13 +3,13 @@
</script> </script>
<svelte:head> <svelte:head>
<title>Kanban Board</title> <title>Pounce</title>
</svelte:head> </svelte:head>
<div class="flex flex-col items-center justify-center px-4 py-20"> <div class="flex flex-col items-center justify-center px-4 py-20">
<h1 class="text-4xl font-bold text-gray-900 mb-4">Organize your work</h1> <h1 class="text-4xl font-bold text-gray-900 mb-4">Pounce on your tasks</h1>
<p class="text-lg text-gray-600 mb-8 text-center max-w-xl"> <p class="text-lg text-gray-600 mb-8 text-center max-w-xl">
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.
</p> </p>
<div class="flex gap-3"> <div class="flex gap-3">
<a <a