A free and open-source platform for sharing markdown notes instantly. Simply drag and drop your markdown files, get a permalink, and share with anyone.
- Drag & Drop - Upload markdown files with a simple drag and drop
- Instant Sharing - Get a permalink immediately to share with anyone
- Syntax Highlighting - Beautiful code block highlighting for 100+ languages
- Custom Slugs - Create memorable URLs for your important documents
- Dark Mode - Easy on the eyes, perfect for developers
- Mobile Friendly - View and share on any device
- Next.js 15 - React framework with App Router
- TypeScript - Type-safe code
- Tailwind CSS - Utility-first styling
- Clerk - Authentication and user management
- Turso - SQLite database for edge computing
- UploadThing - File storage and management
- PostHog - Privacy-friendly analytics
- Node.js 20+
- bun (recommended) or pnpm/npm/yarn
- Accounts for the following services:
- Clerk (Authentication)
- Turso (Database)
- UploadThing (File Storage)
- PostHog (Analytics)
- Upstash (Rate limiting)
-
Clone the repository
git clone https://github.com/sleepy-gogo/coonspace.git cd coonspace -
Install dependencies
bun install
-
Set up environment variables
cp .env.example .env.local
Edit
.env.localwith your service credentials:- Clerk API keys
- Turso database URL and auth token
- UploadThing API keys
- PostHog project API key
-
Set up Clerk webhook Create a webhook in the Clerk dashboard and point it to
yourdomain.com/api/webhook/clerk. This is essential for handling user deletion correctly, otherwise notes from deleted users will remain in the app. More information on Clerk webhooks -
Run the development server
bun dev
-
Open http://localhost:3000 to see the app running
For simplicity, the admin panel is integrated under the /admin route, protected by Clerk's middleware.
To access it, you need to:
- Sign in with your account
- Modify your account's public metadata to include
role:"admin" - This can be done through the Clerk dashboard:
- Go to User Management
- Select your user
- Add public metadata object with
role:"admin"
For larger applications, a separate admin panel under an admin. subdomain would be preferable, but for this project, the integrated approach is simpler to maintain.
Contributions are welcome! Please feel free to submit a Pull Request.
This project is licensed under the MIT License - see the LICENSE file for details.
More than a Note taking app, CoonSpace it a tool to quickly share any type of markdown file, whether it's code snippets, documentation, or notes, CoonSpace makes sharing markdown as simple as possible.
The project is and will always remain:
- 100% Free - No premium tiers or hidden costs
- Open Source - Transparent and community-driven
Built with ❤️ by sleepy-gogo
