garnet-inner is an offline, local peer-to-peer messaging application for a small circle of workmates. Mostafa Salama and his colleagues at work want to exchange messages with each other directly between their devices — without any internet connection — using a local/offline link between devices (for example a shared local network or a direct device-to-device link). The product's whole point is that it works in the basement, on the factory floor, or anywhere the internet does not reach: two or more colleagues with the app open near each other can discover one another, establish a local link, and send and read messages.
The audience is the user's own colleagues at work. The app is a tool, not a social network: it is scoped to a small trusted circle of workmates, it has no cloud dependency, and it must feel honest, legible and mechanical.
This document is the System Requirements Document for garnet-inner, written from the requester's stated intent.
garnet-inner is delivered as a first-party web application with three runnable services:
Current accepted behavior:
Removed from scope
garnet-inner is a first-party application with application-owned identity. Because each peer must privately own and resume their own durable messaging state (their identity, their established links, and their message history), the app establishes identity on first use through self-service Sign Up and verifies returning peers through Login. The Landing page is the anonymous entry surface that explains the product before identity is established; Nearby Devices and Messages are protected surfaces available only after login.
The defining delivery boundary is connectivity: the product must function with no internet connection, using a local/offline connection between devices. There is no cloud mystique and no internet/cloud iconography — the absence of the internet is the product's point. The current scope is the offline workplace messaging lifecycle described in this document; nothing beyond it (no cloud sync, no social features, no internet-dependent services) is part of the current delivery.
FR-1 — Offline messaging between colleagues (explicit) As a workplace peer (sender), I should be able to exchange messages with my colleagues at work without an internet connection, using a local/offline connection between devices, so that I can reach them where the internet does not reach.
FR-2 — Scoped to workplace colleagues (explicit) As a workplace peer, I should use the app only among my own colleagues at work, so that the circle of participants stays the trusted work group.
FR-3 — Self-service enrollment (required_inference) As a workplace peer beginning to use the app, I should be able to enroll myself on Sign Up, so that my messaging state is durably mine.
FR-4 — Returning verification (required_inference) As a workplace peer resuming use, I should be able to verify myself on Login, so that I resume my own durable messaging state.
FR-5 — Local offline connection before messaging (required_inference) As a workplace peer, I should establish a local offline connection to a colleague's device on Nearby Devices before messaging, so that messages can be exchanged without internet.
FR-6 — Send messages to connected colleagues (required_inference) As a workplace peer (sender), I should send messages to a connected colleague from Messages, so that I can communicate directly.
FR-7 — Receive and read incoming messages (required_inference) As a workplace peer (recipient), I should receive and read incoming messages from colleagues on Messages, so that I can see what coworkers send me without internet access.
Muse: Dieter Rams — "Less, but better — a signal-orange instrument panel for offline messaging." Headline: YOUR WORKMATES. NO INTERNET.
Palette (light mode):
#EFEDE6 (warm off-white paper ground, ~65% of page)#E3E0D6 (panels, slightly darker warm grey)#C9C4B6 (1px hairlines)#1A1A18 (ink, body contrast 13:1)#D2451E (Braun signal orange — reserved for exactly one thing per screen: live/connected state, primary action, or a single rule; never more than ~5% of pixels; orange-on-paper 4.9:1, use only for ≥18px semibold or on ink panels where it reaches 6.4:1)#1F6B4F (deep green — marks "device online / link established"; never next to orange as decoration)#6E6A60 (small-caps labels and metadata)Typography:
clamp(44px, 8vw, 112px); h2 28→48; h3 20→28; body 16→18 (line-height 1.55); label 12px ALL-CAPS 0.14em; mono data 13→15.Shape language: Rounded-rectangle controls with 10px radius (Braun knobs and keys); hard 1px rules; square panels and circular gauges. No blobs, no pills, no soft shadows — elevation is a 1px border plus a 2px offset ink line, never a blur. Iconography is diagrammatic line art at 1.5px stroke.
Layout: Visible 12-column modular grid with a persistent left rail (numbered sections 01–04) on desktop, collapsing to a single stacked column at 375px. Device lists and message rows are tabular: aligned label/value pairs, hairline dividers, fixed-width status column on the right. Sections separated by full-width edge-to-edge rules, not cards.
Imagery: Diagrammatic only — radar/compass gauge for device discovery, signal-strength bar stacks, schematic device silhouettes (phone, laptop, tablet) as 1.5px line art, topographic-style concentric rings. No photography, no people, no illustration for its own sake.
Avoid: Gradient blobs, glassmorphism or blurred surfaces; chat-bubble pinks/pastels or social-app gloss; more than one orange element per screen; hover-lift cards with drop shadows; rounded pill buttons and 24px+ radii; photography of people or stock office imagery; internet/cloud iconography; centred headline + subtext + button hero composition. The generic indigo/blue-on-white SaaS template is forbidden.
The public entry (Landing) is a split instrument panel, not a centred SaaS hero.
clamp(44px, 8vw, 112px) in ink, with a single orange full-stop the size of a fist. Beneath it, a 3-row tabular spec block (RANGE / PEERS / LINK) in IBM Plex Mono with hairline rules — data as ornament.#E3E0D6 panel — concentric ink rings, a sweeping orange needle, three green dots labelled with colleague device names — with a solid orange "SCAN FOR DEVICES" control pinned flush to the panel's bottom edge.Signature moves carried through the app: the live circular radar gauge as the dominant object; the tabular spec block with aligned mono label/value pairs; the numbered left rail (01–04) with full-bleed horizontal rules; message rows styled as Braun readouts (sender ALL-CAPS 12px 0.14em left, tabular mono timestamp right-aligned, orange 2px left-edge bar only on unread rows); primary controls as rounded-rectangle keys with a 2px offset ink under-line that depresses on press (translate-y 2px, no shadow), never a pill button.
Interaction Model: Animated Motion Tempo: restrained Hero Dimensionality: flat
Landing Hero Motion Brief
clamp(...) with its mobile size) to fit, with no other element covering them. Imagery, decoration and motion may be cropped, bled, rotated or overlapped as the direction asks, as long as they cover no readable text or control.prefers-reduced-motion, the radar freezes as a static gauge and state changes become instant; a usable static arrangement is provided.#D2451E, reserved for one live/connected state, primary action, or single rule per screen.
A local message link between colleagues' devices. No account on a server, no internet, no cloud — it just works where the signal does not.
garnet-inner is a peer-to-peer messaging app for a small circle of workmates. Messages travel directly between your devices over a local, offline connection — no internet, no cloud.
Open the app near a colleague, discover their device on the local link, and start talking. It works in the basement, on the factory floor, anywhere the signal drops out.
03 · LINK OFFLINENo internet required. Messages travel over the local link between devices.

A local message link between colleagues' devices. No account on a server, no internet, no cloud — it just works where the signal does not.
garnet-inner is a peer-to-peer messaging app for a small circle of workmates. Messages travel directly between your devices over a local, offline connection — no internet, no cloud.
Open the app near a colleague, discover their device on the local link, and start talking. It works in the basement, on the factory floor, anywhere the signal drops out.
03 · LINK OFFLINENo internet required. Messages travel over the local link between devices.
No comments yet. Be the first!