Site Review · 01 of 03

Spore Codex — Amara "Dune"

SRC_URL: …dec253_amara-codex.html
01

What Is This App?

A richly styled D&D 5e character sheet for a character named Amara "Dune" — a Hexblood Circle of Spores Druid. The app loads character data from a remote JSON endpoint and renders an interactive sheet with animated spore particles floating in the background.

The aesthetic is dark fantasy: deep greens, violet glows, bone-white typography, and JetBrains Mono for mechanical readouts — all evoking a fungal, mycelium-network vibe matching the character's subclass.

02

App Behavior

  • A loading screen ("Awakening spores…") with a pulsing mushroom sigil displays while the JSON is fetched from producingtechnology.com/a1/15-json/…dec253.json.
  • Once loaded, five tabs appear — Stats, Combat, Spells, World, Inventory — each with smooth fade-up transitions when switching.
  • Stats tab: Displays the six ability scores in clickable hex tiles; clicking rolls a d20 + modifier with an animated toast popup at the bottom of the screen showing the result, dice face values, and modifier.
  • HP tracker: A living health bar with +1/+5/−1/−5/Full Heal buttons that animate the bar width on change.
  • Combat tab: Lists weapons with separate Attack (d20 + bonus) and Damage roll buttons; also has quick-roll buttons for Initiative and common saving throws.
  • Spells tab: Spell slot pips that toggle between used/available by clicking; spell cards roll a spell attack when clicked; shows Spell Save DC and Spell Attack bonus.
  • World tab: Displays an active Hexblood Holdfast condition banner, clickable objective checkboxes, NPC relationship cards with colored status dots (alive/captured/unknown), and fear tags.
  • Inventory tab: Simple item table plus a session journal textarea that auto-saves to localStorage.
  • Animated spore particles (violet & green) float upward across the entire background via a canvas element.
03

Unexpected / Issues

No Persistent State

HP changes, spell slots, and feature uses all reset on page reload. Only the journal textarea is saved via localStorage — everything else is ephemeral in-session state.

Slot Toggle Logic

The spell slot pip toggle math is unintuitive — clicking a pip doesn't clearly behave as "use this slot" vs "restore this slot," making it confusing during actual play.

No Crit Damage

When a natural 20 is rolled (labeled "CRIT!"), there's no automatic prompt or button to roll doubled damage dice — the player must manually roll damage separately.

Spells Not Linked to Slots

Clicking a prepared spell card rolls a spell attack but doesn't consume a spell slot — the two systems are visually present but completely disconnected.

04

Improvement Prompt

You are building an enhanced D&D 5e character sheet web app for Amara "Dune" (Circle of Spores Druid / Hexblood). The current app is mostly working but needs these improvements: 1. PERSISTENT STATE: Save HP, spell slots used, feature uses, and objective completions to localStorage so they survive page reload. On load, merge saved state with defaults from the JSON. 2. SPELL-SLOT INTEGRATION: When a prepared spell card is clicked, show a modal asking "Cast at what level?" listing available (unfilled) slots. Casting should automatically decrement that slot level. 3. CRIT DAMAGE: When an attack roll results in a natural 20, display a "Roll Crit Damage" button in the dice toast that automatically doubles the damage dice count (e.g. 1d8 becomes 2d8) and rolls them. 4. INITIATIVE TRACKER: Add a simple turn tracker to the Combat tab — a list of creatures/characters the player can add by name + initiative roll, which then sorts them into turn order. Highlight whose turn it currently is. 5. DEATH SAVES: When HP reaches 0, replace the HP bar with three success pips and three failure pips for tracking death saving throws. 6. CONDITION TRACKER: In the World tab, add a section for active conditions (Poisoned, Blinded, Restrained, etc.) with a + button to add them and × to clear them, saved to localStorage. Keep the dark fungal aesthetic, Cinzel headings, spore particle canvas, and JetBrains Mono mechanical text throughout.