Blush is built for beauty editorial that takes its readers seriously. It pairs static Astro performance with Markdown and MDX content, a front page dealt from the archive with no repeated stories, four article openings chosen per post, and a product review system where an optional review block turns a post into a scored review with a verdict, a weighted criteria breakdown, highs and lows, and a where-to-buy box with sponsored links and a shared disclosure. A warm porcelain palette with one rose accent, soft-cornered covers, and smoked glass badges are drawn for pale beauty photography in light and dark. Client-side search on a static index, saved stories in the browser, per-section and per-contributor feeds, share cards cropped at build time, and Review, Article, BreadcrumbList, and WebSite JSON-LD come built in, for beauty magazines, skincare and makeup blogs, review sites, and editorial publications that need fast static pages, strong SEO, and an honest way to score a product.
Features
- Front page dealt from the archive: banner slideshow with a lede strip, most-popular rail, editor's spotlight, verdicts panel, "How we test" band, card grid, highlight columns, and section browser, with no story repeated and empty blocks hiding themselves
- Scored product reviews from an optional review block: the product down to the shade, verdict, weighted criteria breakdown, highs and lows, buy-it-if and look-elsewhere-if, retailers, and how it was tested and paid for
- Published rating derived from the breakdown and rounded to half stars, so the stars can never disagree with the reasoning under them
- Star ratings on every surface a review reaches, and a where-to-buy box with sponsored links over a disclosure written once in config
- Four article openings set per post: standard, banner, cover, and immersive, sharing one title block
- Short centred nav with a full-width Sections panel showing every section on its newest cover, a Layouts dropdown with one live example per opening, and a focus-trapped drawer on small screens
- Paginated archive, section, tag, and contributor pages built from one ledger row, with a scrolling section filter and featured, grid, or list layouts per section
- Client-side search with a keyboard command palette and a results page that works without JavaScript, both on one build-time index
- Saved stories: a per-browser reading list read back at /saved/, with no accounts or backend
- RSS for the whole site, each section, and each contributor, carrying full article content
- Markdown and MDX content collections with validated frontmatter, build-time read time, and drafts excluded everywhere
- Sections, navigation, authors, the rating scale, and SEO defaults in a handful of config files
- Per-post share cards cropped from each cover at build time, plus canonical URLs, sitemap, robots.txt, Open Graph, Twitter/X cards, and JSON-LD for Article, Review, BreadcrumbList, and WebSite
- Two self-hosted variable fonts, a warm porcelain palette with one rose accent in light and dark, and a radius scale set in one place
- CSS-only scroll-driven motion with an observer fallback, off under reduced motion
- Provider-neutral newsletter and contact forms
- Static output with no framework islands and minimal client JavaScript
- Skip link, landmarks, labelled controls, visible focus states, and one tab stop per story row
Best Used For
- Beauty magazines
- Skincare and makeup blogs
- Product review sites
- Fragrance and hair publications
- Wellness and self-care editorial
- Beauty affiliate publications
- Cosmetic brand journals
- Independent beauty critics
- Ingredient and formulation explainers
- Editorial themes that need fast static pages, strong SEO, and honest product scoring






