AstroReactPortfolioBlog

astro-micro-academic — Astro Portfolio Template

By jingwu2121

An Astro academic theme for researchers, extending Astro Micro and Nano with publication lists, tags, and math formula support, plus built-in search and comments.

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-09-30View source

What stands out

A quick read of the recorded project description.

01

An academic theme extended from Astro Micro and Nano, aimed at researchers' personal sites

02

Publication lists are maintained as Markdown files, sorted by date, with fields for paper, code, webpage, and data links plus conference/journal

03

Blog supports tags and math formulas, and can set draft status

04

Inherits Pagefind search and Giscus comments

05

Supports Markdown and MDX, with preset system, light, and dark themes

06

Can highlight a specified author in publications via a constant

Template Details

Astro Micro Academic is an academic version of Astro Micro and Nano, positioned as a personal academic site for researchers. It retains the foundational capabilities of both: full type safety, sitemap, RSS feed, and Markdown and MDX support, with TailwindCSS for styling and three preset themes: system, light, and dark.

For academic use cases, the template adds tags and blog math formula support, and carries over Astro Micro's Pagefind search and Giscus comments. Content is divided into two tracks: publications and blog. Publications are added as Markdown files, sorted by date, and each requires a title, description, date, authors, paper/code/webpage/data links, an image, and a conference or journal name; blog posts require a title, description, and date, with optional tags and draft status. The number of blog posts and publications shown on the homepage, site title, description, email, and site URL are configured centrally in src/consts.ts, and RSS includes only articles tagged with rss-feed.

For page structure, the homepage is modified in src/pages/index.astro, while the CV and About pages are maintained in src/pages/cv.astro and src/pages/about.astro respectively, with work and education history entered as array objects; social links are replaced by URL in src/components/SocialIcons.astro. The template also supports highlighting a specified author in publications via the HIGHLIGHTAUTHOR constant.

Limitations: the template itself is a static site theme and does not include a backend or database; search depends on the Pagefind build process, and comments depend on the external Giscus service, so their availability and configuration must be confirmed before use. The licensing of third-party assets such as demo images, fonts, and icons must be checked separately and cannot be determined solely from the code's MIT license.

AstroReactPortfolioBlog

Is it right for your project?

Use Cases

  • Researchers building a personal homepage to showcase publications and blog posts in one place
  • Needing a publication list sorted by date, with paper, code, data, and other links attached to each publication
  • Writing technical blog posts with math formulas and tags
  • Academic personal sites that need on-site search and comment functionality
  • Maintaining an online CV and self-introduction page

Suitable For

  • Researchers with Astro or front-end basics who want to maintain a static academic site themselves
  • Content-oriented personal websites that need both a publication list and a blog
  • Users who accept using external services such as Giscus to host comments
  • Authors who prefer a Markdown/MDX writing workflow

Getting started & customization

Use these recorded setup notes alongside the repository instructions for your chosen version.

  1. 1

    After cloning the repository, enter the directory and run npm i, then start the local service with npm run dev

  2. 2

    Set the site title, description, email, number of blog posts and publications shown on the homepage, and SITEURL in src/consts.ts

  3. 3

    Both publications and blog posts must include metadata as required by the template; RSS includes only articles tagged with rss-feed

  4. 4

    The homepage, CV, About pages, and social links must be modified in their respective files

  5. 5

    Before use, configure Pagefind search and Giscus comments yourself, and check the licenses of third-party assets such as demo images, fonts, and icons

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 the code of that version and does not mean external services or third-party assets are free.

Must comply with when using

  • Free use, modification, commercial use, and distribution of this version's code are permitted.
  • 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

  • RSS feeds include only articles tagged with "rss-feed"; other articles will not appear in the RSS output.
  • On-site search depends on the Pagefind build process, and the comment feature depends on the external Giscus service; these third-party services must be configured before use.
  • When draft: true is set in a blog post's metadata, that content will not be published to the site.
  • Demo images, fonts, icons, and other third-party assets must be checked against their respective licenses and cannot be determined solely from the code's MIT license.
  • External services such as domain, hosting, database, payment, or AI may incur additional charges.
