fiery-find is a website that answers one question: what name is saved with a given WhatsApp number? A visitor arrives with a WhatsApp phone number, submits it, and receives the saved contact name associated with that number as the product's single moment of payoff.
The product intent is deliberately narrow. There is no browsing, no directory, no contact management, and no account relationship implied by the request. The entire value of fiery-find is a single act of digital detective work: a number goes in, a name comes back. Everything in this document serves that one interaction.
The audience is a curious, mobile-first, slightly impatient visitor — someone who has a number in hand (from a message, a missed call, a business card, a screenshot) and wants to know who it belongs to. They are not administrators, and they are not managing a contact list. They want one answer, quickly, and they want the answer to feel like a reveal rather than a database row.
fiery-find is delivered as a custom web application with three pages: Landing, Lookup, and Results. All three are anonymously reachable — no account, sign-in, or identity establishment is required or implied by the source requirements. The visitor's only input is a WhatsApp phone number; the only output is the saved name associated with it.
Actors. The single accepted active human persona is the Lookup User: a person who has a WhatsApp phone number and wants to learn the saved contact name associated with it. There are no other human personas. The lookup resolution itself is performed by the application's backend service, which is a system actor, not a persona.
Accepted behavior. The system accepts a WhatsApp phone number as lookup input and returns the saved name associated with that number. The Landing page explains what the site does and directs the visitor to begin. The Lookup page provides the phone-number input and submission interaction. The Results page displays the saved name found for the submitted number.
Ownership. All three pages are application-owned custom pages with no access requirement. The lookup resolution is owned by the application backend; no third-party provider surface, external destination, or headless delivery is accepted by the source.
Narrow exclusions. The source does not accept: user accounts or sign-in, saved lookup history, contact list management, bulk or batch lookup, messaging or contacting the number's owner, exporting results, or any social or sharing feature. These are not part of the current product.
fiery-find is a public, anonymous utility. A visitor lands on the site, understands in one glance that it resolves a WhatsApp number to a saved name, and proceeds to enter a number. No identity is established at any point, because nothing in the accepted behavior requires durable, actor-specific state: a lookup is a single request-and-response with no commitment, entitlement, value transfer, or resumable relationship bound to a particular person. The submitted number and its resolved name are transient — they exist to produce the reveal and are not retained as a personal record.
The delivery boundary is therefore simple and closed: three first-party pages, one backend lookup service, no authentication, no provider-owned surfaces, and no external destinations. Everything the visitor sees and does happens inside the fiery-find application.
Future ideas that were not accepted — history, accounts, batch lookup, sharing — are explicitly out of the current delivery boundary and appear only in the future section, never in current pages or acceptance criteria.
Not applicable. No reference directive with content_source authority was supplied; there is no verified factual collection to preserve.
FR-1 — Look up the saved name for a WhatsApp number (explicit) As a Lookup User, I should submit a WhatsApp phone number and receive the saved name associated with it, so that I can find out who a number belongs to.
FR-2 — Understand the product before using it (required_inference) As a Lookup User, I should understand from the entry page that fiery-find resolves a WhatsApp number to a saved name, so that I know what to do and what to expect.
FR-3 — Enter a WhatsApp phone number (explicit) As a Lookup User, I should enter a WhatsApp phone number into a dedicated input, so that the lookup has a value to resolve.
FR-4 — Submit the lookup (explicit) As a Lookup User, I should submit the entered number to run the lookup, so that the resolution begins.
FR-5 — See the resolved saved name (explicit) As a Lookup User, I should see the saved name found for the submitted number, so that I have the answer I came for.
FR-6 — Run another lookup (required_inference) As a Lookup User, I should be able to start a fresh lookup from the Results page, so that I can resolve another number without losing my place.
FR-7 — Recover from a failed or empty lookup (required_inference) As a Lookup User, I should be told clearly when a lookup cannot be completed or returns no name, so that I am not left with an ambiguous or broken screen.
Product context. The Lookup User is a curious, mobile-first visitor who has a WhatsApp phone number in hand and does not know who it belongs to. The number may have arrived from a message, a missed call, a business card, a screenshot, or a forwarded contact. They are not managing a contact list and they are not an administrator of anything — they have one question and they want it answered in one sitting.
Primary goal. To learn the saved name associated with a specific WhatsApp phone number.
Distinct accepted responsibilities. The Lookup User is the sole active human actor in fiery-find, and their work is a single continuous arc: understand what the site does, enter the number, submit it, and read the answer. They are the initiator of the lookup, the provider of its only input, and the sole recipient of its result. There is no second human participant in this product — no approver, no counterparty, no administrator — which is precisely what makes the role's work different from a typical multi-role application: every accepted responsibility in fiery-find belongs to this one person.
Relevant inputs and decisions. The only input is the WhatsApp phone number itself. The only decisions are whether the entered number is the one they meant to look up, and whether to run another lookup afterward. There is no configuration, no preference, and no permission decision.
Interactions with other accepted participants. None. The Lookup User interacts only with the application. The resolution of the number to a name is performed by the application's backend service, which is a system actor rather than a participant with its own goals.
Observable success. The saved name appears on the Results page at display scale, with the submitted number, detected country code, and lookup status shown beneath it. The visitor has their answer and can immediately run another lookup.
The creative direction is authoritative for this section. The muse is Gleb Kuznetsov, and the headline concept is cinematic signal intelligence — a dark void where a phone number resolves into a name. The design language is a dark room with a lit instrument in it: no white grounds, no gradient blobs, no centred headline-and-button stacking, and no blue-indigo SaaS primary.
| Role | Value | Usage |
|---|---|---|
| Background | #05070E | Deep navy-black ground; owns roughly 70% of every screen |
| Surface | #0C1220 | Glass panels |
| Panel border | rgba(34, 224, 255, 0.18) | 1px luminous stroke on glass panels |
| Text | #E8EEF9 | Body and display text; clears 15:1 on #05070E |
| Primary | #22E0FF | Electric cyan — the instrument colour: focus rings, scan lines, the result name, the primary CTA |
| Accent | #A855F7 | Violet — secondary glow only, for the resolved state and the radial halo behind the result; never a large fill |
| Muted | #6B7A99 | Micro-labels at 12px uppercase only; never used for paragraphs |
0.18em tracking; sentence case for the display headline at 500–600 weight with -0.02em tracking.clamp(44px, 9vw, 128px) / h2 clamp(28px, 4vw, 48px) / h3 24px / body 16px / micro-label 12px uppercase 0.18em.Display sizes are large and confident — the headline is the loudest object on the page — while all interface copy stays small, technical, and precise.
Floating glass panels with 20–28px radii and 1px luminous strokes. Thin concentric rings and radial tick marks around the scan instrument. Hard-edged HUD brackets at panel corners. Hairline connector lines running from the input field to the result card. No soft blobs and no drop shadows — depth comes from glow and layering, not from blur.
Full-bleed dark scene, content centred in a 560px instrument column at 1280px and edge-to-edge at 375px. Landing: oversized stacked headline upper-left, live scan instrument lower-right, HUD micro-labels pinned to the viewport corners. Lookup: the instrument panel takes the stage with the number field as its aperture. Results: the panel flips from scanning to resolved, with the name at display scale inside a violet halo and a data row beneath it.
No stock photography and no people. The imagery is the instrument itself: a procedurally drawn field of concentric rings, radial ticks, and orbiting nodes rendered in CSS/SVG, with a real-time Three.js ring field as the hero subject, plus monospace data readouts. A faint particle drift of roughly 40 dots at low opacity fills the void. The result state adds a violet radial gradient halo behind the name — the only soft form on the page.
The public entry is a near-black full-viewport scene composed as a dark room with a lit instrument in it.
Upper-left, a stacked Space Grotesk headline at clamp(44px, 9vw, 128px) reads "WHO SAVED THIS NUMBER?" in two lines, the second line in electric cyan, occupying roughly half the viewport width. Lower-right, a glass instrument panel floats at a slight 3D tilt (perspective: 1200px; rotateY(-8deg)) holding a single input field with a monospace placeholder +1 555 000 0000 and a cyan CTA labelled RUN LOOKUP. Behind both, a slow-orbiting ring field and particle drift fill the void. HUD micro-labels pin to the four viewport corners with metadata such as LOOKUP // WHATSAPP.
Nothing is centred, nothing is symmetric, and there is no gradient blob. The composition is deliberately asymmetric: the headline anchors the upper-left, the instrument anchors the lower-right, and the ring field binds them. The panel straightens to rotateY(0deg) when the input takes focus, as if the user turned the device toward them. A single cyan light sweep crosses the panel once on load and repeats only on new submissions — one deliberate motion event rather than ambient animation.
Interaction Model: Animated Motion Tempo: cinematic Hero Dimensionality: webgl
rotateY(-8deg), holding the monospace placeholder and the cyan CTA. The ring field orbits slowly behind both, particles drift, and HUD micro-labels pin to the four corners. Nothing is centred.prefers-reduced-motion, the rings hold static, the scan becomes an instant state swap, the parallax is removed, and the result appears with a simple fade. All motion is transform/opacity only.The hero dimensionality is webgl, so a crafted real-time scene is expected. The scene is a compact ring field: a set of thin concentric rings with radial tick marks and a small number of orbiting nodes, rendered in electric cyan on the deep navy-black ground, with a low-opacity particle drift behind it. The scene shows the product's defining state — an instrument coming online, waiting for a number, and ready to resolve. It is not decorative: the rings contract on submit and the field resolves into the violet bloom that accompanies the name reveal. The scene must remain legible and performant on mobile, and must degrade to the static reduced-motion arrangement described above.
NFR-1 — Anonymous access (explicit) All three pages are reachable without an account, sign-in, or any identity establishment. No accepted behavior in fiery-find requires durable, actor-specific state, so no authentication is introduced.
NFR-2 — Mobile-first responsiveness (explicit) The product is designed mobile-first. Readable text and controls stay whole at every viewport: headlines, labels, numbers, 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-3 — Motion accessibility (explicit)
All motion is transform/opacity only. Under prefers-reduced-motion, the rings hold static, the scan becomes an instant state swap, the parallax is removed, and the result appears with a simple fade. A usable static arrangement is always available.
NFR-4 — Text legibility (explicit)
Body text #E8EEF9 at 16px on #05070E clears 15:1 contrast. Muted #6B7A99 is reserved for 12px uppercase micro-labels and is never used for paragraphs.
NFR-5 — Lookup responsiveness (required_inference) The lookup interaction must return a result or a clear failure state within a short, bounded time so that the scan animation and the reveal remain a single continuous moment rather than an open-ended wait. If the lookup cannot complete within that bound, the visitor is shown the failure state and offered a retry.
NFR-6 — Input handling (required_inference)
The number field accepts typed and pasted input, including numbers with spaces, dashes, parentheses, and a leading +. Values that cannot be treated as a phone number are rejected with an inline message rather than being submitted.
0.18em tracking, pinned to the viewport corners, reflecting live product state.
fiery-find resolves a WhatsApp number to the saved name behind it. Enter +1 555 000 0000 in the instrument panel and the answer comes back as a readout, not a sentence.
Enter a WhatsApp number and fiery-find resolves the saved contact name against it.

fiery-find resolves a WhatsApp number to the saved name behind it. Enter +1 555 000 0000 in the instrument panel and the answer comes back as a readout, not a sentence.
Enter a WhatsApp number and fiery-find resolves the saved contact name against it.
No comments yet. Be the first!