What is tempblade?
tempblade is currently a shop for online branding. The goal is to create a platform for motion designers and 3D artists where they can sell their designs easily, built with the tools and software they already use. The shop's architecture is also set up so that, for example, a console-style application would be conceivable where streamers can build and personalise their own designs. Most of the current products are intros, but a broad portfolio of stream overlays, animations, outros, banners and much more is planned.
Architecture
API-first design
All core functionality is exposed via a tRPC API so that flexible multi-channel selling is possible.
The API consists of a central "core" server and currently one "worker". This split makes scaling straightforward later, since essentially any number of workers can be added to process a queue in parallel.
Web
Right now the only way to place an order is the web shop. I built it with Next.js, which let me preload data wherever possible and only fall back to client-side code where necessary. The benefit is that API requests can be kept to a minimum and most of the load is handled through a CDN, which makes scaling significantly easier. Overall I've been very happy with the developer experience so far and hope to keep building on this framework.
Render technology
Animation rendering uses Blender, but the render libraries are structured so that other applications — preferably ones with a Python API — can be plugged in at any time. That made it simple to add a Houdini integration, for instance. The libraries are also structured so that integration with a different e-commerce system is conceivable at any point, or use in completely different contexts — automating processes inside an agency, for example.
Template schemas
Individual templates are represented by a schema. The schema can either target a single application or several through what's called a "pipeline". In a pipeline, for example, a text animation can be computed in Houdini, and the output is automatically loaded into Blender and rendered as an image sequence in the prepared scene.

