Neobrutalism Astro starter theme
brutal — Astro Starter Template
By ElianCodes
Brutal is a neobrutalism-style Astro starter theme that provides basic configuration for a blog, RSS, sitemap, and image optimization.
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.
Built-in blog content collection that generates pages from Markdown
Automatically generates a sitemap and RSS feed at build time
Includes image optimization and no JavaScript by default
Uses Tailwind CSS for utility classes, with a small amount of custom CSS
Uses Biome for formatting, linting, and import sorting, alongside astro check
Template Details
Brutal is an Astro starter theme published by ElianCodes, positioned as a neobrutalism style that emphasizes minimal and functional design. The theme originates from the author's personal website and has been supplemented with more general-purpose content.
In terms of features, it includes a blog content collection (Markdown files under src/content/blog), automatically generated RSS feed (output to feed.xml by default), a sitemap generated at build time, and image optimization integration. It does not include JavaScript integrations by default; these can be added as needed. Styling uses Tailwind CSS with Astro's Vite plugin, plus a small amount of plain CSS for scrollbars and shadows. Code checking and formatting use Biome, while Astro-related diagnostics still run via astro check; both are invoked together by pnpm check.
Usage is via the create astro command with npm, pnpm, or yarn, using eliancodes/brutal as the template to initialize a new project. The project structure divides components by purpose: blog, errors (including 404), generic, home, and layout (header, footer, and head).
Limitations and notes: the theme has no JavaScript interactions by default; the sitemap requires replacing site in astro.config with your own domain; RSS is generated by default from Markdown in src/content/blog and can be adjusted by renaming src/pages/feed.xml.js. The repository uses the MIT license, but third-party assets such as demo images, fonts, and icons require separate license verification, and external services such as domains and hosting may incur additional charges.
Is it right for your project?
Use Cases
- Quickly building a neobrutalism-style blog or personal website
- Needing an out-of-the-box Astro starter to begin a project
- Wanting a site with basic SEO configuration such as RSS and a sitemap
- Preferring no JavaScript by default and adding interactions as needed
Suitable For
- Developers familiar with Astro who want to start a project quickly
- Personal site authors who like the neobrutalism visual style
- Content-oriented websites that need a blog content collection and RSS output
- Projects that want to customize styles with Tailwind CSS
Getting started & customization
Use these recorded setup notes alongside the repository instructions for your chosen version.
- 1
Initialize the project with npm create astro@latest -- --template eliancodes/brutal or the corresponding pnpm/yarn command
- 2
After installing dependencies, run pnpm dev to start the local development server (localhost:4321)
- 3
Replace site in astro.config with your own domain to generate a correct sitemap
- 4
RSS is generated by default from Markdown in src/content/blog and output to feed.xml; it can be adjusted by renaming src/pages/feed.xml.js
- 5
Use pnpm check to run both Astro checks and Biome checks
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 applies to that version's code and does not mean external services or third-party assets are free.
Must comply with when using
- You may use, modify, commercialize, and distribute this version's code 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
- The template originates from the author's personal website and has been generalized; when using it, replace personalized content (such as site information and sample content) to suit your own project.
- Before using the sitemap feature, you must replace the site field in astro.config with your own domain; otherwise, the generated sitemap URLs will point to the example domain.
- RSS is generated by default from Markdown files in src/content/blog; blog content must be placed in that directory for the feed to output correctly.
- The theme does not include any JavaScript integrations by default; interactive features must be added manually.
- 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 additional charges.
View Original Text Basis
Permission is hereby granted, free of charge
Original License Text
This template is based on [my own personal website](<https://www.elian.codes/>), with some more generic things added.
Original README
You'll just need to switch out the `site` on `astro.config.ts` to your own.
Original README
The RSS feed is automatically generated from the Markdown files in the `src/content/blog` folder.
Original README
https://github.com/ElianCodes/brutal/blob/main/LICENSEhttps://github.com/ElianCodes/brutal/blob/main/README.mdThe theme has no JavaScript integration out of the box, but can always be added of course.
Original README
Compiled by DeepSeek based on repository license and README ·2026-10-01. 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
- GitHub
- Documentation and maintenance reference score
- More documented · 91 / 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-09-29
- Screenshot last checked
- 2026-10-01
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: 62de4bafb99412cb02a7e4d19429bbfe2d850b6d6046fedde2126736b1f2419c
2026-10-01T14:38:21.588Z
Source file / repository# Brutal - The neobrutalist Astro theme
Brutal is a minimal neobrutalist theme for [Astro](https://astro.build/). It's based on Neobrutalist Web Design, a movement that aims to create websites with a minimalistic and functional design. It has some integrations like Image Optimization, RSS, Sitemap, ready to get your SEO done right.
The theme has no JavaScript integration out of the box, but can always be added of course.
This template is based on [my own personal website](<https://www.elian.codes/>), with some more generic things added.
## Usage
You can bootstrap a new Astro project using Brutal with the following command:
```bash
# npm
npm create astro@latest -- --template eliancodes/brutal
# pnpm
pnpm create astro@latest --template eliancodes/brutal
# yarn
yarn create astro --template eliancodes/brutal
```
### Commands
All commands are run from the root of the project, from a terminal:
(Here I use PNPM, no problem if you use NPM or Yarn)
| Command | Action |
| :------------------ | :------------------------------------------------- |
| `pnpm install` | Installs dependencies |
| `pnpm dev` | Starts local dev server at `localhost:4321` |
| `pnpm lint` | Runs Biome lint checks |
| `pnpm format` | Formats the project with Biome |
| `pnpm check` | Runs Astro checks plus `biome check` |
| `pnpm build` | Build your production site to `./dist/` |
| `pnpm preview` | Preview your build locally, before deploying |
| `pnpm astro ...` | Run CLI commands like `astro add`, `astro preview` |
| `pnpm astro --help` | Get help using the Astro CLI |
## Tooling
This project uses [Biome](https://biomejs.dev/) for formatting, linting, and import organization.
Astro-specific diagnostics still run through `astro check`, so CI and local validation use both:
```bash
pnpm run check
```
## Integrations
### Tailwind CSS
In this theme, I'm using [Tailwind CSS](https://tailwindcss.com/) to generate the utility classes. The project uses Astro's Tailwind setup with the Vite plugin, plus a small amount of regular CSS for the theme-specific scrollbar and shadow styling.
### Sitemap
To generate the sitemap, you don't need to do anything. It's automatically generated when you build your site. You'll just need to switch out the `site` on `astro.config.ts` to your own.
```js title="astro.config.mjs"
import { defineConfig } from 'astro/config';
export default defineConfig({
site: 'https://example.com',
});
```
### RSS
The RSS feed is automatically generated from the Markdown files in the `src/content/blog` folder. You can ofcourse completely change this to your own needs.
The RSS will output to `https://example.com/feed.xml` by default. You can change this, by renaming `src/pages/feed.xml.js`.
### Image
## Components
### `components/blog/`
This directory contains all components for the blog.
### `components/errors/`
This directory contains all error components.
#### `components/errors/404.astro`
This component is used when a page is not found.
### `components/generic/`
This directory contains all generic components, reused over multiple pages.
### `components/home/`
This directory contains all components for the home page.
### `components/layout/`
This directory contains all layout components. For instance, the header and footer and `<head>` section.
If you need more from this theme, don't hesitate to open an issue or reach out to me!
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

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

Milky-Way
Milky-Way is a minimalist, MIT-licensed Astro portfolio template with a clean, whitespace-heavy layout and intuitive navigation. It supports responsive desktop and mobile browsing, and content is added by editing HTML files under src/pages, with styles adjustable in src/styles.
Astro · Portfolio
