← all builds

From-Scratch Build · Academic Web

Research Paper Landing Page

The single-page website a research paper deserves — title, authors, abstract, figures, equations and a video, all on one clean, fast page. Rebuilt from scratch to understand how a modern academic project page is authored and shipped.

Markdown / MDXLaTeX mathStatic site Responsive imagesGitHub Pages

What it is

A paper's home on the web

When a research paper comes out, it usually gets a project page: a single, polished web page that summarises the work, shows the key figures, renders the important equations, links to the PDF and code, and often embeds a short video. This build is a reusable template for exactly that page — write the content once in Markdown, and get a fast, accessible site out the other end.

I built it to learn the gap between "a paper" and "a paper people actually click on." The content is the easy part; the interesting work is the toolchain that turns plain prose into a typeset, image-optimised, automatically-deployed page without me hand-writing a line of HTML.

The core idea I wanted to learn: separate content from presentation. The author writes Markdown with a handful of rich components; the build system handles typography, math rendering, image compression and deployment. Change the words, push, and the live page updates itself.

The stack

Tools under the hood

The point of this rebuild was the toolchain. Here is what each piece does in turning Markdown into a finished page.

framework

Static site generator

A modern framework that ships almost no JavaScript by default. It renders the page to plain HTML at build time, so it loads fast and works without a server.

authoring

MDX (Markdown + components)

The page is written in Markdown, but you can drop in rich components mid-prose — a figure, a table, a video — without leaving the document.

math

LaTeX rendering

Equations are written in LaTeX and typeset in the browser, so the math on the page looks exactly like the math in the paper.

media

Image + video components

Reusable blocks for figures, comparison sliders, carousels, embedded video and even 3D objects — the visual vocabulary a paper needs.

performance

Responsive AVIF images

Figures are compressed to a modern format and served at the right size for each screen, and PDF figures are auto-converted to images. The page stays light.

deploy

GitHub Actions → Pages

Every push to the main branch triggers a workflow that builds the static site and publishes it to GitHub Pages. No manual deploy step.

How it works

From Markdown to a live page

The whole point is that authoring stays simple while the build does the heavy lifting. The flow from text to published site is short and repeatable.

  1. Write the content live

    Edit one Markdown file — title, authors, abstract, sections — dropping in components wherever a figure, equation or video belongs.

  2. Compose with components live

    Rich blocks for figures, tables, columns, tabs, carousels and media give the page structure without hand-written HTML.

  3. Typeset the math live

    LaTeX expressions are rendered to crisp equations as part of the build, matching the paper exactly.

  4. Optimise the assets live

    Images are compressed and made responsive, PDF figures become images, and fonts are tuned to avoid layout shift.

  5. Build to static HTML live

    The generator outputs a plain, fast, SEO-friendly site — just files, no running server required.

  6. Auto-deploy on push live

    A GitHub Actions workflow rebuilds and republishes to GitHub Pages every time the main branch changes.

Why it matters

The page is part of the work

A good project page does real work for a paper, and each design choice here serves that:

In my rebuild I focused on the authoring-to-deploy loop: write the content in one file, preview it locally, push, and watch the workflow publish the finished page — proving the separation of content and presentation actually holds end to end.

Reflection

What rebuilding it taught me