Skip to main content
vibld

Template

Lookwell

A marketing site for an uptime monitoring and incident alerting product aimed at engineering teams. It uses a calm editorial look to win technical buyers: how it works in three steps, proof via stats and case studies, deep feature explanations, integrations and transparent plans.

Editorial uptime-monitoring SaaS marketing site · Website · SaaS landing page · static site

A mock-up of the homepage, drawn from this design’s layout, palette and typefaces. A build follows the full prompt below.

Add app screens

Pick up to 6 screens, such as a dashboard, settings or an empty state. Each is built in this design’s own palette and typefaces, with its states and guardrails.

Account setup
Add edit
Analytics
Appearance
Calendar
Chat
Checklist
Checkout
Confirmation
Dashboard
Delete account
Details
Discovery questions
Empty state
Flowchart
Import export
Inbox
Integrations
Invite team
Loading
Login
Onboarding
Plans
Playground
Product tour
Referral
Search
Settings
Share
Sign up
Success
Table
Team members
Text editor
Upgrade
Usage
Verification
Welcome

Start from this templateRead the build prompt

Typefaces

Hedvig Letters Serif and Roboto Mono keep the newspaper headline and timestamp voices, and Red Hat Text is a sober small-size text face that suits a quiet monitoring tool.

  • Hedvig Letters SerifHeadings: H1/H2 48-56px 400, -0.02em; stats 56px
  • Red Hat TextBody: body and UI 16px/1.55, dense four-up rows 15px
  • Roboto MonoFigures and code: eyebrows 12px uppercase +0.08em, timeline times with tabular numerals

Patterns

  • inset hero card with pink-to-navy mesh gradient
  • announcement chip with rotating text
  • serif display headlines over sans body
  • monospace uppercase section eyebrows
  • visible layout grid lines with corner dots
  • logo grid with caption column
  • three-step how-it-works with timing badges and UI fragments
  • check-list columns under steps
  • large statement band
  • stat row with accent left rules
  • features accordion paired with a navy product showcase
  • incident timeline mock
  • orbit diagram of integrations
  • three-tier pricing with compare-plans link
  • case-study feature card with metrics
  • testimonial columns
  • FAQ
  • blog post cards

States it is designed for

  • Waitlist and contact forms: validation, submitting, success, duplicate email, server error
  • Pricing: monthly/annual state and plan comparison table with sticky header
  • Changelog: entries tagged Added / Improved / Fixed; empty filter state
  • Blog list: loading skeleton cards in client-side filtering, empty category
  • Demo video dialog: loading, playing, error fallback
  • Reduced motion: static orbit, no count-up, no rotating chip text
  • Login link leads to an auth screen with error and rate-limited states

Who it is for

  • Platform and SRE engineers
  • Engineering managers owning on-call
  • CTOs at early-stage startups
  • Support leads who publish status pages

Layout

  1. Top bar on cream: logo left, nav links (Pricing, Integrations, Customers, Resources, Contact), 'Log in' and dark 'Start for free' button right; hamburger on narrow widths
  2. Hero: inset rounded card with pink-violet-to-navy mesh gradient; dark announcement chip ('New' + rotating message), two-line serif headline in white, short sans subline, mint 'Start for free' + white 'Play demo' pill buttons, 'no card required' note
  3. Logo band: caption column left, 2x2 grid of customer marks right, 'Meet our customers' link
  4. How it works: mono eyebrow, serif heading, three columns each with a UI fragment card, time badge, step title and check list
  5. Statement band on a warm gray panel: one long serif sentence
  6. Stats: four big serif numbers each with a mint left rule and caption
  7. Features: left heading + accordion (incident timeline, SLA reporting, on-call scheduling, screenshot on failure) above a full-width navy panel showcasing an incident timeline card
  8. Integrations: centered heading with an orbit of tool icons around the product mark, four small feature columns below
  9. Platform section, changelog teaser, customer case study card with metrics, testimonial columns
  10. Pricing: three plans (Free, Pro, Business) + compare-plans callout
  11. FAQ, latest blog posts, footer with waitlist form
  12. Visible 1px grid lines frame the content column on desktop; below 768px lines disappear, grids stack, hero card goes near full-bleed

Palette

