vaderapulse.DEV DOCS GitHub ↗

Start here

Vadera Pulse · Developer documentation

Everything needed to understand, extend, and ship the Pulse mobile app. The interactive prototype is the working spec: every screen below opens live, and every visual decision is documented here · colors, type, components, and the rules the product must never break.

Run the prototype

All 30 screens, framed in an iPhone, with an admin jump menu.

Open app ↗

New here?

Read Product rules first · ten constraints that define Pulse · then walk the onboarding flow in order.

Product rules →

What Pulse is

A verified influence score for creators · think credit score, not follower count. One number, 0–99, computed every morning at 7:00 AM from five live signals pulled read-only from the creator's own connected accounts. The score gates a brand marketplace, powers a shareable verified profile, and is coached by an AI that reads the user's live data.

Stack pointers

Start here

Quickstart

1 · Open any screen

Every screen has a stable id. Append ?s=<id> and the app opens there · bare screen, no admin chrome, at whatever viewport you request. This is what Figma imports and what you develop against.

https://vadera.onenos.ai/app/vadera-pulse-app.html?s=score

2 · Full prototype mode

Open without ?s= for the framed iPhone plus the admin bar (theme toggle + screen jumper). The admin bar is prototype tooling only · it never ships.

3 · The screen map

The sidebar lists every screen grouped by flow, each with its behavior notes and live link. Ids are shared across the prototype, Figma frame names, and this documentation · one vocabulary everywhere.

Confidential

Internal Vadera Capital documentation. Do not share links outside the team. All outputs are drafts until human review.

Start here

Product rules

Ten constraints that define Pulse. Code that violates any of these is wrong even if it works.

Start here

Core flows

First run

Welcome → Register (ToS checkbox, optional invite code) → Verify email → Profile setup (handle, photo, up to 3 niches) → Tour (4 cards, skippable) → Connect checklist (2+ encouraged, skippable) → Computing (~5s staged) → Notification primer → Score reveal with count-up.

Daily loop

7 AM push → open → count-up (+confetti if up) → Today's Move → done inside a minute. The Coach orb ripples only when it holds a fresh insight; opening Coach consumes the state.

Monetization

Free: 5 Coach messages + 3 simulator runs/month → paywall fires on the 6th → Pro $7.99 / Founding $17.99 (yearly −20%, $100 bonus on Founding annual).

Growth

Public profile = Linktree-style landing page; every visitor sees Join Pulse. Rewards: qualified referral = signup + 2 connections; tiers at 5/15/25 on a rolling 30-day window.

Design system

Colors

Two palettes exist. Do not mix them.

