BoilerPrompt
Lovable

Lovable prompt for a 404 page

This prompt turns Lovable's 404 into a diagnostic tool: every dead-end hit gets logged to a broken_links table, and a one-field report form flags the worst offenders. The split layout pairs voice-driven copy with an abstract brand panel, all inside one viewport. Style, palette, type, and motion arrive from the customizer, so it matches the rest of your site.

Last updated

Prompt
Add a custom 404 screen to my {{product}} app — a single viewport-height page that turns a dead end into a recovery moment for {{audience}}. Register it as the catch-all route so any unknown URL lands here, and make sure it responds with an actual 404 status.

Compose it as a split layout:
- Left, 60% width: a short stack — small {{product}} wordmark, an error headline written in the product's voice (playful but useful, hinting at what the visitor was probably looking for), one supporting sentence, then two recovery paths: the primary button and a text link that goes back to the previous page via history.
- Right, 40% width: a decorative panel that visualizes "lost" in a way that fits the brand — an abstract composition using the palette's accent tones, never clip art.

Below the buttons, add a compact "Were you looking for one of these?" list: the four most useful pages, each with a one-line description.

Make the page earn its keep: log every 404 hit to a broken_links table (path, referrer, timestamp) using the built-in database, and include a one-field "Report this link" form that flags the matching row when submitted, swapping to an inline thank-you state.

Visual direction:
{{style}}

Palette: {{palette}}
Typography: {{type}}
Motion: {{motion}}

Rules:
- The whole page fits 100vh on desktop; internal spacing uses 12/20/32px steps, and no gap between siblings exceeds 32px.
- On mobile, the decorative panel shrinks to a slim banner above the text stack and the page may scroll naturally.

The primary call to action is "{{cta}}" on the main recovery button.

After building, confirm: visiting a garbage URL renders this page with a 404 status; a row appears in broken_links with the correct path; submitting the report form flags that row and shows the thank-you state; the desktop layout fits 1280x800 without scrolling.

Customize it

Runs in your browser. Nothing you type here is sent anywhere.

Your customized prompt
Add a custom 404 screen to my a project management SaaS app — a single viewport-height page that turns a dead end into a recovery moment for engineering managers at startups. Register it as the catch-all route so any unknown URL lands here, and make sure it responds with an actual 404 status.

Compose it as a split layout:
- Left, 60% width: a short stack — small a project management SaaS wordmark, an error headline written in the product's voice (playful but useful, hinting at what the visitor was probably looking for), one supporting sentence, then two recovery paths: the primary button and a text link that goes back to the previous page via history.
- Right, 40% width: a decorative panel that visualizes "lost" in a way that fits the brand — an abstract composition using the palette's accent tones, never clip art.

Below the buttons, add a compact "Were you looking for one of these?" list: the four most useful pages, each with a one-line description.

Make the page earn its keep: log every 404 hit to a broken_links table (path, referrer, timestamp) using the built-in database, and include a one-field "Report this link" form that flags the matching row when submitted, swapping to an inline thank-you state.

Visual direction:
Minimal dark style. Near-black canvas (#0A0A0B) with one elevated surface tone (#141416) for cards — never more than two surface steps. Hairline borders (1px, white at 8% opacity) instead of shadows; if a shadow is unavoidable use 0 1px 2px rgba(0,0,0,0.4) and nothing softer. Text in exactly three steps: white at 92% for headings, 60% for body, 40% for captions. Generous negative space — section padding at least 120px on desktop, 64px on mobile. The accent color appears only on interactive elements and one hero highlight, nowhere else.

Palette: a strict neutral ramp (white, #F5F5F5, #E5E5E5, #737373, #171717) carries the entire interface; pick one accent and use it only for primary CTAs, active states, and a single hero highlight. If the accent appears more than five times per viewport it stops being an accent. Keep semantic colors (success, error) desaturated so the accent stays in charge.
Typography: one geometric sans (a Futura/Poppins-class face) at three weights maximum (400/500/700). Scale: 64-88px hero, 32px section heads, 18px lede, 16px body, 13px caps labels with 0.08em tracking. Tight headline leading (1.05-1.1), relaxed body (1.6). Let the geometry carry the personality — no italics; weight and size do all hierarchy.
Motion: none. Zero scroll animations, zero entrance effects — the page is fully composed the instant it paints. Spend the motion budget on input feedback instead: 120-150ms ease-out color and transform transitions on hover and press states only. Hold this constraint absolutely; it is a statement, not an omission.

Rules:
- The whole page fits 100vh on desktop; internal spacing uses 12/20/32px steps, and no gap between siblings exceeds 32px.
- On mobile, the decorative panel shrinks to a slim banner above the text stack and the page may scroll naturally.

The primary call to action is "start a free trial" on the main recovery button.

After building, confirm: visiting a garbage URL renders this page with a 404 status; a row appears in broken_links with the correct path; submitting the report form flags that row and shows the thank-you state; the desktop layout fits 1280x800 without scrolling.

Same task in other tools

Questions about this prompt

Does the broken_links logging require any setup on my side?

No — the prompt instructs Lovable to create the table (path, referrer, timestamp) in its built-in database and insert a row on render. Check the database panel after visiting a junk URL; if no row appears, tell Lovable that exact symptom and it will trace the insert.

Will unknown URLs really return a 404 status code?

That's what the catch-all instruction plus the acceptance check are for — Lovable should register the page for unmatched paths and send a 404, not a 200. Verify in your browser's network tab; if you see 200, quote the check back and ask it to set the response status.

What does the decorative panel look like across styles?

The prompt constrains it to an abstract composition built from the palette's accent tones, so each customizer style renders it differently — a brutalist pick gets hard geometry where a softer pick gets blurred fields. If Lovable reaches for clip art, remind it: abstract, brand-toned, no illustrations of confused people.

Part of the Lovable landing-page cluster — start from the main Lovable landing page prompt.

Related prompts