shipping/JOG — 03:41 GMT+7/48.3 °C CPU/v 07.0 · build 2026.05.12
lat −7.7956 · lon 110.3695/ntwk · online/open for projects
/ project no. 04interface3d
wip · ~48k lines · 2026
Shipshot

Shipshot.

— short description

a mockup composer for indie developers: drop in a real screenshot and get a publish-ready asset — at the right size, with depth, shaders, and animation — in seconds. three editor modes (flat 2d, 3d compose, and one-click ai scene polish), video export, and payments. a ~48k-line solo build, still in progress.

creative tool — work in progress · solo build
3· editor modes — flat 2d, 3d, ai polish~48k· lines of typescript, e2e-tested19· glsl shaders in the effects system
rolesolo · design, engineering, infra
stacknext.js 16 · konva · pixijs · react-three-fiber · ffmpeg.wasm
2026~6 weeks of focused build · wip
tested62 playwright e2e specs + a11y checks
statuswork in progress · not yet launched
01

context.

indie developers spend real time turning raw screenshots into store assets, launch images, and social cards — at a dozen exact sizes, over and over. shipshot's bet is that this should take seconds, look intentional, and never distort the actual ui.

the core distinction is that the screenshot is never touched. the ai polishes the scene around it — the surface, the light, the backdrop — but the developer's real interface is composited back in untouched. that constraint shaped the whole rendering pipeline.

02

three renderers, one editor.

flat mode is a konva scene graph with a pixijs effects layer running 19 hand-written glsl shaders. 3d mode is react-three-fiber — real camera, device models, hdr environments, depth-of-field and bloom. a theatre.js timeline drives keyframe animation across both, and ffmpeg.wasm exports the result to h.264, webm, or gif entirely in the browser.

the ai polish mode extracts the 3d screen bounds, masks the real screenshot out, inpaints the surrounding scene, and composites the untouched ui back on top — with idempotency keys and daily spend caps so the cost stays bounded. it's behind a feature flag, dark-launched until it's ready.

3editor modes sharing one state model — flat konva, 3d r3f, and ai scene polish.
in-browservideo export via ffmpeg.wasm — h.264 / webm / gif, no server render farm.
untouchedthe real screenshot is never altered — ai only polishes the scene around it.
— approach

konva + pixi + three, together.

the interesting engineering is holding three rendering technologies in one coherent editor: a konva scene graph for layout, a pixijs filter stack for gpu effects and custom shaders, and react-three-fiber for true 3d compose — all driven by one zustand state model with an undo/redo command pattern, and all e2e-tested. dynamic imports keep the heavy renderers out of the initial bundle.

Shipshot
fig. 02
"the ai polishes the scene. it never touches the screenshot."
— the one rule the pipeline is built around
— outcome

what works today.

the editor loads, accepts a pasted or uploaded screenshot, and composes it on device frames in 2d or 3d. shaders, keyframe animation, and video + image export all work. auth, tier-gating, cloud save, a template marketplace, an admin console, and lemon-squeezy billing are in. ai polish is implemented and feature-flagged. honestly: it's a near-complete editor that hasn't shipped to users yet.

a production-quality demonstration that attention can be settled in public at the unit of the second. still my favorite project of 2024.
— on the record
— team

built solo.

devrangga hazza mahiswaradesign · engineering · infra2026solo · wip
— screenshots

how it's built.

a large, test-driven codebase. notes on the three-renderer architecture.

editor
the editor.screenshot in → composed, lit, exported.
shaders
shaders.
/ 19 glsl effects on a pixijs layer.
3d mode
3d mode.
/ r3f compose · hdr · depth-of-field.
export
export.
/ ffmpeg.wasm · video in the browser.
— responsive

a desktop tool, exported everywhere.

composition is a desktop activity, but the output is mobile-first by definition — store screenshots and social cards at exact platform sizes are the whole point.

export presets
device frames
platform-exact sizes, one click.
3d device
FlazhAI
/ back to the top — the deck in 30 secondsnext.js · gemini

FlazhAI.

paste a youtube url, get a spaced-repetition deck in under 30 seconds.

open first case ↗