View Original Text Basis

Permission is hereby granted, free of charge

Original License Text

Please tag the post of RSS feed with tag `"rss-feed"`, other posts are not included in the RSS.

Original README

Micro Academics adds features like tags, and blog math support and also inherits [Pagefind](https://pagefind.app/) for search, [Giscus](https://giscus.app/) for comments, from Astro Micro.

Original README

If draft: true, content will not be published.

Original README
https://github.com/jingwu2121/astro-micro-academic/blob/main/LICENSEhttps://github.com/jingwu2121/astro-micro-academic/blob/main/README.md

Compiled by DeepSeek based on repository license and README ·2026-10-01. 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 · 77 / 100
Technologies
Astro · React
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
2024-08-13
Screenshot last checked
2026-10-01

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.

Automatically checked against source and license rules; no manual editorial review.

Inspect the recorded source material

SHA-256: 87f44bcf490615c31aa38a8e8593230277b12c5e8f5b8406f7fb84991368795b

2026-10-01T13:26:38.234Z

Source file / repository
# Astro-Micro-Academics 

[![Badge with Logo](https://img.shields.io/badge/Astro-Page-blue)
](https://astro.build/themes/details/astro-micro-academics)
[![Badge with Logo](https://img.shields.io/badge/Live-Demo-cyan)](https://astro-micro-academic.vercel.app/)

Astro Micro Academic is an academic version of [Astro-Micro](https://github.com/trevortylerlee/astro-micro) and [Nano](https://astro-nano-demo.vercel.app/). 
It is tailored for researchers. 

Micro Academics adds features like tags, and blog math support and also inherits [Pagefind](https://pagefind.app/) for search, [Giscus](https://giscus.app/) for comments, from Astro Micro.

Micro Academics still comes with everything great about Micro and Nano — full type safety, a sitemap, an RSS feed, and Markdown + MDX support. Styled with TailwindCSS and preconfigured with system, light, and dark themes.

![teaser](./assets/teaser-1.png)

## News
✨ I've got a detailed blog about building and deploying your website using this template! Check it out [here](https://jingwu2121.github.io/blog/01-build-deploy-website/) 

## Install Astro-Micro-Academics 

Clone the [repository](https://github.com/jingwu2121/astro-micro-academic).

```sh
git clone https://github.com/jingwu2121/astro-micro-academic.git
```

```sh
cd astro-micro-academic
```

```sh
npm i
```

Run local server
```sh
npm run dev
```

## Update the Homepage

Update your home page in `src/pages/index.astro`.


## CV & About

Update your CV and About page in `src/pages/cv.astro` and `src/pages/about.astro`.

```ts
const works = [
  {company:"Company A", time: "2022-Present", job_title: "Research Scientist", location: "London, UK", description: "Your Notes about the job"},
  {company:"Company A", time: "2022-Present", job_title: "Research Scientist", location: "London, UK", description: "Your Notes about the job"},
]
const educations = [
  {school:"University 1", time: "2022-Present", job_title: "BEng in Electronic Information Engineering", location: "London, UK", description: "Your Notes about the study"},
]
```

## Social Links

Update the social links in `src/components/SocialIcons.astro`, simply replace the `URL`.   

## Publications metadata

Metadata is required for each post. Add a new `publication.md` to automartically add a publication on the website. Publications are sorted by date. 

```astro
---
title: "Diffusion Models Beat GANs on Image Synthesis"
description: "Lorem ipsum dolor sit amet consectetur adipisicing elit. Molestias earum quod quo repellat blanditiis est iste eos dolorem! Voluptatibus corporis totam sed unde est iusto neque iure natus adipisci omnis."
date: "2024-07-26"
authors: "John B*, Jon A*, Frank C, John B, Jon A, Frank C"
paperURL: "Paper: https://astro-sphere-demo.vercel.app"
codeURL: "Code: "
webURL: "Web: https://github.com/markhorn-dev/astro-sphere"
dataURL: "Data: https://github.com/markhorn-dev/astro-sphere"
img: "/rupert-cat.gif"
imgAlt: "Paper Teaser"
pub: "ECCV2024"
---
```

| Field       | Req | Type    | Remarks                                          |
| :---------- | :-- | :------ | :----------------------------------------------- |
| title       | Yes | string  | Title of the content. Used in SEO and RSS.       |
| description | Yes | string  | Description of the content. Used in SEO and RSS. |
| date        | Yes | string  | Must be a valid date string (able to be parsed). |
| authors   | Yes | string  | A string seperated by comma. |
| paperURL, codeURL, webURL, dataURL | Yes | string  | A string seperated by ": ". If you don't have a link to add, leave the link part blank, e.g. `codeURL: "Code: "` |
| img       | Yes | string  | Path to teaser image.    |
| imgAlt | Yes | string  | Description of the image. |
| pub        | Yes | string  | The conference or journal |

## Blog metadata

Metadata is required for each post.

```astro
---
title: "Blog Collection";
description: "How to add posts to the blog.";
date: "2024-03-21";
tags: ['guide', 'tutorial']
draft: false;
---
```

| Field       | Req | Type    | Remarks                                          |
| :---------- | :-- | :------ | :----------------------------------------------- |
| title       | Yes | string  | Title of the content. Used in SEO and RSS.       |
| description | Yes | string  | Description of the content. Used in SEO and RSS. |
| date        | Yes | string  | Must be a valid date string (able to be parsed). |
| tags        | Yes | list  | A list of strings |
| draft       | No  | boolean | If draft: true, content will not be published.   |

## Customize the website metadata and set up RSS 

To change the website metadata, edit `src/consts.ts`.

```ts
// src/consts.ts

export const SITE: Site = {
  TITLE: "Astro Micro Academics",
  DESCRIPTION: "Astro Micro Academics is for academic user.",
  EMAIL: "[email protected]",
  NUM_POSTS_ON_HOMEPAGE: 2,
  NUM_PUBLICATIONS_ON_HOMEPAGE: 3,
  SITEURL: 'https://astro-micro-academic.vercel.app' // Update here to link the RSS icon to your website RSS
};
```

| Field        | Req | Description                                          |
| :----------- | :-- | :--------------------------------------------------- |
| TITLE        | Yes | Displayed in header and footer. Used in SEO and RSS. |
| DESCRIPTION  | Yes | Used in SEO and RSS.                                 |
| EMAIL        | Yes | Displayed in contact section.                        |
| NUM_POSTS    | Yes | Limit number of posts on home page.                  |
| NUM_PUBLICATIONS | Yes | Limit number of research on home page.               |
| SITEURL | Yes | Your website URL              |

### RSS Post

Please tag the post of RSS feed with tag `"rss-feed"`, other posts are not included in the RSS. 

---

## Custom metadata for highlighted author in your paper

```ts
// src/consts.ts

export const HIGHLIGHTAUTHOR = "John B"
```

## Customize metadata for individual pages

```ts
// src/consts.ts

export const HOME: Metadata = {
  TITLE: "Home",
  DESCRIPTION: "Astro Micro is an accessible theme for Astro.",
};

export const BLOG: Metadata = {
  TITLE: "Blog",
  DESCRIPTION: "A collection of articles on topics I am passionate about.",
};

export const RESEARCH: Metadata = {
  TITLE: "Publications",
  DESCRIPTION:
    "A collection of my publications with links to paper, repositories and live demos.",
};

export const CV: Metadata = {
  TITLE: "CV",
  DESCRIPTION:
    "your cv",
};

export const TAGS: Metadata = {
  TITLE: "TAGS",
  DESCRIPTION:
    "blog tag filter",
};

export const ABOUT: Metadata = {
  TITLE: "ABOUT",
  DESCRIPTION:
    "A self-intro",
};
```

| Field       | Req | Description                                    |
| :---------- | :-- | :--------------------------------------------- |
| TITLE       | Yes | Displayed in browser tab. Used in SEO and RSS. |
| DESCRIPTION | Yes | Used in SEO and RSS.                           |
Report a correction

Explore similar templates

Compare previews and descriptions within the same stack and category.