Marketing pages, blog, and Starlight documentation share one Astro project, with built-in full-text search for docs
astro-cloudflare-starter — Astro Blog Template
By milzamsz
A static marketing, blog, and documentation site starter built on Astro, intended for deployment to Cloudflare Pages, with content managed in Markdown and no CMS or database.
Explore the design
Compare the page layouts and mobile experience. Open any screenshot for a closer look.
Actual screenshot captured by the server browser.
All pages & views 3
Screenshots show visual appearance; interactive behavior may differ.
What stands out
A quick read of the recorded project description.
Content is stored as Markdown/JSON in src/content and type-checked through content collection schemas
English-first, with a built-in prefix-routing-based multilingual mechanism that can be extended to other languages
Preconfigured canonical, hreflang, JSON-LD, Open Graph, sitemap, RSS, and dynamic llms.txt
Light/dark theme with a monochrome OKLCH design system
Optional Cloudflare R2 media storage and a secret-protected cleanup worker
Template Details
This is a static site template built with Astro, positioned as a combination of marketing pages, blog, and documentation. Marketing pages and blog content are stored as Markdown under src/content and type-checked through content collection schemas; the documentation section is provided by Starlight with full-text search. The site defaults to English and includes a prefix-routing-based multilingual mechanism that can be extended to other languages.
The theme provides light/dark switching and a monochrome OKLCH design system, and includes preconfigured SEO output: canonical, hreflang, JSON-LD, Open Graph, sitemap, RSS, and a dynamically generated llms.txt. The build output is static files and can be deployed to Cloudflare Pages; the template also includes an optional Cloudflare R2 media storage binding and a secret-protected cleanup worker.
The template does not include a CMS or database; content updates rely on Git commits and merges. The repository is released under the MIT license; third-party assets such as demo images, fonts, and icons require separate license verification; external services such as R2 and domains may incur costs.
Is it right for your project?
Use Cases
- Build a static site with marketing pages, a blog, and documentation for a product
- Host a content site without a database on Cloudflare Pages
- Projects that need multilingual prefix routing and default SEO metadata configuration
- Teams that want to manage content with Git and Markdown without introducing a CMS
Suitable For
- Developers or small teams comfortable maintaining content through a Git workflow
- Static site projects planned for deployment to Cloudflare Pages
- Sites that need marketing pages, a blog, and documentation to coexist
- Developers who want to modify the code themselves based on an MIT-licensed foundation
Getting started & customization
Use these recorded setup notes alongside the repository instructions for your chosen version.
- 1
After cloning the repository, run pnpm install and pnpm dev; the local default address is http://localhost:4321
- 2
Before use, update url, name, description, author, email, social links, and OG image in src/config/site.config.ts
- 3
Update src/config/nav.config.ts, the Starlight editLink and GitHub links in astro.config.ts, and the project name and R2 bucket name in wrangler.jsonc as needed
- 4
Copy .env.example to .env and set SITE_URL; configure CLEANUP_SECRET as a Cloudflare secret only when using the R2 cleanup worker
- 5
When deploying to Cloudflare Pages, the build command is pnpm build and the output directory is dist; you can also deploy manually with npx wrangler pages deploy dist
License & source material
Usage conditions & limitations
Free to use · keep license noticeThis entry covers the free version under the MIT license in the public repository; the free scope is the code of this version and does not mean external services or third-party assets are free.
Must comply with when using
- Free use, modification, commercial use, and distribution of this version's code are permitted.
- 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
- R2 media storage and the cleanup worker are optional features; enabling them requires configuring an R2 bucket in Cloudflare and setting CLEANUP_SECRET as a Cloudflare secret, and may incur Cloudflare service fees.
- The CLEANUP_SECRET environment variable is required only when using the R2 cleanup worker; it is not needed if this optional feature is not used.
- Deployment depends on the external Cloudflare Pages service and requires connecting the repository to a Cloudflare Pages account; using this hosting service may incur fees.
- 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.
View Original Text Basis
Permission is hereby granted, free of charge
Original License Text
Optional Cloudflare R2 media storage + a secret-guarded cleanup worker
Original README
Set `CLEANUP_SECRET` as a Cloudflare secret only if you use the R2 cleanup worker.
Original README
https://github.com/milzamsz/astro-cloudflare-starter/blob/main/LICENSEhttps://github.com/milzamsz/astro-cloudflare-starter/blob/main/README.mdConnect the repo to Cloudflare Pages (build command `pnpm build`, output `dist`)
Original README
Compiled by DeepSeek based on repository license and README ·2026-10-02. 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 · 92 / 100
- Technologies
- Astro
- Website type
- Blog · Documentation · Corporate Website · 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-09-14
- Screenshot last checked
- 2026-10-02
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.
Automatically checked against source and license rules; no manual editorial review.
Inspect the recorded source material
SHA-256: 2cb270776805edc576d3b54eb174b913626e76bda5370dbbbf952de218c0b51f
2026-10-02T21:37:03.979Z
Source file / repository# Astro Cloudflare Starter A production-ready marketing + blog + docs site built with **Astro 7** and **Cloudflare Pages**. English-first and multilanguage-ready. Content is managed with Git and Markdown — no CMS, no database. ## Features - English-first with a multilanguage-ready i18n engine (prefix-based routing) - Marketing pages, blog, and Starlight-powered docs with full-text search - Light/dark theming with a monochrome OKLCH design system - SEO defaults: canonical, hreflang, JSON-LD, Open Graph, sitemap, RSS, dynamic `llms.txt` - Optional Cloudflare R2 media storage + a secret-guarded cleanup worker - Static output — fast on the Cloudflare CDN, cheap to host ## Quick Start ```bash git clone https://github.com/milzamsz/astro-cloudflare-starter.git cd astro-cloudflare pnpm install pnpm dev ``` Open **http://localhost:4321**. ## Make it yours After clicking **Use this template**, update these: - [ ] `src/config/site.config.ts` — `url`, `name`, `description`, `author`, `email`, social links, OG image. Single source of truth (canonical/OG/sitemap/`llms.txt`; `astro.config.ts` reads `url`). - [ ] `src/config/nav.config.ts` — footer GitHub/social URLs. - [ ] `astro.config.ts` — Starlight `editLink.baseUrl` and the GitHub social link. - [ ] `wrangler.jsonc` — project `name` and the R2 bucket name (or remove the R2 binding if unused). - [ ] `public/favicon.svg`, logos, and the default OG image. - [ ] `.env.example` → `.env`; set `SITE_URL`. Set `CLEANUP_SECRET` as a Cloudflare secret only if you use the R2 cleanup worker. - [ ] Content in `src/content/` (blog, services, pages, docs, settings). - [ ] `LICENSE` copyright holder and `CHANGELOG.md`. > Tip: update `src/config/site.config.ts` (name, author, email, social links, URL) to make this template yours. ## Documentation | Document | Purpose | |----------|---------| | [SETUP.md](SETUP.md) | Setup and Cloudflare Pages deployment | | [CONTRIBUTING.md](CONTRIBUTING.md) | Development workflow and conventions | | [SECURITY.md](SECURITY.md) | Reporting vulnerabilities | | [CHANGELOG.md](CHANGELOG.md) | Release notes | | `/docs` (Starlight) | In-app guides: getting started, content, i18n, deployment | ## Scripts ```bash pnpm dev # start dev server pnpm build # production build to dist/ pnpm preview # preview the production build pnpm lint # eslint + stylelint + type-check + validations pnpm test # unit tests (vitest) pnpm test:e2e # end-to-end tests (playwright) ``` ## Content model All content lives in `src/content` as Markdown/JSON and is type-checked via content collection schemas. Each entry uses `<slug>.md` with a `locale` frontmatter field (English by default). To add a language, see `docs/guides/internationalization`. Edit files and open a pull request — Cloudflare Pages rebuilds on merge. ## Deployment Connect the repo to Cloudflare Pages (build command `pnpm build`, output `dist`), or deploy manually with `npx wrangler pages deploy dist`. See [SETUP.md](SETUP.md). ## License [MIT](LICENSE)
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

astro-paper
AstroPaper is a minimal, responsive, accessible, and SEO-friendly Astro blog theme. Articles are stored as Markdown/MDX in src/content/posts/, with subdirectories affecting URLs.
Astro · Blog

fuwari
Fuwari is a static blog template built with Astro and Tailwind CSS for personal blogs. It manages posts as Markdown files in src/content/posts/, with frontmatter for title, date, description, cover, tags, categories, draft status, and language.
Astro · Blog

Firefly
Firefly is a clean personal blog theme forked from Astro and Fuwari, offering four background modes, single/double sidebar and list/grid layouts, Pagefind client-side full-text search, and a six-language UI.
Astro · Blog

astro-theme-cactus
Astro Cactus is an Astro-based blog and portfolio theme that uses Markdown/MDX content collections to manage posts, notes, and tags, with frontmatter type-checked by a schema.
Astro · Portfolio

astrofy
Astrofy is a free and open-source personal portfolio website template built with Astro and TailwindCSS, with built-in blog, CV timeline, project showcase, store, and RSS feed modules.
Astro · Portfolio
