Skip to content

lovincyrus/coolection

Repository files navigation

Coolection

Coolection is an open-source bookmarking tool that allows you to save and organize your favorite links. Coolection is designed to be single purpose and focused on speed and simplicity. No ads. No tracking. No distractions.

demo.mov

Motivation

The internet is great, but internet resources can be short-lived. The Internet Archive created the Wayback Machine to archive the internet, while GitHub preserves codebases in the Arctic Code Vault. But what about the links you find useful? They are scattered across your browser bookmarks, notes, messages, and emails. All you need to do is remember to save them.

Development setup

To run this application, you need to have Docker, Node.js, and pnpm installed on your machine.

First, run the development server and open http://localhost:3000 with your browser to see the result.

# Install dependencies
pnpm install

# Run the development server
pnpm dev

Next, spin up the local database, apply the schema, and seed the database:

# Start the database
pnpm db:up

# Push to sync the schema
pnpm db:push

# Seed the database
pnpm db:seed

When this is complete, you have a local pg instance running on localhost:5432 with the database coolection.

If you want to stop the database, you can run the following command:

# Stop the database
pnpm db:down

Configuration

Database

This project uses Prisma as an ORM. To get started, you need to create a .env file in the root of the project and add the following:

DATABASE_URL="postgresql://root:password@localhost:5432/coolection"

If you want to self-host the database or use a different provider (e.g., Supabase, Neon, Vercel Postgres, Heroku), you can update the DATABASE_URL to point to your database.

Clerk

This project uses Clerk for authentication. To get started, you need to create a Clerk account and set up a new application. Once you have your application ID and API key, you can create a .env file in the root of the project and add the following:

NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY=
CLERK_SECRET_KEY=
WEBHOOK_SECRET=
NEXT_PUBLIC_CLERK_SIGN_IN_URL="/sign-in"
NEXT_PUBLIC_CLERK_SIGN_UP_URL="/sign-up"

You need to set up webhook https://clerk.com/docs/integrations/webhooks/sync-data if you wish to sync user creation from Clerk to your database in development or production.


All code is licensed under the MIT license.

About

A better way to organize your favorite links.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published