Launching v1.2 — content system, dark mode polish, and faster builds

Three months after v1, RicoFast v1.2 ships today. This release is mostly polish — but the kind of polish you notice ten minutes into using the template, not on the screenshot.

Here’s what changed.

Content system — Astro v5 Content Layer

We moved blog and changelog to the new Content Layer API with the glob loader. If you’re forking from an older version, the migration is straightforward:

  • entry.slugentry.id
  • entry.render()render(entry) (imported from astro:content)
  • Astro.glob()import.meta.glob()

The benefit isn’t just modernization — Content Layer makes it much easier to source content from outside the repo later (CMS, external Markdown, REST endpoints) without changing the rest of the site.

Dark mode contrast pass

We re-audited every component against WCAG AA contrast in both light and dark mode. Specific changes:

  • --color-text-secondary-dark lifted from #a8b5c8 to #c5cedb (better for body copy at small sizes)
  • --color-primary-dark brightened from #3478d4 to #3884eb so links remain readable against the deep navy background
  • Card borders in dark mode switched from neutral-800 to neutral-700 for a softer edge

The Elements page now shows side-by-side light/dark previews for every component, so you can verify before shipping.

Performance wins

A few specific changes added up to a noticeably faster experience:

  • Cold build time: 21s → 14s on a clean CI runner. Most of the saving came from removing unused dependencies and reducing the number of files Vite processes.
  • First-load JS: Home page dropped from 31KB → 24KB gzipped after we split AnimatedText into a dynamic chunk.
  • Image pipeline: switched all blog cards to lazy-loaded loading="lazy" by default.

Lighthouse on a fresh install now scores 98 / 100 / 100 / 100 (Performance / Accessibility / Best Practices / SEO) on Home, Features, and Pricing.

New components

Two new additions live in src/components/:

  • BrowserFrame.astro — the Mac-style window chrome we use in the Hero, abstracted into a reusable component. Drop it around any image to give it that product-screenshot framing.
  • Steps.astro — already existed as inline markup; now it’s a proper component with a steps prop, easier to reorder.

Migration notes

If you’re upgrading an existing fork:

  1. pnpm install to pick up astro@5.15
  2. Run pnpm build — type-check will flag any places you’re still using entry.slug
  3. Search-replace entry.render()await render(entry) (note the await)
  4. Re-check your custom colors against the contrast table in docs/DESIGN.md

The full changelog with file-level diffs lives at /changelog.

What’s coming in v1.3

Roadmap items being actively built:

  • Component variants — multiple Hero, Pricing, and FAQ layouts swappable from a config flag
  • Sample dashboard pages — for templates that need to ship an app-shell preview alongside the marketing site
  • i18n scaffolding — opt-in locale routing without forcing a dependency

If there’s something you’d like prioritized, open an issue. The roadmap is steered by what people actually build.

Logo

A polished SaaS template built with Astro and Tailwind CSS. Open-source, fast, and ready for production.

© 2026 RicoFast. Released under the MIT License.

v2.0.0 Built with Astro & Tailwind Twitter Github RSS