Website

Build a neo-brutalist startup site: thick borders, hard shadows, sticker badges, zero JS

Builds a product site on your hosting server with thick black borders, hard shadows, flat bright colours and sticker badges. Colours are chosen with a contrast table, the playful hover offsets use transform only, and the site is measured page by page to 100 without any JavaScript.

When to use it

When you want a memorable, boldly coloured site for your app or startup that is still fast and readable for everyone.

What you get

A six-page, JavaScript-free neo-brutalist site with a static menu and structured data, plus a colour contrast table, a per-page mobile and desktop Lighthouse table and the list of fixes applied.

Does it change anything in my account?

Only with your approval. The assistant first shows a preview of every change and waits for your go-ahead.

Works with

SEO Intelligence, Search Console

Fill in before sending

[product or startup name][server name][what it does, for whom][three steps][4 to 6 features][plan names and prices, or "no pricing page"][App Store, Google Play or sign-up URL][email][phone][WhatsApp number][address][domain]
Build a neo-brutalist, multi-page, JavaScript-free product site for [product or startup name] on the [server name] site on my Opus Growth hosting server. Product: [what it does, for whom]. How it works: [three steps]. Key features: [4 to 6 features]. Pricing: [plan names and prices, or "no pricing page"]. Download or sign-up links: [App Store, Google Play or sign-up URL]. Contact: [email], [phone], [WhatsApp number], [address]. Domain: [domain]. Brand colours: [colours, or "you choose"]. Real photos or screenshots: [links, or "none"]. Pages: home (/), how it works (/nasil-calisir/ or /how-it-works/), pricing (/fiyat/), about (/hakkimizda/), contact (/iletisim/), privacy (/gizlilik/) and 404.html. Home sections in order: hero (h1, two-sentence intro, two buttons, sticker badges and the signature element), category strip, three steps, who it is for (with a photo), features, FAQ and a closing call to action. No form on the contact page; email, phone, a WhatsApp link with a prefilled message and the download links instead, because the server only serves static files. Style: neo-brutalist, but like a product, not a toy. Thick black borders (3 pixels), hard shadows with no blur (black only, offset 4, 6 and 10 pixels), flat bright colour blocks (at most five flat colours such as tomato, lemon, mint, sky blue and lilac on a cream background), slightly tilted badges that look like stickers. Typography: a chunky, characterful display face from Fontshare (for example Chubbo) with a calm grotesk for body text (for example Supreme 400 and 700). No gradients, no glass effect, no soft shadows and no purple to blue blends. The site has no JavaScript at all; GSAP, Lenis and Swiper are not loaded. Signature element: on the right of the hero, a thick-bordered card that draws the product's main screen in real HTML instead of an image (for example a household's expenses this month and the month-end settlement), with stickers stuck around it. Colour, contrast and motion rules (where this style loses points most easily): 1. Write text in black on every coloured background and never use white text. Calculate the contrast ratio of each colour against black and put it in ART.md as a table; darken any colour below 4.5. In the demo the lowest ratio was 6.7 on tomato orange, and accessibility was 100 on every page. 2. Make the focus ring 3 pixels of black with a 3 pixel offset, switching to lemon yellow in a black footer. Use outline-offset so the focus ring does not merge with the thick border. 3. Do the playful offset of buttons and cards with transform and box-shadow only: on hover translate(-2px, -2px) and a larger shadow, on press translate(4px, 4px) and no shadow. Buttons are at least 48 pixels tall, small buttons at least 44. 4. Put the sticker tilt in the separate `rotate` property, not in transform, and set the angle with a Tailwind arbitrary property class such as `[--r:-4deg]`. That way the stickers stay tilted even when the reduced-motion rule resets transform, and no style="" attribute is needed. 5. Run the stickers' "slap on" entrance with `scale` and `translate` only, inside `@media (prefers-reduced-motion: no-preference)` and with a data-reveal="slap" attribute (design-check recognises motion by that attribute). No hiding with opacity, and the h1 never moves. With prefers-reduced-motion: reduce, every animation and transition is off. 6. Mark decorative stickers aria-hidden="true"; badges that carry information (for example "free for up to 6 people") stay as plain list items. On mobile, hide a decorative sticker below 640 pixels if it overlaps another badge at the corner of the card; in the demo the "receipt added" sticker covered the "3 people" badge at 390 pixels. Setup and known traps (each one cost points or failed a gate in the demo measurement, do not skip): 1. If a site is already live on the server, tell me first, because setup overwrites index.html and the assets folder. Preview scaffold_site with confirm=false first, then call confirm=true once I approve. Then read site_design_guide and site_seo_guide. Before writing code, write the design direction (typography, colour, grid, signature element, motion language and the libraries that will NOT be loaded) into a short ART.md outside assets and show it to me. 2. Compile Tailwind, do not load it from the CDN. Install `npm i -D tailwindcss@3` with site_run_command and background=true, and follow it with site_command_status. The content paths in `tailwind.config.js` must cover every HTML file including subfolders, the `_src/*.tpl` templates and any JS file that writes classes. `_src/tw.css` holds the line `@import "../assets/app.css";` and the three `@tailwind` lines; compile it into one file with `npx tailwindcss -c tailwind.config.js -i _src/tw.css -o assets/site.css --minify`. Remove the cdn.tailwindcss.com script, the inline tailwind.config, chrome.js and motion.js from the pages and link only `/assets/site.css`. Recompile after every HTML change. This site has no JavaScript files, so the content list needs no JS entries. 3. Self-host the fonts. Read the Fontshare CSS with one request per family and weight (`https://api.fontshare.com/v2/css?f[]=family@weight`), download each woff2 file into `assets/fonts/` with site_fetch and write the @font-face rules with `font-display: swap` into `assets/app.css`; design-check looks for the custom font there. Preload EVERY weight used above the fold (heading, body and buttons) on every page with `<link rel="preload" as="font" type="font/woff2" crossorigin>` and put these lines before the stylesheet link. Most Fontshare fonts have no ₺ sign, so write prices with "TL". 4. Make the menu and footer static HTML. Write a small `chrome-stamp.mjs` that reads the nav list from site.config.js and stamps `_src/header.tpl` and `_src/footer.tpl` between the `<!-- nav:start --><!-- nav:end -->` and `<!-- footer:start --><!-- footer:end -->` markers on every page, adding aria-current="page" to the active link. Do not give the templates a .html extension and use placeholders like `[[NAV]]` instead of `{{...}}`. Build the mobile menu with `<details>` and no JS. Keep the business name, address and phone in the footer as plain text, and make footer and breadcrumb links at least 44 pixels tall. 5. Convert images while downloading them with site_fetch: write the same photo to separate files with resize="480x", "800x" and "1120x" (or the widths the page needs), image_format="webp" and quality=65. Give every `<img>` srcset, sizes and a width and height that match the real ratio. The main above-the-fold image gets fetchpriority="high" and is not lazy; give fetchpriority only to the real LCP element, and loading="lazy" decoding="async" to the rest. 6. Write a small `favicon.svg` in the site root and add `<link rel="icon" href="/favicon.svg" type="image/svg+xml">` to every page; if there is a PNG logo, make an apple-touch-icon with site_fetch, resize="180x180" and image_format="png". Without a favicon the browser logs a 404 for /favicon.ico and Best Practices drops to 96. 7. HTML validator rules: start every document with an uppercase `<!DOCTYPE html>`, quote attributes with double quotes, use `&nbsp;` for the spaces in the visible text of tel: links, never use a style="" attribute (if you need a CSS variable, use a Tailwind arbitrary property class such as `[--r:-4deg]`), give every button type="button", do not put aria-label on role-less elements such as `<ul>` or `<div>`, and use `<section aria-label="...">` instead of role="region". 8. If the footer has a black background, make its links cream with a lemon hover, and keep each at least 44 pixels tall. SEO, AEO and GEO: 1. Use directory-style URLs with a trailing slash (/nasil-calisir/, /fiyat/, /hakkimizda/, /iletisim/, /gizlilik/ or their equivalents in your language). Fill in the seo block of site.config.js and run `node seo-stamp.mjs`. For a startup with no physical shop, set localBusiness:false in site.config.js. Page schemas: home WebPage and FAQPage; how it works WebPage and FAQPage; pricing SoftwareApplication (applicationCategory, operatingSystem and an Offer per plan) and FAQPage; about AboutPage; contact ContactPage; BreadcrumbList on inner pages. Because you will not add user reviews or ratings to SoftwareApplication, Google may not show an app rich result; that is fine, do not invent a rating. Write every page-specific schema in its own `<script type="application/ld+json">` block and link it to the base graph with @id. Do not nest BreadcrumbList inside @graph; keep it in its own block, because that is the only way seo-check sees it. 2. Titles 48 to 60 characters (seo-check treats over 65 as an error), descriptions 145 to 158 characters, one h1 per page. The main content of every page is at least 150 words. In the demo the about, contact and privacy pages came in at 113 to 148 words on the first try; add real information to them, such as "what to include in a support request" or "who the data is shared with". 3. The first paragraph of every page answers the page's question directly, and the h1 is phrased as that question. Write the page's own FAQ with `<details>` and mark it up as FAQPage. Show the publishing organisation and a "Last updated" date with `<time datetime>`. 4. In robots.txt, write your decision with the reason for GPTBot, OAI-SearchBot, ChatGPT-User, ClaudeBot, Claude-User, Claude-SearchBot, PerplexityBot, Perplexity-User, Google-Extended, Applebot-Extended, Bingbot and CCBot, and point to the sitemap. sitemap.xml has a real lastmod. llms.txt has an accurate two-sentence summary of the site and a list of the important pages. 5. No invention: do not write reviews, ratings, awards, customer counts, certificates, opening hours, coordinates, prices or product figures without asking me. Leave any field you do not know out of the schema entirely. Gates (in order; do not say "done" until all pass): 1. With site_run_command, run in order `node chrome-stamp.mjs`, the Tailwind build, `node seo-stamp.mjs`, `node seo-check.mjs` (0 errors, 0 warnings), `node design-check.mjs` (0 errors; justify any remaining warning) and `npx html-validate "**/*.html"` (0 errors). 2. View every page with site_preview, view="mobile" and view="desktop". site_preview captures the page with motion turned off; if the content is not complete in that capture, the no-motion state is broken. Lazy images further down may be blank in a full-page capture; do not count that as an error, but check their paths. 3. Run core_web_vitals for every page with strategy="mobile" and strategy="desktop". Acceptance: on mobile Performance at least 95 and Accessibility, Best Practices and SEO at 100; on desktop all four at least 95, target 100. For a page that misses, find the slow file with resources=true, fix it and measure again. Then run seo_audit on the home page with strategy="mobile" and runs=2. The network request list must contain no address outside your own domain (store and WhatsApp links are links, not requests). 4. No horizontal scrolling at 360, 390, 768 and 1440 pixels wide, touch targets at least 44 pixels, no console errors. Interaction check: since site_preview cannot show motion, tell me what to look for in my own browser: a button lifts up and to the left on hover and sinks into its shadow on press; the stickers slap on gently as the page loads; tabbing shows a thick black focus ring on every link; with reduce motion turned on in the operating system nothing moves but the stickers stay tilted; with JavaScript off the mobile menu still opens. After publishing: preview the rule `/assets/* Cache-Control: public, max-age=31536000, immutable` with site_headers and apply it once I approve; from then on, version the file name whenever CSS or JS changes (site-v2.css and so on). Submit sitemap.xml with gsc_submit_sitemap and check the home page with gsc_url_inspect. At the end give me: a per-page score table (page, four mobile scores, four desktop scores, LCP, CLS), the gate results and the list of fixes you applied.

