Skip to content

JustGoodUI/ovidius-astro-theme

Repository files navigation

Ovidius - Astro & Tailwind CSS Theme by justgoodui.com

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.

Ovidius Astro.js Theme

Deploy to Netlify Button

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.

Theme Features:

  • ✅ 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 Image component

Template Integrations

⚙️ Configuration Notes

astro.config.mjs

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.

site-config.ts

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.

Images

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’s image() schema.
  • Site-config images (like the logo, hero background, or social preview) can either be imported from src/assets/ for optimization or referenced directly from public/ (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.

🚀 Project Structure

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.

Astro.js Commands

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

Want to learn more about Astro.js?

Check out our documentation or jump into our Discord server.

Credits

Astro Themes by Just Good UI

  • Dante is a free single-author blog and portfolio theme.

License

Licensed under the GPL-3.0 license.