Rumor Mill

A playful micro-story generator where you create a cast of characters and places, then spin “rumors” by combining traits, relationships, and events into short, shareable snippets. Users can edit a rumor template library, tap to generate new rumors with adjustable chaos (predictable vs. surprising), and pin favorites to a timeline saved in localStorage. The UI cleanly splits into components: Cast Manager, Template Editor, Generator Controls, Rumor Feed, and a Detail/Export modal.

To Do30
Scaffold app

Run: npm create vite@latest . -- --template react-ts && npm i && npm i -D tailwindcss postcss autoprefixer && npx tailwindcss init -p && npm i class-variance-authority clsx tailwind-merge lucide-react && npx shadcn@latest init.

by system

Add Tailwind globals

Configure src/index.css with Tailwind directives and a simple app background/text baseline.

by system

Set up shadcn utils

Add src/lib/utils.ts with cn() helper for Tailwind class merging.

by system

Define app types

Create src/types.ts for Character, Place, Template, Rumor, and TimelineItem types.

by system

Seed default data

Add src/data/defaults.ts exporting initial characters, places, and rumor templates.

by system

LocalStorage helper

Create src/lib/storage.ts with typed load/save functions and versioned keys.

by system

Rumor generator logic

Create src/lib/generateRumor.ts that fills templates using cast data and a chaos parameter.

by system

Random utilities

Create src/lib/random.ts for weighted choice, shuffle, and seeded-ish helpers.

by system

App shell layout

Implement src/App.tsx with the main split layout and top header.

by system

Navigation tabs

Add src/components/AppTabs.tsx to switch between Cast, Templates, and Generate views.

by system

Cast Manager panel

Create src/components/CastManager/CastManager.tsx as the container for characters and places.

by system

Character list component

Add src/components/CastManager/CharacterList.tsx to display and select characters.

by system

Character form component

Add src/components/CastManager/CharacterForm.tsx for adding/editing a character with name and traits.

by system

Place list component

Add src/components/CastManager/PlaceList.tsx to display and select places.

by system

Place form component

Add src/components/CastManager/PlaceForm.tsx for adding/editing a place with name and descriptors.

by system

Relationships editor

Add src/components/CastManager/RelationshipsEditor.tsx to edit character-to-character relationship labels.

by system

Template Editor page

Create src/components/TemplateEditor/TemplateEditor.tsx to manage the template library.

by system

Template list component

Add src/components/TemplateEditor/TemplateList.tsx to browse/select templates.

by system

Template form component

Add src/components/TemplateEditor/TemplateForm.tsx to add/edit a template with placeholder hints.

by system

Template placeholders help

Add src/components/TemplateEditor/PlaceholderHelp.tsx showing supported tokens and examples.

by system

Generator Controls panel

Create src/components/Generator/GeneratorControls.tsx with chaos slider and generate button.

by system

Chaos slider component

Add src/components/Generator/ChaosSlider.tsx using shadcn Slider with labeled endpoints.

by system

Generate button logic

Add src/components/Generator/GenerateButton.tsx to trigger generation and push to feed.

by system

Rumor Feed component

Create src/components/Rumors/RumorFeed.tsx to render generated rumors in a list.

by system

Rumor card component

Add src/components/Rumors/RumorCard.tsx with actions (pin, details, copy).

by system

Pin to timeline logic

Create src/lib/timeline.ts to add/remove pinned rumors and enforce ordering.

by system

Timeline view component

Add src/components/Timeline/Timeline.tsx to show pinned rumors saved in localStorage.

by system

Detail/Export modal

Create src/components/Rumors/RumorDetailModal.tsx using shadcn Dialog with copy/export options.

by system

Global app state hook

Add src/state/useRumorMillStore.ts implementing a lightweight state container synced to localStorage.

by system

Wire state into app

Update src/App.tsx to use the store and connect Cast, Templates, Generator, Feed, Timeline, and Modal.

by system

In Progress0
In Review0
Done0