calm, technical, trustworthy, editorial, precise. A newspaper-like layout for software that is supposed to stay quiet until something breaks.

  • page background (cream)#fffefa
  • warm panel surface#f7f6f0
  • primary text / dark button#262626
  • secondary text#616161
  • navy showcase / hero base#021b42
  • hero gradient mid (violet navy)#2a2f7a
  • mint accent fill (CTA, chips on dark)#33e9bb
  • mint accent on light (rules, focus)#12a781
  • input border#8b95a4
  • grid lines (decorative)#d1d5db

Every checked pair, measured again

SampleWhereRatioNeeds
Aabody text on cream15.00:14.5:1
Aasecondary text on warm panel5.72:14.5:1
Aalabel on mint button9.74:14.5:1
Aawhite label on dark button15.13:14.5:1
Aahero white text on gradient mid11.76:14.5:1
Aawhite text on navy showcase16.96:14.5:1
Aamint chip text on navy10.92:14.5:1
stat accent rule / focus ring on cream3.03:13:1
input border on cream3.00:13:1

As vibld’s tokens

The palette on the fifteen colour tokens vibld styles a project with, each text colour on the fill it is read on. Marked tokens are solved from the palette, because no swatch held that role at 4.5:1.

  • background
  • card
  • muted
  • primary
  • secondary
  • accent
  • destructive *

Type scale

Display
Hedvig Letters Serif 400, 48-56px, -0.02em tracking, 1.05 line-height; stats 56px in the same serif
Body
Red Hat Text 400-500, 16px / 1.55 (observed 13-15px raised to 16px); feature column text 15px only in dense four-up rows

Eyebrows in Roboto Mono 12px uppercase with 0.08em tracking. Timeline times in a mono face with tabular numerals.

Spacing and imagery

Editorial and structured: content framed by 1px vertical grid lines with small corner dots at section joins; 1200px container; sections 96-120px; cards 12-16px radius; buttons fully rounded pills (30px radius); soft shadows only on UI fragment cards.

Mesh gradient hero (pink, violet, navy) with grain; product UI fragments (monitor form, alert routing, status page bars, incident timeline) on white cards; small avatars; circular integration icons in an orbit; no photography.

Components

  • Announcement chip with rotating message
  • Gradient hero card
  • Pill buttons (mint, white, dark)
  • Logo grid with caption
  • Step card with time badge and UI fragment
  • Statement band
  • Stat with accent rule
  • Feature accordion with icons
  • Incident timeline card
  • Integration orbit diagram
  • Plan card and comparison table
  • Case study card with metrics
  • Testimonial column
  • FAQ accordion
  • Blog card
  • Waitlist email form

Interactions

  • Announcement chip text rotates every 4s with a vertical slide; pauses on hover/focus
  • Accordion opening a feature swaps the navy showcase image with a cross-fade
  • Orbit icons drift slowly around the center mark; hover reveals a label
  • Stats count up on first view
  • 'Play demo' opens a video dialog
  • Buttons: slight darken on hover; 2px focus ring in mint-on-light #12a781 or mint on dark

Data

  • Plan{id, name (free|pro|business), monthly_price, annual_price, monitors_included, features[], cta}
  • CaseStudy{slug, company, headline, metrics[{label, value}], results[], gallery[]}
  • Integration{slug, name, category, overview, setup_steps[], video_url}
  • ChangelogEntry{version, date, title, added[], improved[], fixed[], video_url}
  • Post{slug, title, excerpt, cover, author, published_at}
  • Testimonial{quote, name, role, company}
  • Job{slug, title, team, location, type}
  • WaitlistSignup{email, company, created_at}

Guardrails

Experience

  • Serif only for headings and big numbers; all UI text stays sans
  • Grid lines are subtle structure, never borders around clickable things
  • Each how-it-works step shows a realistic UI fragment with invented data
  • Accordion keeps one item open and the showcase always matches it
  • Pricing must state monitor limits and check frequency per plan

Accessibility

  • Hero text sits on the navy-violet part of the gradient; keep a navy overlay so white text never lands on the pink area
  • Mint #33e9bb is a fill or on-dark accent only; on cream use #12a781 for rules and focus
  • Rotating chip is aria-live='off' with a pause on hover/focus and a static fallback under reduced motion
  • Accordion uses Radix with proper button semantics and aria-expanded
  • Stats include the unit in text, not only in visual styling

