DC Tech Events
How DC Tech Events works
The main DC Tech Events site is generated by a custom static generator, in three phases:
- Loop through the groups directory and download a local copy of every calendar. Groups must have an iCal or RSS feed. For RSS feeds, each item is further scanned for an embedded JSON-LD Event description. I’ll extend that to support other metadata formats, like microformats (and RSS feeds that directly include event data) as I encounter them.
- Combine that data with any future single events into a single structured file (YAML).
- Generate the website, which is built from a Flask application with Frozen-Flask. This includes two semi-secret URL’s that are used for the newsletter: a simplified version of the calendar, in HTML and plaintext.
Once a day, and anytime a change is merged into the main branch, those three steps are run by Github Actions, and the resulting site is pushed to Github Pages.
The RSS + JSON-LD thing might seem arbitrary, but it exists for a mission critical reason: emojis! For meetup.com groups, the iCal feed garbles emojis. It took me some time to realize that my code wasn’t the problem. While digging into it, I discovered that meetup.com event pages include JSON-LD, which preserves emojis. I should probably update the iCal parser to also augment feeds with JSON-LD, but the current system works fine right now.

Anyone who wants to submit a new group or event could submit a Pull Request on the github repo, but most will probably use add.dctech.events. When an event or group is submitted that way, a pull request is created for them (example). The “add” site is an AWS Chalice app.
The newsletter system is also built with Chalice. When someone confirms their email address, it gets saved to a contact list in Amazon’s Simple Email Service(SES). A scheduled task runs every Monday morning that fetches the “secret” URL’s and sends every subscriber their copy of the newsletter. SES also handles generating a unique “unsubscribe” link for each subscriber.
(but, why would anyone unsubscribe?)
OK– I feel pretty good about the state of DC Tech Events. The newsletter system seems to work, users can submit new iCal feeds in addition to single events, and it looks… well… not fancy, but presentable (like me?).
In June, I want to operate the site, instead of build it.

DC Tech Events is Live
Because you, as a person who reads blogs, are dear to me– you get to be among the first to know that the new DC Tech Events site is live.
I’m still tweaking, but I’m pleased with how it works right now– it’s a static site deployed on Github Pages. There’s a form for submitting events, but behind the scenes that just opens a pull request.
Next up: getting the newsletter piece up and running.
10 years ago, I shut down the most popular thing I’d ever made (on my own). I’m now back in a place life/career-wise where I’m once again going to events, and, well, damnit, there’s nothing out there doing what DC Tech Events did back in the day.
So, it’s coming back. Pardon me while I relearn CSS.