Example result

An example of the output this prompt produces. Its structure comes from the tools' real output; numbers and names are fictional.

Example output (from a fictional demo brand, not real customer data; the scores are real measurements of the demo)

This prompt was applied word for word to "Bölüşük", a fictional shared expenses app: cream background, 3 pixel black borders, hard shadows, flat tomato, lemon, mint, sky and lilac, Chubbo and Supreme, six pages. The "Moda flat, October" card in the hero is drawn in real HTML, and the site has not a single line of JavaScript.

PageMobile (P/A/BP/SEO)Mobile LCPDesktop (P/A/BP/SEO)CLS
/100/100/100/1001.6 s100/100/100/1000
/nasil-calisir/100/100/100/1001.4 s100/100/100/1000
/fiyat/100/100/100/1001.4 s100/100/100/1000
/hakkimizda/100/100/100/1001.4 s100/100/100/1000
/iletisim/100/100/100/1001.4 s100/100/100/1000
/gizlilik/100/100/100/1001.4 s100/100/100/1000

Gates: seo-check 0 errors 0 warnings, design-check 0 errors 0 warnings, html-validate 0 errors, no overflow at 360/390/768/1440 pixels, no touch target under 44 pixels, clean console, no network request outside the site's own domain, menu and content complete with JavaScript off.