Security

  • Waitlist and contact inserts via Edge Function with zod validation, honeypot and per-IP rate limiting
  • RLS on waitlist_signups and contact_messages: insert via service role only, no anon read
  • Auth pages use the platform's hosted auth with lockout/rate limiting on login
  • No customer data in marketing mocks; status-page mocks use example domains

Build prompt

The baseline every prompt in the catalog assumes, then this design’s own ten sections, from goal to guardrails.

The baseline
### How to use these prompts
Paste an entry's build prompt into your coding agent as the first message. Each prompt names its own stack, tokens and acceptance criteria; the rules below apply to all of them and can be prepended once per project.

### Engineering baseline
- TypeScript strict mode, no `any`, small typed components, feature folders, and one source of truth for design tokens (CSS variables consumed by Tailwind).
- Validate every input with a shared zod schema on the client and again on the server or edge function. Never trust client-side checks alone.
- Show loading, empty and error states for every async view. Surface errors in plain language with a retry, and log details to the console in development only.
- Keep secrets out of the bundle. Only publishable keys (for example a Supabase anon key) belong in client code; service-role keys, API keys and webhooks live in server or edge-function environment variables.

### Data and auth baseline (full-stack entries)
- Enable Row Level Security on every table before inserting data. Default-deny, then add owner-scoped policies (`auth.uid() = user_id`) and explicit role checks for admin views.
- Store roles in a separate table checked by a security-definer function, never in a user-editable profile field.
- Upload files to private storage buckets with size and MIME limits, and serve them through signed URLs.
- Rate-limit public endpoints (forms, auth, AI calls) and add a honeypot field or captcha to anonymous forms.
- Take payments through a hosted checkout and verify webhooks by signature. Never handle raw card data.

### Accessibility and UX baseline
- Target WCAG 2.2 AA: 4.5:1 contrast for normal text and 3:1 for large text, input borders, focus rings and meaningful icons or chart lines. Every palette in this catalog lists its verified pairs; re-check with a contrast tool after any colour change.
- Keep body text at 16px or larger with 1.5 line height, nothing below 12px, no light weights under 24px, and uppercase only for short labels.
- Give every interactive element a visible focus ring, full keyboard support, semantic landmarks, labelled form fields, and alt text on meaningful images.
- Respect `prefers-reduced-motion` for every animation. Give drag-and-drop and carousels keyboard and button alternatives.
- Build mobile-first and test at 375px, 768px and 1280px.

### Content guardrails
- Use original copy, fictional sample data and placeholder or licensed imagery. Do not reuse another product's name, logo, screenshots or marketing text.
- Label demo testimonials and metrics as samples. Collect the minimum personal data the feature needs.

### SaaS screen baseline
- Design every screen for its full set of states: first-run empty, loading skeleton, partial data, error with retry, permission-denied, and success feedback. Each entry lists the states its screen needs.
- Keep destructive actions (delete, revoke, downgrade, remove member) behind a confirmation that names the object, and prefer undo over a second dialog where the action is reversible.
- Enforce authorisation on the server for every action a screen exposes. Hiding a button is not access control; check the role again in the API or RLS policy.
- Never show secrets (API keys, tokens) in full after creation. Show them once, then mask them, and offer rotate and revoke.
- Keep the app shell (navigation, workspace switcher, account menu) consistent across screens, and preserve filters, sort and scroll position when the user navigates back.
### Goal
Build the marketing site for **Lookwell**, an uptime monitoring and incident alerting service for engineering teams. The visitor is a technical buyer who wants to see how it works, whether it fits their stack and what it costs. The site should read like a calm technical publication: serif headlines, visible grid structure, and precise product fragments.

### Stack
Astro with React islands, TypeScript, Tailwind CSS, shadcn/ui on Radix, lucide-react, Motion for the rotating chip, orbit and count-ups, react-hook-form + zod for forms. Content collections for plans, case studies, integrations, changelog, posts, testimonials, jobs and FAQ. Supabase for waitlist and contact inserts (via Edge Function) and for the login screen.

### Pages & layout
1. **Home**: top bar; inset gradient hero card (announcement chip, serif headline, subline, mint "Start for free" and white "Play demo", "no card required"); logo grid with caption; how it works (three step cards with time badges, fragments and check lists); statement band; stats row; features accordion + navy showcase with incident timeline; integrations orbit + four mini features; platform overview; case study card; testimonial columns; pricing; FAQ; latest posts; footer with waitlist form.
2. **Pricing** with a comparison table (sticky header), **Integrations** index + detail page (overview, setup steps, video), **Customers** index + case study template, **Blog**, **Changelog** (Added/Improved/Fixed), **Careers**, **Contact**, **Waitlist**, **About**, **Legal**, **Log in**.
Desktop shows 1px vertical grid lines with corner dots at section boundaries; below 768px lines hide, grids become single column and the hero card is 8px from the edges.

