EasyInvoicePDF v1.0.4 - Faster, flicker-free PDF preview, Redesigned mobile tabs, Next 15, UX improvements
Latest✨ 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 deno longer renders asobrar dein 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
Fatura→atura,Data de emissão→ata 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
localStorageasnull, 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