Static site for the Fiete Lab at MIT, hosted on GitHub Pages at fietelab.github.io.
Editing the site? → see
INSTRUCTIONS.md. Side-by-side: what you see on the page, and which file to change.
- Astro 5 (static site, content collections)
- Tailwind CSS 4
- GitHub Actions deploys on push to
main - Optional weekly OpenAlex sync that opens a PR with new paper candidates
src/
├── pages/ route per .astro file
├── content/ ALL editable content lives here
│ ├── site/ home + contact page copy (markdown + YAML)
│ ├── people/ PI / postdocs / students / affiliates (one .md per person + headshot)
│ ├── alumni/, undergrads/ YAML lists
│ ├── collaborators/ external researchers we link in paper bylines
│ ├── publications/ YAML, full BibTeX-style keys
│ ├── projects/ code releases
│ ├── news/ homepage announcements
│ └── group-photos/ lab photo carousel (currently 1, on /people)
├── components/ reusable Astro components
├── layouts/Layout.astro page shell (header, footer)
├── lib/data.ts helpers (author abbreviation, link map, OpenAlex dedupe)
└── consts.ts site name, nav items, affiliation logos
scripts/
├── sync_publications.py OpenAlex paper sync (fetch new papers from Ila's profile)
├── check_published.py scan preprints for journal/conference acceptances
├── expand_author_names.py replace abbreviated co-author tokens with full names
├── requirements.txt Python deps (requests, PyYAML)
└── sync-state.yaml persistent state for sync_publications.py
npm install
npm run dev # http://localhost:4321
npm run build # produces dist/Push to main. The workflow at .github/workflows/deploy.yml
builds and deploys to Pages automatically. First time, in repo
Settings → Pages, set Source to "GitHub Actions".
INSTRUCTIONS.md— visual page-by-page edit map.CONTENT.md— task-by-task editing guide (add a person, paper, code release).notes/PROJECT_NOTES.md— design decisions log and feature inventory.notes/slides.md— Marp deck for presenting the site.