Fixes applied:
1. The same home page with the Tailwind CDN and Fontshare CSS measured 95/100/100/100 on mobile (LCP 2.4 s); with compiled CSS and self-hosted fonts it reached 100/100/100/100.
2. Because html-validate forbids inline styles, the sticker angle was set with a Tailwind arbitrary property class and the separate rotate property instead of style=""; in the reduced motion test the stickers stayed tilted.
3. aria-label on a <ul> failed html-validate (aria-label-misuse); removed.
4. The about, contact and privacy pages came in at 113 to 148 words; real information took them past 150.
5. At 390 pixels the decorative "receipt added" sticker covered the "3 people" badge; it is hidden below 640 pixels.

A sample site built with this prompt

Neo-brutalist: cream background, 3 px black border, hard shadow with no blur, flat vivid colors, tilted sticker-style badges, hover shift via transform, zero JavaScript

Built for a fictional brand by following this prompt to the letter. Scores were measured with Lighthouse on every page.

Build a neo-brutalist startup site: thick borders, hard shadows, sticker badges, zero JS
Lighthouse scores (lowest page)
MobileDesktop
Performance100100
Accessibility100100
Best practices100100
SEO100100

Checks passed

  • seo check: 0 hata 0 uyarı
  • design check: 0 hata 0 uyarı
  • html validate: 0 hata
  • overflow: 360/390/768/1440 taşma yok, dokunma hedefleri 44 px ve üstü, konsol temiz, JS kapalıyken ve reduced-motion'da içerik eksiksiz, dış ağ isteği yok
  • tailwind before after: Ana sayfa Tailwind CDN + Fontshare CSS ile mobil 95/100/100/100 (LCP 2.4 s), derlenmiş CSS + yerel font ile 100/100/100/100
