goniszewski
grimoire
TypeScript

Bookmark manager for the wizards ๐Ÿง™

Last updated Jul 6, 2026
2.8k
Stars
85
Forks
34
Issues
+2
Stars/day
Attention Score
94
Language breakdown
TypeScript 49.8%
Svelte 48.2%
Dockerfile 1.1%
JavaScript 0.6%
HTML 0.1%
Shell 0.1%
โ–ธ Files click to expand
README

Grimoire Logo

Grimoire

Bookmark manager for the wizards ๐Ÿง™

GitHub License GitHub Actions Workflow Status GitHub Release Docker Pulls

[!IMPORTANT]
Version 0.4 introduces a new approach for data storage and user authorization. If you are upgrading from version 0.3.X you may want to utilize the built-in migration tool (read more).

Glimpse into the magical book of your forbidden knowledge - Grimoire! ๐Ÿ“–๐Ÿ’ซ

Unleash your inner sorcerer and conquer the chaos of bookmarks! With Grimoire, you'll have a bewitching way to store and sort your enchanted links.

But wait, there's more!

Transmute your saved pages into juicy content snippets with our mystical extraction feature. Embrace the magic, tame the clutter, and let Grimoire be your mystical companion in the vast library of the web.

It's time to conjure up some organization! ๐Ÿ“šโœจ

Features

  • add and organize bookmarks easily ๐Ÿ”–
  • create new user accounts, each with their own bookmarks, categories and tags ๐Ÿ™‹
  • fuzzy search through bookmarks ๐Ÿ”
  • supports tags and categories ๐Ÿท๏ธ
  • fetch metadata from websites, store it locally and update it when needed ๐ŸŒ
  • add your personal notes to bookmarks ๐Ÿ“
  • integration API to add bookmarks from other sources ๐Ÿงฐ
  • embrace the night with a dark mode ๐ŸŒ™
  • and stay productive using our official browser extension, grimoire companion (available here) ๐Ÿช„

Screenshots

| Light Mode | Dark Mode | | ------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------ | | Only unread Show only unread | Adding new bookmark Adding new bookmark | | User Profile view User Profile view | Bookmark details Bookmark details |

More screenshots can be found in the screenshots directory.

Installation

Run using Docker Compose (recommended)

Prerequisites

Steps

  • Create a docker-compose.yml file with the following content:
services:
  grimoire:
    image: goniszewski/grimoire:latest # or change from 'latest' to 'preview' to use the latest preview version
    container_name: grimoire
    restart: unless-stopped
    environment:
      - PORT=5173
      - PUBLICHTTPSONLY=false
      - PUBLICSIGNUPDISABLED=false
    volumes:
      - grimoire_data:/app/data/
    build:
      context: .
      dockerfile: Dockerfile
    healthcheck:
      test: wget --no-verbose --tries=1 --spider http://localhost:$PORT/api/health || exit 1
      interval: 30s
      timeout: 10s
      retries: 3
    ports:
      - '${PORT:-5173}:${PORT:-5173}'
volumes:
  grimoire_data:
  • [Optional] Update the environment variables to match your needs.
  • Run the app using docker compose up -d command.
[!NOTE]
For the recommended setup, only the docker-compose.yml file is required.

Run app using Node

Prerequisites

Steps

# Clone the repository
git clone https://github.com/goniszewski/grimoire

Rename the .env.example file to .env

"mv .env.example .env" on Linux/MacOS, "ren .env.example .env" on Windows

Install the dependencies

pnpm i

Run the app

chmod +x ./run-dev.sh && ./run-dev.sh

[!TIP]
Although the above setups are intended for development, they are also suitable for daily use. For a better experience, it is recommended to use a Node.js process manager, such as PM2.

Run using One-Click Deploy and Kubernetes (Helm)

โšก One-Click Deploy

| Cloud Provider | Deploy Button | |----------------|---------------| | AWS | | | DigitalOcean | | | Render | | | Helm | helm repo add deploystack https://deploystackio.github.io/deploy-templates/
helm repo update
helm install goniszewski-grimoire deploystack/goniszewski-grimoire |

Change or add deploy options at awesome-docker-run

Generated by DeployStack.io

Development

Check out the development guide to learn how to set up the project for development.

Roadmap

  • [x] Initial relase (0.1.0) ๐Ÿš€
  • [x] Official Docker image ๐Ÿณ
  • [x] Add Integration API ๐Ÿงฐ
  • [x] Official browser extension (repository) ๐Ÿช„
  • [ ] Bookmark import and export features ๐Ÿ’ผ
  • [ ] AI features, like generated descriptions and tags suggestions ๐Ÿค–
  • [ ] Public User profiles & bookmark sharing ๐ŸŒ
  • [ ] Flows - a way to keep bookmarks in a session-like order with related notes (e.g. for learning, research, etc.) โœจ
  • [ ] ...and more to come! ๐Ÿง™
We're open to suggestions and feature requests! If you have an idea for a feature, please open an issue or start a discussion.

Contributing

If you want to contribute to the project, please read the contributing guide.

License

This project is licensed under the MIT License.

Credits

Special thanks to: @extractus/article-extractor, Bun, DaisyUI, Drizzle, Fuse.js, Lucia, MetaScraper, PocketBase, sanitize-html, SvelteKit, Svelte Select, Svelte French Toast, Swagger UI, Tabler Icons, Tailwind CSS, url-metadata

๐Ÿ”— More in this category

ยฉ 2026 GitRepoTrend ยท goniszewski/grimoire ยท Updated daily from GitHub