### Design system
- Colors: `--bg: #fffefa`, `--panel: #f7f6f0`, `--fg: #262626`, `--muted: #616161`, `--navy: #021b42`, `--hero-mid: #2a2f7a`, `--mint: #33e9bb`, `--mint-on-light: #12a781`, `--input-border: #8b95a4`, `--grid: #d1d5db` (decorative).
- Fonts: Hedvig Letters Serif 400 for H1/H2 and stats (48-56px, -0.02em); Red Hat Text for body 16px/1.55 and UI; Roboto Mono 12px uppercase 0.08em for eyebrows and timestamps.
- Spacing: 8px base; section padding 112px desktop / 72px mobile; container 1200px; step cards 24px padding.
- Radius: hero card 16px, fragment cards 12px, pills 999px.
- Shadows: fragment cards `0 12px 32px rgba(2,27,66,.10)`; nothing else.
- Hero gradient: radial pink (#e6a3e8) at top-right into violet navy #2a2f7a into #021b42, plus 4% grain; a navy overlay keeps the text zone at or darker than `--hero-mid`.
- Motion: 250ms ease-out; chip rotation 4s; orbit 60s per revolution.

### Components & interactions
AnnouncementChip (rotating messages, pause on hover/focus), HeroCard, PillButton (mint | white | dark), LogoGrid, StepCard (badge, fragment slot, title, checklist), StatementBand, Stat (mint rule), FeatureAccordion + ShowcasePanel (synced), IncidentTimeline (times, status icons, message bubble), IntegrationOrbit, PlanCard + CompareTable, CaseStudyCard, TestimonialColumns (two columns drifting vertically in opposite directions, pausable), FaqAccordion, PostCard, WaitlistForm, DemoDialog.

### Data & state
All customers, people, domains and metrics are invented (for example "a payments startup cut alert noise by half"). Forms: idle, invalid, submitting, success, duplicate, error. Accordion index drives the showcase. Pricing period stored in the URL.

### Accessibility
Body text 16px; nothing below 12px; mono eyebrows are short uppercase labels with 0.08em tracking. White hero text only over the navy-violet zone. Rotating chip and testimonial drift pause on hover/focus and stop under reduced motion. Accordion via Radix. Focus rings 2px `--mint-on-light` on cream and `--mint` on navy.
Verified contrast: body text on cream: #262626 on #fffefa = 15.00:1; secondary text on warm panel: #616161 on #f7f6f0 = 5.72:1; label on mint button: #262626 on #33e9bb = 9.74:1; white label on dark button: #ffffff on #262626 = 15.13:1; hero white text on gradient mid: #ffffff on #2a2f7a = 11.76:1; white text on navy showcase: #ffffff on #021b42 = 16.96:1; mint chip text on navy: #33e9bb on #021b42 = 10.92:1; stat accent rule / focus ring on cream: #12a781 on #fffefa = 3.03:1; input border on cream: #8b95a4 on #fffefa = 3.00:1.

### Security
Edge Functions validate waitlist/contact payloads with zod, check a honeypot and rate-limit per IP; tables `waitlist_signups` and `contact_messages` have RLS with no anon select/update/delete. Login uses the platform's auth with rate limiting and generic error messages. Only the anon key in the client.

### Performance & SEO
Static HTML; islands hydrate on visible. Gradient as CSS (no large image). Integration and case study pages statically generated with unique meta and OG images. RSS for blog and changelog. Target LCP under 1.8s.

### Guardrails
- Customer marks are neutral placeholders; integration icons are generic glyphs, not real brand marks.
- Do not publish uptime claims as facts; label sample stats.
- Keep the serif/sans split strict.
- Acceptance criteria:
  - [ ] Accordion and showcase stay in sync by mouse and keyboard
  - [ ] Pricing table readable on mobile (horizontal scroll with sticky first column)
  - [ ] All collections render detail pages
  - [ ] Contrast pairs pass; reduced motion honoured

Open the builderAll templatesThis palette on its own