All work

Higher Education / Research · 2026

A research lab website the lab can maintain itself

The public website for Carnegie Mellon's Computational Engineering & Robotics Lab, built on a typed markdown content model with a written guide, so lab members can keep research, publications and people current without a developer.

The Computational Engineering & Robotics Lab (CERLAB) at Carnegie Mellon works across engineering simulation, medical technology and robotics. It has a long publication record and a large alumni network, and that kind of content goes stale fast when only one person knows how to update the site. We designed and built the new site at cerlab.cmu.edu around one goal: anyone in the lab should be able to add a project, a paper or a new member by editing a markdown file.

The CERLAB home pageThe CERLAB home page

A content model that fails loudly

The site is built on Astro content collections. Research projects, publications, members and courses each live in their own collection as markdown files with a typed frontmatter schema, so a missing field fails the build instead of quietly rendering a broken card. Project images sit in a folder named after each project, which keeps media next to the content it belongs to. Alumni, who rarely change, live in a single structured file grouped by role rather than a page each.

Research areas on the CERLAB home pageResearch areas on the CERLAB home page

Research and publications people can actually search

The research page groups the lab's projects by domain, with a search box and tag filters so visitors can find work by topic, team or keyword. The publications page does the same for the lab's papers, with filters for year, type and topic. Each publication has a citation dialog that formats the entry in APA, MLA, Chicago or BibTeX in the browser, ready to copy.

Searching and filtering research projectsSearching and filtering research projects

Getting the content in

Most of the work was the content itself. The lab's papers existed as PDFs, not as structured data, so we wrote Python tooling to pull titles, authors and venues out of the PDFs and into publication files, plus a check that flags blank or near-empty thumbnails so they can be replaced. Member pages are generated from a spreadsheet by a script rather than typed in by hand.

Handoff is part of the build

A website a lab can't update isn't finished. We wrote a step-by-step content guide covering where each file goes, which fields are required, how to name images and how to fix the common build errors. It ships alongside the site in several formats, so a new student can pick it up without reading the code.

Stack

  • Astro with content collections and a generated sitemap
  • Tailwind CSS and DaisyUI, themed in Carnegie Mellon red
  • Python scripts for PDF metadata extraction and image checks
  • Deployed on Vercel

The result is a site that stays accurate because keeping it accurate is easy: the structure does the checking, and the guide does the teaching.

Let's build

Build something like this

Tell us about the problem you're solving and we'll show you what's possible.