Newsletter
Join the Community
Subscribe to our newsletter for the latest news and updates
A multi-color Astro blog theme with search, multilingual support, math and diagrams, gallery layouts, and GitHub Pages deployment.
Astro Narrow is a multi-color Astro blog theme, migrated from Hugo Narrow, that produces a static site with built-in search, multilingual content, math and diagram rendering, and configurable gallery layouts.
Astro Narrow is a blogging theme built on the Astro framework and styled with Tailwind CSS. It takes Markdown content placed in content collections and generates a static website with posts, projects, series, and archive pages. The theme is a direct migration of the Hugo Narrow design, so it retains the original narrow-column layout while adding Astro-specific tooling. The project is licensed under the GNU General Public License Version 3.
themes option in src/config/theme.ts.src/config/i18n.ts, and each locale gets its own content directories; adding a locale requires updating astro.config.mjs and src/content.config.ts.gallery setting in src/config/site.ts, giving authors layout choices for image collections.categories and tags; projects use only tags, and pages use neither; archive URLs like /archives/?category=Guides can be shared directly.chapters array of post IDs; a series and its chapters must share a locale, and each post can appear in only one public series..github/workflows/deploy.yml; it sets ASTRO_SITE and ASTRO_BASE automatically for user and project pages./series/<slug>/, so readers follow chapters in sequence.nav and footerNav in site.ts to show posts, series, projects, and archives; custom nav items need localized labels, a URL, and a Lucide icon.The theme uses content collections defined in src/content.config.ts to validate frontmatter. Markdown files are placed under src/content/posts/<locale>/ and src/content/series/<locale>/, then the site is built with pnpm build. Configuration is centralized in TypeScript files: site behavior in site.ts, content listing defaults in content.ts, locale metadata in i18n.ts, and theme palettes in theme.ts. The remark-directive syntax enables Markdown tabs that can contain nested code blocks.
Yes, the theme is open source under the GNU General Public License Version 3, so you can use and modify it freely with the same license.
Yes. Locales are defined in src/config/i18n.ts, and content is organized per locale. When you add a locale, you must also update the i18n.locales field in astro.config.mjs and the allowed lang values in src/content.config.ts.
Posts accept title, pubDate, categories, and tags, where categories and tags are string arrays. Projects use only tags, and pages use neither. Series files use title, description, chapters, draft, and lang.
Yes, the repository includes a deployment workflow in .github/workflows/deploy.yml. Before the first run, set your repository Settings > Pages > Build and deployment source to GitHub Actions; otherwise the deploy action can fail with an HTTP 404 error.
Create a Markdown file under src/content/series/<locale>/. Its filename becomes the URL slug, and the frontmatter requires title and a chapters array with at least two post IDs. All chapters must be published and belong to the same locale.
