Creator Resources

Studio
Setup
Guide.

Lighting, backdrops, positioning, equipment, tip menus and goal strategy — everything you need to build a professional streaming space.

LIGHTING
BACKDROPS
CAMERAS
MICROPHONES
LOVENSE
TIP MENUS
GOAL STRATEGY
PRE-STREAM CHECKLIST
LIGHTING
BACKDROPS
CAMERAS
MICROPHONES
LOVENSE
TIP MENUS
GOAL STRATEGY
PRE-STREAM CHECKLIST
Chapter 01

Lighting Setup

Lighting is the single biggest upgrade you can make to your stream quality — more impactful than a better webcam or background. Good light makes cheap cameras look professional.

🔺
Three-Point Lighting — The Gold Standard
Foundation

Three-point lighting gives your face depth, eliminates harsh shadows, and makes you look professionally lit. Two ring lights and a lamp can achieve it.

// three-point lighting — top-down view
☀️
KEY LIGHT
🌸
FILL LIGHT
💜
BACK LIGHT
🎭
YOU
📷
CAM
LightPositionBrightnessColor TempPurpose
💛 Key Light45° front-left, above eye level100%4000–5000KPrimary illumination, defines face
🌸 Fill LightOpposite side, same height40–60% of keyMatch keySoftens key light shadows
💜 Back LightBehind you, aimed at hair/shoulders20–30% of keyWarmer or coloredSeparates you from background
💰
Budget Lighting Setups by Price Point
Buying Guide
Starter
Under $60 total
ItemProduct ExamplesPriceRole
Key ring lightNeewer 10" LED ring light, UBeesize 10" selfie ring$20–$35Main face light
Desk fill lampIKEA RANARP, TaoTronics LED desk lamp$12–$18Softens key shadows
Blackout curtainsNICETOWN blackout curtains (2-pack)$14–$22Kill ambient window light
Extension cord + surge protectorAny 6-outlet power strip$8–$15Reach outlets safely
💡
Starter tip

Set ring light to 3500–4500K. Place it directly in front at eye level or slightly above. Turn off all other room lights — mixing sources causes unflattering colour casts.

Intermediate
$80–$200 total
ItemProduct ExamplesPriceRole
Key ring light (large)Neewer 18" bicolor ring light kit, GVM 18" LED ring$55–$90Bright, wide, flattering key
Fill ring light / softbox2nd Neewer 12–18" ring, Neewer 20×28" softbox kit$35–$70Even fill, softer shadows
RGB LED bias stripGovee 16.4ft RGBIC strip, Philips Hue gradient lightstrip$20–$45Back accent / mood color
Diffusion materialNeewer photography diffusion filter, DIY white ripstop nylon$8–$20Softens harsh ring-light catchlights
Background light (optional)Neewer 660 LED video light panel, GVM RGB video light mini$25–$50Lights backdrop separately
🎯
Intermediate tip

Use the larger ring as key (45° front-left), smaller as fill (opposite side, dimmed 50%). Place the RGB strip behind you pointed at the wall — not at you — for a halo glow effect.

