Files
twenty/packages/twenty-apps/examples/document-generator
martmull 23cae2040a Improve application asset management (#22564)
App manifests could point the logo and screenshots at either external
URLs or public folder paths, and that was handled inconsistently across
install, sync and the marketplace.

This makes assets always bundled files:

- Manifests now use `logo` and `galleryImages` (a `string[]` of public
folder paths) instead of `logoUrl` and `screenshots`. The old fields
still work but are deprecated. Gallery order comes from the array index.
Normalization (deprecated-field migration, and warning about + ignoring
external URLs) happens in `defineApplication`, so the warnings surface
at define time.
- Logo is stored as a File record (`logoFileId`).
- The registration gallery is configured via a `settings` jsonb column
on `applicationRegistration` (`{ galleryImages: string[] }`) — populated
from the manifest, read by the marketplace detail (falling back to the
legacy `screenshots` column, then the manifest). No dedicated gallery
table.
- The marketplace detail DTO and front now use `galleryImages`.

Verified against a local Postgres: the fast instance commands run with
no pending-migration diff, the schema is correct, and the server boots.
Typecheck, lint, codegen and the application unit tests pass.

Not included yet: rehosting assets into storage for npm catalog and
tarball registrations, versioned cache busting on the serving route, and
a backfill for existing installs.

<a
href="https://cubic.dev/pr/twentyhq/twenty/pull/22564?utm_source=github"
rel="nofollow noreferrer noopener" target="_blank">``&lt;img alt="Review
in cubic"
src="https://www.cubic.dev/buttons/review-in-cubic-dark.svg"&gt;``</a>
2026-07-10 09:18:52 +00:00
..

Document Generator

Turn your CRM data into finished documents — in one click.

What you get

  • Reusable templates — write once with {{placeholders}} like {{name.firstName}} or {{company.name}}
  • Generate anywhere — from the command menu on a record, a workflow step, or AI chat
  • Polished PDFs — every document is saved to the record with a downloadable PDF
  • Shareable links — open any document as a standalone, printable web page
  • Native rich-text editor — author templates in the same editor as Notes and Tasks

📌 Heads up

  • Free to run — generation uses no external API, so there's no per-document charge.
  • A hands-on reference — this is the app built in the Document Generator tutorial, a tour through most of the Twenty SDK.