塑造个人品牌,发现细分市场,构建可持续盈利的产品
I share how to build a personal brand, discover niche markets, and create sustainably profitable products. I also share everything about AI.
AI translation
Amazon Ads, TikToks, slideshows and viral videos, generated from the book you’ve already written.
MarketingHTML · CSSGitHub @AbdurrahmanIbrahimOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
Sonder landing page — Plum dark theme (handoff v2.1). Static HTML/CSS/JS, deployed on Vercel.
Translation pending
Loading the full README.
Read the full README ↗Static landing page for yousonder.com. Replaces the current Lovable build. Built to brand v2.1 (Plum Black + Aurora Mint, Magician/Effortless archetype).
A single-file static site. No build step, no framework, no npm install. Three files (index.html, style.css, app.js) plus an assets/ folder. Open index.html in any browser and the whole site runs locally.
Tech stack:
fast.wistia.com, used for the tutorial + showcase reels)That means deploying is just: upload the folder to any static host. That's it.
cd "Landing Page"
npx vercel
Drag the folder onto vercel.com → New Project → "Deploy as static." Vercel will give you a preview URL. Then add yousonder.com as a custom domain in Vercel project settings.
Landing Page folder onto the drop zone.yousonder.com to it via DNS.S3 + CloudFront, GitHub Pages, traditional shared hosting — all fine. Just upload the folder. Set index.html as the default document.
Total page weight: ~25 MB once all hero frames are loaded (the bulk is the 168-frame scroll-driven hero video). On a modern CDN with image compression this delivers in 2–3 seconds on 4G.
These are placeholders right now. Search for the marker in the code, swap the value, and you're done.
Search: https://yousonder.com/pricing
Currently: every "Be seen →" button across the page points to yousonder.com/pricing (with ?tier=starter/?tier=author/?tier=studio/?tier=agency on the pricing-tier buttons).
Action: confirm yousonder.com/pricing exists in the Sonder app. If the pricing page is somewhere else (/upgrade, /checkout, etc.) update the URLs.
File: app.js
Search: [Sonder free-video claim]
Currently: the form just console.logs the email + first name when submitted, then shows a "Welcome. Check your inbox" success state.
Action: replace the console.log line with a real fetch() POST to whatever endpoint Sonder uses for leads — Mailchimp, HubSpot, ConvertKit, or a Sonder backend route. Payload object is already built ({ firstname, email, source, ts }).
#Search: href="#"
Currently: these go nowhere — Sign in, Manifesto, Founders link in footer, Terms, Privacy, Contact.
Action: wire each to its real destination. Or remove them from the footer if they don't have pages yet.
The 9 Wistia videos are embedded by media-id. In Wistia → Customize → Embed & Share → check that embeds are allowed for the yousonder.com domain. If you don't add the production domain to the allowlist, the player will refuse to embed and show an error in production. Currently it works on localhost because Wistia permits localhost by default.
Wistia media-IDs in use (search data-wistia-id to see them all):
oenqanb3ejle99g7qi7f1ymppelyqm2tnccunxqxxqg4ugdw8zebeee2cm3zejw6zhrgpo66x1be2gyp2um9n (this is the share-ID, real media-id resolves automatically)gi0j9axtu9roe4n (same)Landing Page/
├── index.html # The page itself
├── style.css # All styles
├── app.js # All JS (canvas scroll-driver, lightbox, pricing toggle, exit-intent, etc.)
├── README.md # This file
│
├── assets/
│ ├── sonder-logo-plum-flat.svg # Used as favicon
│ ├── sonder-logo-plum-night.svg # Canonical brand mark
│ │
│ ├── frames/hero/ # Hero scroll-driven video (168 JPEG frames @ ~50KB each, ~8MB total)
│ │ ├── frame_001.jpg
│ │ ├── ...
│ │ └── frame_168.jpg
│ │
│ ├── stills/ # Showcase tile + tutorial thumbnails
│ │ ├── how-demo.jpg # Tutorial walkthrough thumbnail (Nano Banana branded card)
│ │ ├── european-cartoon.jpg # 8 showcase reels — one per Wistia video
│ │ ├── expert-podcaster.jpg
│ │ ├── neon-wireframe.jpg
│ │ ├── expert-panelist.jpg
│ │ ├── yellow-cartoon.jpg
│ │ ├── expert-speaker.jpg
│ │ ├── skeleton.jpg
│ │ └── stick-figure.jpg
│ │
│ ├── founders/ # About Sonder section avatars
│ │ ├── lexi.jpg # 200×200 — replace with a higher-res shot when available
│ │ └── mike.jpg # 200×200 — same
│ │
│ ├── receipts/ # Proof section customer screenshots
│ │ ├── forty-four-sales.jpg
│ │ ├── ten-sales-happy-dance.jpg
│ │ ├── lynn-dashboard.jpg
│ │ ├── lexi-profile.jpg
│ │ ├── lexi-insights.jpg
│ │ └── headline-numbers.png
│ │
│ └── images/ # Section background photos (low-opacity ambient)
│ ├── stats-bg.jpg # Behind the 2.9M views numbers (32% opacity)
│ └── final-bg.jpg # Behind the closing "Be seen" section (28% opacity)
│
└── _source/ # OPTIONAL — the raw hero MP4 master
└── Test hero trimmed.mp4 # If you want to re-extract frames at different quality, the source is here.
# Safe to delete if you don't need it. Frames are pre-extracted.
<canvas> element fills the hero section. As the user scrolls through the hero's 320vh tall container, app.js calculates scroll progress (0→1) and draws the corresponding frame (0→167) onto the canvas.position: sticky keeps the canvas pinned during scroll.<button data-reel data-wistia-id="..."> — clicking it opens the lightbox modal.<body> ([data-lightbox]).<wistia-player> element with the correct media-id, aspect (portrait or landscape), and autoplay="true". The Wistia player loads, autoplays, and the user closes via × button, backdrop click, or Esc.data-monthly / data-annual attributes on each .tier-num, .tier-pervideo, and the section headline's $6.97 span..pricing[data-cycle="annual"] .tier-billed { display: block }.mouseleave with clientY <= 0 (cursor exits via the top edge of the viewport — signal of moving to close/back).sessionStorage to only show once per session.?v=N to the src and bump N. Example currently in the codebase: how-demo.jpg?v=2.cache-control: max-age=... and use content-hashed filenames. That's a 30-minute setup, optional.Full brand guidelines live in SONDER/Brand/ (separate from this folder). Key values used throughout:
#0A0613 — canvas#7FFFD4 — signature accent#4A2F6E, Plum Mid #2D1A48, Plum Deep #1A0F2E — gradient halo stops#F5F5F7 — primary text#8B8FA3 — secondary text#B794F4 — motion-only (used in CSS variable, currently unused since the violet-sweep moment was removed with the hero rewrite)Fonts: Inter for everything except the Nunito 900 wordmark "Sonder".
Ping me — I'll connect you with the original author of these files. Otherwise: drag the folder onto Vercel, do the 4 wire-up tasks above, and you're live.
— Generated 2026-05-29 for the Sonder pre-launch handoff.