Landing pages
← Back to library
Open full screen ↗
This is the actual page the prompt produces — scroll and click inside it.
About this one
Error and empty states are where polish actually shows. This covers 404, 500, empty search, empty list and offline.
The prompt
Build a set of five state pages sharing one layout: centred column, max-width 520px, vertically centred. SHARED SHELL A visual mark, a heading at 1.6rem, one muted sentence, and one primary action. Optionally one plain underlined text link as a secondary route. 1. NOT FOUND — the code at clamp(4rem, 12vw, 7rem) with a gradient text fill, a heading that says the page moved or never existed, and a button back to the main index rather than the home page. Add a search field if the site has search. 2. SERVER ERROR — say something broke on our side, that it has been logged, and offer retry. Never show a stack trace or an error code the visitor cannot use. 3. EMPTY SEARCH — echo the exact query back in quotes, then offer three concrete alternatives: clear the filters, try a broader term, or browse everything. Never just say "no results". 4. EMPTY LIST — this is the first-run state, so it is an opportunity, not an error. A one-line explanation of what will appear here and a button that creates the first item. 5. OFFLINE — state that pages already visited still work, and offer retry. RULES Every one of these needs the correct HTTP status, not a 200 with error copy on it. No cartoons, no apologies stretched over three sentences. Say what happened and what to do.