Building this site: data + dark mode 🌑

This is part of a series: building this site.

Previously, I outlined the technology I'm using for this site as well as some ideas for how it might evolve in the short-term.

Since then, I've made some upgrades.




The biggest change since the last post with the most impact is the addition of a database.

I chose Firebase (opens in a new tab) for the ease of use from the extensive list of platform/language SDKs and for having a useful free tier.

With a database, I've been able to automate many of my accountability trackers while also capturing historical data for them, for use in trend analysis, charts and other potential visualizations.

My automations for getting data into Firebase include an iOS app that pushes some of my fitness data, and a GitHub Action that pushes my daily GitHub commits and the number of new Chinese words learned on hackchinese.

Finally, that data is fetched from Firebase at most once every 15 mins as a result of NextJS's server-side caching so I definitely won't get anywhere close to the bandwidth limits of the free tier.

If you want to read more about the tech, goals, and plans around my accountability trackers in particular, see my always-updated methodology page.

Nextra v2

This change mostly affected my experience developing on this site. For context, Nextra v2 enabled MDX 2 instead of MDX 1, which is a major change (opens in a new tab).

The main end-user improvement from Nextra v2 is around the simplicity of integrating dark mode. It was fairly straightforward to enable after I finished migrating to MDX 2 and Nextra v2.

Overall, I still want to customize the blog theme at a lower-level, eg adding front-matter fields for posts that I'm working on, or blog post templates so that I don't have to copy/paste certain components repeatedly.

But I'm content with the direction of Nextra thus far.


I've recently launched a newsletter on Substack.

So with that, I added a newsletter signup embed across this site that uses this nifty API (opens in a new tab) instead of Substack's default embed widget because Substack's is bloated (loads a bunch of extra scripts) and doesn't support enough customization.

Coming up

Overall, I don't have too many upcoming major changes planned.

But I am still expecting to extend the accountability trackers. Historical data charts, additional trackers, and more.

And secondly, I'd still like to fork and extend the base blog theme from Nextra to do a few things:

That's all for now. I'm sure I'll come up with some more fun features to work on in the next edition.

Thanks for reading!



How I'm building this website

Oct 12 2022

Looking for more posts?

Monthly Newsletter

Coming soon - be the first to receive my new monthly newsletter.

Looking for a full-stack iOS/visionOS/Next.js developer for your project? Email me at
© Gabriel Uribe.RSS