CharacterBase

CharacterBase

All character information across universes are displayed in a tabular format for ease of accessing key information.

CharacterBase was a data-focused character organization tool I developed in 2018. Back then, I was meticulous about keeping track of every detail regarding my story characters, and wanted it presented in a clear and structured format. Sure I could write a Wiki page somewhere, but aspects like race and magic abilities deserved a space of their own. All in all, no platform had the vision I had in mind for visualizing series of characters, so I created my own.

Technologies used

Frontend
HTML, CSS, TypeScript, Angular 7
Backend
Google Cloud Firebase, Go

More info

In CharacterBase, you could create Universes which stored your Characters alongside other friends or collaborators. Each universe had a Character Guide, which owners could customize to specify how characters should be made and displayed:

Additionally, users could hide character information from others with field-level granularity. Data could be selectively obscured (with junk data), or omitted from API fetch calls entirely, depending on how they wanted to present their character to other users.

I, for one, found it entertaining teasing my friends about the story villain’s secret agenda during testing.

Challenges

When initially creating CharacterBase, I chose Google Cloud Firebase for its backend. It held fairly well, but left something to be desired when implementing more advanced features like character list pagination and field filtering.

As I was teaching myself Go at the time, I thought it would be a fun idea to rewrite the backend in it. I liked Go because you could create almost anything with it using only the standard library. It was a long summer remaking the backend, but my work paid off in the end, giving me the control I needed over the site’s data and services.

CharacterBase isn’t hosted live anymore, but you can view the source files here at your pleasure:

Frontend: https://github.com/characterbase/characterbase
Backend: https://github.com/characterbase/characterbase_server


© 2024 Xavier Brown. All rights reserved.