Everything before the table.
Quill & Wyrm covers ideating, structuring, and fleshing out your prep. It is deliberately not a combat tracker, not a virtual tabletop, and not an AI generator — it helps you write your campaign.
Structure
Worlds and campaigns
A world is the top-level container — like a project. It owns your campaigns and six libraries: NPCs, players, lore, monsters, items, and maps. A campaign is a body of prep inside a world, assembled from encounters.
Nestable groups organize everything: “everything planned for the town” holds “the tavern,” and both hold encounters. Groups and encounters interleave in one drag-sortable tree, on the page and in the navigation drawer alike.
The heart of it
Encounters built from sections
An encounter is any runnable beat — a fight, a negotiation, a trap, a journey. It carries one or more kinds (combat, exploration, social) that seed sensible starting sections, and its body is an ordered list of typed sections you rearrange freely.
Section types: boxed read-aloud text, environment, DM notes, monsters, loot (coins and items), NPCs, skill checks with a DC and success/failure text, and images. The three prose types are edited WYSIWYG — headings, lists, tables, inline images — and stored as plain Markdown you own.
@-mentions link an NPC, monster, map, or lore page by name from any text section. Cmd+click follows the link; hovering previews it.
Write once, reuse everywhere
Six world libraries
NPCs — stat block, skills, gear, actions, and portrait. An encounter's NPC section links the world NPC live: update the library entry and every encounter follows.
Players — full character sheets: classes and levels, proficiencies with derived modifiers, attacks, features, spells, equipment, and the personality block. What you write is stored; what derives from it (modifiers, passive Perception, spell DCs) is computed.
Lore — the world bible. A deity, an era, a faction, a village, a dungeon: one page of Markdown prose each, with cover art, inline images, and entity links. Lore pages are the thing a map pin points at.
Monsters — a bestiary of custom stat blocks. Adding one to an encounter copies it, so prep edits in a fight never touch the library original.
Items — a treasury of reusable items with rarity, attunement, properties, and coin values. Loot sections and character sheets link items live from the library.
Maps — uploaded images with pins. All six libraries share the same nested groups, drag-and-drop, and cover-art cards.
Where it happens
Maps with drill-down pins
Upload a map image and pin your prep to it: a pin targets an encounter, a group, a lore page, or another map — so a region map drills into a town map into a dungeon level, purely through pins.
The viewer pans and zooms like a proper map app: pins merge into counted clusters when they crowd, labels stay legible at every zoom, and deleting a pin's target flags the dangling pin instead of hiding the problem.
The rules, ready
SRD monster and item import
Search the 5e System Reference Document via the Open5e API — pinned to the 2024 SRD — and pull a complete monster stat block or magic item into your encounter, bestiary, or treasury in one click. Imported sheets stay editable: keep the statistics, rename the creature, add your own notes.
Only open SRD content, never Wizards of the Coast protected text.
Your data
Local-first and private
Everything you write lives in your browser's storage, on your machine. There is no account, no login, no server holding your world. Close the tab, come back next week — it's all there.
The app works offline once loaded (monster search needs internet), autosaves on every change, and makes deletes undoable.
On the roadmap
Coming next
- Encounter difficulty calculator with 2024-rules math, with your party wired in as the size and level source
- PDF export and print — take prep to the table, share it with other DMs
- File-based campaign sharing: export, import, and share links with no accounts and no servers
- Install as an app (PWA) with full offline support