Advanced
$200–$400 total
ItemProduct ExamplesPriceRole
Panel key lightElgato Key Light Air, Godox SL60W LED, Neewer 480 LED$80–$130Powerful, even, adjustable CCT key
Panel fill light2nd Elgato Key Light Air, Godox SL60W$80–$130Matched fill — no ring-light catchlights
Hair / back lightAputure MC (RGBWW), Nanlite Pavotube II 6C$65–$100Rim separation, hair glow
Smart RGB systemGovee Immersion TV kit, Philips Hue Play bars ×2$60–$120App-controlled scene moods
Diffusion / modifierNeewer softbox for panel light, Westcott umbrella$20–$45Wraparound soft light quality
Pro Studio
$500+ total
ItemProduct ExamplesPriceRole
Broadcast key lightAputure 120D Mark II, Godox SZ150R, Nanlite FS-150B$200–$350Cinema-grade key, massive output
Octabox / large modifierAputure Light Dome II (35"), Westcott 43" parabolic$80–$180Ultra-soft wrapping light quality
RGBWW creative lightsAputure MC Pro ×2, Nanlite PavoTube 30C$100–$250Full-color creative fills and hair lights
Smart scene controllerElgato Stream Deck + light integration$80–$200One-button scene switching
Overhead riggingNeewer 10' background stand kit, ceiling rail mount$60–$150Position lights without floor clutter
🏆
Best bang-for-buck upgrade path

Start → Intermediate is the single biggest visual jump (≈$60 more). Intermediate → Advanced improves light quality noticeably. Advanced → Pro is diminishing returns unless you're selling premium content at very high price points.

🌡️
Color Temperature — Which Kelvin to Use
Important

Color temperature (measured in Kelvin) determines whether your light appears warm golden or cool clinical. Warm-neutral is almost always most flattering for on-camera work.

Kelvin RangeToneBest ForAvoid?
2700–3000KVery warm / candlelightNoir, romantic, boudoir themesCan make skin look orange
3500–4500KWarm-neutral / naturalMost creator setups — universally flatteringNo — gold standard range
5000–5500KNeutral / daylightClinical, clean, editorial lookCan look flat without fill
6000K+Cool / blue-whiteCyberpunk, tech, cold aestheticsUnflattering on most skin tones
🎨
Mixing color temps

Never mix warm and cool lights on your face. All lights illuminating you directly should be within 500K of each other. Your background/accent lights can be any color — they're not hitting your face directly.

Chapter 02

Backgrounds & Backdrops

Your background communicates your brand before you say a word. It also directly affects your income — a well-styled background improves perceived value and tip amounts. And it's a privacy layer: everything in frame is something viewers can potentially identify.

🔒
Privacy Audit — What to Remove Before You Go Live
Critical

Scan your OBS preview like a private investigator. Remove or obscure everything below before going live for the first time — and recheck any time you change your setup.

Mail, letters, packages with your name or address visible
Face them away or remove entirely
Documents, IDs, bills, or bank statements
Any printed paper with personal info
Family photos or real-life photos of yourself
Including digital photo frames
Windows showing your street, building, or neighbourhood
Use blackout curtains
Reflections in mirrors, screens, glasses, or shiny surfaces
Can expose your room, face, or window views
Medication bottles, prescriptions, or medical devices
Unique identifiable artwork, trophies, or memorabilia
Could be cross-referenced to identify you
🖼️
Physical Backdrop Options — Full Buying Guide
Recommended

🎨 Solid Fabric Backdrops — Most Versatile

ProductCostSizeNotes
LimoStudio muslin backdrop (black/white/grey)$15–$256×9 ftWrinkles — steam or iron before use
Kate Photography seamless muslin$25–$405×7 or 10×8 ftThicker weave, richer colours, less wrinkle
Emart solid polyester backdrop$18–$305×6.5 ftMachine washable, wrinkle-resistant
Savage Seamless Paper roll (various colours)$20–$5053" wide rollProfessional studio standard — tears, not reusable
DIY: IKEA RENS or AINA curtain panels$8–$20VariableBudget texture backdrop — hang from curtain rod

🪟 Collapsible & Pop-up Backdrops

ProductCostSizeNotes
Neewer 5×7 ft collapsible backdrop (double-sided)$25–$405×7 ftTwo colours in one. Fast setup/teardown.
Julius Studio 10×12 ft pop-up backdrop$40–$6510×12 ftFolds into round carry bag. Very portable.
Westcott X-Drop kit (backdrop + stand)$100–$1405×7 or 8×8 ftWrinkle-resistant tension frame system

✨ Decorative & Themed Backdrops

TypeWhere to BuyCostBest Theme Fit
Sequin / glitter curtain panelsAmazon, Walmart$15–$35Glamour, NYE, party, luxury
Macramé wall hanging (large)Etsy, TJ Maxx$30–$80Boho, earthy, neutral
LED neon sign (custom)Etsy neon shops, VOODOO Neon$60–$180Cyberpunk, branded, any aesthetic
Fairy light curtain (LED icicle/stars)Amazon, Target$15–$35Romantic, celestial, bokeh look
Faux floral wall panelAmazon, IKEA FEJKA$25–$80Spring, coquette, botanical, bridal
Brick / stone vinyl photography backdropAmazon, Kate Backdrops$25–$50Industrial, noir, urban

🔧 Backdrop Stands & Hardware

ItemProduct ExamplesCostNotes
Adjustable backdrop stand kitNeewer 10×8 ft backdrop support kit$25–$50Includes 2 stands + crossbar + sandbags
Wall-mount curtain rodIKEA KVARTAL, any tension rod$10–$25Permanent install — great for renters with permission
Ceiling hooks + S-clipsAny hardware store hooks$5–$12Hang tapestries and fabric without stands
Backdrop clamps (2-pack)Neewer spring clamps$8–$15Attach fabric to crossbar without sewing
Backdrop stand sandbagsNeewer 2-pack sandbags$15–$25Prevents stands from tipping — essential safety
🎯
The shelfie background — curated, not cluttered

A styled shelf is one of the most popular creator backgrounds. Aim for 5–7 items per shelf, mix heights and textures, use brand colours, add fairy lights or a small plant. Remove everything personal first.

🌈
Virtual Backgrounds with OBS Chroma Key
Optional

With a green screen ($25 collapsible), you can replace your background entirely in OBS. Right-click webcam source → Filters → + → Chroma Key. Set Key Color to Green. Start with Similarity 400, Smoothness 80, Key Color Spill Reduction 100.

Green screen tips for best results

Iron your backdrop — wrinkles cause shadows that are hard to key. Light it separately from yourself. Don't wear green. Stand at least 3 feet from the screen to avoid spill on your edges.

Chapter 03

Equipment Positioning

Where you place your camera, lights, and microphone has a dramatic effect on how you look and sound. Small positioning adjustments often matter more than equipment upgrades.

// ideal studio layout — top-down floor plan
BACK WALL FRONT (VIEWER SIDE) BACKDROP / BACKGROUND ZONE 🎭 YOU 📷 CAM ☀️ KEY · 45° LEFT 🌸 FILL · 45° RIGHT 💜 BACK / HAIR LIGHT 🎙️ MIC
📷
Camera Height & Angle
Critical
Camera PositionEffectUse It?
Below chin (looking up)Unflattering for face cams — exposes nostrils, distorts face, creates double chin. Exception: ideal for a dedicated booty cam pointed up from behind — the low upward angle emphasises shape naturally.✗ Face cam  ·  ✓ Booty cam
Exactly eye levelNatural, neutral — works for all face shapes✓ Good default
Slightly above (5–15°)Most flattering — slims face, better eye contact with viewer✓ Recommended
Far above (looking far down)Submissive effect unless used intentionally for aestheticIntentional only
📷
Setting up a booty cam

Mount a second wide-angle webcam low and behind you, angled upward at roughly 30–45°. Keep it 40–60cm away for best shape without distortion. A Logitech C920 or C505 on a small flexible tripod works great. Add it as a second video source in OBS and switch between views with a hotkey or scene transition.

Distance (face cam): Sit 60–90cm from camera. Leave 2–3 inches of space above your head in frame. Framing should show head, neck, and upper chest. Closer than 60cm = lens distortion on your face.

📏
Distance Quick-Reference
Reference
ItemIdeal DistanceNotes
You → Camera60–90 cmToo close = lens distortion. Too far = loses detail.
You → Backdrop60+ cmPrevents shadow on backdrop. Helps chroma key.
You → Key light60–120 cmCloser = softer, brighter. Further = harder shadows.
Mic → Mouth15–30 cmToo close = plosives. Too far = loses presence.
Lovense toyIn range of remoteTest Bluetooth range — walls can reduce it significantly.
🎙️
Microphone Placement
Critical
Mic TypeIdeal PositionDirectionAvoid
USB cardioid (Blue Yeti, NT-USB)15–25cm below chin, off to one sidePointing up at mouth at angleDirectly in front — causes plosives
Dynamic (SM7B, MV7)Boom arm, 10–15cm from mouthSlightly off-axis (5–15°)Pointing directly at lips
Condenser on stand30–45cm, slightly above mouth heightDownward toward mouthOn desk (vibration pickup)
Webcam / built-inFixed — position camera closerN/AUsing in echoey untreated room
🔇
Treat before you upgrade

A thick rug, heavy curtains, and acoustic foam panels ($20–$40 for a pack) reduce echo and room noise more than any mic upgrade in an untreated room. Fix the room acoustics first.

Chapter 04

Equipment Buying Guide

Specific products at every price point for microphones, computers, capture cards, and networking. Know what to buy, what to skip, and what order to upgrade in.

🎙️
Microphones — USB & XLR Options
Buying Guide
USB Microphones — Plug & Play
MicTypePriceVerdict
Blue Snowball iCEUSB cardioid condenser$45–$60Best entry-level USB mic. Clear, warm, zero setup.
Rode NT-USB MiniUSB cardioid condenser$90–$110Compact, excellent clarity. Best USB mic under $120.
Blue Yeti XUSB multi-pattern condenser$130–$160Multiple polar patterns. Slightly overkill for most setups.
HyperX QuadCast SUSB cardioid condenser$140–$170RGB. Good quality. Basically the same as Yeti X — choose by price.
XLR Setup (Interface + Mic)
ItemTypePriceNotes
Shure SM7BXLR dynamic — broadcast standard$350–$400The GOAT. Used by every major podcaster and streamer.
Rode PodMicXLR dynamic — budget SM7B alternative$100–$13080% of SM7B quality at 30% of the price.
Audio-Technica AT2020XLR cardioid condenser$90–$110Excellent clarity. Needs treated room — picks up everything.
Focusrite Scarlett SoloXLR audio interface$110–$130Best-value interface. Transparent preamp, plug and play.
GoXLR MiniInterface + mixer + effects$200–$250Routing, effects, mute, EQ — purpose-built for streaming.
Boom arm (Rode PSA1 or Neewer NB-35)Mic arm$20–$100Essential — keeps mic off desk, reduces vibration.
🎙️
Upgrade order for audio

1. Treat your room acoustically first ($20–$40 foam). 2. Get a USB cardioid and boom arm. 3. Add an XLR interface + dynamic mic when earning consistently. Skipping straight to SM7B in an untreated room will disappoint.

💻
Computer, Capture Card & Internet
Buying Guide
Minimum Specs for Streaming
ComponentMinimumRecommendedIdeal
CPUIntel i5-8th gen / Ryzen 5 2600i7-10th gen / Ryzen 7 3700Xi9-12th+ / Ryzen 9 5900X
RAM8 GB DDR416 GB DDR432 GB DDR4/DDR5
GPUGTX 1060 / RX 580RTX 3060 / RX 6700RTX 4070+ / RX 7800 XT
Storage256 GB SSD512 GB SSD1 TB NVMe + HDD for clips
Upload speed5 Mbps (720p30)10 Mbps (1080p30)20+ Mbps (1080p60)
Capture Cards (for DSLR / mirrorless)
CardMax InputPriceNotes
Elgato Cam Link 4K4K30 / 1080p60 HDMI$100–$130The standard — reliable, plug-and-play, widely supported
Magewell USB Capture HDMI Gen 24K60 HDMI$150–$200Professional grade, zero lag, broadcast quality
Razer Ripsaw HD1080p60 HDMI$80–$100Budget-friendly USB 3.0, decent for 1080p streaming
AVerMedia Live Gamer Portable 2 Plus4K30 passthrough$110–$140Standalone recording mode — no PC needed
Networking — Don't Ignore This
ItemProduct ExamplesPriceWhy It Matters
Ethernet cable (Cat 6)Any Cat 6 flat or round cable, 10–25 ft$8–$20Most important upgrade — eliminates WiFi drops
Powerline ethernet adapterTP-Link AV1000, Netgear PL1200$35–$60Run ethernet through house wiring — no cable runs needed
WiFi 6 routerTP-Link Archer AX50, ASUS RT-AX55$70–$130If wired is impossible — WiFi 6 is much more stable
The wired ethernet rule

Stream drops and buffering destroy viewer trust instantly. A $10 ethernet cable is the single highest-ROI investment in your setup. Never rely on WiFi for live streaming if you can avoid it.

🛒
Complete Studio Budget Bundles — Starter to Pro
Full Setups

Real all-in setup costs — what you'd actually spend to go from nothing to a complete streaming studio at each tier.

CategoryBudget (~$230)Mid-Range (~$600)Professional (~$2,100)
CameraLogitech C920 (~$70)Elgato Facecam (~$150)Sony ZV-E10 + Cam Link (~$750)
Key lightNeewer 10" ring light (~$30)Neewer 18" bicolor ring kit (~$80)Elgato Key Light Air ×2 (~$180)
Fill lightDesk lamp (~$15)2nd ring or softbox (~$40)Godox SL60W + softbox (~$150)
Accent / RGBGovee LED strip (~$20)Govee RGBIC + fairy lights (~$45)Nanoleaf Shapes + bias lights (~$150)
MicrophoneBlue Snowball iCE (~$45)Rode NT-USB Mini (~$100)Shure SM7B + Scarlett Solo (~$480)
BackdropMuslin + curtain rod (~$25)Kate collapsible + stand kit (~$100)Custom backdrop + Westcott X-Drop (~$200)
AccessoriesBlackout curtains, cable (~$25)Boom arm, pop filter, ethernet (~$55)Acoustic panels, Stream Deck, sandbags (~$200)
Total~$230~$600~$2,110
💡
Upgrade priority order

1. Lighting (biggest visual impact). 2. Microphone (biggest audio impact). 3. Camera. 4. Backdrop. 5. Extras. Most creators jump straight to cameras — but great lighting with a $70 webcam beats a $700 DSLR in a dark room every time.

Chapter 05

Theme Planning

A defined visual theme makes your stream instantly recognisable, builds brand loyalty, and gives you a framework for props, décor, outfits, and content. Pick a signature look — then layer special-event themes on top.

🎯
Your theme is your brand

Returning viewers expect a consistent experience. Your colours, vibe, and aesthetic should be recognisable across your profile, overlays, tip menu, and background. Pick a theme you can sustain for months, not just one or two streams.

🛒
Budget-friendly theme prop shopping

Dollar Tree, TJ Maxx/HomeGoods, Amazon, IKEA, and thrift stores. A $25 TJ Maxx run can transform a blank wall. Look for: string lights ($8), artificial florals ($5–$15), decorative books ($3–$6), candle holders ($4–$10), fabric/scarves ($5–$12).

Chapter 06

Seasonal Décor & Holiday Themes

Rotating seasonal décor keeps your stream fresh, gives viewers a reason to tune in for special events, and creates opportunities for themed tip events and content. Plan your seasonal calendar in advance.

🌸🌷🦋
🌸 Spring
Pastel colour palette — blush, lavender, mint
Faux floral arrangements, cherry blossoms, tulips
Butterfly accents, fairy lights, fresh airy energy
White or pale backdrop, soft warm lighting
Valentine'sSt. Patrick'sEasterMother's Day
☀️🌺🍹
☀️ Summer
Warm vibrant colours — coral, turquoise, citrus
Beach/tropical props — shells, starfish, flamingo
Sheer or floral backdrop, bright RGB fills
Outdoor/festival energy — light, fun, playful
Pride Month4th of JulyMemorial Day
🍂🎃🕯️
🍂 Autumn
Warm amber, burnt orange, deep burgundy
Pumpkins, gourds, dried leaves, candles
Cozy knit textures, warm lighting, flickering LED candles
Halloween: deep purple, skulls, cobwebs, neon green
HalloweenThanksgivingDay of the Dead
❄️🎄✨
❄️ Winter
Cool blues, silvers, whites — icy and elegant
Christmas: warm reds, greens, twinkling lights
NYE: gold, black, sequins, champagne, party
Valentine's season prep starts mid-January
ChristmasHanukkahNYEValentine's Prep
Chapter 07

Tip Menu Builder

A clear, well-structured tip menu is one of the highest-impact things you can add to your stream. It tells viewers exactly what they can get and sets expectations — removing friction from the tipping decision entirely.

💜
Add Lovense tiers to your tip menu

Lovense tip-activated reactions are the single most effective item on any live cam tip menu. Dedicate 2–4 menu slots to Lovense: a low-tier short buzz (e.g. $5–$10 = 3-sec vibe), a mid-tier pattern (e.g. $25 = wave pattern), and a high-tier sustained response (e.g. $100 = 30 secs max intensity). Mention it in your stream title — "Lovense active 💜" drives discovery on platforms that index it.

Currency Mode
Creator Info
Tip Menu Items
Extras / Premium
Live Preview
YourName
Your stream tagline...
Chapter 08

Setting Goals

Goals are one of the most powerful engagement tools in live streaming. A visible progress bar toward a shared goal turns passive viewers into active participants — everyone wants to see the bar hit 100%.

Goal Type
Session Tip Goal
Set a tip amount for the current stream. When hit, perform the promised action and immediately set the next goal. Never end a stream without a visible goal active.
670 / 1000 tokens67%
Goal Type
Follower / Sub Goal
Set a follower or subscriber count goal. "At 500 subs I'll do a special thank-you stream." Drives engagement between streams, not just during live tips.
420 / 1000 followers42%
Goal Type
Unlockable Content Goal
Lock specific content behind a tip total. "Unlock [content] at 2,000 tokens." Every tip is explicit progress toward something exciting and specific.
1,700 / 2,000 tokens85%
Goal Type
Equipment / Studio Goal
Show viewers you're investing tips back into stream quality. "Help me get a new ring light!" goals build community ownership and emotional investment in your brand.
$45 / $15030%
Goal Type
💜 Lovense Unlock Goal
Set a token goal to activate or escalate your Lovense toy. "Unlock max vibration at 500 tokens" or "Lovense stays on until goal hits." Ties physical interactivity directly to viewer tipping.
270 / 500 tokens54%
🎯
Goal Psychology — What Actually Works
Revenue Strategy

The halfway boost: Goals see peak tipping at two moments — the very start (people want to create momentum) and at ~70% (people want to be the one who finishes it). Highlight both moments out loud.

Keep goals achievable in one session: A goal that never hits demoralises everyone. Start with goals you can reach in 2–3 hours. Better to hit 3 small goals and celebrate 3 times than fail one big one.

Always have the next goal ready: The moment a goal hits, celebrate loudly, thank tippers by name, then immediately announce the next one. The energy from a completed goal is your best window for the next tip surge — don't let it go cold.

Specific goals outperform vague ones: "500 tokens to [specific action]" consistently outperforms "tip for a show." Specificity creates anticipation and desire.

Lovense goals are among the highest-converting goal types. "500 tokens = Lovense on max for 60 seconds" gives viewers a tangible, physical outcome to tip toward. The real-time feedback loop — tip → toy reacts → creator reacts — drives repeat tipping within the same session.

📊
Sample Goal Structure for a 2-Hour Stream
Pro Strategy
TimeGoalWhy
Stream opensSet Goal 1 — low, achievable (e.g. 200 tokens)Creates immediate momentum. Early tippers feel impactful.
Goal 1 hit (~20–30 min)Celebrate, perform, announce Goal 2 (e.g. 500 tokens)Energy spike. Set next goal while excitement is at peak.
Mid-streamGoal 2 filling — mention progress regularly"We're at 340/500 — who's going to push us over?"
Goal 2 hit (~60–80 min)Celebrate, set Goal 3 — premium goal (e.g. 1000 tokens)Bigger reward. Builds toward the stream highlight moment.
Stream endingAnnounce follow/sub goal regardless"Follow for next stream notification" — free, compounds over time.
Chapter 09

Pre-Stream Checklist

Run through this before every single stream. These checks take under 5 minutes and prevent the most common stream-ruining mistakes.

🎨 Studio & Visual
Background checked for personal info
Scan OBS preview before going live
All lights on and correctly positioned
Key, fill, and back light active
Camera at eye level or above
Check framing in OBS preview
Props and décor in place
Themed items visible in frame
OBS overlays and alerts loaded
Test alert from your platform dashboard
🎙️ Audio & Tech
Mic audio levels checked in OBS
Peaks at −12 to −6 dB
Wired ethernet connected (preferred)
Lovense device charged and connected
Test tip-activation in Lovense Connect before going live
Panic scene hotkey tested
F12 or your assigned key cuts stream instantly
Stream title and topic set on platform
Include "Lovense active 💜" if using — it drives discovery
💌 Monetization
Tip menu ready to share in chat
Post it in the first 5 minutes every stream
Session Goal 1 set and visible on stream
Show it before you even go live
Goals 2 and 3 planned and written down
Know what you'll announce the moment each goal hits
Outfit / costume ready and matches theme
Themed streams earn significantly more
🚀
You're ready. Go live.

Every top creator started exactly where you are. The first 10 streams feel awkward — that's normal. Your setup, timing, and confidence all improve with repetition. Show up consistently, keep your checklist habits, and the audience will grow.

Chapter 10

💻 Build Your Own Profile Page

Your cam profile and link-in-bio are your digital storefronts. Learning to code your own gives you full creative control — no templates, no restrictions, no monthly fees. This interactive playground teaches you real HTML, CSS, and JavaScript through hands-on lessons. Edit code on the left, see your creation live on the right.

🔤 Typography Toolkit
📐 The 3-Font Rule Core design principle

The 3-font rule is the single most practical principle in web design: use a maximum of three typefaces on any one page. More than three and the eye loses track of the hierarchy — it reads as chaotic rather than styled. Each font should have a distinct job:

Font 1 — Display
Your name & headings

Bold, expressive, personality-first. This is the first thing visitors see. It can be decorative or unexpected — as long as it's legible at large sizes. Use it sparingly: h1, h2, and your name only.

Font 2 — Body
Paragraphs & descriptions

Clean, readable, neutral. This carries all your actual words — bio text, platform descriptions, pricing. It should feel effortless at small sizes and never compete with Font 1 for attention.

Font 3 — Accent (optional)
Labels, tags & UI details

Often a monospace or condensed font used for small UI elements — button text, category tags, stats, timestamps. Creates visual contrast with the body font without adding chaos.

💡 Pro tip: Fonts within the same family (e.g. a regular + bold + italic of the same typeface) don't count as separate fonts — you can use them freely. The 3-font rule only applies to different typefaces. A great pairing uses contrast: a serif display with a sans-serif body, or a decorative header with a plain readable body.
🆓 Free Fonts — Google Fonts All 100% free · Commercial use ok · No signup
Open Google Fonts →
✨ Suggested Pairings
Luxury / High Fashion
Cormorant Garamond — headings
Raleway — body text
DM Mono — labels & buttons
Bold & Playful
Abril Fatface — headings
Nunito — body text
Barlow Condensed — tags
Minimal & Professional
Josefin Sans — headings
Karla — body text
Space Mono — UI accents
Dark & Editorial
Playfair Display — headings
Source Serif 4 — body text
Archivo Narrow — nav & labels
To use any Google Font, paste this inside your <head> tag: <link href="https://fonts.googleapis.com/css2?family=Playfair+Display:wght@700&family=Lato&display=swap" rel="stylesheet"> Then in CSS: font-family: 'Playfair Display', serif; — swap the name to match whichever font you chose.
🎨 Colour Toolkit
🎨 Hex Colour Wheel Click any colour · Build your palette
Brightness
Enter Hex
Selected
#888888
rgb(136, 136, 136)
My Palette 0 / 8
Click colours on the wheel to build your palette
Colour Harmonies
Starter Palettes — Click to load
CSS Variables Output
🎯 Which platform are you building for?
Choose a starting template
1
ready
your-profile-page.html
AI Coding Assistant

Ask for coding help, request changes to your current code, or get explanations. The AI can see your current code and suggest improvements.

📚 Coding Lessons — Click to expand
📥 Export Your Code
`, css: `* { margin:0; padding:0; box-sizing:border-box; } body { background: #06060a; color: #F5F0E8; font-family: 'DM Sans', sans-serif; font-size: 15px; line-height: 1.7; } a { color: inherit; text-decoration: none; } .container { max-width: 720px; margin: 0 auto; padding: 0 24px; } /* NAV */ .nav { position: fixed; top: 0; left: 0; right: 0; display: flex; align-items: center; justify-content: space-between; padding: 16px 32px; background: rgba(6,6,10,0.85); backdrop-filter: blur(12px); border-bottom: 1px solid rgba(255,255,255,0.06); z-index: 100; } .nav-logo { font-family: 'Cormorant Garamond', serif; font-size: 24px; font-weight: 700; letter-spacing: 2px; } .nav-links { display: flex; gap: 24px; } .nav-links a { font-size: 13px; letter-spacing: 0.5px; color: rgba(245,240,232,0.5); transition: color .15s; } .nav-links a:hover { color: #F5F0E8; } /* HERO */ .hero { min-height: 100vh; display: flex; align-items: center; justify-content: center; background: radial-gradient(ellipse at 60% 40%, rgba(219,39,119,0.12) 0%, transparent 65%), radial-gradient(ellipse at 30% 70%, rgba(124,58,237,0.10) 0%, transparent 60%); padding: 80px 24px 48px; text-align: center; } .hero-badge { display: inline-block; font-size: 11px; letter-spacing: 3px; text-transform: uppercase; border: 1px solid rgba(255,255,255,0.15); padding: 4px 14px; border-radius: 20px; color: rgba(245,240,232,0.5); margin-bottom: 20px; } .hero h1 { font-family: 'Cormorant Garamond', serif; font-size: clamp(52px, 10vw, 88px); font-weight: 700; line-height: 1; letter-spacing: -2px; background: linear-gradient(135deg, #fff 40%, rgba(255,255,255,0.45)); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; margin-bottom: 20px; } .hero-sub { color: rgba(245,240,232,0.5); font-size: 16px; max-width: 480px; margin: 0 auto 32px; } .hero-btns { display: flex; gap: 12px; justify-content: center; flex-wrap: wrap; } .btn { padding: 13px 28px; border-radius: 8px; font-weight: 500; font-size: 14px; letter-spacing: 0.3px; transition: all .15s; } .btn-primary { background: linear-gradient(135deg, #7c3aed, #db2777); color: #fff; } .btn-primary:hover { opacity: 0.88; transform: translateY(-1px); } .btn-ghost { border: 1px solid rgba(255,255,255,0.15); color: rgba(245,240,232,0.7); } .btn-ghost:hover { border-color: rgba(255,255,255,0.35); color: #fff; } /* ABOUT */ .about { padding: 80px 0; border-top: 1px solid rgba(255,255,255,0.06); } .about h2, .platforms-sec h2 { font-family: 'Cormorant Garamond', serif; font-size: 38px; font-weight: 700; margin-bottom: 16px; letter-spacing: -0.5px; } .about p { color: rgba(245,240,232,0.58); max-width: 560px; } .about-stats { display: flex; gap: 32px; margin-top: 28px; flex-wrap: wrap; } .astat span { display: block; font-size: 24px; font-weight: 600; font-family: 'Cormorant Garamond', serif; } .astat { font-size: 12px; letter-spacing: 1px; text-transform: uppercase; color: rgba(245,240,232,0.4); } /* PLATFORMS */ .platforms-sec { padding: 80px 0; border-top: 1px solid rgba(255,255,255,0.06); } .platform-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px; margin-top: 24px; } .plat-card { padding: 20px; border-radius: 12px; border: 1px solid rgba(255,255,255,0.08); display: flex; flex-direction: column; gap: 4px; transition: transform .15s, border-color .15s; background: rgba(255,255,255,0.02); } .plat-card:hover { transform: translateY(-2px); } .plat-name { font-weight: 600; font-size: 16px; } .plat-desc { font-size: 12px; color: rgba(245,240,232,0.4); } .of { border-color: rgba(0,175,240,0.25); } .of .plat-name { color: #00AFF0; } .of:hover { border-color: rgba(0,175,240,0.5); } .cb { border-color: rgba(244,117,33,0.25); } .cb .plat-name { color: #F47521; } .cb:hover { border-color: rgba(244,117,33,0.5); } .fs { border-color: rgba(22,193,195,0.25); } .fs .plat-name { color: #16C1C3; } .fs:hover { border-color: rgba(22,193,195,0.5); } .tw { border-color: rgba(29,161,242,0.25); } .tw .plat-name { color: #1DA1F2; } .tw:hover { border-color: rgba(29,161,242,0.5); } /* FOOTER */ .footer { padding: 40px 24px; text-align: center; border-top: 1px solid rgba(255,255,255,0.06); font-size: 13px; color: rgba(245,240,232,0.3); } .footer a { color: rgba(245,240,232,0.45); } .footer a:hover { color: #F5F0E8; }`, js: `// Smooth scroll for nav links document.querySelectorAll('a[href^="#"]').forEach(link => { link.addEventListener('click', function(e) { e.preventDefault(); const target = document.querySelector(this.getAttribute('href')); if (target) target.scrollIntoView({ behavior: 'smooth' }); }); }); // Animate hero badge in on load const badge = document.querySelector('.hero-badge'); if (badge) { badge.style.opacity = '0'; badge.style.transform = 'translateY(12px)'; badge.style.transition = 'all 0.6s ease'; setTimeout(() => { badge.style.opacity = '1'; badge.style.transform = 'translateY(0)'; }, 200); }` }, { id: 'blank', label: '⬜ Blank Canvas', color: '#888', desc: 'Start completely from scratch with an empty HTML file.', concepts: ['creative freedom'], html: ` Studio Setup Guide for Adult Creators — Lighting & Gear

Hello World!

Edit me to build your page. 🚀

`, css: `/* Your styles here */ body { background: #fff; color: #333; font-family: sans-serif; padding: 40px; } h1 { color: #FF3D9A; }`, js: `// Your JavaScript here console.log('Hello from JS!');` } ]; // ── Platform-specific templates ──────────────────────────────────────────── // Chaturbate: inline CSS only, limited tags (a p i strong b u ul ol li h1-h3 img font br) // NO div, section, table, JavaScript, external stylesheets, custom fonts // MFC: HTML in Bio box + separate external CSS box; supports div/section/table/animations/@font-face const CB_TEMPLATES = [ { id: 'cb-bio', label: '🟠 CB Basic Bio', color: '#F47521', platform: 'chaturbate', desc: 'A Chaturbate-compatible bio using only allowed tags and inline CSS. No divs — uses p, ul, img, h1-h3.', concepts: ['inline CSS', 'CB allowed tags', 'img hosting', 'no JS'], installPath: 'Edit Profile → Bio (About Me) tab → paste HTML', html: `

YourName

🔥 Live daily · 9pm EST · Premium creator

About me:
Welcome to my room! I love connecting with my fans. Check out my tip menu below! 💕

Tip Menu

Find Me

© 2026 YourName

`, css: `/* Chaturbate uses INLINE CSS only — this panel is for reference/notes. Paste styles directly into each element's style="" attribute. CB does NOT support: external stylesheets, `) .replace('', `