Industry
Content Tools
Social graphics are often rebuilt from the previous campaign. That works until a font changes, copy grows, or individual slides no longer align across a carousel.
I built a cross-platform editor where structured content, brand configuration, templates, validation, rendering, and export have separate responsibilities.
A cross-platform desktop pipeline that turns structured content and brand rules into deterministic carousels, posts, and highlight graphics.
Industry
Content Tools
Services
Key Deliverables
Platform Type
Desktop Tool
Tech Stack
A reusable graphics tool must preserve a brand system without forcing every campaign into the same composition. It also needs to handle Serbian and German glyphs, variable-length copy, safe zones, image contrast, and portable font assets.
Preview and export cannot use separate rendering paths. Otherwise the approved design and final PNGs eventually diverge.
Markdown and configuration feed a deterministic planner. Jinja2 composes an HTML/CSS canvas, FastAPI serves the local UI, and PyWebView packages it as a desktop workflow.
The carousel is rendered as one wide continuous canvas. Playwright captures it at high resolution, then Pillow downsamples and slices it into exact slide dimensions so backgrounds and decorations can cross slide boundaries cleanly.
The editor supports carousels, feed posts, and highlight covers with project-level overrides. Live preview and final export both use the same canvas.html renderer.
QA checks inspect text fit, safe zones, font portability, and glyph coverage for Serbian and German characters. FontTools supports font inspection, while PyYAML keeps brand and project configuration readable. Image generation is intentionally outside the renderer: the tool creates a prompt pack and accepts approved assets through an inbox workflow.
keeping visual continuity across independently delivered carousel slides
fitting variable copy without silently breaking hierarchy or safe zones
producing consistent output across desktop environments and fonts
separating creative asset generation from deterministic brand rendering
The result is a repeatable production pipeline that shortens routine design work while making layout, typography, and export quality measurable. Creative direction stays editable; rendering and QA stay deterministic.
The long-canvas model is the key decision: one composition is reviewed once, then exported into multiple precise deliverables.
Other projects with related architecture decisions, platforms, or product challenges.
A local desktop editor for drafting, reviewing, and exporting deterministic 1080 by 1920 story sequences from structured content.
Python · FastAPI · Playwright · PyWebView · Pillow
View case study →A Bun and Hono tool that discovers pages through sitemap traversal, captures 1920-pixel full-page screenshots, and streams live progress to a lightweight TypeScript interface.
TypeScript · Bun · Hono · Puppeteer · Server-Sent Events
View case study →