deep-simple is a simple todo application built around a single, honest design. The product's whole promise is "one simple design, no variants, no noise": a solo user captures tasks, focuses on what is open, and finishes them, with the interface communicating state (open, done) instantly while staying warm and uncluttered.
The product intent, derived from the authoritative requirement thread, is to deliver a working todo application with exactly one layout/design — not multiple design variants, themes, or alternate views. The audience is a single Todo user who wants to capture and finish tasks with calm clarity and a quiet sense of craft. The visual language is typographic infrastructure in the spirit of Erik Spiekermann: humanist sans systems, wayfinding clarity, warm neutrals with signal colours used like transit lines.
This document specifies the current delivery: a public Landing page, self-service Sign Up, returning Login, and a protected Todos workspace where the user views their current list, adds todo items, and marks items complete — all in the single accepted design.
deep-simple is a small, full-stack web application with application-owned identity and durable per-user todo state.
Current delivery
Actors
Accepted behavior
Narrow exclusions
deep-simple is delivered as a first-party web application. The application owns identity: a new user enrolls themselves through Sign Up, and a returning user verifies through Login. The Todos workspace is protected — it cannot be reached without an established identity, and the interaction that establishes access (Sign Up, Login) is anonymous and lives on its own pages rather than inside the protected workspace.
Durable state is required: each user's todo items are stored server-side and bound to that user, so the list is the same on return. The application does not establish differentiated permissions or role-based visibility; every authenticated user sees only their own list, and there is no shared or administrative state.
The current horizon is the simple single-design todo lifecycle described above. Nothing beyond capturing, viewing, and completing tasks is in scope for this generation.
Not applicable — no reference directive declares a content_source.
clamp(56px, 10vw, 128px) with the final word "Done." in signal red and a 6px red rule extending past the headline to the right edge of the viewport.As a Todo user I should use a todo application that presents exactly one design so that I get one simple, consistent experience with no variants or noise.
As a new Todo user I should create my own identity through Sign Up so that I can start using the todo list without an invitation or provisioning step.
As a returning Todo user I should verify my identity through Login so that I can reach my durable todo list.
As a Todo user I should see my current list of outstanding and completed tasks so that I have a clear picture of what remains and what is done.
As a Todo user I should add a todo item from the add-task input pinned to the top of my list so that I can capture a task I need to do.
As a Todo user I should mark a todo item complete via its checkbox so that I can track tasks to completion.
As a Todo user I should have my list persist across sessions so that returning to the app shows the same tasks I captured and completed.
Product context. The Todo user is the single user of deep-simple. They want a simple todo app with one design — no variants, no noise — that lets them capture tasks and finish them with calm clarity. They arrive either for the first time (through Landing and Sign Up) or as a returning user (through Login) to reach their durable list.
Primary goal. Keep a clear, current list of outstanding and completed tasks, and move tasks from capture to completion.
Distinct accepted responsibilities.
Relevant inputs and decisions. Task text for each new item; the decision to mark an item complete; credentials for enrollment and verification.
Interactions with other accepted participants. The Todo user interacts with the application backend, which stores identity and todo items and returns the current list. There is no other human participant in the accepted scope; the user's own list is the only state affected.
Observable success. The user sees their tasks in one consistent design, adds new tasks that persist, marks tasks complete and sees them recede into the muted completed band with strikethrough, and returns later to find the same list.
What makes this role distinct. The Todo user is both the sole author and the sole audience of the list: every action changes only their own durable state, and the product's value is the clarity of that single list rather than collaboration, sharing, or administration.
Muse and headline. Erik Spiekermann — typographic infrastructure for a single, honest todo list. The headline is "One list. One design. Done."
Mode. Light mode only.
Colour tokens (exact hex by role).
#F4EFE6#FBF8F2#1C1A17#C8342B#E8B23A#6E675CNo blue or indigo anywhere. Contrast of ink on paper is ~14:1; red on paper ~5.5:1; both readable at body size.
Typography.
clamp(56px, 10vw, 128px). Body 16px with 1.55 line-height; labels 12px uppercase at 0.08em tracking.Shape language. Squared-off, honest geometry: 4px radii on inputs and buttons (not pills, not blobs), 2px hairline rules as section dividers, and one thick 6px signal-red bar used as a wayfinding element under the active nav item and as the left edge of the currently focused todo row. Numbered circles (28px, 1.5px stroke) act as step markers, echoing transit line bullets.
Layout. A strict 12-column grid with generous 64px outer margins on desktop, 24px on mobile. The landing page runs as a vertical sequence of wayfinding bands, each introduced by a numbered label (01 / Capture, 02 / Focus, 03 / Finish) and separated by full-width hairline rules. The Todos page uses a single 720px column centered on the warm paper ground, with the add-task input pinned to the top of the list and completed items receding into a lower, muted band with strikethrough. Navigation is a thin top bar with a wordmark left, three text links center, and a red "Sign up" text link right — no buttons in the nav.
Imagery style. No photography. Visual interest comes from typography, rules, and two hand-built diagrams: a schematic "flow" of a task moving from Capture to Focus to Finish rendered as a small transit-map-style line with three stops and a red line, and a pictogram set (check, plus, clock, arrow) drawn at 2px stroke in the same warm ink. A single large decorative numeral ("01", "02", "03") sits as a watermark in each band at 20% opacity — type as image.
Readable text and controls. Headlines, wordmarks, labels, numbers, cards' text and controls stay entirely inside the viewport and their container at 375px, 768px, and 1280px, wrapping or scaling (for example font-size: clamp(...) with its mobile size) to fit. No other element covers any part of them. Decoration and motion may be cropped, bled off an edge, rotated, overlapped, or cut as the direction asks, as long as it covers no readable text or control.
The public entry is an editorial hero on warm paper that reads like a page from a transit manual.
clamp(56px, 10vw, 128px) reading "One list. One design. Done." with the word "Done." set in signal red and underlined by a 6px red rule that extends past the headline to the right edge of the viewport.This concept recomposes only accepted content, states, and controls: the product promise, the explanatory bands, the specimen todo row, the task-flow diagram, and the Sign Up and Login links.
Interaction Model: Animated Motion Tempo: restrained Hero Dimensionality: flat
#F4EFE6; thin top nav with the Extra Bold wordmark "deep-simple" left and the red "Sign up" text link right; the 9-column headline at its clamp size with "Done." in signal red and the 6px red rule extending to the right edge; beneath it the two-column band with the "01 / CAPTURE" label and three-line paragraph on the left and the 2px-ink-bordered specimen todo row on the right; the first hairline rule and watermark numeral "01" beginning the next band below the fold.prefers-reduced-motion removes the translate and keeps only the opacity fade; the page remains fully readable and all links and controls remain available.prefers-reduced-motion removes the translate and keeps only the opacity fade; the page remains fully usable. (Provenance: explicit — creative direction.)No additional services, queues, or Kubernetes orchestration are required for the current scope.
Constraints (binding).
Assumptions (narrow, labeled).
#C8342B, used like a transit line for primary actions, active nav, the "important" tag, and the hero underline.#E8B23A, a secondary code for "in progress" and hover states.
Step one of three
Write the task down the moment it appears. One input at the top of the list, no categories to pick and no fields to fill.
deep-simple keeps one design so capturing a thought stays a single honest action.
Call the landlord about the boiler
Today03Finish

Step one of three
Write the task down the moment it appears. One input at the top of the list, no categories to pick and no fields to fill.
deep-simple keeps one design so capturing a thought stays a single honest action.
Call the landlord about the boiler
Today03Finish
No comments yet. Be the first!