rekonise-com is a full-stack, free-version clone of the rekonise.com link-unlock platform. The product lets a creator gate a destination link behind a set of social actions (subscribe, follow, join) that a visitor must complete before the content is revealed — without the visitor ever needing an account. The clone reproduces the free tier only: no payment, no paid tier, no billing surface of any kind.
The audience is content creators, musicians, streamers and their followers: mobile-first, attention-poor, and allergic to enterprise chrome. The product must read as a creator brand — a locked door the audience wants to walk through — not as a SaaS dashboard.
Two human roles use the product:
Everything in this document is scoped to the free version. Paid features are explicitly out of scope and must not be implemented.
rekonise-com is delivered as a full-stack web application: a React front end and a Python/FastAPI back end with durable storage, run together via Docker Compose. The back end owns link persistence, unlock-link resolution, per-link click and unlock counting, and server-side validation of unlock completion.
Actors
| Actor | Type | Role |
|---|---|---|
| Visitor | Human persona | Opens a shared unlock link, completes the free unlock step, reaches the destination. No account required. |
| Link Creator | Human persona | Enrolls, creates and shares durable unlock links, monitors their performance. |
| Back end service | System actor | Persists links, resolves unlock links, counts clicks/unlocks, validates unlock completion server-side. |
Accepted behavior in scope
rekonise.com/your-name/custom-name) with per-link click tracking.Narrow exclusions
Delivery ownership. The product is first-party and full-stack. The application owns its own identity for the Link Creator: a creator must be able to enroll once, then return and keep controlling the durable links they created. That identity is application-owned and is established through an anonymous entry interaction (Sign Up) and re-established through returning verification (Login). The Visitor never establishes identity — the unlock workflow is anonymous and ephemeral by design, and the product must never require a Visitor account.
Access boundary. Landing, Sign Up, Login, and Unlock are reachable without an existing session. Create Link is the only destination that requires the Link Creator to be verified, because it operates on durable creator-owned state. Sign Up and Login are themselves anonymous entry surfaces — a protected destination cannot own the interaction that grants access to itself.
Current vs. future. Everything described in this document is current. The free version is the complete current product. No paid capability, no billing surface, and no adjacent account-management module is part of the current or planned scope.
Provider and external boundaries. Social platforms (YouTube, TikTok, Spotify, Discord, and the wider set of integrations) are external destinations. The product links out to them and records that a step was completed; it does not own their authentication, their content, or their APIs beyond the link-out and the completion signal. Email lists are first-party data captured during unlock.
The reference directive for rekonise.com declares feature_reference and structure_reference uses only — no content_source. No Source Content Inventory is therefore included.
Information and state. Anonymous public entry. Headline "Control access to your content and grow your audience". Feature sections grouped under Social Actions, Audience Insights, Email Capturing, Integrations, Analytics, Link-in-Bio, Custom URLs, Ad-Free Links, Expiring Content, Bypass Protection. Trust section: "Trusted by 101K+ content creators who gained 664M+ followers". Testimonials with creator quotes and metrics. Repeated "Get started for free" calls to action.
Primary actions. "Create my first link" (primary CTA, routes to Sign Up when unauthenticated, Create Link when verified). "Sign up free". "Sign in". "How it works" (in-page anchor to the feature sections).
Supporting actions. Navigate feature sections; read testimonials; follow the repeated CTA after the feature list.
Domain entities. Feature category, capability, testimonial, trust metric, integration platform.
Component responsibilities.
rekonise.com/your-name/custom-name with click counts.States. Loading: skeleton rules for feature sections. Empty: not applicable (static marketing content). Success: full render. Error: if feature content fails to load, render the headline, hero CTAs, and navigation so the entry path stays usable, with an inline retry. Recovery: retry re-fetches feature content without losing scroll position.
Information and state. Anonymous enrollment surface for a person who wants to create durable shareable links. Explains that the product is free and that no payment is ever required.
Primary actions. Submit enrollment (email + password). Navigate to Login if already enrolled.
Supporting actions. Read the free-version statement; correct invalid input.
Domain entities. Creator account, credential, enrollment attempt.
Component responsibilities.
States. Loading: submit control in progress state, form disabled. Empty: pristine form. Success: enrollment accepted, session established, routed to Create Link. Error: invalid email, weak password, or already-registered email — each shown inline against the offending field, form re-enabled, entered values preserved. Recovery: correct the field and resubmit; or follow the cross-link to Login if the account already exists.
Information and state. Anonymous returning-verification surface for a Link Creator who already enrolled and needs to continue controlling previously created durable links.
Primary actions. Submit credentials. Navigate to Sign Up if not yet enrolled.
Supporting actions. Correct invalid input; retry after a failed attempt.
Domain entities. Creator account, credential, verification attempt.
Component responsibilities.
States. Loading: submit control in progress state, form disabled. Empty: pristine form. Success: verification accepted, session established, routed to Create Link. Error: unrecognized credentials — a single non-enumerating message, form re-enabled, email value preserved. Recovery: retry, or follow the cross-link to Sign Up.
Information and state. Verified Link Creator's working surface. Shows the creator's namespace, the configured unlock link, its required social actions, its target destination, its expiry setting, and its performance figures (clicks, unlocks, views, conversion percentage, unlock-today, total unlocks, per-day chart). Lists the creator's custom URLs with per-link click counts. Lists captured email subscribers grouped by segment.
Primary actions. Configure required social actions and target URL; create the unlock link; copy the shareable link; set an expiry; view per-link click counts; view unlock metrics; view captured email segments.
Supporting actions. Add or remove a required social action; adjust the target URL; change the expiry; revisit a previously created link.
Domain entities. Unlock link, custom URL, namespace, required social action, target URL, expiry setting, click, unlock, view, conversion rate, email subscriber, segment.
Component responsibilities.
rekonise.com/your-name/custom-name URL with a copy control.States. Loading: ruled skeleton rows for the link index and metrics. Empty: no links yet — the configuration panel is the only active surface, with a prompt to create the first link. Success: link created, shareable URL shown with copy control, row appears in the custom URL index. Error: invalid target URL or no social action selected — inline message, configuration preserved. Recovery: correct the configuration and resubmit; previously created links remain intact and listed.
Information and state. Anonymous surface reached by opening a shared unlock link. Shows the required social actions as a ruled checklist, a live progress counter (e.g. "Unlock progress 0/3 done"), and a per-step completion indicator. Ad-free: no distractions before unlock. If the link has expired, shows an expiry state instead of the checklist.
Primary actions. Complete each required social action; submit an email when the link captures emails; activate Unlock once all steps are complete; reach the destination.
Supporting actions. Re-open a social action if it was not registered; correct an invalid email.
Domain entities. Unlock link, required social action, step completion, progress count, captured email, segment, destination URL, expiry.
Component responsibilities.
States. Loading: checklist skeleton with progress counter at 0. Empty: not applicable. Success: all steps complete, Unlock appears, destination reached. Error: a step not registered, or an invalid email — inline message, completed steps preserved. Recovery: re-open the unregistered action, or correct the email and resubmit; progress is not lost. Expired: a clear expiry message with no unlock path.
Each requirement is a distinct story point with provenance, lifecycle facts, and observable acceptance.
FR-1 — Landing value proposition (explicit) As a Visitor, I should land on a public page that states what the product does — control access to your content and grow your audience — so that I understand the offer before doing anything else.
FR-2 — Landing feature sections (explicit) As a Visitor, I should see the product's capabilities grouped under Social Actions, Audience Insights, Email Capturing, Integrations, Analytics, Link-in-Bio, Custom URLs, Ad-Free Links, Expiring Content, and Bypass Protection, so that I can judge whether it fits my needs.
FR-3 — Landing trust and testimonials (explicit) As a Visitor, I should see "Trusted by 101K+ content creators who gained 664M+ followers" and creator testimonials with quotes and metrics, so that I can trust the product.
FR-4 — Landing navigation (explicit) As a Visitor, I should see a minimal navigation with "How it works", "Sign up free", and "Sign in", so that I can move to the action I want.
FR-5 — Primary landing CTA (explicit) As a Visitor, I should be able to click "Create my first link" to begin the setup workflow for a social-unlock link.
FR-6 — Self-service enrollment (required_inference) As a Link Creator, I should be able to enroll myself with an email and password so that I can create durable shareable links.
FR-7 — Returning verification (required_inference) As a Link Creator, I should be able to verify myself on return so that I can continue controlling the durable links I already created.
FR-8 — Configure a social-unlock link (explicit) As a Link Creator, I should be able to configure the required social actions and the target URL for a link so that viewers must complete those actions before reaching the destination.
FR-9 — Social action types (explicit) As a Link Creator, I should be able to require actions such as Subscribe, Join, and Follow, so that the unlock matches the platform I am growing on.
FR-10 — Durable link persistence and resolution (required_inference) As a Link Creator, I should have my created links persisted and resolvable so that a shared link keeps working after I leave the page.
FR-11 — Custom URLs under the creator namespace (explicit)
As a Link Creator, I should be able to set a branded custom URL under my namespace (e.g. rekonise.com/your-name/custom-name) so that my links look clean and on-brand.
FR-12 — Per-link click tracking (explicit) As a Link Creator, I should see a click count per link so that I know which links are being opened.
FR-13 — Audience Insights metrics (explicit) As a Link Creator, I should see unlock today, total unlocks, views, conversion percentage, and a per-day chart so that I can judge how my links perform in real time.
FR-14 — Email capturing during unlock (explicit) As a Link Creator, I should be able to have viewer emails captured during the unlock so that I build my audience while people unlock.
FR-15 — Email segmentation (explicit) As a Link Creator, I should see captured emails grouped into segments such as Newsletter, VIP, and Beat Buyers so that I can target them differently.
FR-16 — Multi-platform integrations (explicit) As a Link Creator, I should be able to require actions on multiple social platforms — YouTube, TikTok, Spotify, Discord, and more — managed in one place, so that I grow across the platforms I actually use.
FR-17 — Link-in-Bio profile page (explicit) As a Link Creator, I should be able to present a profile page with all my links and socials in one place so that my audience has a single destination.
FR-18 — Ad-free locked pages (explicit) As a Visitor, I should see a locked page with no ads or distractions before unlock so that the only thing in front of me is the unlock step.
FR-19 — Expiring content (explicit) As a Link Creator, I should be able to set a time limit on a link's access so that I can create urgency.
FR-20 — Unlock progress display (explicit) As a Visitor, I should see my progress as I complete the required actions (e.g. "Unlock progress 0/3 done") so that I know how much is left.
FR-21 — Unlock only when all steps are complete (explicit) As a Visitor, I should see the Unlock button appear only once every required step is done, so that the gate is real.
FR-22 — No viewer account required (explicit) As a Visitor, I should be able to complete the unlock without creating an account so that nothing stands between me and the content.
FR-23 — Bypass Protection (explicit) As a Link Creator, I should have unlock completion validated server-side so that bypass scripts and extensions cannot skip the required steps.
FR-24 — Free version only (explicit) As a Visitor or Link Creator, I should never encounter a payment, a paid tier, or an upgrade prompt, so that the free version is genuinely free.
Product context. The Visitor arrives from a shared unlock link, usually on a phone, usually with a specific piece of content in mind. They did not come to use a product; they came to get past a door. They have no account, no history with the site, and no patience for friction.
Primary goal. Reach the destination content by completing the required social actions, without paying anything and without creating an account.
Distinct accepted responsibilities.
Relevant inputs or decisions. Which action to complete next; whether to hand over an email address; whether to abandon if the gate feels unreasonable.
Interactions with other accepted participants. The Visitor is the counterparty to the Link Creator's gate. The Link Creator configured the steps the Visitor must complete; the Visitor's completion is what the Link Creator later sees as an unlock. The Visitor never interacts with the Link Creator directly.
Observable success. The Unlock control appears, the destination is reached, and the Visitor never saw a payment prompt or an account prompt.
What makes this role different. The Visitor is the only participant who never establishes identity and never owns durable state. Their entire lifecycle is ephemeral and anonymous — the product must work for someone who will never return and never sign in.
Product context. The Link Creator is a content creator, musician, or streamer who wants to grow an audience by gating content behind social actions. They work from a sparse, single-column dashboard, not a dense analytics tool. They care about whether the link works and how many people got through it.
Primary goal. Produce a working shareable unlock link and know that recipients can open it and complete it.
Distinct accepted responsibilities.
Relevant inputs or decisions. Which social actions to require; what the target URL is; what custom name to use; whether to set an expiry; which segment captured emails belong to.
Interactions with other accepted participants. The Link Creator configures the gate that the Visitor must pass. The Visitor's completions become the creator's unlock metrics and captured subscribers. The creator never interacts with the Visitor directly.
Observable success. A shared link that a recipient can open, complete, and pass through — with the creator able to see the resulting clicks and unlocks.
What makes this role different. The Link Creator is the only participant with durable, privately owned state: their links, their namespace, their metrics, their subscriber lists. That ownership is exactly why enrollment and returning verification exist, and why Create Link is the only protected destination.
rekonise.com/your-name/custom-name. If the name is already taken, an inline message appears and the rest of the configuration is preserved.The creative direction is authoritative for this section. Muse: Tobias van Schneider. Headline idea: editorial swagger for a link-unlock product — oversized type, black ground, one acid signal.
Colour tokens (dark mode)
| Role | Token | Hex |
|---|---|---|
| Background | --bg | #0B0B0C |
| Surface | --surface | #141416 |
| Hairline rule | --rule | #2A2A2C |
| Text (primary) | --text | #F4F1EA |
| Primary (type / unlocked state) | --primary | #F4F1EA |
| Accent (the only colour) | --accent | #FF3B1F |
| Muted (labels, counts, metadata) | --muted | #8A877F |
Black ground carries roughly 70% of every screen. Warm off-white is the type and the "unlocked" state. Vermilion is rationed: it marks the single live action on a screen — "Create my first link", "Unlock", the active progress step, the numbered section numerals. Surfaces are flat hairline-bordered panels, never glass. No blue, no indigo, no gradients, no glassmorphism.
Typography
-0.03em, leading 0.88. Headlines run to 128px desktop and may break mid-word across two or three stacked lines.0.14em.Shape language. Sharp corners everywhere — 0px radius on cards, inputs, and buttons. 1px hairline rules instead of shadows. The only soft shape in the system is the circular progress ring on unlock steps. Panels are hard-edged rectangles that butt against each other like a magazine spread. The CTA is a solid vermilion rectangle, never a pill.
Layout. Asymmetric editorial grid: 12 columns, content deliberately off-centre with a 9-column headline block pushed left and a 3-column metadata rail on the right. Sections are separated by full-width hairline rules and numbered like a magazine contents page (01 Social Actions, 02 Audience Insights, …). Feature sections alternate between a full-bleed type block and a two-column text-plus-interface-panel arrangement. The dashboard is a single-column stack of ruled rows — no card grid, no tile wall. The footer is one dense ruled index of links in three columns.
Imagery. Large-scale monochrome photography of creators at work — a hand on a fader, a mic in low light, a phone screen glowing in a dark room — cropped hard and bled off the left or right edge, treated with a heavy black-and-white grade and one duotone pass in vermilion for the hero image only. No stock smiling people, no illustration, no 3D blobs. Dashboard panels are the second imagery: real interface, rendered flat on black.
Accessibility. Readable text and controls stay whole at 375px, 768px, and 1280px — headlines, wordmarks, labels, numbers, and controls stay entirely inside the viewport and their container, wrapping or scaling (e.g. font-size: clamp(...) with its mobile size) to fit. Imagery and decoration may bleed, crop, or overlap; readable text and controls may not.
The poster that is also a door.
The Landing page is a full-viewport black poster. The headline "CONTROL ACCESS TO YOUR CONTENT" is set in Archivo Black at clamp(56px, 11vw, 128px), stacked over three lines in a 9-column block, flush left, with the words ACCESS and CONTENT knocked out in vermilion while the rest stays off-white. Under it sits a single vermilion rectangle CTA — "Create my first link" — pinned flush to the left grid edge, with "Sign up free" as a hairline-outlined rectangle beside it. The right 3 columns hold a vertical ruled rail: "Trusted by 101K+ creators", "664M+ followers gained", "70+ integrations" as stacked label/value pairs. Behind the headline, a black-and-white duotone photograph of a creator's hands on a phone bleeds off the right edge at 40% opacity, cropped so it never touches the type. The nav is a single hairline row: wordmark left, "How it works / Sign up free / Sign in" right, 14px uppercase.
The concept carries through the product as a set of signature moves:
rekonise.com/your-name/custom-name in Archivo 500 with the click count right-aligned in Archivo Black, separated by hairlines; no card, no hover lift, just the row inverting to off-white-on-vermilion on hover.This concept only recomposes accepted content, states, and controls. It introduces no new behavior, page, or destination.
Interaction Model: Static Motion Tempo: restrained Hero Dimensionality: flat
Landing Hero Motion Brief
prefers-reduced-motion collapses all of it to instant state changes: headline and photograph appear immediately, the progress ring jumps to its filled state, and numbers render at their final values.NFR-1 — Full-stack delivery (explicit) The product must be implemented as a full stack: a front end and a back end. Rationale: explicit user constraint.
NFR-2 — Free version only (explicit) No payment, billing, paid tier, or upgrade capability may be implemented anywhere in the product. Rationale: explicit user constraint and hard scope boundary.
NFR-3 — Durable persistence (required_inference) Created unlock links, their configuration, their click and unlock counts, and captured emails must survive process restarts. Rationale: a shared link must keep working after the creator leaves the page, and metrics must accumulate.
NFR-4 — Server-side unlock validation (explicit) Unlock completion must be validated on the server so that bypass scripts and extensions cannot skip required steps. Rationale: explicit Bypass Protection capability.
NFR-5 — Anonymous unlock path (explicit) The unlock workflow must complete without any viewer account, sign-up, or login. Rationale: explicit "no viewer account required" behavior.
NFR-6 — Ad-free locked pages (explicit) The Unlock page must render no advertising or promotional content before unlock. Rationale: explicit Ad-Free Links capability.
NFR-7 — Mobile-first readability (required_inference) Readable text and controls must stay whole and inside the viewport at 375px, 768px, and 1280px. Rationale: the audience is mobile-first and attention-poor; the creative direction makes this an explicit constraint.
NFR-8 — Reduced-motion support (required_inference)
All motion must collapse to instant state changes under prefers-reduced-motion. Rationale: accessibility baseline for the directed motion system.
NFR-9 — Non-enumerating credential errors (required_inference) Login failures must not reveal whether an email is registered. Rationale: standard protection for the application-owned identity the product requires.
docker-compose.yml as the inventory of runnable services — the front end and the backend, with the database as a service.No source-specified technology was overridden; the stack above follows the full-stack constraint and the standard service boundary of one shared backend.
Assumptions
Constraints
#FF3B1F. No rounded cards, pill buttons, soft shadows, or glassmorphism. No grid of identical hover-lift feature cards. No centred headline-plus-subtext-plus-button SaaS hero. No gradient blobs or particle fields. No stock smiling-people photography or illustrated mascots. No Inter, Roboto, or Poppins for headings. No dense dashboard chrome — no sidebar trees, no filter bars, no sparkline clutter.rekonise.com/your-name/custom-name.No completed page designs yet.
Completed design pages will appear here when they are ready to preview.
No completed page designs yet.
Completed design pages will appear here when they are ready to preview.
No comments yet. Be the first!