pcbjam/features/lp/astro-templates-and-component-libraries.md
Viktor Vaczi 735d8a48ee feat(site): 🫙 PCBJam landing revisions — branding, accuracy, positioning graphic
Founder review pass on the landing page, plus commit the landing-page
research/spec docs under features/lp.

Branding & assets:
- New PCBJam mark: convert the jam-jar image to favicon.svg (trimmed, rounded
  tile) and use it in the browser tab, header, and footer.
- Footer "Built by": flower mark + "Emergence Engineering" in white Oswald (the
  blog's title font, self-hosted via @fontsource) so it's legible on dark.
- Produce the positioning quadrant graphic (public/graphics) and drop the placeholder.

Copy / accuracy:
- Remove header GitHub link; point "Built by EE" + footer "About" to
  emergence-engineering.com; Built-by CTA -> mailto:contact@emergence-engineering.com.
- Replace the wrong testimonial with Greg Detre's real quote from EE's site.
- Drop blog icons from Multiplayer/Pillars/How-it-works; add "Coming soon" to
  live-cursors & pin-comment; drop the hard-coded Yjs mention.
- Rework monetization to free+local / paid cloud-sync; remove "no metered AI",
  "no per-seat toll", and the Flux price claim; soften the AI section.
- Reframe waitlist copy (incl. confirmation email) to newsletter + early access.

Fixes:
- Offset only #waitlist for the sticky header (scroll-margin-top); section
  anchors keep their original behavior.

Docs:
- Commit features/lp (copy spec, brand guide, competitive research) via force-add
  over the /features/ gitignore.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-07 17:14:19 +02:00

367 lines
28 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Astro templates & component libraries — tooling survey for the kicad-wasm site
**Scope:** Modern, popular **Astro** landing-page templates and component/UI libraries that are
simple to set up and give a beautiful design skeleton out of the box — free *and* paid — chosen for
the **kicad-wasm** marketing site (a WebAssembly browser port of KiCad; a technical EDA / dev-tool).
**Date:** 2026-06-07 · **Companion to:** `brand-guide.md`, `marketing-site-playbook.md`,
`landing-page-best-practices.md` (this file is the *implementation-tooling* layer — what to build the
skeleton **with**; the others cover brand, content/CRO, and competitive positioning).
> ### ⚠️ Read this first — the site already exists
> `site/` is **already an Astro `^6.4.4` project**: `output: 'static'`, `@astrojs/vercel` adapter,
> `prefetch` on, with a **hand-rolled CSS design system** (`src/styles/global.css` — CSS custom
> properties, dark theme: `--bg:#0b1020`, `--accent:#4f7cff`, `--radius:10px`). It has
> `BaseLayout`, `Header`, `Footer`, `index`, a `blog/` collection, and legal pages.
> **Tailwind is NOT installed.** So this is *not* a greenfield "pick a template" decision — most of
> the libraries below are Tailwind-based, which makes **§7 Decision 0 (adopt Tailwind, or stay
> CSS-only?)** the real fork in the road. Don't scaffold a fresh template *over* the working site;
> the templates below are best used as **block-harvest references**, not a foundation to overwrite.
**Methodology:** deep-research harness — 5 search angles → 22 sources fetched → 101 candidate claims
→ top 25 adversarially fact-checked (3 skeptics each, 2/3 to kill). 24 confirmed, 1 refuted. Stars /
versions / prices are point-in-time (June 2026) and will drift — re-verify before buying/pinning.
**Confidence legend:**
| Marker | Meaning |
|---|---|
| ✅ | Verified 3-0 against primary sources this run |
| ⚠️ | Verified with a caveat (2-1 vote, or a soft/vendor-reported sub-claim) |
| 📋 | Established ecosystem fact, included for breadth; not independently re-verified this run |
| ❌ | Tested and **refuted** — do not rely on it |
---
## TL;DR for kicad-wasm
1. **You already have an Astro site, not a blank slate.** The highest-leverage move is
**`npx astro add tailwind`** on the existing `site/`, then layer a component library on top —
*not* replacing `global.css` with a whole new template.
2. **Best free component layer once Tailwind is in: [daisyUI](https://daisyui.com)** ✅ — 65
components, 35 themes, config-free v5 install, semantic classes that coexist with your CSS-var
tokens. Its `mockup-window` / `mockup-code` / `mockup-browser` components are perfect for framing
the live WASM demo and CLI snippets.
3. **Best paid: [Tailwind Plus](https://tailwindcss.com/plus)** ✅ ($299 one-time) — 500+ components
in **vanilla HTML**; paste Marketing blocks (hero, pricing, features, FAQ) straight into `.astro`
and recolor to your tokens. Best ROI of any paid option here.
4. **Best template to mine for blocks (free): [AstroWind](https://github.com/arthelokyo/astrowind)**
✅ — most-starred Astro theme (~5.7k★), MIT, **Astro v6 + Tailwind v4 (matches your Astro 6.4)**.
Copy individual widget components (Hero, Features, Pricing, FAQ) rather than adopting wholesale.
5. **Code blocks:** add **[Expressive Code](https://expressive-code.com)** ✅ for install/usage
snippets (copy button, titles, highlighting) — table-stakes for a dev tool.
6. **Stay light:** the page will host a heavy WASM demo. **Prefer zero-JS Astro/Tailwind + CSS/GSAP
over React islands.** React component libs (shadcn/Magic UI/Aceternity) are optional flair only.
---
## 1. Landing-page templates / themes
A *template/theme* is a whole-page skeleton (hero, features, pricing, footer, config). Fastest path
to "beautiful out of the box" — **but** since `site/` already exists, treat these as **reference /
block sources** (MIT lets you copy individual components) unless you decide to restart from one.
### Free / open-source
| Template | Stars / forks | Stack | License | Maintenance | Notes |
|---|---|---|---|---|---|
| **[AstroWind](https://github.com/arthelokyo/astrowind)** ✅ | ~5.7k ★ / ~1.6k forks — **most-starred Astro theme** | Astro ^6.4 + Tailwind ^4.3 | MIT | **Active** — beta.60 (May 11 2026), Astro v6 + TW v4 migration done, v2.0 planned, Node ≥22.12 | Astro version **matches your `site/`**. Ships hero/feature/pricing/FAQ/footer widgets + SEO/RSS/sitemap/OG wired. Best mined for individual `~/components/widgets/*`. Org renamed `onwidget``arthelokyo` (old URLs redirect; npm still `@onwidget/astrowind`). |
| **[Astroship](https://github.com/surjithctly/astroship)** 📋 | popular | Astro + Tailwind | MIT | Maintained (Web3Templates) | Clean SaaS/startup marketing skeleton. Has a paid **Astroship Pro** with more pages/blocks. |
| **[mhyfritz/astro-landing-page](https://github.com/mhyfritz/astro-landing-page)** ✅ | 675 ★ / 224 forks | Astro + Tailwind | MIT | ⚠️ **Stale** — last push 2024-11-24 (~18 mo), not archived | Simpler single-page template; dark mode, responsive, a11y, SEO, OG, CSS-var theming. Deps likely need manual upgrade. |
| **[RicoUI SaaS Template](https://github.com/ricocc/ricoui-saas-template)** ✅ | OSS | Astro 6 + Tailwind v4 | OSS (MIT-style) | Current | Free SaaS landing in the official directory; demo `ricofast.pages.dev`. |
| **ProCleaning** ✅ | — | Astro + Tailwind | free in directory | — | Example free responsive landing listed in the Astro directory. |
| **[Astro Paper](https://github.com/satnaing/astro-paper)** 📋 | ~4.7k ★ | Astro + Tailwind | MIT | Active | Blog-first (#2 most-starred Astro theme). Relevant for the `blog/` you already have. |
| **[Astroplate](https://github.com/zeon-studio/astroplate)** 📋 | ~1.1k ★ | Astro + Tailwind | MIT | Active | Starter with blog + pages. |
> ✅ AstroWind is independently confirmed **#1 by stars** on the `astro-themes` topic (5.7k, ahead of
> Astro Paper 4.7k, Astroplate 1.1k), and its SEO claims are verified **at the source-code level**:
> `package.json` really lists `@astrojs/sitemap`, `@astrojs/rss`, `astro-seo`, and `astro.config.ts`
> calls `sitemap()`.
### Paid / premium
| Vendor / product | Price | Stack | Notes |
|---|---|---|---|
| **[Tailwind Plus](https://tailwindcss.com/plus)** ✅ (exTailwind UI) | **$299** personal / **$979** team (≤25), **one-time, lifetime, no subscription**, 30-day refund | Tailwind — vanilla HTML + React + Vue | Not one theme — a 500+ component library incl. Marketing blocks + full Landing-Page examples. **The recommended paid pick** (see §3). |
| **[Cruip](https://cruip.com)** 📋 | free + premium | Tailwind (HTML/React); Astro ports exist | Very polished startup/SaaS landing templates; some free, flagship paid. Classic "looks-expensive" pick. |
| **[Lexington Themes](https://lexingtonthemes.com)** ⚠️ | per-theme + **Full Access** | Astro + Tailwind | Large Astro marketing/SaaS catalog. Confirmed as paid/all-access in the directory; exact bundle price not verified this run. |
| **[Cosmic Themes](https://cosmicthemes.com)** ⚠️ | per-theme + **All Access** | Astro + Tailwind | Astro-specialist studio; SaaS/landing themes, i18n, blog. Paid confirmed; price not verified this run. |
| **AstroVault / Zarex / Fortify Astro** ⚠️ | paid / all-access | Astro + Tailwind | Additional premium Astro vendors in the directory. Existence-as-paid confirmed; pricing/license **not** individually verified. |
| **ThemeForest / Lemon Squeezy / Gumroad** 📋 | one-off (~$15$60 typical) | mostly Astro + Tailwind | Many Astro landing themes; quality/maintenance vary — check last-updated + reviews. |
### Official Astro themes directory — the browsing entry point ✅
**<https://astro.build/themes/?categories[]=landing-page>** — canonical first-party catalog.
- Dedicated **"Landing pages"** category: *"Showcase your product or service with a stylish landing
page template."*
- **23 pages** of landing-page-tagged themes (~20/page), with a **Free vs Paid pricing filter**. ✅
- Caveat: size proves quantity, not curation quality — vet each theme's maintenance.
---
## 2. Astro-native / Astro-first component & UI libraries
Building blocks as **native `.astro` components or plain Tailwind****no React island**, zero added
client JS by default. Best fit for a page that also carries a heavy WASM demo.
| Library | What it is | Status | Astro fit | License |
|---|---|---|---|---|
| **[Accessible Astro Components](https://github.com/incluud/accessible-astro-components)** ✅ | 35+ native `.astro` components: Accordion, Breadcrumbs, Card, Pagination, Tabs, Modal, Notification, DarkMode toggle, form fields | npm v5.3.1, active | `import { Modal } from 'accessible-astro-components'`**zero framework integration**, works with or without Tailwind | MIT |
| **[Starwind UI](https://github.com/starwind-ui/starwind-ui)** 📋 | shadcn-style copy-in components **built for Astro** (Tailwind v4), accessible, themeable | Active | Native Astro; CLI adds components to your tree. The shadcn workflow **without React** | open-source |
| **[Preline UI](https://preline.co/docs/frameworks-astro.html)** ✅ | Large Tailwind component lib with an **official Astro install guide** + interactive overlays/dropdowns/tabs via its JS plugin | ~6.3k ★, v4.2.0 (2026-05-10), active | First-class Astro; **requires Tailwind first** (architectural dependency) | free, OSS (Apache-2.0) |
| **[Flowbite](https://flowbite.com)** 📋 | Tailwind components + marketing blocks; Astro usage docs | ~8k★+, active | Works in Astro via its JS for interactive bits | MIT core; some blocks paid |
| **Accessible Astro Starter / Dashboard** 📋 | Full starter projects from the `incluud` team | Active | Complete bases pairing with the components above | MIT |
> ⚠️ **Refuted — don't repeat:** the stronger claim that Accessible Astro Components are
> *"WCAG-compliant with comprehensive accessibility audits"* did **not** survive verification (1-2).
> They're *accessible-by-design* (good ARIA/markup), but make no formal-audit/certification claim.
---
## 3. Tailwind-based component libraries usable in Astro (framework-agnostic HTML)
Astro renders plain HTML natively, so any **copy-paste Tailwind HTML** library works with **zero
integration** (once Tailwind is installed — see §7 Decision 0). The sweet spot for a fast, light
dev-tool page.
| Library | Price | What you get | Astro install | Verified |
|---|---|---|---|---|
| **[Tailwind Plus](https://tailwindcss.com/plus)** | $299 / $979 one-time | **500+ components**; Marketing: Hero (12), CTA (11), Pricing (12), Stats (8), Testimonials (8), Team (9), FAQs (7), Footers (7), Flyout Menus (7), 404 (5), Landing Pages (4 full), About (3). In **vanilla HTML** + React + Vue | Paste HTML into `.astro`. `@tailwindplus/elements` (CDN `<script type=module>`) adds headless interactive Dialog/Dropdown/Select/Tabs/Popover **with no JS framework** | ✅ pricing, counts, vanilla-HTML, Elements all 3-0 |
| **[daisyUI](https://daisyui.com)** | Free (MIT) | **65 components** (Actions 6, Data Display 17, Navigation 8, Feedback 7, Data Input 14, Layout 8, Mockup 4); **35 themes** + generator; `data-theme` dark switching; ~19M npm installs | `npm i tailwindcss @tailwindcss/vite daisyui` + `@import "tailwindcss"; @plugin "daisyui";`**config-free in v5** (also add `tailwindcss()` to Vite plugins + import CSS) | ✅ components/themes/install all 3-0 |
| **[Preline UI](https://preline.co)** | Free | 800+ components/examples, marketing blocks | Official Astro guide (§2) | ✅ |
| **[HyperUI](https://www.hyperui.dev)** 📋 | Free (MIT) | Open-source copy-paste Tailwind components incl. **marketing** + app + e-commerce | Paste HTML; no JS for most | 📋 |
| **[Flowbite Blocks](https://flowbite.com/blocks/)** 📋 | free + paid | Marketing/section blocks | Paste HTML | 📋 |
| **[Meraki UI](https://merakiui.com)** 📋 | Free | Beautiful Tailwind components, RTL | Paste HTML | 📋 |
| **[Float UI](https://floatui.com)** 📋 | free + paid | Modern landing-page sections | Paste HTML | 📋 |
| **[Tailblocks](https://tailblocks.cc)** 📋 | Free (MIT) | Ready-to-use blocks (hero, feature, pricing, CTA) | Paste HTML | 📋 |
| **[Cruip Tailwind components](https://cruip.com)** 📋 | free + paid | Polished landing sections | Paste HTML | 📋 |
| **Kometa / Kutty / Sailboat UI / TailGrids** 📋 | mixed | More Tailwind block collections worth a look | Paste HTML | 📋 |
**Tradeoff:** copy-paste HTML costs nothing at runtime but you own the markup (no upstream updates).
Component *packages* (daisyUI, Preline) update via npm but add a dependency + their JS for interactivity.
---
## 4. React-island component libraries (visual flair) — and the tradeoffs
These are **React** libraries. In Astro they require the React integration + explicit hydration,
shipping a React runtime + component JS to the browser. Use **deliberately and sparingly** here.
| Library | Stars / size | For | Astro requirement | Verified |
|---|---|---|---|---|
| **[shadcn/ui](https://ui.shadcn.com/docs/installation/astro)** | de-facto standard | Radix + Tailwind + CVA primitives; **copy-paste into your tree** (`shadcn add card``@/components/ui/`), you own the code (not an npm dep) | `npx astro add react tailwind`; hydrate `client:load/visible/idle` | ✅ both claims 3-0 |
| **[Magic UI](https://magicui.design)** | ~21.2k ★, MIT | **150+ animated** components/effects (React + TS + Tailwind + Motion); companion to shadcn/ui | `npx astro add react` + `shadcn init` | ✅ 3-0 (150+ vendor-reported) |
| **[Aceternity UI](https://ui.aceternity.com)** | popular | **200+** copy-paste components/blocks/templates, Framer Motion; *"ship landing pages at lightning speed"* — Hero (21+), Feature (18+), Testimonials (7+), Pricing (6+), CTA (6+), animated Backgrounds (11+) | React island + Framer Motion | ✅ 3-0 (200+ vendor-reported) |
| **[Tremor](https://tremor.so)** 📋 | popular | React **dashboard/chart** components — not landing-oriented, but useful for live metrics | React island | 📋 |
| **[React Bits](https://reactbits.dev) / [Cult UI](https://cult-ui.com) / [Origin UI](https://originui.com)** 📋 | growing | More shadcn-style animated React collections | React island | 📋 |
### The Astro React-island tradeoff (acute for kicad-wasm) ✅
- **Cost:** each hydrated React component ships React + its JS and runs client-side. On a page that
*also* instantiates a multi-MB WASM KiCad module, that competes for parse/compile/main-thread time
and can hurt Lighthouse/PageSpeed.
- **Mitigations:** prefer `client:visible`/`client:idle` over `client:load`; isolate React flair to a
small below-the-fold section; keep hero + above-the-fold zero-JS.
- **Open question (unbenchmarked):** the *measured* impact of React islands + Framer Motion alongside
the WASM payload was **not** profiled in this research — measure before committing.
- **Verdict:** treat Aceternity/Magic UI as optional spice, not the foundation. Get similar "wow"
from CSS/GSAP/Motion One (§5) without a React runtime.
---
## 5. Animation / motion options that work in Astro
| Option | Type | Astro fit | Use for |
|---|---|---|---|
| **CSS** (transitions, keyframes, scroll-driven animations) | Zero-JS | Native, free | Default — hover/reveals/gradients, no bundle cost. Pairs with your existing CSS-var system. |
| **Astro View Transitions** (`<ClientRouter />`) 📋 | Built-in | Native | Smooth page-to-page transitions, near-zero code. (You already have `prefetch` on — natural fit.) |
| **[GSAP](https://gsap.com)** 📋 | Vanilla JS | `<script>` in `.astro` | Complex timelines / scroll-triggered hero — **no React**. Now fully free incl. all plugins. |
| **[Motion (Motion One)](https://motion.dev)** 📋 | Vanilla JS (also React) | `<script>` in `.astro` | Tiny (~few KB) Web Animations API wrapper; vanilla alternative to Framer Motion. |
| **[AOS](https://michalsnik.github.io/aos/)** 📋 | Vanilla JS | npm + init | Quick scroll-reveal via data attributes; lowest effort. |
| **Framer Motion / Motion for React** 📋 | React | React island | Only if already committed to React (Magic UI / Aceternity depend on it). |
| **[Lottie](https://lottiefiles.com) (`lottie-web`)** 📋 | Vanilla JS | `<script>` / web component | Designer JSON animations (animated logo, "routing traces" motif). |
> **For kicad-wasm:** CSS + GSAP/Motion One deliver premium motion with no React runtime — keeping
> the page light next to the WASM editor.
---
## 6. Icons, fonts, code blocks & SEO/perf tooling
### Icons
- **[astro-icon](https://github.com/natemoo-re/astro-icon)** 📋 — Astro icon component using
**[Iconify](https://iconify.design)** sets (200k+ icons: `lucide`, `tabler`, `mdi`,
`simple-icons` for brand logos). SVGs inlined at build → zero runtime JS.
- **[Lucide](https://lucide.dev)** 📋 — clean popular open-source set (also via Iconify).
### Fonts
- **[Fontsource](https://fontsource.org)** 📋 — self-host open fonts via npm; no external request,
better privacy/perf/CLS. (Your `global.css` currently uses `system-ui` stack — fine, but a self-
hosted display face would lift the brand.)
- **[Astro Fonts API](https://docs.astro.build/en/reference/experimental-flags/fonts/)** 📋 —
built-in font optimization (`experimental.fonts`) for self-hosting + preloading.
### Code blocks (matters for a dev tool — install/usage snippets)
- **[Expressive Code](https://expressive-code.com)** ✅ — Astro/Starlight-grade code blocks: Shiki
highlighting, line numbers/highlighting, titles/frames, copy button, diff markers. Installs as an
Astro integration. Ideal for `npm`/CLI install + KiCad script examples. **Recommended.**
- **[Shiki](https://shiki.style)** 📋 — Astro's default Markdown/MDX highlighter.
### SEO / performance
- **[@astrojs/sitemap](https://docs.astro.build/en/guides/integrations-guide/sitemap/)** ✅ —
official; auto-generates `sitemap-index.xml` + `sitemap-0.xml` at build by crawling static routes
(incl. dynamic `getStaticPaths()` routes). *(You're `output: 'static'` — perfect fit; bundled in
AstroWind.)*
- **[@astrojs/rss](https://docs.astro.build/en/recipes/rss/)** ✅ — official RSS builder. *(You
already have a `blog/` collection — wire this up.)*
- **[astro-seo](https://github.com/jonasmerlin/astro-seo)** ✅ — `<meta>`, Open Graph, Twitter cards.
- **Built-in Astro perf:** static HTML, partial hydration (islands), `<Image />` optimization, asset
bundling — Astro's zero-JS-by-default model is the biggest perf lever for a content site.
- **`@astrojs/partytown`** 📋 — offload third-party scripts (analytics) to a web worker so they
don't block the main thread — relevant when the main thread is busy with WASM.
---
## 7. Concrete recommendation for the kicad-wasm landing page
### Decision 0 — RESOLVED: use Tailwind ✅
> **Decided (2026-06-07): the project will use Tailwind.** `site/` currently uses **hand-rolled CSS**
> (custom properties, dark theme) with **no Tailwind**, so the concrete next step is to **add Tailwind
> to the existing site** rather than re-scaffold. The CSS-only path below is kept only for reference.
**Step 1 — add Tailwind to the existing `site/`** (Astro 6 + Tailwind v4 via the Vite plugin):
```bash
cd site
npx astro add tailwind # wires @tailwindcss/vite into astro.config.mjs
```
Then in `src/styles/global.css` add Tailwind on top of your existing tokens:
```css
@import "tailwindcss";
/* your existing :root { --bg; --accent; ... } stays — it's the source of truth */
@plugin "daisyui"; /* once daisyUI is installed (step 2) */
```
**Step 2 — map your existing tokens to a daisyUI theme** so hand-written + library components share
one palette. Define a custom daisyUI theme whose `--p`/`--b1`/etc. resolve to your `--accent:#4f7cff`,
`--bg:#0b1020`, `--radius:10px`. Keep `global.css` `:root` as the single source of truth.
> Net effect: Tailwind v4 **coexists with** your current CSS rather than replacing it, and unlocks
> daisyUI + Tailwind Plus + AstroWind block-harvesting with minimal churn.
<details><summary>Reference only — the rejected CSS-only path</summary>
Keep `global.css`; hand-build sections (optionally copying HTML structure from HyperUI / Tailblocks /
AstroWind and converting utility classes to your CSS). Use **Accessible Astro Components** (works
without Tailwind) for interactive bits. Rejected because it costs medium effort per section (manual
restyling) and forgoes the daisyUI / Tailwind Plus ecosystem.
</details>
### Recommended stack (Tailwind path)
- **Foundation:** keep the **existing `site/` Astro project** (Astro 6.4, static, Vercel). Do **not**
re-scaffold from a template — instead **mine AstroWind** ✅ (same Astro v6 + Tailwind v4) for
individual Hero/Features/Pricing/FAQ widget markup and adapt to your tokens.
- **Component layer (free):** **daisyUI** ✅ — themeable buttons/cards/badges/navbar, and crucially
`mockup-window` / `mockup-code` / `mockup-browser` to frame the **live WASM demo** and CLI
snippets. Add **Accessible Astro Components** ✅ / **Preline** ✅ for accessible modal/tabs/accordion
without React.
- **Component layer (paid, optional):** **Tailwind Plus** ✅ ($299 one-time) if you want pro-grade
Marketing sections fast — paste vanilla-HTML hero/pricing/feature blocks and recolor. Best paid ROI.
- **Code blocks:** **Expressive Code** ✅ — install/usage snippets with copy button + highlighting.
- **Animation:** **CSS + GSAP or Motion One** (vanilla). *Avoid* React-island animation libs as the
base; optionally one Aceternity/Magic UI section `client:visible` for a marquee effect.
- **Icons/fonts:** **astro-icon** + Iconify (`lucide`, `simple-icons` for GitHub/Discord);
self-host a display font via **Fontsource** / Astro Fonts API to lift the brand above `system-ui`.
- **SEO/perf:** **@astrojs/sitemap** ✅ + **astro-seo** ✅ + **@astrojs/rss** ✅ (you already have a
blog); **partytown** for analytics so it doesn't fight the WASM main thread.
### Best paid option, and when it's worth it
- **Tailwind Plus ($299 one-time)** ✅ — buy if you want top-tier section designs fast and will reuse
them site-wide; composes *with* your existing site rather than replacing it.
- **A premium Astro theme** (Cosmic / Lexington "All Access") ⚠️ — only if you'd rather *restart* from
a complete polished SaaS theme than layer onto `site/`. Verify per-bundle price/license first.
### Decision shortcuts
- *Ship this week, $0:* add Tailwind + **daisyUI** + **Expressive Code** to `site/`, harvest AstroWind
blocks. ← **default**
- *Bespoke look, small budget:* same + **Tailwind Plus** Marketing blocks.
- *Turnkey premium SaaS look, willing to restart:* a **Cosmic/Lexington** Astro theme (verify price).
- *Flashy animated hero:* one Aceternity/Magic UI React island (`client:visible`), or **GSAP** to
avoid React.
### kicad-wasm-specific build notes
- **Hero = live demo, not just a screenshot.** Reserve a slot to embed the interactive WASM editor
(iframe/canvas). Lazy-init it (`client:visible` / IntersectionObserver) so it doesn't block first
paint. *(Which template gives the cleanest hero slot for this was flagged as an open question — see
below.)*
- **Dark mode is expected by devs** — your `global.css` is already dark-first; daisyUI's `dark`
theme or a `data-theme` toggle slots in cleanly.
- **Keep the marketing page's JS budget tiny** because the demo's WASM payload is the heavy part.
---
## 8. Caveats & open questions
**Caveats**
- **Time-sensitive (June 2026):** AstroWind ~5.7k★/Astro v6/TW v4, Preline v4.2.0, Magic UI ~21.2k★,
daisyUI 5, Tailwind Plus $299/$979. Re-verify before buying/pinning.
- **Vendor-reported counts:** "150+" (Magic UI), "200+" (Aceternity), "professionally designed"
(Tailwind Plus) are vendors' own figures; qualitative facts (free/OSS, stack, copy-paste) verified,
exact counts not independently re-counted.
- **Perf is content-dependent:** AstroWind's "production-ready PageSpeed" depends on *your* images
and — here — the WASM payload. Not guaranteed; measure.
- **Stale template:** `mhyfritz/astro-landing-page` — no commits since 2024-11-24; expect manual dep
upgrades.
- **MIT ≠ no obligations:** AstroWind, mhyfritz, Magic UI, RicoUI still require retaining the
copyright/license notice (trivial, but it exists).
- **Premium Astro bundles** (Lexington, Cosmic, AstroVault, Zarex, Fortify) confirmed only to *exist
as paid/all-access* — exact prices and license terms (single-site vs unlimited, commercial) **not**
individually verified.
- **❌ Refuted:** Accessible Astro Components are accessible-by-design but **not** formally WCAG-
audited/certified — don't claim otherwise.
**Open questions worth resolving before committing**
1. Exact prices/license terms of premium Astro bundles (Lexington / Cosmic / AstroVault / Zarex /
Fortify) and which ship a real dev-tool/SaaS landing template.
2. Measured impact of React islands + Framer Motion **combined with** the heavy WASM demo on
load/PageSpeed — needs a real benchmark on this project.
3. Non-React animation bundle sizes (GSAP vs Motion One vs AOS vs CSS) vs the Aceternity/Magic UI
React-island route.
4. Which approach gives the cleanest **hero slot to embed the interactive WASM demo** (iframe/canvas)
vs only a static screenshot, and the effort to wire lazy init.
---
## 9. Sources
Primary (fetched & verified this run):
- AstroWind — <https://github.com/arthelokyo/astrowind> · <https://github.com/onwidget/astrowind>
- Astro themes topic ranking — <https://github.com/topics/astro-themes>
- Astro official themes directory — <https://astro.build/themes/?categories[]=landing-page>
- mhyfritz/astro-landing-page — <https://github.com/mhyfritz/astro-landing-page> (+ GitHub API)
- RicoUI SaaS Template — <https://github.com/ricocc/ricoui-saas-template>
- Astroship — <https://github.com/surjithctly/astroship>
- Tailwind Plus — <https://tailwindcss.com/plus> · marketing blocks <https://tailwindcss.com/plus/ui-blocks/marketing> · vanilla-JS blog <https://tailwindcss.com/blog/vanilla-js-support-for-tailwind-plus>
- daisyUI — <https://daisyui.com> · Astro install <https://daisyui.com/docs/install/astro/> · components <https://daisyui.com/components> · themes <https://daisyui.com/docs/themes/> · repo <https://github.com/saadeghi/daisyui>
- Preline UI — Astro guide <https://preline.co/docs/frameworks-astro.html> · repo <https://github.com/htmlstreamofficial/preline>
- Accessible Astro Components — <https://github.com/incluud/accessible-astro-components> · <https://accessible-astro.incluud.dev>
- Starwind UI — <https://github.com/starwind-ui/starwind-ui>
- shadcn/ui (Astro) — <https://ui.shadcn.com/docs/installation/astro> · <https://ui.shadcn.com/docs>
- Magic UI — <https://magicui.design> · Astro install <https://v3.magicui.design/docs/installation/astro> · repo <https://github.com/magicuidesign/magicui>
- Aceternity UI — <https://ui.aceternity.com> · components <https://ui.aceternity.com/components>
- @astrojs/sitemap — <https://docs.astro.build/en/guides/integrations-guide/sitemap/>
- Expressive Code — <https://expressive-code.com/installation/>
- Tailwind Plus pricing corroboration — <https://landinggo.com/blog/tailwind-ui-pricing>
Secondary / blog (context): pkgpulse Aceternity-vs-Magic-vs-shadcn comparison; dev.to shadcn-like
collections; adminlte.io premium Astro templates; npmtrends/daisyui.
---
*Generated by the deep-research harness: 5 angles · 22 sources fetched · 101 claims extracted · 25
adversarially verified (24 confirmed, 1 refuted) · 104 agents. Tailored against the real `site/`
Astro project state. Re-run before purchasing to refresh prices/versions/stars.*