37d2ebccf71258a279e4f4c872a6ccf30c688367
* fix: add type="button" to modal close buttons to fix Enter key form submission Previously, pressing Enter in modal form inputs would dismiss the modal instead of submitting the form because close buttons defaulted to type="submit". This adds explicit type="button" to all modal close buttons to ensure Enter key properly submits forms. Fixes: - New board creation via Enter key - New workspace creation via Enter key - New card creation via Enter key - New list creation via Enter key - Member invitation via Enter key - Label creation/editing via Enter key - Board URL updates via Enter key - Import boards forms via Enter key * fix: submit forms on enter key submission --------- Co-authored-by: Henry <henry_ball@hotmail.co.uk>
Kan
The open-source project management alternative to Trello.
Roadmap · Website · Docs · Discord
Features 💫
- 👁️ Board Visibility: Control who can view and edit your boards
- 🤝 Workspace Members: Invite members and collaborate with your team
- 🚀 Trello Imports: Easily import your Trello boards
- 🔍 Labels & Filters: Organise and find cards quickly
- 💬 Comments: Discuss and collaborate with your team
- 📝 Activity Log: Track all card changes with detailed activity history
- 🎨 Templates (coming soon) : Save time with reusable board templates
- ⚡️ Integrations (coming soon) : Connect your favourite tools
See our roadmap for upcoming features.
Screenshot 👁️
Made With 🛠️
Local Development 🧑💻
- Clone the repository (or fork)
git clone https://github.com/kanbn/kan.git
- Install dependencies
pnpm install
- Copy
.env.exampleto.envand configure your environment variables - Start the development server
pnpm dev
Environment Variables 🔐
| Variable | Description | Required | Example |
|---|---|---|---|
POSTGRES_URL |
PostgreSQL connection URL | Yes | postgres://user:pass@localhost:5432/db |
EMAIL_FROM |
Sender email address | Yes | "Kan <hello@mail.kan.bn>" |
EMAIL_URL |
Email service API URL | Yes | https://api.resend.com/emails |
EMAIL_TOKEN |
Email service API token | Yes | re_xxxx |
NEXT_PUBLIC_BASE_URL |
Base URL of your installation | Yes | http://localhost:3000 |
BETTER_AUTH_SECRET |
Auth encryption secret | Yes | Random 32+ char string |
BETTER_AUTH_URL |
Auth callback URL | Yes | Same as NEXT_PUBLIC_BASE_URL |
BETTER_AUTH_TRUSTED_ORIGINS |
Allowed callback origins | For Google login | http://localhost:3000,http://localhost:3001 |
GOOGLE_CLIENT_ID |
Google OAuth client ID | For Google login | xxx.apps.googleusercontent.com |
GOOGLE_CLIENT_SECRET |
Google OAuth client secret | For Google login | xxx |
S3_REGION |
S3 storage region | For file uploads | WEUR |
S3_ENDPOINT |
S3 endpoint URL | For file uploads | https://xxx.r2.cloudflarestorage.com |
S3_ACCESS_KEY_ID |
S3 access key | For file uploads | xxx |
S3_SECRET_ACCESS_KEY |
S3 secret key | For file uploads | xxx |
NEXT_PUBLIC_STORAGE_URL |
Storage service URL | For file uploads | https://storage.kanbn.com |
NEXT_PUBLIC_STORAGE_DOMAIN |
Storage domain name | For file uploads | storage.kanbn.com |
NEXT_PUBLIC_AVATAR_BUCKET_NAME |
S3 bucket name for avatars | For file uploads | avatars |
See .env.example for a complete list of supported environment variables.
Contributing 🤝
We welcome contributions! Please read our contribution guidelines before submitting a pull request.
License 📝
Kan is licensed under the AGPLv3 license.
Contact 📧
For support or to get in touch, please email henry@kan.bn or join our Discord server.
Languages
TypeScript
97.8%
MDX
0.9%
JavaScript
0.6%
PLpgSQL
0.4%
Dockerfile
0.2%