Static site for dingledropper LABS. Self-contained HTML, no build step, no dependencies, no JavaScript frameworks.
site/
├── index.html # Landing page → dingledropper.com/
├── susdetector/
│ └── privacy.html # SusDetector privacy policy → dingledropper.com/susdetector/privacy.html
├── og-image.html # Source for the main site OG share card
├── og-image.png # Rendered 1200x630 OG card for index.html
├── og-susdetector.html # Source for the SusDetector OG share card
├── og-susdetector.png # Rendered 1200x630 OG card for the privacy page
├── feature-graphic.html # Source for the Play Store feature graphic
├── feature-graphic.png # Rendered 1024x500 feature graphic for Play Console
└── README.md # This file
Every HTML file is fully self-contained — CSS is inlined, fonts are system fonts, zero external assets. Upload and it works.
| Page | URL |
|---|---|
| Landing | https://dingledropper.com/ |
| SusDetector privacy policy | https://dingledropper.com/susdetector/privacy.html |
| Main OG share card (for Twitter/LinkedIn etc.) | https://dingledropper.com/og-image.png |
| SusDetector OG share card | https://dingledropper.com/og-susdetector.png |
Both HTML pages already reference the correct OG image URLs via <meta property="og:image"> tags, so link previews on Twitter, LinkedIn, Discord, Slack, iMessage, Signal, Facebook, etc. will automatically pull the right card.
The Play Console privacy policy URL is: https://dingledropper.com/susdetector/privacy.html — paste this into Play Console → App content → Privacy policy.
Squarespace CAN host a custom HTML site, but it's not Squarespace's happy path — their platform is built around their visual editor and template system. Here's the realistic options on Squarespace:
- Code Injection + a blank page template — works for simple one-page sites but doesn't scale to multi-page (privacy policy at a subpath is awkward). Skip this option.
- Custom Code Block inside a regular Squarespace page — the HTML gets embedded inside their template chrome (their nav, their footer), and you can't remove those without a Business plan upgrade. Not ideal for a clean landing site.
- Developer Platform / Custom Templates — full control, but requires switching your site to Developer Mode, editing
.regionfiles, and deploying via git. This is the "right" way on Squarespace but it's a non-trivial learning curve for a one-page landing site. - Point the domain at a real static host — keep Squarespace for whatever else you might be using it for, but point
dingledropper.comDNS at Cloudflare Pages / Netlify / Vercel for the landing site. This is what I recommend.
If you're already paying for a Squarespace subscription and Squarespace is where your domain registration lives:
- Log into Squarespace → Settings → Domains → click
dingledropper.com - Choose "Use a different domain provider" or find the DNS settings panel
- Add the DNS records your chosen static host provides (A records + CNAME)
- The domain keeps its Squarespace registration but points at the other host for the actual site
This is the cleanest way to keep your Squarespace account for other purposes and still ship a professional landing site. You can always move back to a pure Squarespace site later if you build something fancier there.
If you really want to keep everything inside Squarespace:
- Create a new blank page in your Squarespace site
- Use a Code Block (Business plan or higher)
- Paste the contents of
index.htmlinto the Code Block - Repeat for
privacy.htmlon a separate page - Set the URL slug for each page to match (
/for landing,/susdetector/privacyfor the policy) - Upload the OG images and feature graphic to Squarespace's file asset system and update the
<meta property="og:image">URLs in the HTML to match the uploaded paths
Caveats:
- You cannot remove Squarespace's template header/footer without the Developer plan
- File upload paths in Squarespace are auto-generated and ugly
- The
<title>and<meta>tags inside a Code Block may conflict with Squarespace's own head tags, making OG previews unreliable
My honest recommendation: keep Squarespace for whatever else you're using it for, and point the dingledropper.com domain at Cloudflare Pages for the site. 5 minutes of DNS work, free forever, no template fighting. See Option B.
Option B: Cloudflare Pages (my recommendation — free, fast, pairs well with Squarespace-registered domain)
- Go to dash.cloudflare.com → Pages → Create a project → Direct Upload
- Project name:
dingledropper-site(or anything — this is just the internal name) - Drag the entire
site/folder (not its parent) into the upload area. All 8 files should upload. - Click Deploy site. Cloudflare gives you a
.pages.devURL instantly for testing. - Once it works on the
.pages.devURL:- Go to Custom domains → Set up a custom domain → enter
dingledropper.com - Cloudflare shows you the DNS records you need to add
- Go to Custom domains → Set up a custom domain → enter
- Back in Squarespace → Settings → Domains → dingledropper.com → DNS Settings (or wherever your domain is registered):
- Add the CNAME record Cloudflare gave you (usually something like
dingledropper.com→<your-project>.pages.dev) - Save
- Add the CNAME record Cloudflare gave you (usually something like
- Wait 5-30 minutes for DNS propagation. Cloudflare issues an SSL cert automatically.
- Done. Site is live at
https://dingledropper.com.
Cloudflare Pages is free for unlimited bandwidth and has the fastest cold-start times of any static host.
- Sign up at netlify.com
- Go to Sites → drag the
site/folder onto the drop zone - Site deploys to a random
.netlify.appsubdomain - Domain management → Add custom domain →
dingledropper.com - Follow Netlify's DNS instructions and add the records in Squarespace
- Create a public GitHub repo (name doesn't matter)
- Upload the contents of
site/to the repo root - Repo → Settings → Pages → Source:
Deploy from a branch→ Branch:main→ Folder:/ (root) - Wait for the first deploy, then add your custom domain in Settings → Pages
- Add the CNAME in Squarespace DNS
Same flow as Netlify — sign up, drag folder, add custom domain, update DNS. Free tier is generous.
You do NOT need to transfer your domain away from Squarespace. The domain registration (who owns the name) and the DNS routing (where the name points) are separate. You keep the first, change the second.
- Log into Squarespace
- Settings → Domains →
dingledropper.com - DNS Settings (or "Advanced DNS")
- For whichever host you chose (Cloudflare Pages / Netlify / Vercel / GitHub Pages), the host gives you 1-2 records to add. Usually:
- One CNAME record for
www→ the host's CDN URL - One A record or ALIAS for the apex (
@) → the host's IP addresses
- One CNAME record for
- Save
- Wait up to 1 hour (usually minutes) for propagation
- Visit
https://dingledropper.comand you should see your site
After the first deploy, any edit follows the same flow:
- Cloudflare Pages / Netlify / Vercel — re-drag the
site/folder onto the project dashboard, it redeploys in ~30 seconds - GitHub Pages — commit and push
- Squarespace Code Block — paste updated HTML into the block editor
All three PNGs (og-image.png, og-susdetector.png, feature-graphic.png) are rendered from the matching .html files via headless Chrome. When you want to update the design:
- Edit the source
.htmlfile - Run the render command from a terminal in the
site/directory:
# OG image (1200x630)
"/Applications/Google Chrome.app/Contents/MacOS/Google Chrome" \
--headless=new --disable-gpu --hide-scrollbars --force-device-scale-factor=1 \
--screenshot=/tmp/og-image-raw.png --window-size=1200,850 \
--default-background-color=00000000 \
"file://$(pwd)/og-image.html"
python3 -c "from PIL import Image; Image.open('/tmp/og-image-raw.png').crop((0,0,1200,630)).save('og-image.png')"Same pattern for og-susdetector.html (1200×630) and feature-graphic.html (1024×500 — use window-size=1024,700).
The reason for the overshoot-and-crop: Chrome's --window-size includes window chrome (toolbar etc.), so actual viewport ends up smaller than requested. Overshooting by ~150-200px and cropping to the target dimensions guarantees the full content fits.
The aesthetic matches the SusDetector "Backlit Neon" theme:
- Background:
#A0C8E0(deep sky blue) - Surface cards:
#EADAE8/#DCC4DA(pink-lavender) - Text:
#0A1020(near-black navy) - Accent:
#1A5A9A(bold blue) - Shadows: hard offset drop shadows (
4px 4px 0 0 #0A1020) + optional backlit blue glow - Borders: thick 2.5px near-black outlines on all cards and buttons
- Buttons animate a "press-in" on
:active
Fonts are the system stack — no Google Fonts, no CDN dependencies. Site loads in well under a second on any connection.
| File | Size |
|---|---|
| index.html | ~14 KB |
| susdetector/privacy.html | ~16 KB |
| og-image.png | ~80 KB |
| og-susdetector.png | ~105 KB |
| feature-graphic.png | ~95 KB |
| Total | ~310 KB |
Entire site is under 320 KB with zero dependencies.