Skip to content

Latest commit

 

History

82 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Curate

Curate

A private bookmark library for developers, as a Chrome and Edge extension.

Save docs, repos, tools, and articles from a popup. File them into collections. Open them later without digging through a bookmarks bar. There is no public feed.

Chrome Web Store · Microsoft Edge Add-ons · Contributing · Roadmap

License Node.js PRs welcome

Screenshots

The live popup is on the store listings:

The public site lives in landing/. Sign in, the library, and account management are in the extension, not on the website.

Features

  • Bookmarks — title, URL, category, and tags. Open, edit, or delete from the popup.
  • Collections — named groups of related links. Add into a collection from that view.
  • Accounts in the popup — register, sign in, edit profile, change password, log out, delete account.
  • Private by default — links stay on your account.
  • Light and dark theme.
  • Library first — the home screen is your collections and bookmarks. Forms appear when you add or edit.

Tech stack

Piece Stack
Extension Manifest V3, vanilla JS, HTML, CSS
API Node.js 18+, Express 5, Joi, JWT
Database MongoDB (Mongoose)
Landing Static HTML/CSS (landing/)

Chrome and Edge share the same unpacked build.

Installation

Use the product

  1. Install from the Chrome Web Store or Microsoft Edge Add-ons.
  2. Open the toolbar popup and create an account or sign in.

Run from source (contributors and self-hosting) — Development setup below, or docs/development.md.

Development setup

git clone https://github.com/DevOlabode/curate.git
cd curate
npm install
cp .env.example .env

Set MONGO_URI, SESSION_SECRET, and JWT_SECRET. Then:

npm run dev
npm run build:extension

Load dist/extension/ as unpacked in Chrome or Edge. In Details → Extension options, set environment to Development (http://localhost:3000).

Full walkthrough: docs/development.md. How to send a PR: CONTRIBUTING.md.

Architecture overview

Popup  --Bearer JWT-->  /api/v1  -->  MongoDB

The popup cannot use the website's session cookie (chrome-extension:// origin), so the extension talks to /api/v1 with a JWT in chrome.storage.local. There are no content scripts and no history permission.

Path Role
extension/ MV3 popup, options, service worker
src/shared/ API client used by the extension
routes/api/ JSON API
landing/ Static product site
index.js Express API, password reset, optional Express landing

See docs/architecture.md.

Contributing

Read CONTRIBUTING.md before you open a PR.

  1. Fork, clone, branch (feature/…, fix/…, docs/…).
  2. Claim or open an issue.
  3. Make one focused change, test it, open a PR.

New here? Look for good first issue.

Please follow the Code of Conduct. Usage questions belong in SUPPORT.md, not in Issues. Security reports go to SECURITY.md.

Roadmap

Shipped: private library in the popup, Chrome and Edge listings. Next: tests, tighter auth, clearer empty states. Details: docs/roadmap.md. How decisions are made: GOVERNANCE.md.

Contributors

Maintainer: Samuel Olabode (@DevOlabode).

Contributors to Curate

PRs are welcome. See CONTRIBUTING.md.

License

MIT. See LICENSE.

About

A private bookmark library for developers, as a Chrome and Edge extension.

Resources

Code of conduct

Contributing

Security policy

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages