Announcing Crispy Print for Frappe — 0.1.0-alpha.2 Release
Hi everyone,
I’m sharing an update on Crispy Print, a Typst-based print/report formatting app for Frappe.
It is currently at 0.1.0-alpha.2.
What is Crispy Print?
Crispy Print adds a modern print pipeline to Frappe using Typst for high-quality PDF output, with a Vue-based visual builder and preview workflow for both DocType formats and Query Report formats. Regardless of platform, the output is always a crisp PDF with embedded SVGs and consistent formatting.
Current Stage
This is still an alpha release.
-
Report formats are currently fragile in some cases.
-
Report template parity is still evolving and being refined from real usage.
-
Expect iterative changes as feedback comes in.
-
Still thinking through the best UX for the builder and preview flows. Simplified logic is the goal, but we also want to support the flexibility that Typst enables.
If you test it and hit issues, please share details/screenshots/sample report names. That feedback is directly driving improvements.
Key Features (alpha-2)
-
Supports crisp SVG embedding for Letteread and logos
-
Visual builder for custom print formats
-
Typst-powered PDF rendering
-
Dedicated preview flow for reports and print formats
-
Raw Typst editing for advanced users
-
Query Report support with parity-focused templates
-
Filters / summary / chart / totals toggles in report preview
-
Typst code preview and save-back workflow
-
Letterhead and page settings integration
-
Improved API typing and stricter frontend type checks
-
Expanded test coverage and test script consistency
Requirements
-
Frappe/ERPNext bench (Frappe v15)
-
Python 3.11
-
Node.js 25 (for asset build/dev)
-
Typst CLI (required)
Install Typst
macOS
brew install typst
Linux
Use the official installation instructions for your OS/architecture: Typst Installation
Install Crispy Print
From bench root:
# Recommended (stable for this release)*
bench get-app https://github.com/agatho-daemon/crispy_print --branch v0.1.0-alpha.2
bench --site <your-site> install-app crispy_print
bench --site <your-site> migrate
bench build --app crispy_print
bench restart
If you explicitly want the latest work-in-progress changes (not stable), use:
bench get-app https://github.com/agatho-daemon/crispy_print --branch develop
Optional check:
bench --site <your-site> execute crispy_print.get_typst_local_fonts
Important Note
The repository* README is not fully up to date yet for the current alpha-2 behavior and latest refinements.
We are updating docs incrementally as the feature set stabilizes.*
Screenshots
UX reflects that of Frappe Print Builder with tweaks.
Four Columns page from left to right:
- Form’s fields
- Basic mode builder
- Preview
- Typst/Page settings
Typst code support
Print Preview Page with Settings (WIP)
Typst Code Modal (“View code button”)
Looking for Feedback On
-
Report parity issues (HTML/Jinja vs Typst output differences)
-
Large-report behavior and formatting edge cases
-
Builder UX rough edges
-
Missing report-specific formatting behaviors



