Ovidius is a single-author blog theme for Astro.js. Featuring a minimal, slick, responsive and content-focused design. For more Astro.js themes please check justgoodui.com.
Clicking the button above ☝️ will create a new repo for you that looks exactly like this one, and sets that repo up immediately for deployment on Netlify.
- ✅ Featured post support
- ✅ Subscribe form
- ✅ Tailwind CSS
- ✅ SEO-friendly with canonical URLs and OpenGraph data
- ✅ Sitemap support
- ✅ RSS Feed support
- ✅ Markdown & MDX support
- ✅ Optimized images using Astro’s
Imagecomponent
- @astrojs/tailwind - https://docs.astro.build/en/guides/integrations-guide/tailwind/
- @astrojs/sitemap - https://docs.astro.build/en/guides/integrations-guide/sitemap/
- @astrojs/mdx - https://docs.astro.build/en/guides/markdown-content/
- @astrojs/rss - https://docs.astro.build/en/guides/rss/
Set your deployed domain in the site property:
// astro.config.mjs
export default defineConfig({
site: 'https://example.com'
});This is required for correct image optimization and sitemap generation.
All site-wide data and theme options are stored in src/data/site-config.ts. It provides a single configuration object used throughout the theme for navigation, branding, hero content, social links, and more.
You can update this file to customize:
- Site identity — title, description, logo, and default social share image
- Navigation — primary and secondary navigation links
- Social links — icons and URLs for supported platforms
- Hero section — title, text, avatar, and background image
- Newsletter subscription — form settings suitable for Mailchimp, Formspree, ConvertKit, or other form-based providers. The form supports a custom action URL, configurable email and hidden fields, and an optional honeypot field for spam protection.
- Pagination — posts per page for blog listings
Images can be referenced either as imports from src/assets/ (for optimized Astro images) or as string paths from the public/ directory.
The theme uses a CustomImage component that automatically displays images using Astro’s optimized <Image /> or a standard <img> tag depending on the source.
- Content collection images (used in posts or pages) must be stored in
src/assets/since they use Astro’simage()schema. - Site-config images (like the logo, hero background, or social preview) can either be imported from
src/assets/for optimization or referenced directly frompublic/(e.g. /logo.svg) if you prefer not to optimize them.
The public/ directory can still be used for static files like favicons, fonts, or robots.txt.
Inside of Ovidius Astro theme, you'll see the following folders and files:
├── public/
├── src/
│ ├── assets/
│ ├── components/
│ ├── content/
│ ├── data/
│ ├── layouts/
│ ├── pages/
│ ├── styles/
│ ├── utils/
│ ├── content.config.ts
│ └── types.ts
├── astro.config.mjs
├── README.md
├── package.json
└── tsconfig.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 (.astro) components.
The src/content/ directory contains "collections" of related Markdown and MDX documents. Use getCollection() to retrieve posts from src/content/blog/, and type-check your frontmatter using an optional schema. See Astro's Content Collections docs to learn more.
All commands are run from the root of the project, from a terminal:
| Command | Action |
|---|---|
npm install |
Installs dependencies |
npm run dev |
Starts local dev server at localhost:4321 |
npm run build |
Build your production site to ./dist/ |
npm run preview |
Preview your build locally, before deploying |
npm run astro ... |
Run CLI commands like astro add, astro check |
npm run astro -- --help |
Get help using the Astro CLI |
Check out our documentation or jump into our Discord server.
- Dante is a free single-author blog and portfolio theme.
Licensed under the GPL-3.0 license.
