AstroHTMLStarter

astro-baseline — Astro Starter Template

By alexandredesane

Astro Baseline is an HTML-first Astro starter that ships without UI frameworks or runtime JavaScript by default, providing a foundation for layouts, SEO, accessibility, and layered CSS.

Explore the design

Compare the page layouts and mobile experience. Open any screenshot for a closer look.

3 previews
Desktop homepage1 / 3
Desktop captureTop of page

Actual screenshot captured by the server browser.

All pages & views 3

Screenshots show visual appearance; interactive behavior may differ.

Recorded 2026-10-04View source

What stands out

A quick read of the recorded project description.

01

HTML as the single source of truth, with structure, content, and behavior separated

02

No UI component library by default, and no runtime JavaScript output by default

03

Centralized SEO component supporting canonical links, Open Graph, Twitter cards, and optional JSON-LD

04

Layered CSS architecture with no framework and no Tailwind by default, easy to replace or extend

05

Built-in accessibility foundations including a skip link, semantic HTML, and a focusable main content area

06

Site metadata centralized in site.ts, avoiding duplication across header, footer, and pages

Template Details

Astro Baseline is an Astro starter template for developers, positioned as a clean foundation rather than a framework demo. It follows the principle that HTML is the single source of truth: structure lives in .astro files, content lives in data files such as site.ts, Markdown, and YAML, behavior is introduced explicitly as needed, and CSS is organized in predictable layers. The template includes no UI component library by default and does not output runtime JavaScript by default.

Structurally, it provides a Base.astro layout system, header and footer components, a skip navigation link, a 404 page, and a predictable file organization. For SEO, it includes a centrally managed SEO.astro component covering canonical links, Open Graph and Twitter cards, optional JSON-LD, robots meta, and theme color. For accessibility, it provides a skip link, semantic HTML, a focusable main content area, and no reliance on interactions that only work with JavaScript.

CSS uses no framework and by default no Tailwind; instead, it is organized into layered files such as tokens, reset, fonts, behaviors, and structure, making it easy to remove, replace, or extend. Fonts are served from /public/fonts via explicit @font-face declarations, with no external font service by default. Site metadata is centralized in src/content/site.ts and used consistently by the header, footer, SEO, pages, and JSON-LD. Layouts declare intent explicitly through props such as title, description, canonicalPath, and mainCentered, and JSON-LD is rendered only when passed in.

Before use, the SITE_URL environment variable must be configured by copying .env.example to .env and filling in the domain, for canonical links, JSON-LD, and SEO consistency. The template explicitly states that it is not suitable for page builders, no-code tools, or scenarios seeking an out-of-the-box UI suite and heavy interactivity.

AstroHTMLStarter

Is it right for your project?

Use Cases

  • Projects that need a clean Astro foundation and want to decide on UI and interactivity themselves
  • Sites that value SEO and accessibility foundations and want to start from semantic HTML
  • Websites that want to manage site metadata and navigation centrally in data files
  • Projects planning to introduce Web Components, Alpine.js, content collections, or progressive enhancement as needed

Suitable For

  • Developers who prefer HTML over abstraction layers and are willing to organize styles themselves
  • Astro projects that need a predictable file structure and clear separation of concerns
  • Teams that want a ready starting point for SEO, accessibility, and font configuration without being tied to a framework

Getting started & customization

Use these recorded setup notes alongside the repository instructions for your chosen version.

  1. 1

    Copy .env.example to .env and set SITE_URL to the actual domain

  2. 2

    SITE_URL is used for canonical links, JSON-LD, and SEO consistency, and must be confirmed before deployment

  3. 3

    Font files go in /public/fonts and are declared via explicit @font-face

  4. 4

    JSON-LD is opt-in and renders only when jsonLd is passed to the layout

  5. 5

    Third-party assets such as demo images, fonts, and icons must be checked individually against their respective licenses

Read repository instructions

License & source material

Usage conditions & limitations

Free to use · keep license notice

This listing covers the free version under the MIT license in the public repository; 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

  • The code of this version may be used, modified, used commercially, and distributed free of charge.
  • 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

  • The SITE_URL environment variable must be configured before use (copy .env.example to .env) for canonical links, JSON-LD, and SEO consistency; without it, the related SEO output cannot be generated correctly.
  • The template includes no UI component library by default and does not output runtime JavaScript by default; if an out-of-the-box UI suite or heavy interactivity is needed, third-party solutions must be introduced separately, as this template does not provide them.
  • It is not suitable for page builders, no-code tools, or demo scenarios expecting a five-minute install and go-live; using it requires Astro and hand-written HTML/CSS skills.
  • 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

Astro Baseline expects the following environment variable: `SITE_URL=https://example.com`

