Invio banner

Invio

20 devlogs
41h 1m 17s

Updated Project: - WeasyPrint pdf rendering (1.4x faster, more architectures, smaller, less system resources)

  • Full account system with permission matrix
  • 2FA (TOTP)
  • Preset products
  • New frontend, sveltekit (read why {link to blog post})

Updated Project: - WeasyPrint pdf rendering (1.4x faster, more architectures, smaller, less system resources)

  • Full account system with permission matrix
  • 2FA (TOTP)
  • Preset products
  • New frontend, sveltekit (read why {link to blog post})
  • Invoice change history
  • Many more small changes {changelog maybhaps here}
    Selfhosted invoicing without the bloat.
This project uses AI

This project is an update upon my existing project. When I made the first version I used AI for building so part of the codebase is still AI code

Demo Repository

Loading README...

CodingKitten

Shipped this project!

Hours: 41.02
Cookies: 🍪 1294
Multiplier: 26.28 cookies/hr

I built version 2.0.0 of my invoicing software Invio. The goal of Invio is to have all the invoicing features you need but nothing you don’ t for invoicing. There is for example no CRM, inventory management or any of that. The most notable changes are (also in project description):

  • WeasyPrint pdf rendering (1.4x faster, more architectures, smaller, less system resources)
  • Full account system with permission matrix
  • 2FA (TOTP)
  • Preset products
  • New frontend, sveltekit (read why {link to blog post})
  • Invoice change history
  • Many more small changes {changelog maybhaps here}
CodingKitten

Its totally not past 00:00 currently :3

I have revamped how demo mode is handled (this is so I can actually ship my project)

  • Backend now also returns what the reset time is (because why not)
  • Frontend takes the info of this new enpoint to,
    • Display a message on the login screen with the demo credentials (yes this is hardcoded, yes you need to set the username and password to demo if you want to host a demo instance)
    • Display a message on all pages explaining the app is in demo mode, and how often the db resets

Both messages are visible in the attached images.

I am gonna sleep now bye bye

Attachment
Attachment
0
CodingKitten

I think I am ready to ship (just in time)

Updated all of my documentation so its up to date on all the latest changes. Also added a guide on how to deploy the project with a separate frontend + backend container.

I also slimmed down the final docker image, its now 100mb smaller. Also deployed the live demo.

Attachment
0
CodingKitten

Added a status history as requested in a github issue. This was a pretty significant change in how the invoice data is stored. There now is a status history (new structure is also added as image on this devlog). I also fixed a shit ton of linting errors, like an unreasonable amount, but they are fixed now.

Also small side-note I have been really enjoying switching to zed as my code editor over vscode.

Attachment
Attachment
0
CodingKitten

Update documentation to be up-to-date on all the latest changes. Also fixed the .env.example because it still had references to chrome-headless-shell, the old pdf rendering sytem. I now use weasyprint so that was old

Attachment
0
CodingKitten

Fixed two bugs (idk why but when you think you have one bug its always more than one)

  1. Mismatch between what the name of the cookie being set and read was. The login page set session: {jwt token from backend} but the rest of the apps reads invio_session: {jwt token from backend}. Silly me
  2. A very annoying issue that made me look trough my entire stack like a fricking detective. CRSF was blocking login saying it was cross origin but the request was from localhost:8000 -> localhost:8000 the fix in the end was to set an ORIGIN=http://localhost:8000 env var.
Attachment
0
CodingKitten

Wrote some new development instructions and removed unused files cleaning up my codebase

Attachment
0
CodingKitten

Add support for a ton of new themes

Attachment
0
CodingKitten

Switch pdf rendering to WeasyPrint instead of chrome-headless-shell.

This unlocks: smaller bundle size, more cpu architecture support, 1.3X faster. + ARM64 support + More Cooler

Attachment
0
CodingKitten

Did a ton of work on the website, added new page for templates, made website mobile responsive, added bigger feature list, added screenshot.

Worked on Invio aswell

Attachment
0
CodingKitten

Cleaned up the navbar so less used options are placed under a more dropdown

Attachment
0
CodingKitten

Added a new invoice status: completed (was requested in a gh issue), added correct version display, and some more + worked on the site a little more

Attachment
0
CodingKitten

Working on a new website for the project

Attachment
0
CodingKitten

Made a ton of progress on porting the frontend to svelte.

  • Invoice detail page and editor now fully work
  • Product editor now works
  • Customer detail page and editor now work
  • And made 2 custom DaisyUI themes, Invio and Invio-light
Attachment
0
CodingKitten

Started rewriting my entire frontend in Svelte instead of Fresh, I have a long road ahead of me…

Attachment
0
CodingKitten

Worked on and implemented a full account sytem with granular permissions and shit yeah that

Attachment
0
CodingKitten

Started working on full account system

Attachment
0
CodingKitten

Update to newest fresh version fully done. Allow voiding invoices. Refactor pdf generation to use chrome-headless-shell

Attachment
0
CodingKitten

Working on updating the project to 2.2.0 from 1.7.3

Attachment
0
CodingKitten

Merged some PR’s from other people. Fixed some bugs and rethought why I am even making this in the first place

Attachment
0
CodingKitten

Fixed double currency bug

Attachment
0