Weekly Report 7: Going Live
February 8, 2026
In the last report, we mentioned we'd be setting up CI/CD. That turned into a multi-week effort to get Pictoria online.
Getting Pictoria Online
Here's a summary of what we had to do to get Pictoria out-the-door:
CI/CD and Infrastructure
We set up our CI/CD pipelines, along with production infrastructure across several cloud providers.
Code Cleanup
We also did some final code cleanup for production. This included:
- Identifier minification: We built a custom TypeScript transformer that minifies property and method names with semantic awareness, at compile time
- Error message minification: We added ErrorFactories that replace verbose error messages with short codes, also with a mapping file for decoding
- HTML, CSS, and SVG minification: Cleaned up and tightened the build output
Misc Hardening
We improved production resilience in a few ways: the unrecoverable error dialog now displays the actual error message, debug logging is preserved in production builds, and we added a production-local build mode so we can test production builds against a local backend.
E2E Tests
We got our end-to-end test suite passing against the production build.
Monitoring
We cleaned up our Grafana Cloud metrics, properly tagging them by environment so we can monitor Pictoria in production.
Bug Fixes
After getting Pictoria online, we spent time fixing bugs that surfaced:
- Unsupported browser dialogs: Fixed the unsupported screen/browser dialogs not appearing correctly
- Private structures in collision detection: Fixed private structures being included in collision detection
- Lower level problems: Concurrency issues, mode activation, color transitions, subchunk (spatial index) unloading
What's Next
This week our goal is to clean up and open source our command line tool that converts MagicaVoxel .vox files into Pictoria properties.
After that, we'll be adding a maze made out of library bookshelves. If time permits, we'll also add iframe-based interaction.