The spookiest, open-source Discord clone – designed for fun, privacy, and self-hosting.
Spookcord is an early-stage, open-source communication platform aiming to be a fun, privacy-focused, and fully self-hostable alternative to popular chat applications like Discord.
Currently, Spookcord offers basic functionalities, including:
Future updates are planned to bring even more features, including direct messages and voice calls, with the goal of achieving (mostly) feature parity with Discord, plus some exciting extras.
Spookcord leverages a modern and efficient technology stack to deliver a fast and responsive experience:
Spookcord gives you full control over your chat application, making it an excellent choice for:
Spookcord is currently in heavy development. This means you might encounter bugs and rough edges as features are rapidly being implemented and refined. We are actively working towards building a robust and feature-rich platform.
To get Spookcord up and running on your local machine, follow these steps:
Before you begin, ensure you have the following installed:
Ensure you have the project cloned first
git clone https://github.com/notghoull/spookcord.git
Install Bun: If you haven't already, install Bun by following the instructions on the official Bun website.
Install Dependencies: Navigate to the project root and install the necessary dependencies:
bun install
Start Supabase: You can either run Supabase locally using Docker/Podman or connect to a Supabase cloud instance.
bunx supabase start
NOTE This command will output the local Supabase URLs and anon key. Make note of these, especially the DATABASE_URL and SUPABASE_URL (usually http://localhost:54321) and SUPABASE_ANON_KEY (which you'll need for client-side configuration if you were using the Supabase client directly, though your setup abstracts this).
.env
variables (see next step) with your Supabase cloud project details.Set Environment Variables: You'll need to set several environment variables. Create a .env
file in the project root and add the following:
CORS_ORIGIN=http://localhost:5173 # Or wherever your frontend is located
BETTER_AUTH_SECRET=aRandomStringOfCharacters # Generate a strong, random string
BETTER_AUTH_URL=http://localhost:3000
DATABASE_URL=postgresql://postgres:[email protected]:54322/postgres # Or get this from your Supabase cloud provider
SUPABASE_JWT_SECRET=someSupabaseJWTSecret # Your Supabase JWT secret
PUBLIC_SERVER_URL=http://localhost:3000 # Or wherever your backend server is located
PUBLIC_SUPABASE_URL=http://localhost:54321 # Or wherever your Supabase server is
Run the Application: Once dependencies are installed and environment variables are set, you can start the development server:
bun run dev
Spookcord will now be accessible in your web browser at http://localhost:5173
.
We welcome contributions from the community! As Spookcord is in very early development, virtually any contribution is valuable, from bug reports and feature suggestions to code contributions.
Once the project matures, we will establish more formal contribution guidelines, a code of conduct, and preferred branching models. For now, feel free to open issues or submit pull requests.
Our roadmap for Spookcord includes:
(To be decided - It'll probably be a copyleft license though)