g_ (for games)

Updated Nov 18, 2022

g_

My virtual video game bookshelf. The goal of g_ is to be a central database for my game collection, while being more visually appealing than a spreadsheet. I originally made it after an update to Playfire removed many of its customization options. I’ve since tried several managed services that focus on similar things, but none of them have really hit the sweet spot for me.

g_ is a very old project that’s been through a number of iterations.

  1. Started out as a single PHP page backed by a MySQL database
  2. Rewrote it as an AngularJS page with a REST API (still PHP)
  3. Rewrote the API in ASP.NET Core
  4. Rewrote the frontend in Vue
  5. Replaced the backend entirely with a static CSV file and redesigned the frontend (still Vue)
  6. Replaced the CSV file with Google Sheets proxied through a serverless function

The weird project name comes from the table prefix used in the original database (back then, I had only a single database available for all my projects), and it stuck. I tend to rewrite g_ every few years to learn new technology. While the first few iterations were all about adding features, the last few have been about taking them away. The current version is closed source for the time being, but that’s mostly because I’ve been lazy about keeping secrets out of the repo.