Skip to content

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.