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.
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
Configure src/index.css with Tailwind directives and a simple app background/text baseline.
by system
Add src/lib/utils.ts with cn() helper for Tailwind class merging.
by system
Create src/types.ts for Character, Place, Template, Rumor, and TimelineItem types.
by system
Add src/data/defaults.ts exporting initial characters, places, and rumor templates.
by system
Create src/lib/storage.ts with typed load/save functions and versioned keys.
by system
Create src/lib/generateRumor.ts that fills templates using cast data and a chaos parameter.
by system
Create src/lib/random.ts for weighted choice, shuffle, and seeded-ish helpers.
by system
Implement src/App.tsx with the main split layout and top header.
by system
Add src/components/AppTabs.tsx to switch between Cast, Templates, and Generate views.
by system
Create src/components/CastManager/CastManager.tsx as the container for characters and places.
by system
Add src/components/CastManager/CharacterList.tsx to display and select characters.
by system
Add src/components/CastManager/CharacterForm.tsx for adding/editing a character with name and traits.
by system
Add src/components/CastManager/PlaceList.tsx to display and select places.
by system
Add src/components/CastManager/PlaceForm.tsx for adding/editing a place with name and descriptors.
by system
Add src/components/CastManager/RelationshipsEditor.tsx to edit character-to-character relationship labels.
by system
Create src/components/TemplateEditor/TemplateEditor.tsx to manage the template library.
by system
Add src/components/TemplateEditor/TemplateList.tsx to browse/select templates.
by system
Add src/components/TemplateEditor/TemplateForm.tsx to add/edit a template with placeholder hints.
by system
Add src/components/TemplateEditor/PlaceholderHelp.tsx showing supported tokens and examples.
by system
Create src/components/Generator/GeneratorControls.tsx with chaos slider and generate button.
by system
Add src/components/Generator/ChaosSlider.tsx using shadcn Slider with labeled endpoints.
by system
Add src/components/Generator/GenerateButton.tsx to trigger generation and push to feed.
by system
Create src/components/Rumors/RumorFeed.tsx to render generated rumors in a list.
by system
Add src/components/Rumors/RumorCard.tsx with actions (pin, details, copy).
by system
Create src/lib/timeline.ts to add/remove pinned rumors and enforce ordering.
by system
Add src/components/Timeline/Timeline.tsx to show pinned rumors saved in localStorage.
by system
Create src/components/Rumors/RumorDetailModal.tsx using shadcn Dialog with copy/export options.
by system
Add src/state/useRumorMillStore.ts implementing a lightweight state container synced to localStorage.
by system
Update src/App.tsx to use the store and connect Cast, Templates, Generator, Feed, Timeline, and Modal.
by system