28 Dec 2017
2017 year end review
For example, every page loads text from JSON files, making a cleaner separation between code and content. And rather than manually repeating HTML elements, I programmatically construct the relevant page sections.
Nearly every page includes interactive features and mini games. Several connect to a Firebase database, reading and writing values.
- Firebase Hosting and realtime NoSQL database
- Hand drawn vectors and CSS animation on every page
- Code organized (mostly) in accordance with the 7-1 pattern
- Victory.js chart library
What I Learned
- Deploying to Firebase Hosting is easy. So is connecting to their NoSQL database.
- Deploying to AWS is sometimes… challenging for beginners. I was unable to justify tackling its complexity for this project when I knew of friendlier options.
- Version control is useful for organization and archiving, even with a single developer. It enforces good discipline and made it easy to work on multiple machines.
- Playback of CSS animations is still not well optimized. Infinite animation loops will burn your CPU to the ground.
- High fidelity design is hard when you’re utilizing modern features and supporting a wide range of mobile, desktop, and high DPI devices + browsers. The work is not_hard_but it is tedious. My propriety was developing for Chrome on desktop at medium DPI while being mindful of the need to accommodate everything else. That worked pretty well, except for when it didn’t.