skip to content
Marder He Wrote

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.