ultra-todo is a simple single-page todo application. The product intent is deliberately minimal: one page where a person can add todo items and see their todo items in one place. There is no navigation, no second page, and no surrounding application shell — the page is the app.
The audience is a single consumer user, likely on a phone, who wants to capture tasks as they come and review the current list without friction. The design treats the daily act of writing a task down and crossing it off as a small reward rather than a chore.
ultra-todo is delivered as a single custom page named Todo, served by a React frontend and backed by a shared FastAPI backend process with a MariaDB database for application-owned persistent data. The page is the anonymous public entry surface and the only destination in the product.
Current accepted behavior:
Actors:
Ownership: all human-facing behavior lives on the single Todo page. The backend and database support it but never own a human interaction.
Narrow exclusions: the product is a simple single-page design. There is no navigation, no footer links, no second page, and no additional application surface.
Removed from scope
The entire product is one page. A visitor lands directly on the Todo page with no sign-in step, no onboarding, and no navigation to anywhere else. The page presents an oversized typographic hero and a todo panel containing the add-task input and the current task list. Adding a task and viewing the list are the complete current scope.
Delivery is first-party: the React frontend renders the page, and the shared FastAPI backend persists and returns todo items through the MariaDB database. No provider-owned or external surfaces are part of the current product. No future features are currently accepted; anything beyond adding and viewing todo items on the single page is out of scope for this document.
The single page of the product, and the anonymous public entry surface. It combines the typographic hero with the todo panel.
Information and state
Primary actions
Supporting actions
Domain entities
Component responsibilities
States
FR-1 — Add a todo item (explicit) As a Todo user I should be able to add a todo item from the single Todo page so that my task is recorded.
FR-2 — View todo items (explicit) As a Todo user I should be able to view my todo items on the single page so that I can see what I have captured.
FR-3 — Complete a todo item (required_inference) As a Todo user I should be able to mark a todo item complete on the Todo page so that I can see my progress at a glance.
FR-4 — Persist todo items (required_inference) As a Todo user I should have my todo items retained by the application so that they are still visible when I return to the page.
Product context. A single consumer user, likely on a phone, who wants to capture tasks as they come and see them in one place. The product is a daily ritual, and the design is meant to make that ritual feel like a small reward.
Primary goal. Record a task quickly and see the current list without navigating anywhere.
Distinct accepted responsibilities.
Relevant inputs or decisions. The task text; whether to submit now or keep typing; whether to retry after a failure.
Interactions with other accepted participants. None beyond the application itself; the Todo user is the only human actor.
Observable success. The task is recorded and visible in the list on the single page, with no navigation required.
Muse and headline. Jessica Walsh — playful maximalism for the world's smallest productivity ritual. The surface carries all the personality: saturated colour fields, chunky grotesque type, sticker shapes, and bouncy motion.
Palette (light mode)
| Role | Hex |
|---|---|
| Background | #F4E9D8 |
| Surface | #FFF6E6 |
| Text | #1A1410 |
| Primary | #F2317A |
| Accent | #C6F24E |
| Muted | #7A6A5C |
Cream ground carries the whole page; card surfaces sit one step lighter with a 2px ink border and a hard offset shadow. Hot pink is the primary action colour for add and complete. Acid lime is the secondary pop for completed task highlights and sticker accents. Ink is used for all type and the 2px outlines; muted for secondary labels. Colours are flat blocks, never gradients.
Typography
clamp(56px, 9vw, 128px); section display 40px; card title 22px; task text 18px; label 12px; body 16px. Line height 0.92 for display, 1.5 for body.Shape language. Hard-edged colour blocks with 2px ink outlines and hard offset shadows (4px 4px 0 #1A1410) rather than soft blur. Chunky rounded sticker shapes (radius 999px for pills, 20px for cards) sit on top of the hard-edged blocks. Rotated elements at -3deg to 3deg for sticker energy. No gradients, no glass, no blur.
Layout. Single page, one column on mobile, two-zone split on desktop: an oversized headline zone on the left (7 columns) and a colour-blocked todo panel on the right (5 columns) that overlaps the headline zone by 24px so the type appears to run behind the panel. The task list is a vertical stack of chunky cards, each with a hard-edged square checkbox and a lime strike-through bar. The add-task input is a full-width pill with a hot-pink plus button pinned to its right edge. No navigation, no footer links.
Imagery. No photography. Typographic and shape-based: oversized Archivo Black wordmarks, sticker shapes with hand-drawn-style icon glyphs (a check, a star, a lightning bolt) drawn as thick 3px strokes, and flat colour blocks. Optionally one simple glossy pink blob as a decorative sticker in the hero corner, cropped by the viewport edge.
Readability constraint. Headlines, wordmarks, labels, numbers, cards' text and controls stay entirely inside the viewport and their container at 375px, 768px and 1280px, wrapping or scaling to fit. Decoration and motion may be cropped, bled, rotated, or overlapped as the direction asks, as long as they cover no readable text or control.
The public entry is a cream full-bleed ground. "ULTRA" in Archivo Black at clamp(56px, 9vw, 128px) sits flush left and bleeds off the top-left corner of the viewport, and "TODO" stacks beneath it in the same size but in hot pink, forming a solid typographic block that dominates the left two-thirds of the screen. On the right, a cream card with a 2px ink border and a hard 6px offset shadow overlaps the "TODO" word by 24px, containing the add-task pill and the first three task cards. A lime sticker pill reading "ONE PAGE. ZERO FRICTION." is rotated -4deg and pinned to the top-right of the card, partially overlapping its border. A pink outline marquee of the word "TODO" runs along the bottom edge of the viewport. No centred headline, no subtext paragraph, no blue button, no gradient blob.
Signature moves:
4px 4px 0 ink) and 2px ink outlines on every card and input — no soft blur anywhere — giving the page a screen-printed poster feel.Interaction Model: Animated Motion Tempo: expressive Hero Dimensionality: layered_2d
Landing Hero Motion Brief
cubic-bezier(0.34, 1.56, 0.64, 1)); as the user completes a task, a lime strike-through bar wipes left-to-right in 200ms and the card tilts 1deg then settles. The hero itself stays composed; the motion lives in the todo panel.prefers-reduced-motion, all transitions become instant and the marquee displays as a static single line.frontend, backend, and database services. No additional services are required for the current scope.

No comments yet. Be the first!