Lily-Livered: A Template for Domains That Deserve Better Than Nothing

Published: · 4 min read

You bought a domain. You're not ready to build the site. You are ready to stop staring at a parking page that says 'Future home of something quite cool' like it's 2003. Lily-Livered is a one-page logo site with the infrastructure of a real one.

A shy robot peering out from behind a stage curtain toward a microphone under a spotlight

You bought a domain. Maybe you’re not ready to build the site yet. Maybe it’s just an email domain and always will be. Either way, you are ready to stop staring at a parking page that says “Future home of something quite cool” like it’s 2003.

Lily-Livered is a one-page logo site for domains that deserve better than nothing but aren’t getting a full website today. Drop in your SVG, edit one config file, push to Cloudflare Pages. Done before your coffee gets cold.

↗ Live Demo: lily-livered.jimvinson.com


The Problem

Every developer has orphan domains. Purchased with good intentions, parked indefinitely, displaying either a registrar’s default page or some aspirational “coming soon” that stopped being convincing three years ago.

The standard solutions are bad in different ways. A blank page signals abandonment. A “coming soon” page signals procrastination. A full website is overkill for a domain that just handles email. And every one of these options leaves your domain naked — no security headers, no structured data, no analytics, no robots.txt, no llms.txt.

What you actually want is the infrastructure of a real site with the content of a business card.


The Solution

Lily-Livered ships a single page — your logo, centered, on a colored background — with the full engineering stack of a production site running underneath it:

Lighthouse 100 on Accessibility, Best Practices, and SEO. Performance scales with your logo complexity, but you’ll be in the high 90s unless you’re doing something deliberately absurd with your SVG.

Security headers out of the box: HSTS, Content Security Policy, CORP, COOP, X-Frame-Options, Referrer-Policy, Permissions-Policy. Your one-page logo site has better security posture than most SaaS applications.

Structured data (JSON-LD), Open Graph tags, Twitter Cards — all auto-generated from a single config file. Share the link anywhere and it renders properly.

Three tiers of analytics available: Google Analytics 4, Microsoft Clarity, and Cloudflare Web Analytics. All optional, all off the main thread via Partytown, all configured by pasting an ID into config.js. Pick one, pick all three, pick none.

robots.txt and llms.txt — so search engines and AI systems know who you are even when the site is a single logo.

A 404 page — because even a single-page site needs to handle disappointment gracefully.


The One File You Edit

Everything lives in src/config.js:

export const config = {
  siteName: 'Acme Corporation',
  siteDescription: 'Fine Products for Coyotes Since 1949',
  siteUrl: 'https://acme.example.com',

  // Analytics — paste your IDs, or leave '' to disable
  googleAnalyticsId: '',
  clarityProjectId: '',
  cloudflareAnalyticsToken: '',

  // Colors
  backgroundColor: '#000000',
  textColor: '#ffffff',
  colorScheme: 'dark', // 'dark' | 'light' | 'auto'

  // Logo size — how much screen to fill
  logoSize: 'normal', // 'normal' | 'large' | 'massive'
};

Three logo sizes: normal (comfortable fit), large (fills most of the screen), massive (edge-to-edge domination). The resizable logo that responds to these settings counts as an interactive feature. That’s not a joke — playing with the three sizes is genuinely satisfying.

Dark mode, light mode, and auto (follows system preference) are all supported. Most logo-only sites look better on dark, which is why it’s the default.


The Stress Test

The demo site ships with a deliberately absurd logo: a 16th-century woodcut skull from Claude Paradin’s Devises heroïques (Lyon, 1557). It’s a 72 KB SVG with 30,000+ path coordinates, SVGO-optimized down from 236 KB.

This is a stress test, not a template recommendation. If Lily-Livered can handle a Renaissance death’s-head with 30,000 coordinates and still score in the high 80s on Lighthouse Performance, your clean modern logo doesn’t stand a chance of slowing it down.

Lighthouse Performance is also inherently noisy — scores vary run to run depending on CI runner load. The badge workflow runs Lighthouse three times per push and takes the median. We’re playing around in the borderlands so you don’t have to.


The Tradeoffs I Made

Partytown and CSP: Partytown runs analytics off the main thread, which is great for performance. But it injects an inline bootstrap script, which forces unsafe-inline into the Content Security Policy. Mozilla Observatory penalizes that by 20 points — enough to drop from A+ to B+. Without analytics configured, the template scores A+ on Observatory. With analytics, B+. That’s a deliberate tradeoff: you get zero-main-thread analytics at the cost of a CSP concession. There’s no way around it until Astro’s experimental hash-based CSP graduates to stable.

No Google Fonts: The 404 page originally loaded Bebas Neue from Google Fonts. I replaced it with a system font stack (Impact / Arial Black / system sans-serif with text-transform: uppercase). An error page should load instantly and independently — no external network requests for typography on the one page that needs to work when everything else is broken.

Cloudflare Pages specifically: Free tier is generous (unlimited bandwidth, 500 builds/month), deploys are fast, the edge network is global. You could deploy to Vercel or Netlify with minimal changes, but Cloudflare Pages is the default because it’s the best deal for a site that costs nothing to run.


The Setup

git clone https://github.com/vinsonconsulting/lily-livered.git my-site
cd my-site
npm install

Then: drop your SVG into public/logo.svg, edit src/config.js, push to Cloudflare Pages. Three steps. The README has the full walkthrough, including custom domain setup, analytics configuration, and favicon/OG image options.


Why This Exists

I built Lily-Livered because I had four domains that needed pants. The first version was a raw HTML file. Then I wanted analytics. Then security headers. Then proper meta tags. Then a 404 page. Then automated Lighthouse scoring in CI. Then Renovate for dependency updates so the template doesn’t rot.

At some point, the one-page logo site had acquired the infrastructure of a real application — which is exactly the point. Your domain deserves real infrastructure even when it doesn’t deserve a real website yet. The over-engineering is a feature, not a bug.

↗ GitHub: vinsonconsulting/lily-livered

“Isn’t this over-engineered for a one-page site?”

Yes, gloriously so. You’re welcome.

Latest articles

Read all my blog posts

· 8 min read

The AI Peer Review System: A Multi-Agent 360-Degree Performance Assessment

When your primary coworkers are AI systems, who writes your performance review? I built a structured evaluation framework where two competing LLMs acted as senior colleagues, graded my work against a rigorous rubric, and debated the results in real time.

Antique desk covered in grade sheets, ledgers, and assessment documents under warm chiaroscuro lighting

· 4 min read

The ABCD System: An Edge-Native Product Delivery Engine

Astro. Better Auth. Cloudflare. Drizzle. A strict, opinionated full-stack architecture for Technical Program Managers who ship — and anyone tired of DevOps being a separate job description.

Heraldic coats of arms for the ABCD System — Astro, Better Auth, Cloudflare, and Drizzle