A node-based image workspace for character-consistent generation. Lock a character's identity once, then branch into scenes and styles on one canvas, instead of re-prompting a chat and watching the face drift.
Ask an image model to change a jacket and the face, framing and scene change too. Text prompts cannot hold identity. The first commit that day was titled as a character consistency system, and it was built around one idea: separate what you keep from what you change.
versionv04 Apr 2026
Projects, assets and jobs
A Zustand store and a REST API for projects on day one, then image assets and generation jobs with revisions and streaming, so a result is a version you can return to rather than a one-off.
versionStripe6 Apr 2026
Credits and billing
A credit ledger and Stripe billing went in on day three, because every generation costs real money. Background removal, upscaling, restoring and inpainting were routed to fal.ai.
breakthroughnodes6 Apr 2026
The canvas
The workspace became a node graph: connection rules, a context menu and deletable edges, then a home screen with live canvas previews and a shared-projects tab.
breakthroughcharacters7 Apr 2026
Characters as documents
Characters got their own canvases alongside project canvases, with a fingerprint covering geometry, proportions, line style, shading, palette and expression. A prompt builder turns it into an identity lock, a style lock and an explicit list of things not to drift.
versionlaunch pages7 Apr 2026
The marketing site and accounts
Features, pricing and contact pages, then sign-in recovery and email verification a day later. The marketing app moved into a private submodule.
versionmodels12 Apr 2026
Models for every medium
Image, video and audio model nodes joined the canvas, so one workflow can go from a locked character to a still, a clip or a 3D asset.
nowunit economics13 Apr 2026
Pricing in earnest
A credit pricing analysis weighed what each model costs against what a credit sells for, and generation billing followed. Plans run from a free tier to a team plan with a shared credit pool.
Illustrators, brand teams and game studios need the same character in many scenes and styles. Chat-based image tools redraw the whole picture on every edit, so identity drifts. Glyph treats a character as a thing you build once and then reuse, with the parts you keep kept apart from the parts you change.
facts.txt
Problem
Character identity drifts between generations
Audience
Creators, brand teams and visual studios
Model
Free tier plus paid credit plans
Surfaces
Web canvas, character builder, API in progress
Role
Founder and full-stack
Timeline
April 2026
04process
How I approached it
01
Separate keep from change
The fingerprint holds what must not move. The prompt holds what should. A generation is built from both, with the locks written out explicitly.
02
A graph you can read
Every step is a node with typed connections, so you can see how an output was made and rerun any branch with a different scene or style.
03
Keep heavy edits out of the web app
Background removal, masks, inpainting and upscaling run in a separate Python worker and through fal.ai, so the Next.js app stays responsive.
04
Meter everything
Each model has a credit cost set against its real provider cost, charged through an idempotent ledger so a retry never bills twice.
05
Run it as a business from day one
Billing, roles, sharing and a private admin console were built in the same fortnight as the canvas.
05shots
A look at Glyph
the workflow graph
the problem
pinned as nodes
free sign-up
06how it is different
How it is different
General image tools are chat boxes: you describe a change and the model redraws everything. Other character tools save a reference image, but a reference is not a description of what must stay fixed.
A structured fingerprint, not just a reference photo, so identity is something the system can check.
A canvas of reusable nodes instead of a linear chat, so a locked character feeds many scenes.
Many models under one roof, from image to video and 3D, billed through a single credit balance.
Free to start with the full model catalogue, with paid plans that raise credits and billing controls.
07stack
What it runs on
Next.js 16 + React 19The app and the marketing pages
React FlowThe node canvas
ZustandCanvas and project state
Drizzle + PostgreSQLUsers, projects, characters, credits and billing, with a migration per feature
Better AuthEmail and Google sign-in, verification, roles and two-factor for admins
StripeSubscriptions, top-ups and organisation billing
fal.aiImage, video and 3D models, plus edit operations
Python image workerBackground removal, masks and heavier edits
RedisJob queues
Cloudflare R2Image storage, with separate dev and production buckets
Sentry + ResendError tracking and email
08challenges
What got in the way
the problem
A model does not know which parts of a character are sacred.
so →
fix.md
Identity is turned into a structured fingerprint, and the prompt builder emits an identity lock, a style lock, colour and expression constraints, and an explicit drift-prevention list.
the problem
Every generation costs money, so a double charge is a real bug.
so →
fix.md
Credits run through a ledger with idempotency keys, and each model's credit price was set against its provider cost with a target margin.
the problem
Image edits such as background removal are too heavy to run inside a web request.
so →
fix.md
They moved to a Python worker with CPU-friendly dependencies, deployable as its own service.
the problem
Test uploads could pollute production media.
so →
fix.md
Development and production use separate storage buckets, so deleting dev assets is safe.
the problem
An admin console on the public app is a liability.
so →
fix.md
The admin lives in a private app on its own deployment, sharing the database and auth shape, with role checks and TOTP.
09results
What came out of it
127commitsin ten days
23models on the pricing pageimage, video and 3D
18node typeson the canvas
4plansfree, starter, professional, team
Glyph is live with a free tier and paid plans. These numbers describe what was built. There are no usage figures on this page.
10lessons
What I learned
Describe identity as data. A fingerprint the system can reason about beats a reference image and a hopeful prompt.
Do the money first. Credits and idempotent billing were easier to build before the features that spend them.
Keep the public app clean. Moving admin into a private deployment removed a whole class of risk.
A graph makes AI work legible. You can see, and rerun, how any output came to be.
11notes
Glyph: build a character once, generate every version after
A node-based image workspace with identity locks, credit billing and models for images, video and 3D.
Try Glyph
Every account starts free with the full model catalogue and 150 monthly credits.
Glyph landing page: the same reference and prompt pinned as reusable nodes
13up next
up next →
KOVR
2025–2026
closed source
Marketplace · Mobile · NestJS
A city-based shift marketplace for multi-location employers and flexible workers: post public or private jobs, build a vetted roster, auto-schedule by reliability and distance, track live shifts and approve timesheets, with a worker mobile app and AI assistants that answer from live data.
say-hi.txt
Want something like Glyph?
Tell me what you're making and I'll tell you how I'd build it.