Astro + reveal.js = Convert Markdown into Stunning Slides
/ 1 min read
I’ll lead with the punchline: check out these slides. I think they’re pretty sweet. They’re made with reveal.js.
My blog is built using Astro. Here’s the Markdown that Astro converted into the slides above:
---
title: "Locovote"
description: "Vote with your (data-driven) feet"
author: "Andrew Marder"
publishDate: "2025-12-21"
theme: "black"
---
# Objectives
- Describe Locovote
- Introduce cool tools
- Observable Framework
- Cloudflare Pages
- marimo
- Inspire collaboration
# Locovote
- [locovote.com](https://locovote.com/)
- Dashboard to compare cities and towns
- Which towns have the best schools? (MCAS scores)
- Which towns have the lowest property tax rates?
# Features
- [Compare Municipalities](https://locovote.com/municipalities)
- [Compare School Districts](https://locovote.com/school-districts)
Note: Municipalities ≠ School Districts
- [Race and Test Scores](https://locovote.com/school-metrics)
- [Data Sources Documented](https://locovote.com/)
- [Cambridge Schools Analysis](https://locovote.com/analysis/cambridge-public-schools)
# Architecture
- Source code: [github.com/amarder/locovote](https://github.com/amarder/locovote)
- Python scripts download and clean data
- [Observable Framework](https://observablehq.com/framework/) creates dashboard
- [Cloudflare Pages](https://pages.cloudflare.com/) deploys website
- Unlimited bandwidth
- 25 MiB maximum file size (DuckDB-Wasm blocker)
# Observable Framework
- Static site generator for data apps
- Write Markdown - literate programming
- Great D3 support: [Sankey diagram](https://locovote.com/data/municipalities)
- Built on React
# Bonus Tool
- [marimo](https://marimo.io/): Jupyter Notebooks, improved!
# Thanks!
I vibe coded the conversion code - happy to share if you’re interested.