Skip to content

EasyInvoicePDF v1.0.4 - Faster, flicker-free PDF preview, Redesigned mobile tabs, Next 15, UX improvements

Latest

Choose a tag to compare

@VladSez VladSez released this 04 Sep 22:57
· 3 commits to main since this release
a0dca25

✨ Highlights

  • Faster, flicker-free preview - the invoice PDF is generated once and shared by the desktop preview, the mobile viewer and the download button, instead of being rendered separately by each of them
  • Redesigned mobile tabs - a pill-shaped track with a single indicator that slides between the invoice form and the preview
  • Dates in the form now match the PDF - helper texts and the out-of-date banner render dates in the invoice's own language and date format, so what you see in the form is what the PDF will say
  • Fixed PDFs missing the first characters of labels - Cobrar de no longer renders as obrar de in rare cases

No PDF flickering or unnecessary re-renders

desktop.mov

Better mobile tabs

mobile.mov

Changed

  • The out-of-date dates banner now also detects a stale month in the invoice number, not just the dates
  • Upgraded to Next.js 15, React 19 and Sentry 10
  • Switched linting and formatting to oxlint and oxfmt, and expanded unit and end-to-end test coverage across the invoice form, PDF templates and storage handling

Fixed

  • PDFs intermittently dropped the first one or two characters of labels (for example Faturaatura, Data de emissãoata de emissão) after switching the template and the language in quick succession. It affected the preview and the downloaded file alike, and hit Portuguese and Spanish hardest
  • Text typed just before switching mobile tabs was silently lost; both panels now stay mounted once opened
  • The app crashed in iOS in-app webviews, which expose localStorage as null, and in Safari with "Block all cookies" enabled. All storage access is now guarded, and invoices still work in-session when storage is unavailable
  • The preview rendered the PDF twice when switching between the default and Stripe templates

What's Changed

  • chore: improved upload logo e2e test, minor label fix, bump version to 1.0.3, added changelog.md and blog post with 1.0.3 announcement by @VladSez in #202
  • refactor: remove button helpers from general information section by @VladSez in #204
  • refactor: update README and clean up demo assets by @VladSez in #205
  • fix: mobile burger menu, lazy load videos on marketing page, minor css fixes by @VladSez in #207
  • feat: update design for Github Star CTA btn, update changelog design by @VladSez in #208
  • fix: update invoice PDF templates cond rendering by @VladSez in #209
  • fix: changelog updates, add founder recognition + minor style fixes by @VladSez in #210
  • feat: add tos and founder pages, add how it works yt video by @VladSez in #212
  • feat: implement loading skeletons for various pages by @VladSez in #213
  • fix: update Terms of Service text for clarity and consistency by @VladSez in #214
  • feat: style updates and minor fixes by @VladSez in #215
  • feat: improve layout on tos and founder pages, rebuilt mobile menu by @VladSez in #219
  • feat: improved SEO, JSON-LD etc, add SEO AI skills, improve mobile menu layout, etc by @VladSez in #220
  • feat: seo improvements and minor fixes by @VladSez in #221
  • feat: Multiple SEO landing pages and sticky bottom CTA for landing flows and minor improvements by @VladSez in #222
  • chore: update SEO shell, update project name and enhance README with GitHub link by @VladSez in #223
  • feat: implement new header component with GitHub stars display and refactor existing header structure by @VladSez in #224
  • refactor: update navigation links and translations from Product to Home across multiple components and language files by @VladSez in #225
  • feat: add monthly recurring invoice workflow and enhance SEO landing definitions by @VladSez in #226
  • chore: updates to tg-webhook workflow and remove cache configuration from Node.js setup in GitHub workflows by @VladSez in #227
  • feat: improvements to tg webhook by @VladSez in #228
  • feat: add zizmor (static security analysis for gha), socket fireflow and improved security of gha workflows by @VladSez in #229
  • feat(style): polish and improvements by @VladSez in #230
  • refactor: update invoice page header and improve component styles by @VladSez in #232
  • feat: minor updates and fixes by @VladSez in #234
  • Vldszn/2026-05-27_02-03-regular-guan by @VladSez in #235
  • feat: update footer links and translations for invoice generator by @VladSez in #236
  • feat: enhance InvoiceClientPage and Footer components by @VladSez in #237
  • feat: fix accordion component + some minor improvements by @VladSez in #238
  • feat: update About page content and translations by @VladSez in #239
  • feat: add service period fields to the ui by @VladSez in #241
  • feat: welcome popup and improved how it works page by @VladSez in #242
  • Update package.json scripts, improve README author link, and upgrade GitHub Actions versions by @VladSez in #243
  • Refactor SEO implementation and enhance JSON-LD structure by @VladSez in #244
  • feat: enhance invoice form calculations, add more test coverage and other improvements by @VladSez in #245
  • feat: jsonld, metadata improvements by @VladSez in #246
  • refactor: update SEO metadata and breadcrumb labels for consistency by @VladSez in #247
  • chore: run monthly recurring invoice workflow at Warsaw midday by @VladSez in #248
  • feat: SEO and footer improvements by @VladSez in #250
  • feat: enhance changelog update popup functionality by @VladSez in #251
  • Convert monthly recurring invoice CI job to a Trigger.dev scheduled task by @VladSez in #249
  • feat: add md pages, improve videos json-ld, fix star count formatting by @VladSez in #252
  • refactor: update about page tests and improve invoice form components for clarity and consistency by @VladSez in #253
  • feat: implement loading skeleton for Invoice Page by @VladSez in #255
  • fix: stripe custom invoice number label, improvements to buttons, etc by @VladSez in #256
  • feat: add features carousel and refactor about page components by @VladSez in #257
  • feat: upgrade to Next.js 15, React 19, Sentry 10, oxc, oxfmt + perf optimizations by @VladSez in #258
  • refactor: streamline service period handling in invoice form tests and components by @VladSez in #259

Full Changelog: v1.0.3...v1.0.4