Cardly
Design a card in your browser that prints exactly the way it looks.
Live demo launching soon at studio.blaketrix.com

The problem
Most online card makers export a screenshot of the editor. It looks fine on screen, then comes back from the print shop blurry, cropped or the wrong size.
What we built
Cardly never screenshots anything. Every design is stored as data in real millimetres and rendered fresh on the server at true physical size, so a 300 DPI export really is 300 DPI.
Screens
A look inside



Features
What it does
- 01
Edit on the card
Type straight onto the card, and drag, rotate, lock or hide any element.
- 02
Smart templates
Templates fill in your name, company, title and contact details from your profile, so a card never shows raw placeholders.
- 03
Snapping & guides
Elements snap to edges, the centre and each other within 0.9 mm, with hints like “Aligned with Logo”.
- 04
Both sides + 3D
Design the front and back, then flip through a 3D preview before you print.
- 05
Undo that makes sense
60 steps of history, where a whole drag counts as one step instead of a hundred mouse movements.
- 06
Autosave
Saves 1.2 seconds after you stop, retries if the network drops, and warns before you leave with unsaved work.
- 07
Print-ready export
PNG at 150, 300 or 600 DPI, and PDF at the card’s exact point size.
- 08
Text, images, logos, QR & shapes
Five element types, each with its own style controls.
Under the hood
The engineering decisions that matter
- Laravel 13
- Vue 3
- Pinia
- SVG rendering
- PHPUnit
- 14
- starter templates
- 600
- DPI max export
- 48
- automated tests
- Designs are versioned JSON in millimetres. A migration layer in both PHP and JS upgrades older designs as the editor evolves.
- Design JSON from the browser is treated as untrusted: a sanitiser drops unknown keys and bad values before anything is saved.
- Uploads are checked by extension and MIME type, QR URLs are limited to http and https, and every row is protected by an ownership policy.
- 48 PHPUnit tests with 134 assertions, plus browser journey and editor coverage scripts.

