Journal / 2020-10-18

On Building TodayPGH

Bri (my sister) and Tesin (my wife) came to me with a project they were working through in late 2019, an organization centered around empowering aspiring teachers and shifting perspectives on the field of education. I was happy to throw together a splash page, and the idea would continue to evolve (and is still evolving!).

Somewhere along the line, the idea to interview current educators came about – using their stories as a source of inspiration. And thus began TodayPGH, a project that has now shared over 40 stories of Pittsburgh educators to inspire future generations, lift up the profession, and build bridges of empathy.

I had a lot of fun building the site which is powered by Hugo, a fast static site generator, and hosted via GitHub Pages behind Cloudflare for free. The project is open source, and our evolved project management process is summarized below.

Story collection was very much manual at first. A monolithic Google Doc eventually emerged with in-person interview notes, but the format was inconsistent, and the state of each story was unclear. The document was admittedly daunting to sift through, and this approach would clearly not scale.

The site launched with a primary call-to-action that links to a Google Form. In addition to capturing the interview question responses, the form captures some structured data including display name, school district, and social media handles. On completion of the form, educators are encouraged to upload a photo that would represent their story via a separate Google Form (that requires authentication due to the file upload).

We introduced some lightweight process management with Trello where each story is represented as a card with standardized metadata and a link to the story copied into a Google Doc for collaborative editing. The Trello card and Google Doc are automatically created from the Google Form submission via Zapier.

We recently configured Forestry to facilitate content management. The product integrates seamlessly with Hugo and enables us to leverage the continuous integration workflows initially setup when I was manually editing Markdown files.

In addition to standard JavaScript and Sass linting, a custom GitHub Action wraps a simple pattern-based linter to enforce Hugo front matter conventions in content Markdown files. Content updates in Forestry push to a dedicated forestry branch in practice, which in turn opens a pull request and assigns me as a reviewer via a GitHub Action. Images included in pull requests are automatically compressed and resized via another GitHub Action that invokes TinyPNG’s API. Pushes to the master branch trigger a deployment via Shohei Ueda’s wonderful GitHub Pages action.

We leverage Hootsuite to schedule social media postings across Twitter, Facebook, and Instagram. And I have been playing around with an alternative Schema.org-inspired structured content format to generate post content – perhaps more on that at a later date.

To date, TodayPGH has seen over 13,000 page views across 8,000 unique visitors. It has been a wonderful source of inspiration for me, and a lot of fun to maintain.

Are you a current or aspiring Pittsburgh educator? Share your story today!