Changelog

What's new in Straktur. Updated when we ship.

Coming next:Production-safer deploys, cleaner data exports, smarter inline edits
v0.5.0

Locale-aware money, filter bar, and scroll restoration

Polish your app's polish. Numbers now respect the user's locale — commas in Polish, dots in English — across every input and table. The filter bar gets a Linear-style refresh that keeps things tidy, and your scroll position survives the back button.

  • Locale-aware money & numeric input

    A single golden path for numeric input and display across the app. Polish users can finally type "693,52" and have it just work — the backend stores canonical numbers, the frontend shows the right separator.

  • DataTable filter bar with active-only chips

    Only active filters show as chips. Inactive ones tuck behind a single "+ Filter" picker. Pin key filters with one config flag if you want them always visible.

  • Scroll restoration on back navigation

    Scroll a long list, open a detail page, hit back — you land exactly where you were instead of jumping to the top. Works across the dashboard layout and inside DataTables.

  • Viewer role wired into every example page

    Read-only viewer role now flows through navigation, detail pages, and list actions. Demos correctly hide what viewers shouldn't see, so downstream features inherit the pattern automatically.

v0.4.0

PDF viewer, date range filter, role-based navigation

Three big additions: a reusable PDF preview component, a date range filter for tables with built-in presets, and role-based navigation that hides what users shouldn't see — including in the command palette.

  • Reusable PDF viewer component

    Drop a PDF preview dialog anywhere you need to show a document — continuous scroll, zoom, page indicator, download button, all built in.

  • DataTable date range filter

    Quick presets like "last 7 days" and "this month" plus a custom calendar picker. Filter state lives in the URL so ranges survive reloads and shareable links.

  • Role-based navigation

    Mark any nav item with a minimum role and it disappears for lower-tier users. The command palette respects the same rules — previously it could surface pages users couldn't actually open.

  • Email attachments end-to-end

    Send emails with file attachments through both Resend and SMTP providers. Storage adapters gained matching primitives for fetching and uploading files programmatically.

  • Polish translations for the Users module

    Every hardcoded English string in the Users UI replaced with i18n keys. Brings Users in line with the rest of the app after the full i18n rollout last month.

Rich text inline editing and a documentation push

Inline rich-text editing lands on detail pages, comments arrive on contact records, and the docs site gets a major expansion — seven new recipe pages with full code examples and annotated screenshots.

  • Inline rich text editing

    WYSIWYG inline editing for any rich-text field, powered by Tiptap. Currently used on client notes and contact sheets.

  • Comments on contact detail pages

    The polymorphic comments system now plugs into contacts. Drop it onto any entity with two props.

  • Seven new recipe pages

    Documentation expansion with full code examples and annotated screenshots: add-relation, add-filter, add-bulk-action, add-dictionary, add-translations, file-upload, customize-navigation.

  • Sub-pages for client list

    Lead and Active sub-pages filter clients by status without separate routes. Navigation config gained children support and colored dots for visual categorization.

Internationalization, comments, and an Airtable migration path

A big month. Full multi-language support shipped, a polymorphic comments system landed, the DataTable got Airtable-style sticky columns and async filters, and we built an AI-powered Airtable migration pipeline so you can move your data in minutes instead of weeks.

  • Full internationalization

    Complete multi-language support with English and Polish out of the box. Locale lives in the user's profile, not in the URL. Translated emails, navigation, DataTable columns, even dictionary values — and ICU plurals work end-to-end.

  • DataTable, refined

    Sticky headers and columns, async server-side filters for large datasets, embedded tables inside detail page tabs. Behaves like Airtable, looks like your app.

  • Airtable migration pipeline

    Two AI commands — one analyzes your Airtable base, the other generates the migration scripts. You don't need to know the Airtable API or Drizzle ORM.

  • Comments and rich text

    Polymorphic comments that attach to any entity, with a Tiptap-powered rich text editor. Indicator badges in tables show comment counts at a glance.

  • User profiles and avatars

    Avatar upload with preview and persistence, editable first and last name, a dedicated profile page, plus a reusable UserCell component for any table.