AstroPortfolioBlog

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.

3 previews
Desktop homepage1 / 3
Desktop captureTop of page

Actual screenshot captured by the server browser.

All pages & views 3

Screenshots show visual appearance; interactive behavior may differ.

Recorded 2026-10-02View source

What stands out

A quick read of the recorded project description.

01

Astro + MDX content workflow, with a table of contents for blog posts and a reading-oriented layout

02

Publication list generated from a BibTeX file, with projects and author profiles maintained in JSON data

03

Built-in team page and author data model, suitable for showcasing multi-person academic teams

04

Integrated Pagefind search index, RSS feed, and sitemap generation, plus OG image generation

05

Ships with a GitHub Pages deployment workflow and a PR preview deployment workflow

06

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.

AstroPortfolioBlog

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. 1

    After cloning the repository, run npm install and npm run dev; locally the default URL is http://localhost:4321/astro-scholar

  2. 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. 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. 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. 5

    When deploying to GitHub Pages, the main branch uses website-deploy.yml and pull requests use preview.yml

Read repository instructions

License & source material

Usage conditions & limitations

Free to use · keep license notice

This 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

This repo is ready for GitHub Pages.

Original README
https://github.com/shravanngoswamii/astro-scholar/blob/main/LICENSEhttps://github.com/shravanngoswamii/astro-scholar/blob/main/README.md

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
Report a correction

Explore similar templates

Compare previews and descriptions within the same stack and category.