Content is organized in Markdown, with posts and static pages in src/content/posts/ and src/content/pages/ respectively, and the schema defined in src/content.config.ts
stargarden — Astro Starter Template
By sustanza
StarGarden is an Astro-based starter template for Markdown content sites, including a blog post and static page collection, theme switching, search, RSS, and SEO metadata.
Explore the design
Compare the page layouts and mobile experience. Open any screenshot for a closer look.
Preview provided in the project README.
One original preview is available. Open the full image to inspect the design.
Screenshots show visual appearance; interactive behavior may differ.
What stands out
A quick read of the recorded project description.
Built-in Tailwind and DaisyUI light corporate and dark business themes; first visits follow system preference, and switches are saved in localStorage
A Pagefind search index is generated at build time, with mobile and desktop search interfaces
The BaseHead component centrally outputs SEO metadata such as OpenGraph, Twitter Card, canonical, and JSON-LD Organization
Provides a sitemap, dynamic robots.txt that follows the site configuration, and /rss.xml with full-text HTML and cover image enclosures
Includes Vitest unit tests, Playwright end-to-end smoke tests, and a Prettier formatting script
Template Details
StarGarden is an Astro starter template released by sustanza on GitHub under the MIT license, positioned as an out-of-the-box static site starting point driven by Markdown content. The repository provides an author preview image and is listed on the official Astro themes page with an online demo URL.
The template includes a content collection structure: src/content/posts/ holds articles and their cover images, src/content/pages/ provides static pages such as About, Privacy, TOS, and FAQ in the form <slug>/index.md, and the collection schema is defined in src/content.config.ts. The component layer includes BaseHead, Navbar, Footer, ThemeToggle, and Landing; the page layer includes the homepage, post list, dynamic slug routes, 404, robots.txt, and rss.xml. Styling uses Tailwind and DaisyUI, offering a light corporate theme and a dark business theme. First visits follow prefers-color-scheme, and user switches are stored in localStorage.
Features also include view transitions via ClientRouter, link prefetching on hover, a Pagefind search index generated at build time, hand-written BaseHead SEO output (OpenGraph, Twitter Card, canonical, JSON-LD Organization), a sitemap and dynamic robots.txt that follow the site configuration, an RSS feed that outputs full-text HTML and cover image enclosures, Expressive-code syntax highlighting that follows data-theme for light and dark modes, and reading time and heading anchors. On the engineering side, it includes Vitest unit tests, Playwright end-to-end smoke tests, and a Prettier formatting script.
There are several explicit usage limitations: Pagefind indexes the built HTML, so under npm run dev the search box is visible but returns no results; you must build first or use the preview:search script. The custom 404 page relies on the host automatically returning 404.html with a 404 status; self-hosted static servers such as nginx may require additional configuration. Local Markdown image paths inlined in RSS content cannot be resolved by feed readers and must be changed to absolute paths under public/ or https URLs.
Is it right for your project?
Use Cases
- Personal blogs that write posts in Markdown and need a post list, detail pages, and RSS output
- Sites that need static pages such as About, Privacy, TOS, and FAQ to coexist with posts
- Static sites that want built-in light/dark theme switching, site search, and basic SEO metadata
- Deployment on platforms such as Cloudflare Pages, Netlify, or Vercel that automatically return 404.html with a 404 status
Suitable For
- Developers familiar with Astro and Markdown content collections who want to start from an existing structure
- Teams that need template code they can freely modify and use commercially under the MIT license
- Developers who accept running the search index on the build output and are willing to verify search locally via the script workflow
Getting started & customization
Use these recorded setup notes alongside the repository instructions for your chosen version.
- 1
Can be created with npm create astro@latest -- --template sustanza/stargarden, or by git clone followed by npm install and npm run dev; the default address is http://localhost:4321/
- 2
After forking, first modify SITE_TITLE and SITE_DESCRIPTION in src/consts.ts, the site field in astro.config.mjs, the contact information in Footer.astro, and public/favicon.svg
- 3
Pagefind search returns no results under npm run dev; run npm run build first, or use npm run preview:search to build and preview in one step
- 4
Inline Markdown images in RSS content must be changed to absolute paths under public/ or https URLs, otherwise feed readers cannot resolve them
- 5
The custom 404 page may require additional configuration on self-hosted static servers such as nginx to return the correct 404 status code
License & source material
Usage conditions & limitations
Free to use · keep license noticeThis entry covers the free version in the public repository under the MIT license; the free scope is the code of that version and does not mean external services or third-party assets are free.
Must comply with when using
- You may use, modify, use commercially, and distribute the code of this version for free.
- When distributing copies or substantial portions of the code, retain the original author's copyright notice and the full MIT license notice.
- The code is provided as is; warranties and limitations of liability are governed by the original license and applicable law.
Additional costs & items to verify
- Demo images, fonts, icons, and other third-party assets must be checked against their respective licenses and cannot be judged solely by the code's MIT license.
- External services such as domains, hosting, databases, payments, or AI may incur separate charges.
- Pagefind indexes the built HTML, not the source Markdown. In development mode (npm run dev), the search box renders but returns no results until npm run build has been run at least once.
- To test search locally, use the npm run preview:search script, which builds and previews in one step; using the development server directly cannot verify search functionality.
- The custom 404 page relies on the host automatically returning 404.html with a 404 status. Cloudflare Pages, Netlify, and Vercel work out of the box; self-hosted static servers such as nginx may require explicit configuration to return the correct status code.
- Local Markdown image paths inlined in RSS content cannot be resolved by feed readers. To display body images in the feed, they must be hosted under public/ and referenced with absolute paths, or use https URLs.
View Original Text Basis
Permission is hereby granted, free of charge
Original License Text
Pagefind indexes built HTML, not source markdown. The search input renders in dev mode but returns no results until you've run `npm run build` at least once.
Original README
Use `npm run preview:search` to test search locally — it builds and previews in a single step.
Original README
Hosts that auto-serve `404.html` with a 404 status (Cloudflare Pages, Netlify, Vercel) work out of the box. Self-hosted nginx or other static servers may need explicit configuration to return the right status code.
Original README
https://github.com/sustanza/stargarden/blob/main/LICENSEhttps://github.com/sustanza/stargarden/blob/main/README.md**Inline markdown images in post bodies** (e.g. ``) are local-only paths that won't resolve in subscribers' readers — host body images in `public/` with absolute paths or reference them by `https://` URL if you need them in the feed.
Original README
Compiled by DeepSeek based on repository license and README ·2026-10-05. Results only cover the materials read; dependencies, images, fonts, and subsequent term changes are subject to their respective original texts.
Project checks & description sources
Template Information
- Source platforms
- Astro Themes
- Documentation and maintenance reference score
- More documented · 79 / 100
- Technologies
- Astro
- Website type
- Starter
How this score is calculated
Our heuristic uses license records (up to 30), a demo link (12), a preview (10), stars (15), recorded maintenance (15), description completeness (8), feature records (5) and classification data (5). It is not a code, security or performance test, or a Google score. A link does not establish tested functionality.
What to verify for this project
- Repository update recorded
- 2026-10-05
- Screenshot last checked
- 2026-10-05
A demo link is listed. Check it with your own content and viewport sizes; its presence does not confirm that forms, authentication or payments work.
The catalog identifies Astro as the primary stack. Check the actual dependency manifest and lockfile for versions and hosting requirements. These notes use recorded metadata, not a code audit or a deployment test.
Use a selection guide →How this description was prepared
AI-assisted description based on catalog records and repository material. Repository authors are not automatically the reviewers of this description.
Review declaration: [email protected] · 2026-10-06
Inspect the recorded source material
SHA-256: 0fa6770df16005fddbe9b25ac8dfe4a6d61041eca33a248d7390a88a8793fa90
2026-10-05T15:19:38.806Z
Source file / repository# 🚀 StarGarden Astro Theme Welcome to the future, traveler — where the splendor of the Atomic Age meets modern Astro web development. **StarGarden** is your trusty rocket for launching simple, markdown-powered websites into cyberspace with unmatched style and efficiency.  ## 🌐 Live Demo Experience StarGarden in orbit at [stargarden.pages.dev](https://stargarden.pages.dev/). ## 🛠️ Initiate Launch Sequence Two launch paths. Pick whichever fits your mission profile. ### Option A — clone via Astro's official starter command ```bash npm create astro@latest -- --template sustanza/stargarden ``` ### Option B — fork or clone manually ```bash git clone https://github.com/sustanza/stargarden.git my-site cd my-site npm install npm run dev ``` Then open `http://localhost:4321/` in your favorite browser. ## 📁 Project Structure ``` . ├── astro.config.mjs # Astro config: integrations, markdown plugins, site URL ├── src/ │ ├── consts.ts # SITE_TITLE + SITE_DESCRIPTION — edit when forking │ ├── components/ # BaseHead, Navbar, Footer, ThemeToggle, Landing │ ├── layouts/Layout.astro │ ├── pages/ # index.astro, posts/, [...slug].astro, robots.txt.ts, rss.xml.ts, 404.astro │ ├── content.config.ts # Collection schemas (posts + pages) │ ├── content/ │ │ ├── posts/ # Co-located markdown + cover images │ │ └── pages/ # About, Privacy, TOS, FAQ (and your own) │ ├── assets/ # Logo, hero, icons (inline SVG) │ ├── plugins/ # remark-reading-time │ ├── scripts/ # Theme controller │ └── styles/global.css # Tailwind + DaisyUI imports, Pagefind overrides ├── public/ # favicon ├── e2e/ # Playwright smoke tests └── __tests__/ # Vitest unit tests ``` ## 🛰️ Customization Checklist When you fork this template, the handful of files you'll edit first: 1. **`src/consts.ts`** — set `SITE_TITLE` and `SITE_DESCRIPTION`. 2. **`astro.config.mjs`** — change `site:` to your deployed URL (drives canonical, RSS, sitemap, robots). 3. **`src/components/Footer.astro`** — swap the placeholder email, YouTube handle, and GitHub link for your own. 4. **`public/favicon.svg`** — replace with your favicon. 5. **`src/content/posts/`** — replace or supplement the demo astronomy posts with your own. Frontmatter schema lives in `src/content.config.ts`. 6. **`src/content/pages/`** — edit `about`, `privacy`, `tos`, `faq`, or add new pages following the same `<slug>/index.md` pattern. ## 🌌 Feature Control Panel - **Astro 6** with content collections + `astro:assets` image optimization. - **Tailwind CSS v4 + DaisyUI v5** — light (`corporate`) + dark (`business`) themes, honors `prefers-color-scheme` on first visit, persists user toggle in localStorage. - **View Transitions** via `<ClientRouter />` for SPA-style navigation. - **Link prefetch** (hover strategy) for snappy clicks. - **Pagefind search** indexed at build time; integrated mobile + desktop UI. - **SEO** via a hand-rolled `BaseHead.astro`: OpenGraph, Twitter Card, canonical, JSON-LD Organization — all emitted on every page. - **Sitemap + dynamic `robots.txt`** that auto-tracks your `site:` config. - **RSS feed** at `/rss.xml` with full post HTML and cover-image enclosures. - **Expressive-code** syntax highlighting with paired light/dark themes that follow DaisyUI's `data-theme`. - **Reading time** + clickable heading anchors on every post. - **Vitest** unit tests + **Playwright** end-to-end smoke tests. ## 📜 Available Scripts | Script | What it does | | ------------------------ | ---------------------------------------------------------------------------------------- | | `npm run dev` | Astro dev server on `http://localhost:4321/` (Pagefind search will be empty — see below) | | `npm run build` | Production build into `dist/`, including Pagefind index | | `npm run preview` | Serve the built `dist/` | | `npm run preview:search` | Build + preview in one step — use this to test Pagefind search locally | | `npm run test` | Run Vitest unit tests | | `npm run test:e2e` | Run Playwright end-to-end tests (boots dev server) | | `npm run test:ci` | Build then run Playwright against the production preview | | `npm run format` | Format the repo with Prettier | | `npm run format:check` | Verify formatting without writing — CI gate | ## ⚠️ Known Caveats ### Pagefind search is empty under `npm run dev` Pagefind indexes built HTML, not source markdown. The search input renders in dev mode but returns no results until you've run `npm run build` at least once. Use `npm run preview:search` to test search locally — it builds and previews in a single step. ### Custom 404 page depends on your host `src/pages/404.astro` builds to `dist/404.html`. Hosts that auto-serve `404.html` with a 404 status (Cloudflare Pages, Netlify, Vercel) work out of the box. Self-hosted nginx or other static servers may need explicit configuration to return the right status code. ### RSS body images won't resolve in feed readers The RSS feed at `/rss.xml` ships each post's full rendered HTML in `<content:encoded>` plus an `<enclosure>` for the cover image. The cover image enclosure uses absolute URLs and resolves correctly. **Inline markdown images in post bodies** (e.g. ``) are local-only paths that won't resolve in subscribers' readers — host body images in `public/` with absolute paths or reference them by `https://` URL if you need them in the feed. ## 📡 License StarGarden flies under the [MIT License](LICENSE). Freedom to innovate, explore, and customize — fully endorsed by your friendly local space authority. ## 🤝 Contributing See [CONTRIBUTORS.md](./CONTRIBUTORS.md). Issues and PRs welcome. --- Godspeed, future-makers, and happy exploring!
Explore similar templates
Compare previews and descriptions within the same stack and category.

