Astro-based blog template with page routes generated by .astro files under src/pages/
sobasic — Astro Starter Template
By lukeska
sobasic is an Astro-based blog template that provides a homepage, blog list, and article pages, uses Markdown/MDX to manage content, and adjusts the primary color through Tailwind theme variables.
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.
Articles use .md or .mdx files in src/content/blog/, supporting title, description, pubDate, heroImage, and featured fields
Provides a FeaturedArticles component to display articles marked as featured
Primary color is adjusted through color-primary-* variables in src/styles/global.css and can be mapped to Tailwind colors
Main navigation links are configured in the navItems array in src/components/Header.astro
MIT licensed, with the demo site deployed on Netlify
Template Details
sobasic is an Astro blog template open-sourced by lukeska on GitHub, licensed under MIT, with a demo site deployed on Netlify. The template targets personal blogs or content-oriented sites, offering basic pages such as a homepage, blog list, article detail, and about page, and includes a built-in FeaturedArticles component for highlighting articles marked as featured.
For content management, articles are placed as .md or .mdx files in the src/content/blog/ directory. The front matter must include title, description, and pubDate; heroImage and featured are optional fields. Article images are placed in src/images/. Pages generate routes through .astro files under src/pages/; when adding new pages, BaseLayout must be used to maintain a consistent site appearance.
For customization, the primary color is set in src/styles/global.css through color-primary-* variables, which can be mapped to any Tailwind color. Main navigation links are modified in the navItems array in src/components/Header.astro. The repository README also provides online entry points for StackBlitz, CodeSandbox, and GitHub Codespaces.
Limitations and notes: the template does not mention built-in search, comments, RSS, pagination, or CMS integration in the available information. Demo images come from Unsplash and must be checked against their own licenses; they cannot be judged solely by the code's MIT license.
Is it right for your project?
Use Cases
- Building a personal blog and centrally managing Markdown/MDX articles
- Content sites that need basic pages such as a homepage, blog list, and article detail
- Projects that want to quickly replace the site's primary color using Tailwind theme variables
- Viewing and trying the template online through StackBlitz, CodeSandbox, or GitHub Codespaces
Suitable For
- Personal bloggers familiar with Astro and Markdown writing
- Front-end developers who need a lightweight blog starter structure
- Projects that accept handling extension features such as comments and search on their own
Getting started & customization
Use these recorded setup notes alongside the repository instructions for your chosen version.
- 1
Create a project with npm create astro@latest -- --template lukeska/sobasic, or clone the repository and run npm install and npm run dev
- 2
Place articles in src/content/blog/; the front matter must include title, description, and pubDate, while heroImage and featured are optional
- 3
Place new pages in src/pages/ and wrap content with BaseLayout
- 4
Modify the primary color in the color-primary-* variables in src/styles/global.css, and adjust navigation links in src/components/Header.astro
- 5
Demo images come from Unsplash and must be checked against their own licenses before use
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 that 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 for free.
- When distributing copies or substantial portions of the code, retain the original author's copyright notice and the complete 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.
- The demo photos in the template come from Unsplash and were taken by Josep Martins; they must be used under Unsplash's own asset license, and image authorization cannot be judged solely by the code's MIT license.
View Original Text Basis
Permission is hereby granted, free of charge
Original License Text
https://github.com/lukeska/sobasic/blob/main/LICENSEhttps://github.com/lukeska/sobasic/blob/main/README.mdPhotos by <a href="https://unsplash.com/@josepmartins?utm_content=creditCopyText&utm_medium=referral&utm_source=unsplash">Josep Martins</a> on <a href="https://unsplash.com/photos/white-smoke-0-c5T6meRuk?utm_content=creditCopyText&utm_medium=referral&utm_source=unsplash">Unsplash</a>
Original README
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
- Partly documented · 73 / 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
- 2025-05-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-05
Inspect the recorded source material
SHA-256: 4610a175988b14e0c4b74c28e89d710864b418c169dd83daa7e40d288da2dfc5
2026-10-04T21:32:10.081Z
Source file / repository# So Basic - Astro Blog Template
Howdy! Before you read anything below, you can check out the ✨ [Live Demo](https://sobasic.netlify.app/) ✨
[](https://sobasic.netlify.app/)
[](https://stackblitz.com/github/lukeska/sobasic)
[](https://codesandbox.io/p/sandbox/github/lukeska/sobasic)
[](https://codespaces.new/lukeska/sobasic?devcontainer_path=.devcontainer/devcontainer.json)
## 📦 Installation
### Astro installation
```sh
npm create astro@latest -- --template lukeska/sobasic
```
### Manual installation
#### 1. Clone the repo
```sh
git clone https://github.com/lukeska/sobasic.git my-project
# or
git clone https://github.com/lukeska/sobasic.git .
```
The . will clone it to the current directory so make sure you are inside your project folder first.
#### 2. Install dependencies
```sh
npm install
```
#### 3. Start the development server
```sh
npm run dev
```
## 🚀 Project Structure
Inside of your Astro project, you'll see the following folders and files:
```text
/
├── public/
│ └── favicon.svg
├── src/
│ ├── components/
│ ├── content/
│ │ └── blog/
│ ├── images/
│ ├── layouts/
│ ├── pages/
│ │ └── index.astro
│ └── styles/
├── astro.config.mjs
└── package.json
```
Astro looks for `.astro` or `.md` files in the `src/pages/` directory. Each page is exposed as a route based on its file name.
There's nothing special about `src/components/`, but that's where we like to put any Astro/React/Vue/Svelte/Preact components.
Any static assets, like images, can be placed in the `public/` directory.
## 📰 Add your own content
### Add or change existing pages
Feel free to change any of the content on the existing files in folder `src/pages/`. In this folder you
can add any `.astro` file. Make sure to use `<BaseLayout> to ensure any new page looks like the rest of the site.
```html
---
import BaseLayout from "../layouts/BaseLayout.astro";
---
<BaseLayout>
<!-- your content here -->
</BaseLayout>
```
### Add new articles to the blog
Articles for the blog can be added as `.md` or `.mdx` files inside `src/content/blog/`. Hero images for the articles can be added to `src/images/`
Make sure to add the following data at the top of your file:
```html
---
title: 'This is my title'
description: 'This is my description'
pubDate: '2025-01-02'
heroImage: '../../images/article-image.jpg'
featured: true
---
```
- title is the title and meta title for the article
- description is used as short text in list of articles and as meta description
- pubDate is the publication date, used to sort articles in lists
- heroImage is optional and references an image inside `src/images/`
- featured is optional. Values can be `true` or `false`. It defines if an article is visible in the `FeaturedArticles.astro` component.
### Change links in the main navigation
Links in the main navigation can be changed in `src/components/Header.astro` by altering this variable:
```javascript
const navItems = [
{ href: "/", text: "Home", active: currentPath === "/" },
{ href: "/blog", text: "Blog", active: currentPath.startsWith("/blog") },
{ href: "/about", text: "About", active: currentPath.startsWith("/about") },
];
```
## 🎨 Customization
The primary color of this theme can be easily changed in `src/styles/global.css`.
You can assign any Tailwind color to the various `color-primary-*` variables.
```css
@theme {
--color-primary-50: var(--color-purple-50);
--color-primary-100: var(--color-purple-100);
--color-primary-200: var(--color-purple-200);
--color-primary-300: var(--color-purple-300);
--color-primary-400: var(--color-purple-400);
--color-primary-500: var(--color-purple-500);
--color-primary-600: var(--color-purple-600);
--color-primary-700: var(--color-purple-700);
--color-primary-800: var(--color-purple-800);
--color-primary-900: var(--color-purple-900);
--color-primary-950: var(--color-purple-950);
...
}
```
## 👀 Want to learn more?
Feel free to check [Astro's documentation](https://github.com/withastro/astro) or jump into Astro's [Discord server](https://astro.build/chat).
## Images credits
Photos by <a href="https://unsplash.com/@josepmartins?utm_content=creditCopyText&utm_medium=referral&utm_source=unsplash">Josep Martins</a> on <a href="https://unsplash.com/photos/white-smoke-0-c5T6meRuk?utm_content=creditCopyText&utm_medium=referral&utm_source=unsplash">Unsplash</a>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
