Astro + MDX content workflow, with a table of contents for blog posts and a reading-oriented layout
astro-scholar — Astro Portfolio Template
By shravanngoswamii
An Astro portfolio template for researchers, teachers, students, and academic teams, including blog, projects, publications, team, and author pages, with an MDX content workflow and static deployment support.
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.
Publication list generated from a BibTeX file, with projects and author profiles maintained in JSON data
Built-in team page and author data model, suitable for showcasing multi-person academic teams
Integrated Pagefind search index, RSS feed, and sitemap generation, plus OG image generation
Ships with a GitHub Pages deployment workflow and a PR preview deployment workflow
Optional Umami analytics, disabled by default with no tracking ID committed, requiring environment variable configuration
Template Details
astro-scholar is an Astro-based academic portfolio template aimed at researchers, professors, students, and academic teams. It splits the content types common in academic settings into separate modules: the blog for thoughts, notes, and essays; project pages for showcasing research work; a publication list generated from BibTeX; plus a team page and an author profile data model. Content is organized with an Astro + MDX workflow, blog posts include a table of contents, and the reading layout is text-oriented.
The template includes RSS feed and sitemap generation, a search index via Pagefind, and OG image generation. The repository ships with a GitHub Pages deployment workflow: the main branch publishes automatically, and pull requests generate preview sites; the base path is configured in astro.config.mjs and defaults to /astro-scholar.
Customization entry points are concentrated in a few files: src/consts.ts manages the site title and global constants; src/data/authors.json, projects.json, and publications.bib correspond to author, project, and publication data respectively; blog content lives in Markdown files under src/content/blog/; and themes and typography are in src/styles/global.css. Layouts and components can be modified in src/layouts/BlogPost.astro, src/components/Header.astro, and Footer.astro.
Analytics is optional: Umami is built in but disabled by default, no tracking ID is committed in the repository, and you need to set the PUBLIC_UMAMI_WEBSITE_ID environment variable to enable it; for self-hosting, PUBLIC_UMAMI_SRC can override the script URL.
Regarding usage limits, the free scope of the template is this code under the MIT license; third-party assets such as demo images, fonts, and icons must be checked separately under their own licenses; external services such as domains and hosting may incur separate charges. The Lighthouse perfect-score screenshot mentioned in the README is repository-provided material and is not a performance guarantee for this template.
Is it right for your project?
Use Cases
- Researchers or professors building a personal academic homepage to centrally showcase papers, projects, and essays
- Labs or academic teams maintaining member introductions, team outputs, and a shared blog
- Students organizing course projects, research notes, and personal writing
- Academic sites that need static output and hosting on GitHub Pages
Suitable For
- Researchers, professors, and university teachers
- Students and graduate students
- Academic teams with multiple authors or members
- Users who prefer writing in Markdown/MDX and publishing content as a static site
Getting started & customization
Use these recorded setup notes alongside the repository instructions for your chosen version.
- 1
After cloning the repository, run npm install and npm run dev; locally the default URL is http://localhost:4321/astro-scholar
- 2
Prioritize editing src/consts.ts, src/data/authors.json, src/data/projects.json, src/data/publications.bib, and Markdown files under src/content/blog/
- 3
The site base path is configured in astro.config.mjs and defaults to /astro-scholar; the PR preview path is /astro-scholar/pr-previews/<PR_NUMBER>
- 4
To enable Umami analytics, set PUBLIC_UMAMI_WEBSITE_ID; for self-hosting, PUBLIC_UMAMI_SRC can override the script URL; if not set, it remains disabled
- 5
When deploying to GitHub Pages, the main branch uses website-deploy.yml and pull requests use preview.yml
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 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
- Analytics is disabled by default; enabling it requires providing your own Umami website ID (PUBLIC_UMAMI_WEBSITE_ID), and for self-hosting PUBLIC_UMAMI_SRC can override the script URL; if not set, it remains disabled and no payment is involved.
- Deployment targets GitHub Pages using its workflows; external services such as domains and hosting may incur separate charges that you bear yourself.
- Demo images, fonts, icons, and other third-party assets must be checked under 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
Umami](https://umami.is) analytics is built in and disabled by default — no tracking ID is committed. To enable it, set the `PUBLIC_UMAMI_WEBSITE_ID` environment variable to your own Umami website ID
Original README
https://github.com/shravanngoswamii/astro-scholar/blob/main/LICENSEhttps://github.com/shravanngoswamii/astro-scholar/blob/main/README.mdThis repo is ready for GitHub Pages.
Original README
Compiled by DeepSeek based on repository license and README ·2026-10-03. 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 · 92 / 100
- Technologies
- Astro
- Website type
- Portfolio · Blog
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-06-10
- Screenshot last checked
- 2026-10-03
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-04
Inspect the recorded source material
SHA-256: 12af0297c411277afed395deed319c632a778ab3065abb7547135019f6618987
2026-10-03T20:22:38.091Z
Source file / repository<h1 align="center">Astro Scholar</h1> <p align="center"> A clean, modern Astro portfolio template for researchers, professors, students, and academic teams. </p> ## Lighthouse <p align="center"> <img src=".github/lighthouse-score.png" alt="Lighthouse score showing 100 across all categories" width="900" /> </p> ## Why This Template Most portfolio templates look generic. This one is built for academic storytelling: - Blog posts for ideas, notes, and essays - Project pages for research work - Publications section from BibTeX - Team and author profiles - Search and generated OG images Built with Astro for speed, static output, and straightforward deployment. ## What You Get - Astro + MDX content workflow - Blog with table of contents and reading-friendly layout - Projects and publications pages - Team page and author data model - RSS feed and sitemap generation - Search indexing via Pagefind - GitHub Pages deployment workflow - PR preview deployment workflow ## Quick Start 1. Clone the repository. 2. Install dependencies. 3. Run the dev server. ```bash npm install npm run dev ``` Then open http://localhost:4321/astro-scholar ## Commands | Command | Description | |---|---| | `npm run dev` | Start local dev server | | `npm run build` | Build production site | | `npm run preview` | Preview production build | | `npm run astro -- <command>` | Run Astro CLI commands | ## Customization Guide Update these files first: - `src/consts.ts`: site title and global constants - `src/data/authors.json`: author profiles - `src/data/projects.json`: project entries - `src/data/publications.bib`: publication list - `src/content/blog/*.md`: blog posts - `src/styles/global.css`: theme and typography Layout and components: - `src/layouts/BlogPost.astro`: post layout - `src/components/Header.astro`: top navigation - `src/components/Footer.astro`: footer ## Analytics (optional) [Umami](https://umami.is) analytics is built in and disabled by default — no tracking ID is committed. To enable it, set the `PUBLIC_UMAMI_WEBSITE_ID` environment variable to your own Umami website ID: - Locally: add `PUBLIC_UMAMI_WEBSITE_ID=your-id` to a `.env` file. - On GitHub Pages: add it as an Actions secret/variable (it's passed to the build in `website-deploy.yml`). Self-hosting Umami? Override the script URL with `PUBLIC_UMAMI_SRC`. Leave the ID unset to keep analytics off. ## Deployment This repo is ready for GitHub Pages. - `main` branch deploys via `.github/workflows/website-deploy.yml` - Pull requests deploy preview sites via `.github/workflows/preview.yml` Base path is configured in `astro.config.mjs`: - default: `/astro-scholar` - PR preview: `/astro-scholar/pr-previews/<PR_NUMBER>` ## Project Structure ```text src/ components/ Reusable UI components content/blog/ Markdown blog content data/ Authors, projects, publications layouts/ Page layouts pages/ Route files styles/ Global styles utils/ Utility helpers public/ fonts/ Webfonts and static assets ``` ## Community - Contributing guide: [.github/CONTRIBUTING.md](.github/CONTRIBUTING.md) - Code of conduct: [.github/CODE_OF_CONDUCT.md](.github/CODE_OF_CONDUCT.md) - Security policy: [.github/SECURITY.md](.github/SECURITY.md) - Pull request template: [.github/pull_request_template.md](.github/pull_request_template.md) ## Feedback & Suggestions If you have any suggestions/feedback, you can contact me via [my email]([email protected]). Alternatively, feel free to open an issue if you find bugs or want to request new features. ## License Licensed under the MIT [LICENSE](LICENSE), Copyright © 2026
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

astro-paper
AstroPaper is a minimal, responsive, accessible, and SEO-friendly Astro blog theme. Articles are stored as Markdown/MDX in src/content/posts/, with subdirectories affecting URLs.
Astro · Blog

fuwari
Fuwari is a static blog template built with Astro and Tailwind CSS for personal blogs. It manages posts as Markdown files in src/content/posts/, with frontmatter for title, date, description, cover, tags, categories, draft status, and language.
Astro · Blog

Firefly
Firefly is a clean personal blog theme forked from Astro and Fuwari, offering four background modes, single/double sidebar and list/grid layouts, Pagefind client-side full-text search, and a six-language UI.
Astro · Blog

astro-theme-cactus
Astro Cactus is an Astro-based blog and portfolio theme that uses Markdown/MDX content collections to manage posts, notes, and tags, with frontmatter type-checked by a schema.
Astro · Portfolio

astrofy
Astrofy is a free and open-source personal portfolio website template built with Astro and TailwindCSS, with built-in blog, CV timeline, project showcase, store, and RSS feed modules.
Astro · Portfolio