Screenshots
Build a neo-brutalist startup site: thick borders, hard shadows, sticker badges, zero JS: Mobile
Mobile
Build a neo-brutalist startup site: thick borders, hard shadows, sticker badges, zero JS: Desktop
Desktop

Measured on: 2026-10-11

Related searches

These prompts work best when your AI assistant is connected to your accounts with Opus Growth.

Connect your accounts free

More prompts

WebsiteChanges after your approvalLive demo

Build an editorial expert site with a guides section and author schema

Has your assistant build an expert's site with a magazine-cover home page, long-form guides and an author profile. Serif typography, Article and Person schema and dated, sourced articles produce a publication people read and AI answers can cite.

When to use itWhen you are a consultant, specialist or one-person knowledge business and want your site to read like a publication that shows your expertise through writing, not like a brochure.

SEO Intelligence, Search Console
WebsiteChanges after your approvalLive demo

Build a heritage family business site with a classic look and modern standards

Has your assistant build a site in the spirit of an old label and shop sign for a producer in its third generation, framed and with a paper texture. The look is old, the build is new: mobile first, JavaScript-free, self-hosted fonts, WebP, Product and HowTo schema.

When to use itWhen you sell a craft passed down through generations, such as Turkish delight, olive oil, cheese or copperware, and want a classic look that carries that history without giving up speed or accessibility.

SEO Intelligence, Search Console
WebsiteChanges after your approvalLive demo

Build a Swiss-minimal law or accounting firm site with strong trust signals

Has your assistant build a still firm site on a strict grid, with hierarchy carried by a single type family. It puts the trust signals a YMYL field needs on the page: practitioner profiles, a dated and sourced guidance note, wording that respects professional advertising rules, and Person schema.

When to use itWhen a law, accounting or similar professional practice needs a site that looks serious and plain, stays within professional advertising rules and proves its expertise.

SEO Intelligence, Search Console
WebsiteChanges after your approvalLive demo

Build a JavaScript-free multi-page corporate site and deliver it at 100

Has your assistant build a still, fast and accessible site for corporate work such as architecture, engineering or consulting. Menu and footer are static HTML, fonts and CSS are self-hosted, and every page is measured before hand-over.

When to use itWhen a corporate business needs a multi-page site where speed and accessibility matter more than decoration, with no animation and no JavaScript.

SEO Intelligence, Search Console