Original README

If you want a UI kit or heavy interactivity out of the box, this is not for you.

Original README

- Page builders - No-code tools - “Install and ship in 5 minutes” demos

Original README
https://github.com/alexandredesane/astro-baseline/blob/main/LICENSEhttps://github.com/alexandredesane/astro-baseline/blob/main/README.md

Compiled by DeepSeek based on repository license and README ·2026-10-04. 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 · HTML
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-01-26
Screenshot last checked
2026-10-04

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-04

Inspect the recorded source material

SHA-256: 0135f6405ae3f409d6e05c04dd8f56181a34856b8ed362cf31ca93e87a8131cc

2026-10-04T00:45:26.812Z

Source file / repository
# Astro Baseline
A boring, production-ready Astro starter.

Astro Baseline is an HTML-first starter designed for developers who want a clean foundation, not a framework demo.

No UI kit.<br>
No runtime JavaScript by default.<br>
No magic.

Just solid structure, senior defaults, and a clear separation of concerns.

## Philosophy

Astro Baseline follows a simple rule:

**HTML is the source of truth.**

- Structure lives in `.astro` files
- Content lives in data (`site.ts`, Markdown, YAML, etc.)
- Behavior is opt-in and explicit
- CSS is boring, predictable, and layered

This starter is meant to disappear once you start building.

## What you get

### Structure

- Clean layout system (`Base.astro`)
- Header / Footer components
- Skip link for accessibility
- 404 page included
- Predictable file organization

### SEO (done properly)

- Centralized SEO.astro component
- Canonical URLs
- Open Graph & Twitter cards
- JSON-LD support (opt-in, per page)
- Robots meta handling
- Theme color

### Accessibility basics

- Skip link (SkipLink.astro)
- Semantic HTML
- Focusable main content
- No JS-only interactions

### CSS architecture

No framework. No Tailwind by default.

Layered CSS structure:

```
src/styles/
├─ global.css
├─ partials/
│  ├─ tokens.css      // design tokens (colors, spacing, fonts)
│  ├─ reset.css       // minimal reset
│  ├─ fonts.css       // @font-face declarations
│  ├─ behaviors.css   // behavior-related CSS (x-dialog, etc.)
│  └─ structure.css   // layout & base styles
```

- BEM-friendly
- Easy to delete or replace
- Easy to extend

### Fonts

- Fonts served from `/public/fonts`
- Explicit @font-face
- No external font dependency by default

### Configuration as data

All site metadata lives in one place:

```
// src/content/site.ts
export const site = {
  name,
  tagline,
  description,
  url,
  locale,
  author,
  nav,
  seo
};
```

Used consistently across:

- Header
- Footer
- SEO
- Pages
- JSON-LD

No duplication.

## Layout API

The layout is explicit and declarative.

Example:

```
<Base
  title="Contact"
  description="Get in touch"
  canonicalPath="/contact"
  mainCentered
>
  ...
</Base>
```

Supported layout flags:

- `mainCentered` (example)
- Easy to extend (`mainWide`, `mainNarrow`, etc.)

The layout never guesses.
Pages declare intent.

## JSON-LD (opt-in)

JSON-LD is rendered only if provided.

Example:

```
const jsonLd = {
  "@context": "https://schema.org",
  "@type": "WebSite",
  name: site.name,
  url: site.url
};
```

Passed directly to the layout:

`<Base jsonLd={jsonLd}>`

No JSON-LD pollution by default.

## Environment

Astro Baseline expects the following environment variable:

`SITE_URL=https://example.com`

Create a `.env` file:

`cp .env.example .env`

Update `SITE_URL` with your domain.

Used for:
- Canonical URLs
- JSON-LD
- SEO consistency

Documented, explicit, predictable.

## Who this is for

This starter is for developers who:

- Prefer HTML over abstractions
- Care about SEO and accessibility
- Want a clean base, not opinions forced on them
- Are tired of over-engineered starters

If you want a UI kit or heavy interactivity out of the box, this is not for you.

## Who this is not for

- Page builders
- No-code tools
- “Install and ship in 5 minutes” demos
- Framework-centric mental models

## Extending Astro Baseline

Astro Baseline is designed to pair naturally with:

- **Astro Content Collections**
- **Build-time tools** (e.g. Frontmatter Core)
- **HTML-first behavior layers** (e.g. Web Components, Alpine.js)
- **Progressive enhancement**

You add complexity only when you need it.

## License

MIT

Do whatever you want.
Build good websites.

## Final note

Astro Baseline is intentionally boring.

That’s the point.

If you never think about this starter again once your project starts, it did its job.
Report a correction

Explore similar templates

Compare previews and descriptions within the same stack and category.