Skip to content

Releases: rendis/pdf-forge

v0.2.0

14 Feb 03:33

Choose a tag to compare

What's New

Inline Injector Width Resize

Scalar injectors (TEXT, NUMBER, DATE, CURRENCY, BOOLEAN) can now be horizontally resized via a drag handle on the right edge:

  • Width persisted as node attribute and rendered in Typst as #box(width:)
  • Content truncates with ellipsis when narrower than natural width
  • Right-click "Reset Width" to restore auto-sizing
  • Max width capped at natural content width; min width enforced at 40px

Image Text Wrapping

Full support for wrapping text around images (CSS float left/right in the editor, wrap-it Typst package for PDF output):

  • Wrap-left and wrap-right alignment modes with custom SVG icons and grouped selector
  • PDF rendering via wrap-content() with look-ahead converter that groups inline images with following paragraphs
  • Proper vertical alignment by overriding Tailwind Typography prose margins
  • Free aspect-ratio resize for non-circle image shapes; width resize no longer locks in wrap mode

Variables Panel & Modal

  • Expandable variables modal (800px, fixed height) for better visibility of long variable/group names
  • Search now includes group names
  • Modal auto-closes after variable selection

Font Mark Persistence

  • Font family, size, and other marks now persist on empty paragraphs across navigation and focus changes
  • New StoredMarksPersistence TipTap extension saves/restores storedMarks
  • Popover-based FontFamilyPicker and FontSizePicker replace Radix Select to prevent editor focus stealing

Auth & Invitations

  • Shadow users created during member invitation are now activated on first OIDC login
  • Pending workspace memberships transition to active automatically

Bug Fixes

  • editor: prevent preview overflow in injector config dialog
  • editor: prevent page settings from hiding when variables panel is expanded
  • editor: align variables panel header with editor toolbar using CSS grid/subgrid
  • migrations: renumber FK removal migration to 000008 (execution order fix)
  • migrations: remove FK constraint for provider injectable keys (runtime-validated, not schema-level)
  • injectable: treat provider injectables as system-like for storage (avoid FK errors on publish)
  • injectable: assign workspaceID to provider injectables (correct scoping)

Commits (15)

Features

  • 4127941 feat(editor): add horizontal width resizing for inline injector chips
  • 675ad43 feat(render): support text wrapping around images in PDF output
  • 06183b6 feat(editor): add image text wrapping and fix width resize constraint
  • 4a2fc9d fix(editor): persist font marks on empty paragraphs and fix toolbar focus
  • 5956f71 feat(editor): add expandable variables modal with improved search

Fixes

  • 8ff6061 fix(editor): prevent preview overflow in injector config dialog
  • fba773d fix(editor): align wrapped image with text by overriding prose margins
  • 8f1bc32 fix(editor): prevent page settings from hiding when variables panel is expanded
  • 1266e6e fix(auth): activate invited users and pending memberships on first login
  • 0ab3973 fix(editor): align variables panel header with editor toolbar
  • d89c161 fix(editor): close variables modal after selecting variable
  • 7c9630d fix(migrations): renumber FK removal migration to 000008
  • a420d13 fix(migrations): remove FK constraint for provider injectable keys
  • ba8682e fix(injectable): treat provider injectables as system-like for storage
  • b138ef8 fix(injectable): assign workspaceID to provider injectables

Full Changelog: v0.1.1...v0.2.0

v0.1.0 - Initial Development Release

11 Feb 16:15

Choose a tag to compare

🎉 Initial Release

First public release of pdf-forge - a multi-tenant PDF template engine powered by Typst.

Features

  • Visual Editor - TipTap-based rich text editor with live PDF preview
  • 🏗️ Plugin Architecture - Custom injectors for any data source (CRM, DB, API)
  • 📄 Typst Rendering - Fast concurrent PDF generation with image caching
  • 👥 Multi-Tenant - Tenant/workspace isolation with 3-level RBAC
  • 🔐 Multi-OIDC - Support for multiple identity providers
  • ⚛️ React 19 Frontend - Modern SPA with TypeScript
  • 🐹 Go 1.25 Backend - High-performance API with PostgreSQL 16
  • 🐳 Docker Support - Easy deployment with Docker Compose

Tech Stack

  • Backend: Go 1.25, Gin, PostgreSQL 16
  • Frontend: React 19, TypeScript, TanStack Router, Zustand
  • Rendering: Typst
  • UI: Tailwind CSS, Radix UI, TipTap
  • Auth: OIDC/JWKS (Keycloak, Auth0, Okta, etc.)

Getting Started

# Clone the repository
git clone https://github.com/rendis/pdf-forge.git
cd pdf-forge

# Start with Docker Compose
make docker-up

Visit http://localhost:8080 to access the application.

Documentation


Note: This is an early development release. APIs and features may change.