The PRODUCT palette below is for the app and product web. The CORPORATE palette (purple #6C63FF, gold #D4AF37, navy #1A1D2E, Arial) is for legal/investor documents only.

Product palette

TokenHexUse
--bg#0f0b1aApp background (dark)
--card#1a1630Cards, surfaces
--card2#241d40Raised surfaces, chips
--pb#c084fcPrimary purple (bright)
--purple#a855f7Purple (solid controls)
--mg#e879c2Magenta-pink (gradient end)
--gold#f4c97aTier, Founding, payouts
--green#34d399Live, success, up-moves
--red#fb7185Destructive only · never for score drops
--t1#f3f0faPrimary text
--t2#b8a8d4Secondary text
--t3#8d80a8Muted text, labels

The signature gradient

background: linear-gradient(90deg, #c084fc, #e879c2);

Used on: score ring stroke, primary CTAs, headline serif accents, the Market jewel, avatars. Purple-to-pink · the old purple-to-gold gradient is corporate-docs only.

Light mode

--bg:#f7f5fc; --card:#ffffff; --card2:#ece5fa;
--t1:#191428; --t2:#41395c; --t3:#6b6287;
/* accents shift darker for contrast: green #0d8a5f, red #d63a56, gold #a9812e */

Design system

Typography

FaceRoleNotes
InterUI text, body, labels400 / 600 / 700 / 800
Fraunces italicDisplay accents, plan names, "pulse." wordmarkAlways italic 600, often gradient-clipped
OutfitEvery number · scores, prices, counters600, tabular-nums, letter-spacing −.01em. Never a coding mono.
Comfortaa"vadera" wordmark stand-inReplace with the licensed brand font in production

Wordmark construction

<span class="wordmark">vadera<em>pulse.</em></span>

.wordmark{font-family:'Comfortaa';font-weight:700;font-size:18px;color:var(--t1);
  display:inline-flex;align-items:center}
.wordmark em{font-family:'Fraunces',serif;font-style:italic;font-weight:600;
  background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}

Voice

Design system

Components

Extract these as Figma components and code modules · they repeat across the app. All live examples are in the prototype; inspect with devtools for exact values.

Score ring

<svg width="122" height="122" viewBox="0 0 122 122" style="transform:rotate(-90deg)">
  <circle cx="61" cy="61" r="53" stroke="var(--b1)" stroke-width="8" fill="none"/>
  <circle cx="61" cy="61" r="53" stroke="url(#g)" stroke-width="8" fill="none"
    stroke-dasharray="333" stroke-dashoffset="86.6" stroke-linecap="round"/>
</svg>
<!-- dashoffset = 333 × (1 − score/100). Count-up animates 0→score in 900ms ease-out;
     fire confetti ONLY when the daily delta is positive. -->

Signal row

Name + weight chip, score + delta arrow (green ▲ / red ▼ / gray ·), 4px gradient bar, collapsible note. Down deltas use the muted treatment on the Score screen itself.

Deal card (Marketplace)

Full-viewport width, snap-align center; 150px brand hero with badge chip bottom-left; payout top-right in Outfit; full-width gradient Apply CTA. Rail = flex, scroll-snap-x mandatory, with pagination dots synced on scroll.

Coach orb

52px gradient FAB above the tab bar on Score and Feed. Glyph: center dot + two concentric rings. State: still = nothing new; center-out triple ripple = new insight; opening Coach clears it. No badge dots.

Floating tab bar

Detached pill, blur 22px, 5 slots, Market jewel raised −22px in the center with gradient orb. Hides on scroll-down, returns on scroll-up. Order is fixed: Score · Feed · ⬤Market · Messages · Profile.

Chips, toggles, ticket bubbles

Niche chips (999px radius, gradient when selected, max 3); iOS-style 46×26 switches; chat bubbles shared by Coach, Messages, and Support tickets (admin messages carry a purple name tag).

Build

Build a new screen

Every screen in the prototype follows one skeleton. Copy it, and the screen automatically gets deep-linking, admin-menu access, clean import mode, and tab-bar behavior.

1 · The skeleton

<section class="screen" id="scr-YOURID">
  <div class="topbar">
    <span class="back" onclick="go('profile')">‹ Back</span>
  </div>
  <h1>Screen title</h1>
  <div class="sub" style="margin-bottom:14px">One-line purpose.</div>

  <div class="card">…content…</div>
</section>

2 · Register it

3 · It's now addressable

…/vadera-pulse-app.html?s=YOURID   ← live, clean, Figma-importable

4 · Rules checklist before you ship it

Build

Profiles & switching

Founding members can run up to 3 Profiles. One Profile = one persona = at most one account per platform. Every Profile has its own Pulse score, history, Coach context, marketplace eligibility, public page, and member card. Scores are never blended across Profiles: brands book personas, not bundles, and a verified 74 must mean one identity.

The rule (Meta pattern)

The switcher only exists when there is something to switch. Instagram shows no account chevron with one account; the affordance appears when account #2 does, while the add path waits in settings. Switching UI for a state that does not exist reads as clutter or a bug.

State table

Surface1 profile (every user at signup)2+ profiles
Score screen pillHidden entirely. No switching chrome."@handle · 74 ▾" pill above the hero card. Tap opens the sheet.
Bottom sheetReachable only from settings. Shows the one profile + "Add profile" row ("1 of 3 used").All profiles with live score chips, checkmark on active, "Add profile" row ("2 of 3 used").
Profile settings row"Profiles · Add a profile · up to 3 with Founding" (doubles as the Founding upsell for free users)"Profiles · 2 of 3 used · switch or add · Founding"
Sheet eyebrowYOUR PROFILE · FOUNDINGYOUR PROFILES · FOUNDING

What switching swaps

Everything. Score ring, delta, count-up, Coach context, Marketplace eligibility and applications, public profile URL, member card, connect checklist scope, notification tagging. There is no partial switch.

See both states live

Multi-profile demo:  app/vadera-pulse-app.html?s=score
Single-profile demo: app/vadera-pulse-app.html?s=score&profiles=1

The profiles=1 parameter trims the demo account to one profile so the single state is inspectable and Figma-importable. It is demo tooling only; production derives the state from the user's real profile count.

Implementation notes (prototype)

PROFILES = [...]            // the account list; production: from API
pillCheck()                 // runs on load; single = PROFILES.length < 2
  · hides .acctpill when single
  · hides the second sheet row, flips eyebrow and settings copy
switchProfile(i)            // swaps score, delta, ring, checkmarks, then re-runs countUp()
Ship rule

Any new surface that shows identity (score, card, public page, notifications) must read the active Profile, and must render nothing switcher-related when the user has one profile. If you add a screen, test it at both demo URLs before merging.

Build

Figma workflow

Project: Vadera Pulse · App v2 → file Pulse App · Screens (from prototype). Pages: 00 Cover · 01 Onboarding · 02 App screens (Figma free tier caps at 3 pages · subscreens and states live as sections on page 02).

Importing screens

Division of labor

UX adjustments happen in Figma (Saiedoz). Behavior and copy truth lives in the prototype. When they disagree, flag it · don't silently fork.

Motion isn't in Figma

Count-up, confetti, coach-orb ripple, computing sequence, and tab-bar hide exist only in the live prototype. Annotate Figma frames with the live URL for motion reference.

Build

Downloads

Everything, one file

Prototype + offline docs + README + screen-id map. Give this single zip to any new developer.

Download the complete bundle ↓

Prototype · all screens

Self-contained HTML. Admin bar + framed iPhone when opened directly; bare screens via ?s=.

Download ↓

Open in browser

Hosted copy of the same file.

Open ↗

Repos & assets

Screens / Onboarding

Welcome

Product entry. vadera pulse wordmark, single CTA to register, sign-in link, consent promise, Vadera Capital corporate footer.

Open it live

Deep link renders the bare screen (no admin bar, no bezel) at any viewport · the same URL the Figma plugin imports.

https://vadera.onenos.ai/app/vadera-pulse-app.html?s=welcome

Open screen ↗

Screens / Onboarding

Sign in

Email + password only for beta. Remember me, forgot-password, create-account link. No social sign-in.

Open it live

Deep link renders the bare screen (no admin bar, no bezel) at any viewport · the same URL the Figma plugin imports.

https://vadera.onenos.ai/app/vadera-pulse-app.html?s=signin

Open screen ↗

Screens / Onboarding Fields: First + Last (KYC-ready, never split a full name later), live phone mask (407) 555-1234, quiet email validation on blur, DOB auto-mask with instant 13+ check.

Register

Full name, email, phone, password (8+ chars, number, symbol), optional invite code (Rewards attribution), mandatory ToS checkbox · CTA blocked until checked.

Open it live

Deep link renders the bare screen (no admin bar, no bezel) at any viewport · the same URL the Figma plugin imports.

https://vadera.onenos.ai/app/vadera-pulse-app.html?s=register

Open screen ↗

Screens / Onboarding

Verify email

6-digit code to the registration email. Resend + check-spam. No phone verification.

Open it live

Deep link renders the bare screen (no admin bar, no bezel) at any viewport · the same URL the Figma plugin imports.

https://vadera.onenos.ai/app/vadera-pulse-app.html?s=verify

Open screen ↗

Screens / Onboarding

Profile setup

Photo upload (3x brand-views nudge), handle claim, niche picker: 16 chips, max 3. Niches drive Feed, benchmark, brand matching.

Open it live

Deep link renders the bare screen (no admin bar, no bezel) at any viewport · the same URL the Figma plugin imports.

https://vadera.onenos.ai/app/vadera-pulse-app.html?s=psetup

Open screen ↗

Screens / Onboarding

Welcome tour

4 swipeable cards, skippable: what Pulse is, the five signals, the money, consent. Order: identity, mechanism, payoff, safety.

Open it live

Deep link renders the bare screen (no admin bar, no bezel) at any viewport · the same URL the Figma plugin imports.

https://vadera.onenos.ai/app/vadera-pulse-app.html?s=tour

Open screen ↗

Screens / Onboarding

Connect checklist

TikTok / Instagram / Facebook rows. Encourages 2+ (progress 0/2, CTA dims until met); skip always available.

Open it live

Deep link renders the bare screen (no admin bar, no bezel) at any viewport · the same URL the Figma plugin imports.

https://vadera.onenos.ai/app/vadera-pulse-app.html?s=setup

Open screen ↗

Screens / Onboarding

Computing score

~5s staged sequence, four steps check off, auto-advance. Deliberate labor-illusion pacing.

Open it live

Deep link renders the bare screen (no admin bar, no bezel) at any viewport · the same URL the Figma plugin imports.

https://vadera.onenos.ai/app/vadera-pulse-app.html?s=compute

Open screen ↗

Screens / Onboarding

Notification primer

Pre-permission screen at peak excitement, before the iOS dialog. One push a day when the score recomputes.

Open it live

Deep link renders the bare screen (no admin bar, no bezel) at any viewport · the same URL the Figma plugin imports.

https://vadera.onenos.ai/app/vadera-pulse-app.html?s=notify

Open screen ↗

Screens / Main tabs

Score (home)

Hero ring with count-up; confetti on up-days only. Today's Move card, streaks/goals row, collapsible five signals, coverage card, member-card entry.

Open it live

Deep link renders the bare screen (no admin bar, no bezel) at any viewport · the same URL the Figma plugin imports.

https://vadera.onenos.ai/app/vadera-pulse-app.html?s=score

Open screen ↗

Screens / Main tabs

Feed

Proof-of-growth feed: Coach niche patterns (anonymized), Circle milestones (mutual consent), niche brand briefs, shareable milestones.

Open it live

Deep link renders the bare screen (no admin bar, no bezel) at any viewport · the same URL the Figma plugin imports.

https://vadera.onenos.ai/app/vadera-pulse-app.html?s=feed

Open screen ↗

Screens / Main tabs

Marketplace

One full-width deal per viewport, snap-swipe. Tap a deal for the full brief (deliverables, requirements, payment) and one-tap apply; Your Applications tracks status. Fictional sample brands only.

Open it live

Deep link renders the bare screen (no admin bar, no bezel) at any viewport · the same URL the Figma plugin imports.

https://vadera.onenos.ai/app/vadera-pulse-app.html?s=market

Open screen ↗

Screens / Main tabs

Messages

Verified-sender-only inbox: brands, Circles, Coach recaps. Communication-safety line: keep the conversation on Pulse.

Open it live

Deep link renders the bare screen (no admin bar, no bezel) at any viewport · the same URL the Figma plugin imports.

https://vadera.onenos.ai/app/vadera-pulse-app.html?s=msgs

Open screen ↗

Screens / Main tabs

Profile

Identity card + settings list + corporate footer with version string.

Open it live

Deep link renders the bare screen (no admin bar, no bezel) at any viewport · the same URL the Figma plugin imports.

https://vadera.onenos.ai/app/vadera-pulse-app.html?s=profile

Open screen ↗

Screens / Subscreens

Coach

Chat with live-score context + behaviors-only simulator (estimates taper stacked). Free meter links to paywall. Entered via signal orb · ripples only when a new insight waits.

Open it live

Deep link renders the bare screen (no admin bar, no bezel) at any viewport · the same URL the Figma plugin imports.

https://vadera.onenos.ai/app/vadera-pulse-app.html?s=coach

Open screen ↗

Screens / Subscreens

Coach paywall

Fires on 6th free message. Reset date, Pro features, $7.99 CTA, quiet decline.

Open it live

Deep link renders the bare screen (no admin bar, no bezel) at any viewport · the same URL the Figma plugin imports.

https://vadera.onenos.ai/app/vadera-pulse-app.html?s=paywall

Open screen ↗

Screens / Subscreens

Connect accounts

Live/lapsed platform rows. Lapsed = data left the score this morning, returns on reconnect.

Open it live

Deep link renders the bare screen (no admin bar, no bezel) at any viewport · the same URL the Figma plugin imports.

https://vadera.onenos.ai/app/vadera-pulse-app.html?s=connect

Open screen ↗

Screens / Subscreens

Public profile & links

Instagram-pattern page + Linktree links + Join Pulse and Message buttons. Every visit is an acquisition surface.

Open it live

Deep link renders the bare screen (no admin bar, no bezel) at any viewport · the same URL the Figma plugin imports.

https://vadera.onenos.ai/app/vadera-pulse-app.html?s=pubprofile

Open screen ↗

Screens / Subscreens

Member card

Wallet card: photo inside score ring, QR verify, Add to Apple Wallet (production = signed .pkpass, company dev account).

Open it live

Deep link renders the bare screen (no admin bar, no bezel) at any viewport · the same URL the Figma plugin imports.

https://vadera.onenos.ai/app/vadera-pulse-app.html?s=pulsecard

Open screen ↗

Screens / Subscreens

Trends

History and Forecast tabs. Forecast (Pro) shows the 4-week projection band; entry links live on the Score signals card and Profile.

Open it live

Deep link renders the bare screen (no admin bar, no bezel) at any viewport · the same URL the Figma plugin imports.

https://vadera.onenos.ai/app/vadera-pulse-app.html?s=history

Open screen ↗

Screens / Subscreens

Choose your plan

Monthly/Yearly (save 20%) with live price swap. Pro $7.99, Founding $17.99 middle best-value + $100 annual bonus, Standard free.

Open it live

Deep link renders the bare screen (no admin bar, no bezel) at any viewport · the same URL the Figma plugin imports.

https://vadera.onenos.ai/app/vadera-pulse-app.html?s=subscription

Open screen ↗

Screens / Subscreens

Rewards

Qualified = signup AND 2+ connections. Rolling 30 days. Tiers: 5=14d Pro, 15=1mo, 25=3mo+Founding badge. Cap 4.5 months.

Open it live

Deep link renders the bare screen (no admin bar, no bezel) at any viewport · the same URL the Figma plugin imports.

https://vadera.onenos.ai/app/vadera-pulse-app.html?s=invite

Open screen ↗

Screens / Subscreens

Privacy & data

Visibility toggle, download data, revoke connection (immediate), in-app account deletion (App Store requirement).

Open it live

Deep link renders the bare screen (no admin bar, no bezel) at any viewport · the same URL the Figma plugin imports.

https://vadera.onenos.ai/app/vadera-pulse-app.html?s=privacy

Open screen ↗

Screens / Subscreens

Support & tickets

No email. Category chips + description opens a ticket; admins reply in-thread. OPEN/RESOLVED chips.

Open it live

Deep link renders the bare screen (no admin bar, no bezel) at any viewport · the same URL the Figma plugin imports.

https://vadera.onenos.ai/app/vadera-pulse-app.html?s=support

Open screen ↗

Screens / Subscreens

Ticket thread

Chat thread with named admin, status chip, mark-as-resolved.

Open it live

Deep link renders the bare screen (no admin bar, no bezel) at any viewport · the same URL the Figma plugin imports.

https://vadera.onenos.ai/app/vadera-pulse-app.html?s=ticket

Open screen ↗

Screens / Subscreens

Requests

Strangers and Circle invites land here first. Accept, decline (silent), or block.

https://vadera.onenos.ai/app/vadera-pulse-app.html?s=requests

Open screen ↗

Screens / Subscreens

Blocked accounts

Privacy list. Blocked accounts are never notified. Unblock anytime.

https://vadera.onenos.ai/app/vadera-pulse-app.html?s=blocked

Open screen ↗

Screens / Subscreens

Your Circles

Faces-first mutual list: avatar, name, score chip, since-date. Leave lives behind the ••• menu (destructive actions are never primary buttons), confirmed in place, silent both ways. Grow your Circle CTA feeds discovery; trust card states exactly what Circles share - milestones and streaks, never DMs, money, or drafts.

https://vadera.onenos.ai/app/vadera-pulse-app.html?s=circles

Open screen ↗

Screens / Subscreens

Security

Optional authenticator 2FA (required before money features) + logged-in devices.

https://vadera.onenos.ai/app/vadera-pulse-app.html?s=security

Open screen ↗

Screens / Subscreens

Deal detail

Full campaign brief: deliverables, requirements, timeline, payment on approval. Apply with your verified score.

https://vadera.onenos.ai/app/vadera-pulse-app.html?s=deal

Open screen ↗

Screens / Subscreens

Score delayed

Graceful bad morning: yesterday's score stands, nothing lost.

https://vadera.onenos.ai/app/vadera-pulse-app.html?s=delay

Open screen ↗

Screens / Subscreens

Report

Reason chips, confidential, reporter never revealed; submitting also blocks.

https://vadera.onenos.ai/app/vadera-pulse-app.html?s=report

Open screen ↗

Screens / Subscreens

Brand DM thread

Verified brand conversation with Report and Block in the header.

https://vadera.onenos.ai/app/vadera-pulse-app.html?s=thread

Open screen ↗

Screens / Subscreens

Creator profile (viewer)

Another creator's full public profile: photo inside the score ring with floating score chip, RISING chip, standing band, stats row, platform pills (open the real platform), expandable links, Request Circle and Message. WIRING RULE: score, Rising chip, and Top-percent band all derive from one object fed by the daily compute - never set independently. Rising renders only when the 30-day delta is positive. No instructional copy on the page.

https://vadera.onenos.ai/app/vadera-pulse-app.html?s=creator

Open screen ↗

Screens / Subscreens

Why my score (dispute)

Per-signal contribution breakdown of today's score, the consent line, and a dispute path that opens a Support ticket. FCRA-style transparency: every user can always see why their number is their number.

https://vadera.onenos.ai/app/vadera-pulse-app.html?s=why

Open screen ↗

Screens / Subscreens

Marketplace under-18

Locked Marketplace state for ages 13-17: no deals, no applications, no brand contact. Score, streaks, and standing carry over at 18. Minors never see a contract.

https://vadera.onenos.ai/app/vadera-pulse-app.html?s=market17

Open screen ↗

Screens / States

Score · down day

Neutral gray delta, no celebration; Today's Move reframes as fastest point back.

Open it live

Deep link renders the bare screen (no admin bar, no bezel) at any viewport · the same URL the Figma plugin imports.

https://vadera.onenos.ai/app/vadera-pulse-app.html?s=scoredown

Open screen ↗

Screens / States

Messages · empty

Explains verified inbound; share-profile CTA.

Open it live

Deep link renders the bare screen (no admin bar, no bezel) at any viewport · the same URL the Figma plugin imports.

https://vadera.onenos.ai/app/vadera-pulse-app.html?s=msgs0

Open screen ↗

Screens / States

Feed · empty

Coach card always renders; invite-a-creator CTA.

Open it live

Deep link renders the bare screen (no admin bar, no bezel) at any viewport · the same URL the Figma plugin imports.

https://vadera.onenos.ai/app/vadera-pulse-app.html?s=feed0

Open screen ↗

Screens / States

Marketplace · locked

Current score, progress to first unlock at 68, path CTA to Coach.

Open it live

Deep link renders the bare screen (no admin bar, no bezel) at any viewport · the same URL the Figma plugin imports.

https://vadera.onenos.ai/app/vadera-pulse-app.html?s=market0

Open screen ↗