powersave-chrome-extension is a Google Chrome extension, inspired by Powersave, that helps people make their browser draw less battery. It is a small, free, no-sign-in utility: the user installs it in Chrome, opens it, sees whether power-saving is currently on, and flips it on or off. There is no account, no subscription, and no setup ritual — the whole product is a legible power state and a switch.
The audience is pragmatic and slightly battery-anxious: people who want their browser to be gentler on their laptop battery and who value a tool that is instantly readable rather than an enterprise dashboard. The product's emotional register is calm confidence with a wink — friendly, legible, and honest about what it does.
This document is the System Requirements Document for the product. It defines the current delivery (a Chrome extension whose single working surface is the Power Saving popup), the single accepted persona, the functional behavior, the visual and interaction direction, and the technical stack. It also records the hard constraints: the build must stay within free quota limits, and no sign-in is required to use the product.
powersave-chrome-extension is delivered as a Google Chrome extension with one first-party surface:
The surface is reachable without signing in. The extension is installed in Google Chrome and opened directly to the Power Saving page — there is no separate marketing or landing page in the product. The product has exactly one active human persona: the Chrome user managing power-saving.
The system is supported by a shared FastAPI backend process (application APIs and domain modules), a MariaDB database for application-owned persistent data, and a React frontend application UI. The backend and database support the product's durable state (the persisted power-saving on/off state) and do not introduce accounts, authentication, or additional product capabilities.
Removed from scope
The product is a Chrome extension, not a web SaaS application. Its only working surface is the extension popup, proportioned like a popup card (max 420px). The user explicitly stated that a landing page was not requested: the product is the Chrome extension itself, modeled on Powersave, and the extension popup is the whole first-party surface owned by the application.
Access is deliberately open. The user explicitly required that the extension be usable without signing in, and the Planning Scope records access_requirement: none for Power Saving. There is no application-owned identity, no account creation, no login, and no session continuity requirement. The power-saving state is a single durable preference owned by the local installation, persisted so that it survives reopening the extension; it is not tied to a person and does not require identity.
The current delivery horizon covers: installing the extension in Google Chrome, opening it to the Power Saving page, viewing the current power-saving state, and turning power-saving on or off. Nothing beyond these is current. There is no future-horizon feature set recorded in the authoritative requirements; the product is intentionally small.
The build must stay within free quota limits. This is a hard constraint on the implementation and deployment, not a product behavior: it means the delivered stack must run on free-tier infrastructure and free tooling, with no paid services required for the accepted behavior.
Reference fidelity (https://powersave.pro/). The user asked to make a copy of the Powersave extension, and the reference is used as a supplemental feature_reference and domain_context source for the Chrome extension's power-saving behavior and popup surface. The reference's own product identity, integrations, pricing tiers, and account model are not copied: powersave-chrome-extension keeps its own name, its single power-saving on/off capability, its free build, and its no-sign-in access model. The reference informs the popup surface shape (a compact extension popup that opens directly to the working control, with the current state legible at a glance and one primary control) and the plain, short, non-marketing copy register. The reference's data-capture features (record creation in Airtable/Notion/Coda/ClickUp, Obsidian markdown notes, webhooks, AI autofill, screenshots, clipping, link match, bulk operations, custom keyboard shortcuts, access-token connection management, Pro pricing) are outside this product's scope and are not implemented.
Information and state
Primary actions
Supporting actions
Domain entities
Component responsibilities
States
FR-1 — Install the extension in Google Chrome (required_inference) As a Chrome user managing power-saving, I should be able to install powersave-chrome-extension in Google Chrome so that I can use it in my browser.
FR-2 — Open the extension to reach the Power Saving page (required_inference) As a Chrome user managing power-saving, I should be able to open the extension and reach the Power Saving page so that I can see and control my power-saving state.
FR-3 — View the current power-saving state (explicit) As a Chrome user managing power-saving, I should be able to view the current power-saving state so that I know whether my browser is currently saving power.
FR-4 — Turn power-saving on (explicit) As a Chrome user managing power-saving, I should be able to turn power-saving on so that my browser draws less battery.
FR-5 — Turn power-saving off (explicit) As a Chrome user managing power-saving, I should be able to turn power-saving off so that my browser returns to normal power behavior.
FR-6 — Use the extension without signing in (explicit) As a Chrome user managing power-saving, I should be able to use the extension without signing in so that I can get value with no account setup.
FR-7 — Stay within free quota limits (explicit) As the product owner, the build should stay within free quota limits so that the extension can be delivered at no cost.
Product context. This person uses Google Chrome as their daily browser and has noticed that it draws battery. They want a small, free tool that makes the browser gentler on their laptop battery without adding accounts, subscriptions, or configuration work. They install the extension in Chrome and open it when they want to check or change their power-saving state.
Primary goal. A browser session that uses less power, with no extra setup and no sign-in.
Distinct accepted responsibilities.
Relevant inputs and decisions. The single recurring decision is whether power-saving should be on or off right now. The user reads the state line and the battery glyph, then flips the rocker switch. There is no other input, no configuration, and no account data.
Interactions with other accepted participants. None. The product has one active human persona; there is no counterparty, recipient, or administrator. The backend and database are supporting system actors, not participants the user interacts with.
Observable success. The user opens the extension, sees the current state, flips the switch, and sees the state change and persist — with no sign-in and no setup. The browser session then uses less power while saving is on.
The creative direction is authoritative for this section: Charming clarity: pixel-perfect power control, muse Susan Kare.
Mode. Light mode only.
Color tokens (exact hex by role).
#F4F1E8#FFFFFF#1C1B18#E4572E#8A8578#2E7D6F, mustard #E3B23CTypography.
clamp(48px, 9vw, 112px) in VT323; section heads 32/24px VT323; body 16/15/14px IBM Plex Mono; micro-labels 12px uppercase with 0.08em tracking.Shape language.
Layout.
Imagery. Pixel icons and pictograms only — a 16×16 battery, a lightning bolt, a leaf, a monitor, a tab-stack. Icons are drawn on the 4px grid with 2px strokes, rendered as inline SVG with crisp edges. No photography, no illustrations of people, no 3D. The battery glyph is the product's signature artwork and is drawn at two scales (32px in the card header, 96px as the card's main glyph) from the same grid.
Readability rule. 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; no other element covers any part of them.
The product is the extension popup, and the popup card is the whole composition: a paper-ground card (max 420px) with a chunky ink-outlined pixel battery glyph at the top, drawn with orange fill segments, the VT323 state headline beneath it set flush-left against a 2px ink rule, a live state line, the big ink rocker switch with the orange accent on the live track, a small ruled list of what changes when saving is on, and a clipped-corner "FREE · NO SIGN-IN" stamp in the footer. There is no separate landing or marketing page.
The signature moves that carry the identity:
Interaction Model: Animated Motion Tempo: restrained Hero Dimensionality: flat
Popup Motion Brief
#F4F1E8, the popup card (max 420px) with the product identity line, the 96px battery glyph with orange fill segments, the VT323 state headline against a 2px ink rule, the live state line, the ink rocker switch with the orange accent on the live track, the ruled list, and the clipped-corner "FREE · NO SIGN-IN" stamp.NFR-1 — Free quota limits (explicit) The build must stay within free quota limits. The delivered stack must run on free-tier infrastructure and free tooling, with no paid services required for accepted behavior. Rationale: the user explicitly required a free build.
NFR-2 — No sign-in (explicit) No sign-in is required to use the planned pages. Power Saving is reachable without authentication, and no account creation, login, or session continuity is required. Rationale: the user explicitly required the extension to be usable without signing in.
NFR-3 — Durable local state (required_inference) The power-saving on/off state is persisted so that it survives reopening the extension. On any state change, the state is written to durable storage; on open, the state is read and the card is hydrated. No authentication or cross-device sync is involved. Rationale: the accepted behavior of viewing the current state and toggling it on or off requires the state to persist across reopening.
NFR-4 — Readability at every viewport (explicit, from creative direction) 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; no other element covers any part of them.
NFR-5 — Reduced motion (explicit, from creative direction)
With prefers-reduced-motion, all stepped transitions become instant state changes and the battery pulse stops, while the static arrangement remains fully usable and readable.
NFR-6 — No forbidden visual patterns (explicit, from creative direction) No blue–indigo accents on white, no blurred drop shadows, no glassmorphism, no gradient blobs, no soft radii above 8px, no photography or 3D renders, no identical hover-lift card grids, no Inter/Roboto/Arial/system-ui for headings or body, and no eased springy motion.
Assumptions
Constraints

powersave-chrome-extension is a free Chrome extension that helps your browser draw less battery.
Live state not read yet — shown off by default.
Saving mode trims the browser work that drains your battery in the background.
Chrome keeps running the pages you use, with the heavy background work eased off.
Tabs you are not looking at are quieter, so fewer of them keep pulling power.

powersave-chrome-extension is a free Chrome extension that helps your browser draw less battery.
Live state not read yet — shown off by default.
Saving mode trims the browser work that drains your battery in the background.
Chrome keeps running the pages you use, with the heavy background work eased off.
Tabs you are not looking at are quieter, so fewer of them keep pulling power.
No comments yet. Be the first!