21m Threads: From Idea → Live Store in 1h 50m
TL;DR
We took “21m Threads” from zero to a working Squarespace shop in a single sprint: brand system, logo set, hero/backgrounds that survive Squarespace’s zoom, a desktop-grade footer with a live BTC price, and a full-width rolling crypto ticker. We hit (and solved) the usual 7.1 quirks: background image cropping, CSS scoping, and CORS on price APIs. Site vibes: FiDi-clean, Bitcoin-bold, no irony. 🧢⚡️
The Brief (what we started with)
-
Name: 21m Threads
-
Target: finance guys / crypto-native, minimal and sharp
-
Core idea: 21 million BTC total supply → “scarcity woven in”
-
Colors: Bitcoin Orange #F7931A, White #FFFFFF, Charcoal/Black #0A0A0A
-
Fonts: Headline Anton, body Epilogue
-
Platform: Squarespace (7.1)
-
Store page ask: header image that won’t look busted when SS crops everything
Brand System (fast + durable)
-
Logo set:
-
Wordmark + emblem pass (orange 21m, black/white “THREADS”).
-
Exported black and white transparent PNGs for universal placement.
-
-
Pattern/backgrounds:
-
Bitcoin-orange wallpaper with repeating ₿ (subtle, seamless).
-
FiDi skyline hero photos (no text overlay).
-
Crypto-ticker header graphic for the Hats page (no hats in frame, abstract ticker).
-
Why it works: high-contrast palette, loud headline font, and backgrounds that add depth without fighting product photos.
Build Steps (what we actually did)
1) Hero & Cropping: “Zoom-out” the right way
Squarespace loves to crop/cover backgrounds. Our fixes:
-
Gave the hero section an ID (hero-hat).
-
Hid SS’s internal background <img> and painted our image on the container with background-size: contain so the whole photo shows.
-
Set min-height so the hero doesn’t collapse.
-
Turned Parallax off and used a clean center center positioning.
Lesson: When “object-fit” on their <img> won’t obey, remove it from the equation and set background-image on the container.
2) Footer: desktop-grade layout + live BTC price
-
Built a 3-column, full-width footer (left = ©, center = Contact/Privacy/Terms + centered BTC, right = Bolt AI Tools logo + “Built with Bolts”).
-
Split HTML in a Code Block and CSS in Design → Custom CSS (Squarespace ignores <style> in Code Blocks).
-
Live ticker source: CoinGecko (clean, formatted), refreshing every 60s.
What broke & why:
-
Coindesk API → intermittent CORS blocks → “Unavailable.”
-
Fix → switch to CoinGecko, and later we added multi-fallback logic (CoinGecko → CryptoCompare → Binance) if needed.
3) Rolling Crypto Ticker (full-width, live)
-
Inserted a Code Block with HTML + JS for a continuous marquee effect.
-
Gave the section an ID (ticker-section) and removed max-width constraints only for that section so it becomes truly edge-to-edge.
-
Two duplicated rows animate left for a seamless loop.
-
Mobile: slowed the animation slightly and tightened chip spacing.
What broke & why:
-
First pass “didn’t go full-width” → Squarespace content wrapper was clamping max-width/padding.
-
Fix → scope CSS to #ticker-section and use 100vw + centering transform.
What Worked (smooth wins)
-
Minimal palette with a single accent pop → instant “premium” read.
-
Abstract header for the Hats page (ticker energy, no product photos) → survives all crop ratios.
-
Split CSS/HTML → stopped weird Code Block style failures.
-
Centered BTC price under the middle links → reads like a micro-dashboard, not an afterthought.
What Didn’t (and how we patched it)
-
Squarespace zoom/crop: “object-fit” on internal images often loses; container background wins.
-
Full-bleed strips: 100vw alone isn’t enough; remove the parent max-width on that section.
-
Live price “Unavailable”: CORS/rate limits. We swapped sources and added fallback strategy.
-
Inline <style> inside Code Block: Squarespace may ignore it; use Design → Custom CSS.
Prompts I wish we had up front (would’ve shaved ~15 minutes)
-
Hero usage rule: “If image must always be fully visible, letterbox is OK.”
-
Exact section IDs where you want overrides (hero, ticker, footer).
-
Ticker placement choice: True background behind heading vs separate strip.
-
Payment stack selection for BTC (Coinbase Commerce vs BTCPay vs BitPay).
-
Aspect ratios for key images (hero banner, header, product thumbs).
None of these blocked us—they just would’ve meant fewer back-and-forth tests.
Where We Landed (now)
-
✅ Brand kit in place (logo PNGs in black/white, transparent).
-
✅ Backgrounds & headers that survive crop.
-
✅ Footer with centered BTC price + Bolt branding.
-
✅ Rolling crypto ticker, full-width, live data.
-
✅ Desktop ↔ mobile responsive centering and spacing.
-
✅ Hats page header uses crypto-esque ticker graphic (no hats).
Next 30-Minute Win List
-
Payment stack: Wire up Coinbase Commerce (fastest path to BTC) alongside Squarespace checkout.
-
Products: Add 2–3 placeholder SKUs with clean mock photos, price, inventory, shipping.
-
Policies: Publish Privacy + Terms pages and link them in the footer.
-
SEO & Meta: Set title/description, OG image, favicon, social sharing.
-
Analytics: Connect GA4 + Search Console; request indexing.
-
Perf polish: Compress media; set lazy-load where possible.
Snippet Highlights (for future you)
(A) When Squarespace crops your hero:
/* Target your hero section ID */
#hero-hat .sqs-section-background img { display: none !important; }
#hero-hat .sqs-section-background {
background-image: url(YOUR-HERO-URL);
background-size: contain; /* or cover, if crop is okay */
background-position: center center;
background-repeat: no-repeat;
background-color: #000; /* fallback */
}
#hero-hat { min-height: 80vh; } /* give it some height */
(B) Ticker section → true full-bleed:
/* Remove container clamps on that section */
#ticker-section .content-wrapper,
#ticker-section .section-content { max-width: none; width: 100%; padding: 0; }
/* Make the strip span the viewport */
#crypto-ticker-bg {
position: relative; left: 50%; transform: translateX(-50%);
width: 100vw; background:#000; overflow:hidden; padding:10px 0;
}
(C) BTC price fallback logic (browser-safe):
-
Start with CoinGecko; if blocked, try CryptoCompare, then Binance; update the DOM on success.
Reflection
This was classic “Squarespace reality vs. the mock”: keep your look minimal, control the containers, and don’t fight their internal image tags—replace them. The finance-bro vibe works because we kept it clean, bold, and fast. The little details (centered BTC, orange hover accents, subtle patterns) are doing a lot of brand lifting with almost no overhead.
Sign-off
Built live with ⚡ Bolt AI Tools. If you want this same sprint energy for your brand — from idea to store in a night — you already know who to call.
