SMOKING · VAPING · NICOTINE
Put itdown.Keep the air.
smoking-vaping is a quiet place to stop cigarettes and vapes for good — to end nicotine addiction one day, one craving, one breath at a time.
smoking-vaping is a personal nicotine-recovery app for one person who wants to stop smoking cigarettes and vaping, and to end their nicotine addiction. The product exists to support a single, private, physically uncomfortable behaviour change: putting down cigarettes and vapes, and staying off nicotine one day at a time.
The app's intent is deliberately narrow. It helps the user set up and maintain a quit plan covering both smoking and vaping, see honest progress toward being nicotine-free (time since quitting, money and cigarettes/vapes avoided), log cravings and slips and review that history to understand triggers, and find support and guidance for managing cravings and withdrawal. It is not a clinical tool, not a social or competitive product, and not a gamified scoreboard. Its emotional register is relief and dignity — space where the smoke used to be.
The audience is the individual quitter themselves. There is no coach, clinician, or administrator role in the current product.
smoking-vaping is delivered as a first-party web application with application-owned identity and durable per-user state.
Current delivery. A React frontend presents the product surfaces. A shared FastAPI backend provides the application APIs and domain modules for quit plans, progress, and craving/slip history. A MariaDB database stores application-owned persistent data. The frontend, backend, and database run as the provisioned services in the project's docker-compose inventory.
Actors. The only active human actor is the Person quitting smoking and vaping. The application itself (backend processes computing progress, persisting records, and serving guidance content) is a non-persona system actor.
Accepted behavior. The app supports quitting both smoking and vaping as one nicotine-addiction recovery effort. It provides self-service enrollment and returning verification so the user's durable quit data is reachable across sessions. Signed-in surfaces cover: setting up and maintaining a quit plan (quit date and current nicotine use for both smoking and vaping); viewing progress toward being nicotine-free (time since quitting, money or cigarettes/vapes avoided); logging cravings and slips and reviewing that history to understand triggers; and reading support and guidance for managing cravings and withdrawal.
Ownership. All product surfaces are first-party application pages. Identity is application-owned. There is no provider-owned or external-destination surface in the current product.
Exclusions. The current product does not include social features, leaderboards, clinician or coach roles, medication prescribing, or diagnostic claims.
Removed from scope
The user asked for an app to stop smoking and vaping and get rid of nicotine addiction. That request is the whole product intent; everything in this document elaborates it rather than extending it.
The app is a private, first-party web application. Because the user's quit plan, progress, and craving history are durable and personal, the app owns identity: a person enrolls themselves on first use and verifies themselves on return so their own data follows them. The anonymous entry surface (Landing) explains the app's purpose before sign-in; Sign Up and Login establish and verify identity; Quit Plan, Progress, Cravings, and Support are available only after sign-in.
Everything the app does for the user happens inside these first-party pages. There is no third-party account, no external service the user must visit, and no provider-owned surface in the current product. Backend computation (elapsed time, money and cigarette/vape counts avoided, history aggregation) is supporting system work behind the user's own pages, not a separate destination.
Future ideas are not part of the current product and are not represented in any current page or acceptance criterion.
FR-1 — Quit both smoking and vaping as one effort (explicit) As a person quitting smoking and vaping, I should be able to use the app to stop both cigarettes and vaping as part of one nicotine-addiction recovery effort, so that my quit is treated as a single goal rather than two separate ones.
FR-2 — Self-service enrollment (required_inference) As a person quitting smoking and vaping, I should be able to create my own account on first use, so that my quit data is mine and can be resumed later.
FR-3 — Returning verification (required_inference) As a person quitting smoking and vaping, I should be able to sign back in, so that I can reach my own durable quit plan, progress, and craving history.
FR-4 — Set up and maintain the quit plan (required_inference) As a person quitting smoking and vaping, I should be able to set my quit date and record my current nicotine use for both smoking and vaping, and update them later, so that the app reflects my actual quit.
FR-5 — View progress toward being nicotine-free (required_inference) As a person quitting smoking and vaping, I should be able to see time since quitting and money or cigarettes/vapes avoided, so that I have honest evidence of progress.
FR-6 — Log cravings and slips (required_inference) As a person quitting smoking and vaping, I should be able to log a craving and log a slip, so that I record what is actually happening.
FR-7 — Review craving and slip history to understand triggers (required_inference) As a person quitting smoking and vaping, I should be able to review my craving and slip history, so that I can understand my triggers.
FR-8 — Support and guidance for cravings and withdrawal (required_inference) As a person quitting smoking and vaping, I should be able to read support and guidance for managing cravings and withdrawal, so that I can get through difficult moments while quitting.
The creative direction is authoritative: Emptiness as content — a quiet white room for the hardest thing you'll ever stop doing. Muse: Kenya Hara. Headline idea: "Put it down. Keep the air."
Color tokens (light mode).
#F4F1EA#FBF9F4#23231F#3E4A3F#C2542A#8C877B#DCD6C9Proportion: ~80% paper, 15% ink/greys, 5% ember. No gradients, no glass, no blue, no indigo.
Typography. Headings and body: Zen Kaku Gothic New. Headings Light 300 at very large sizes, tracking 0.02em, leading 1.15, sentence case only. Body 17px/1.7. Micro-labels 11px, 600 weight, 0.18em letterspacing, uppercase, muted — the only caps in the system. Numerals are the display voice: clamp(48px, 9vw, 120px), weight 200, tabular figures. Scale 1.5 modular: 12 / 14 / 17 / 24 / 36 / 56 / 88. Display headline clamp(40px, 7vw, 88px) light 300; page title clamp(28px, 4vw, 44px).
Shape language. Square and near-square: 2px radii on inputs and buttons, 0px on panels and images. Hairline 1px rules in #DCD6C9 divide everything. Buttons are full-width rectangles with a 1px ink border and transparent fill, filling solid moss only on the primary. Nothing pill-shaped, nothing floating, no shadows anywhere — depth comes from tone and rule.
Layout. Centred single-column composition with enormous margins: content measure max 560px on a 1280px canvas, 24px gutters at 375px. Vertical rhythm 96–160px between sections on desktop, 56–72px on mobile. Each screen opens with one micro-label, one whisper-large statement, then a single primary action; everything else is a ruled list of label/value pairs aligned on a shared baseline. Navigation is a thin top rule with wordmark left and four text links right; on mobile it collapses to a bottom rule with the four words, no icons. Progress and Cravings are lists of thin horizontal rules, never cards in a grid.
Imagery. Still-life only, softly lit on plain paper grounds: an empty ashtray, a vape pen laid down and out of frame, a folded hand, a bowl of water, a match unlit, morning light on a windowsill. Monochrome or near-monochrome with one warm ember tone. Images sit full-bleed to one column edge, cropped square or 4:5, always with a hairline rule beneath and a caption in micro-caps. No stock people smiling, no lungs diagrams, no before/after bodies, no illustration.
Accessibility. Readable text and controls stay whole at 375px, 768px, and 1280px, wrapping or scaling to fit; imagery and decoration may bleed off edges but never cover text or controls.
The public entry (Landing) is a single tall paper-white column, off-centre left on desktop (max 560px starting at 18% from the left). Above the headline sits an 11px tracked micro-label: SMOKING · VAPING · NICOTINE. The headline "Put it down. Keep the air." is set in charcoal at clamp(40px, 7vw, 88px), light 300, stacked across three lines with wide leading. Beneath a thin rule, one line of 17px muted body copy, then a full-width 2px-bordered rectangle button "Start your quit" with an ember dot at its right edge.
The entire right half of the viewport is empty paper except one square 4:5 still-life photograph — an empty ashtray in morning light — bleeding off the right edge, sitting low, with a hairline caption in micro-caps. No gradient, no blob, no illustration, no centred stack. The emptiness is the message and the layout: space where the smoke used to be.
Interaction Model: Static (direction) Motion Tempo: still Hero Dimensionality: flat
Landing Hero Motion Brief. Focal subject: the empty ashtray still-life in morning light, bleeding off the right edge. Input→transformation→outcome thesis: the page arrives as a composed still frame; on arrival the headline and body fade in once over 400ms on the paper ground, and the ember dot beside "Start your quit" fades in once over 200ms — nothing else moves. Motion vocabulary: single opacity fades, no bounce, no parallax, no looping animation, no timer-driven motion. Composed first frame: micro-label, three-line headline, hairline rule, muted body line, bordered button with ember dot, and the still-life photograph low on the right. Reduced-motion state: all fades become instant cuts; the composed frame renders final.
prefers-reduced-motion renders instant cuts and final values.frontend, backend, and database services. No additional services are required for the current workflows.#C2542A hot accent used at most once per screen on the live action.
SMOKING · VAPING · NICOTINE
smoking-vaping is a quiet place to stop cigarettes and vapes for good — to end nicotine addiction one day, one craving, one breath at a time.

SMOKING · VAPING · NICOTINE
smoking-vaping is a quiet place to stop cigarettes and vapes for good — to end nicotine addiction one day, one craving, one breath at a time.
No comments yet. Be the first!