Skip to content
TolomerePublic

About

Gamified Plot Creation For Writers

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

Inkbound

An elegant, gamified desktop writing companion built with Electron, React, and TypeScript. Inkbound helps writers finish their first drafts by transforming their story outlines into interactive milestones, tracking protagonist agency, generating creative prompts, and preserving a local, queryable Story Codex.


✒️ Key Features

🗺️ Multi-Framework Support

Choose from six narrative structures, customize them, or build your own from scratch:

  • Save the Cat: Blake Snyder's prescriptive 15-beat genre fiction layout.
  • Hero's Journey: The classic 12-stage mythological adventure structure.
  • McKee Story: Robert McKee's 5-beat character-driven outline focused on crisis and value shifts.
  • Classic 3 Act: Universal Setup, Confrontation, and Resolution (6 beats).
  • Fichtean Curve: Rapid opening action followed by escalating tension and multiple crises (5 beats).
  • Story Circle: Dan Harmon's 8-step circular narrative journey.
  • Custom Frameworks: Create unique outlines using drag-and-drop ordering, inline editing, and append/delete tools.

🌫️ Map & Fog of War Modes

  • Full Map: Preview all future milestones and outline coaching prompts at any time.
  • Fog of War: Hide upcoming milestones until your current quest is completed to keep your draft focused.

💡 Interactive Writing Guidance

  • Story Foundations Tooltips: View writing instructions and detailed examples next to each setup text box (Title, Premise, Protagonist Name/Description, and Antagonist) via clickable ? popovers.
  • Quest Progress Guidelines: Direct prompts explaining how to complete milestones ("How it works") inside active quest cards.

📝 Heuristic Story State Analysis

On completing each milestone, write one or two sentences in response to universal, framework-specific, or story-specific check-in prompts. Inkbound’s NLP utility parses responses to:

  • Track protagonist agency (Active vs. Reactive counts).
  • Record key decisions, items gained, or losses suffered.
  • Log antagonist evolution notes.
  • Extract recurring thematic tag keywords.

🎁 Reward & Codex Drawer

  • Unlock character prompts, complications, and world details on completing milestones.
  • Guide Legend: View what each unlocked reward type represents and how to apply it via a toggleable "What are these?" guide inside the Codex.
  • Inventory Checkmarks: Mark specific rewards as "Used" in your manuscript. Used cards visually dim and strike through to preserve inventory clarity.
  • Access the Story Codex slide-out drawer from anywhere to review your protagonist arc, thematic threads, and past reward cards.

🤖 LLM Coprocessor (Optional)

Configure settings to leverage an AI story coach via:

  • Cloud Providers: Google Gemini, OpenAI ChatGPT, Anthropic Claude, or OpenRouter (keys stored securely).
  • Local Backends: Ollama or LM Studio.
  • Ask questions about your story state directly inside the Codex drawer or generate fully personalized milestone questions.

🎨 Appearance Themes

  • Light & Dark Modes: Switch the writing interface ambiance between Light and Dark mode via settings.
  • High-Contrast Readability: Optimized text, border, and card backgrounds ensure visual comfort and focus during long writing sessions.
  • Smooth Transitions: Built-in styling micro-transitions make theme changes feel fluid and polished.

🛡️ Secure Local Persistence, Backups & Logging

  • No Internet Required: Data is stored locally in electron-store.
  • Security: Sensitive API credentials are encrypted with OS-level safe storage.
  • Comprehensive Logging: Integrated logging framework that captures Electron main-process logs, uncaught exceptions, and renderer-side React promise failures into logs/inkbound.log inside app user data directories.
  • Logging Levels: Configurable log filtering (DEBUG, INFO, WARN, ERROR) adjustable dynamically in the settings screen.
  • Log Rolling: Automatic rotation (rolls to inkbound.log.old when size exceeds 5MB) to optimize disk space.
  • Reliability: Automated rolling backups on every store change and close. An automatic recovery screen is displayed in the event of corruption or migration errors.
  • Backup Config: Set daily, weekly, or manual exports of JSON backups.
  • Journey Records: Export your completed story's outline, check-in log, and Codex as a clean Markdown record.

💻 Tech Stack

  • Runtime Shell: Electron
  • Frontend Library: React with TypeScript
  • Styles: Tailwind CSS v4 & CSS Modules
  • State Management: Zustand
  • Animation: Framer Motion
  • Storage: electron-store

🛠️ Project Setup

Prerequisites

  • Node.js (v18 or higher recommended)
  • npm

Installation

$ npm install

Running Development Server

$ npm run dev

Running Typechecks & Builds

# Typecheck TypeScript files
$ npm run typecheck

# Build and pack for production
$ npm run build

# Platform-specific packaging
$ npm run build:win   # Windows target
$ npm run build:mac   # macOS target (disabled by default)
$ npm run build:linux # Linux target (disabled by default)

📂 Project Directory Structure

/src
  /data
    /frameworks         # Default narrative blueprints (Save the Cat, Hero's Journey, etc.)
  /electron
    store.ts            # electron-store setup, backups, and native Dialog IPC handlers
  /main
    index.ts            # Electron main process and Accelerator registration (Ctrl+, for Settings)
    llm.ts              # IPC handlers for Ollama, LM Studio, Gemini, OpenAI, and OpenRouter APIs
    logger.ts           # Central logger utility, error hook interceptors, and IPC handlers
  /preload
    index.ts            # Preload Context Bridge exposing APIs safely
  /renderer/src
    /components         # Overlay UI components (CheckIn, Reward, Codex, Celebration)
    /pages              # Application pages (Dashboard, Setup, Onboarding, Settings, Error Recovery)
    App.tsx             # Bootstrap router, store initialization, and menu listener
  /store
    projectStore.ts     # Project mutations, NLP analyzer calls, and persistence triggers
    settingsStore.ts    # Global configurations and backup intervals
    uiStore.ts          # Window overlay visibility states
  /types
    index.ts            # Type definitions and union models
  /utils
    storyState.ts       # Text-matching NLP heuristics for story updates
    backup.ts           # Backup schedules and JSON serializers
    export.ts           # Markdown log generator for exporting projects

⚖️ License

Licensed under the MIT License.

About

Gamified Plot Creation For Writers

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages