A powerful note-taking app for world-builders and tabletop RPG players
π Website & App β’ π Documentation β’ π¬ Discord β’ π Report Bug
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.
- π 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


- Obsidian: Import your Obsidian vaults
- Logseq: Bring in your Logseq content
- URLs: Paste a URL and automatically pull formatted TTRPG content
- JSON: Export documents in structured JSON format
- Markdown: Standard markdown export for portability
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
Visit feynote.com to start using FeyNote immediately. No installation required!
- Node.js 18+ (see
.nvmrcfor exact version) - Docker and Docker Compose
-
Clone the repository
git clone https://github.com/feynote/feynote.git cd feynote -
Install dependencies
npm install
-
Set up environment
cp .example.env .env # Edit .env with your configuration -
Start
./scripts/localStart.sh
-
Access the application
- Application: http://localhost:80
- Website: http://localhost:8080
- Docs: http://localhost:8081
- Setup a Stripe project in test mode
- Install the Stripe CLI
- Forward Stripe events to your local webhook:
stripe listen --forward-to localhost:80/api/stripe/webhook
- Set the webhook signing secret in your
.envfile asSTRIPE_WEBHOOK_SECRET - Set the API key in your
.envfile asSTRIPE_API_KEY
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
We welcome contributions from the community! FeyNote is built by TTRPG enthusiasts, for TTRPG enthusiasts.
- Check existing issues: See if someone is already working on it
- File an issue: Record that you're going to work on it and reach out to us
- Sign the CLA: All contributors must sign our Contributor License Agreement
- No low-quality AI generated code. You must vet the code you write, and low-quality AI generated submissions will be closed (respectfully)
- Do not submit copyrighted material
- 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
- Be prepared to be receptive to (gentle and positive!) feedback, since we work hard to make a highly polished end product
- Fork the repository
- Create a feature branch
git checkout -b feature/amazing-feature
- Make your changes
- Write clean, documented code
- Follow existing code style (Prettier/ESLint configs included)
- Commit your changes
git commit -m 'Add some amazing feature' - Push to your fork
git push origin feature/amazing-feature
- Open a Pull Request
FeyNote uses a dual-license model:
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.
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.
All contributors must sign our CLA, which assigns copyright to the project maintainers (Julian Poyourow and Chris Meyer) to enable dual licensing.
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
- Website: feynote.com
- Documentation: docs.feynote.com
- Issues: GitHub Issues
- Email: julian@poyourow.com
- Commercial Licensing: julian@poyourow.com
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

