Skip to content

FeyNote/FeyNote

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

FeyNote

A powerful note-taking app for world-builders and tabletop RPG players

License

🌐 Website & App β€’ πŸ“– Documentation β€’ πŸ’¬ Discord β€’ πŸ› Report Bug

✨ What is FeyNote?

FeyNote is a free, open-source note-taking application specifically designed for tabletop RPG enthusiasts and world-builders. Whether you're a dungeon master crafting intricate campaigns or a player keeping track of your character's journey, FeyNote provides powerful tools to organize, share, and bring your TTRPG worlds to life.

Why FeyNote? Key Features:

  • πŸ“Š TTRPG-First Design: Embed statblocks, spells, and items directly within your notes. Create custom content or tweak official content as you edit. FeyNote makes formatting and creating custom monster blocks, items, and other TTRPG content effortless.
  • πŸ”— Link/Reference Content: Create references between documents that automatically update as you edit
  • 🌐 Offline: Full functionality offline with automatic sync when you reconnect
  • πŸ‘₯ Real-Time Collaboration: Edit simultaneously with your party or co-DMs with live cursors
  • πŸ“… Custom Calendars: Build entirely custom date systems for your fantasy worlds
  • 🌳 Flexible Organization: Use both tree hierarchies and graph views to organize content depending on your preference
  • 🌳 Automatic Import: Use both tree hierarchies and graph views to organize content depending on your preference
  • Block-Style Nesting: Organize notes in bullet-journal style with hierarchical blocks

πŸ–ΌοΈ Screenshots

FeyNote Artifact Editor Rich TTRPG content editing with embedded statblocks

FeyNote Artifact Editor Linking & Referencing content makes it easy to relate NPCs and storylines without repetition

FeyNote Graph View Visualize connections between your world's content

FeyNote Calendar Fully customizable fantasy calendar system

Import & Export

Supported Import Formats

  • Obsidian: Import your Obsidian vaults
  • Logseq: Bring in your Logseq content
  • URLs: Paste a URL and automatically pull formatted TTRPG content

Supported Export Formats

  • JSON: Export documents in structured JSON format
  • Markdown: Standard markdown export for portability

πŸ› οΈ Tech Stack

FeyNote is built with modern web technologies:

  • Frontend: React 19, Radix UI
  • Text Editor: TipTap (ProseMirror-based)
  • Map+Drawing Editor: TLDraw
  • Calendar: Completely custom
  • Real-time Collaboration: Yjs, Hocuspocus, custom sync engine
  • Backend: Node.js, Express + tRPC
  • Database: PostgreSQL with Prisma ORM
  • Search: Typesense (for online) + MiniSearch (for offline)
  • Content Import, Scraping, any (light) AI: AI SDK
  • Website: Astro

πŸš€ Getting Started

For Users

Visit feynote.com to start using FeyNote immediately. No installation required!

For Developers

Prerequisites

  • Node.js 18+ (see .nvmrc for exact version)
  • Docker and Docker Compose

Quick Start

  1. Clone the repository

    git clone https://github.com/feynote/feynote.git
    cd feynote
  2. Install dependencies

    npm install
  3. Set up environment

    cp .example.env .env
    # Edit .env with your configuration
  4. Start

    ./scripts/localStart.sh
  5. Access the application

Working with Stripe (Payment Testing)

  1. Setup a Stripe project in test mode
  2. Install the Stripe CLI
  3. Forward Stripe events to your local webhook:
    stripe listen --forward-to localhost:80/api/stripe/webhook
  4. Set the webhook signing secret in your .env file as STRIPE_WEBHOOK_SECRET
  5. Set the API key in your .env file as STRIPE_API_KEY

πŸ—‚οΈ Project Structure

feynote/
β”œβ”€β”€ apps/
β”‚   β”œβ”€β”€ backend/          # Express server (a small number of express routes & tRPC instantiation)
β”‚   β”œβ”€β”€ frontend/         # App (React)
β”‚   β”œβ”€β”€ hocuspocus/       # Real-time collaboration server (Hocuspocus)
β”‚   β”œβ”€β”€ websocket/        # WebSocket server (Socket.IO)
β”‚   β”œβ”€β”€ queue-worker/     # Background job processing (BullMQ)
β”‚   β”œβ”€β”€ www/              # Marketing website & sharing SSG (Astro)
β”‚   β”œβ”€β”€ docs/             # Documentation site (Astro Starlight)
β”‚   └── cli/              # Command-line tools (migration tools, etc)
β”œβ”€β”€ libs/                 # Shared libraries
β”œβ”€β”€ prisma/               # Database schema and migrations
└── scripts/              # Utility scripts

🀝 Contributing

We welcome contributions from the community! FeyNote is built by TTRPG enthusiasts, for TTRPG enthusiasts.

Before Contributing

  1. Check existing issues: See if someone is already working on it
  2. File an issue: Record that you're going to work on it and reach out to us
  3. Sign the CLA: All contributors must sign our Contributor License Agreement

Rules for Contributing

  1. No low-quality AI generated code. You must vet the code you write, and low-quality AI generated submissions will be closed (respectfully)
  2. Do not submit copyrighted material
  3. Do not commit large assets to the repository. Send them to us so that we can upload them to our CDN and avoid repository size bloat
  4. Be prepared to be receptive to (gentle and positive!) feedback, since we work hard to make a highly polished end product

How to Contribute

  1. Fork the repository
  2. Create a feature branch
    git checkout -b feature/amazing-feature
  3. Make your changes
    • Write clean, documented code
    • Follow existing code style (Prettier/ESLint configs included)
  4. Commit your changes
    git commit -m 'Add some amazing feature'
  5. Push to your fork
    git push origin feature/amazing-feature
  6. Open a Pull Request

πŸ“œ License

FeyNote uses a dual-license model:

Personal Non-Commercial Use

For personal, non-commercial use, FeyNote is licensed under AGPL-3.0 with restrictions. You can use and modify FeyNote for personal use, but commercial use or distribution to others requires a commercial license.

Commercial & Non-Personal Use

Any commercial use, business use, or distribution to others requires a separate commercial license. Contact us at julian@poyourow.com for licensing information.

Pricing for commercial licenses depends on usage, and all proceeds support the project and community.

This license section is not a complete overview of the licensing terms. See LICENSE.md for full details.

Contributor License Agreement

All contributors must sign our CLA, which assigns copyright to the project maintainers (Julian Poyourow and Chris Meyer) to enable dual licensing.

🌟 Roadmap

We're actively working on:

  • Unlinked References: Automatic detection of content missing references (e.g., NPC names)
  • Google Docs Import: Import downloads from Google Docs
  • Enhanced Theming: New themes and improved customization
  • Native Apps: Desktop and mobile applications
  • Additional Export Formats: More ways to export your content

πŸ’¬ Community & Support

πŸ‘₯ Team

Julian Poyourow - Co-creator, Software Engineer @ Mozilla, creator of RecipeSage Chris Meyer - Co-creator, Software Engineer @ 2U

We're both passionate TTRPG players and software engineers who built FeyNote to enhance the tabletop gaming experience for ourselves and the community.

Built with ❀️ for the TTRPG community

About

A fantasy-themed note taking app oriented towards tabletop roleplaying games!

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 3

  •  
  •  
  •