astrowind
AstroWind is a free, open-source Astro starter theme using Astro and Tailwind CSS, released under the MIT license.
Astro · Blog
accessible-astro-starter
An accessibility-focused Astro 6 starter template with WCAG 2.2 AA practices, Tailwind CSS 4, TypeScript, Prettier, ESLint, form validation, blog and portfolio examples, and preference toggles for dark mode, high contrast, and reduced motion.
Astro · Blog

astro-erudite
astro-erudite is an opinionated, unstyled static blog template built with Astro and native CSS, with no UI or CSS framework and minimal dependencies.
Astro · Portfolio

astro-shopify
A lightweight Shopify headless ecommerce starter template built with Astro and Svelte, integrating the Shopify Storefront API for product and inventory data, with built-in cart state management and basic add-to-cart and checkout flow.
Astro · E-commerce

brutal
Brutal is a neobrutalism Astro starter theme from ElianCodes, derived from the author's personal site and generalized. It includes a Markdown blog collection, build-time RSS and sitemap, image optimization, Tailwind CSS styling, and Biome checks, with no JavaScript by default.
Astro · Starter

qwind
Qwind is a free and open-source website template built on Qwik and Tailwind CSS, featuring directory-based routing via QwikCity, a Markdown blog, dark mode, and static deployment configuration.
Astro · Tool Site
