Create Decent App 2.0 Released

After a month of work, I've released Create Decent App 2.0.
This is a tool that generates project source for a local-LLM-based web app. It can also be used to create apps intended for deployment on the Decent Portal.
(quick-start guide for Create Decent App)
Change Log
What has changed?
- Functionality related to the Decent Portal has been refactored into a separate
decent-portal
library so that a developer can easily update or remove it. - The DecentBar React component shows at top of screens and offers more functionality for navigation and displaying contributors.
- Decent portal deploy scripts are handled in a nicer way. You need not think about them unless you really want them. And new versions will update through package management.
- The Jest test runner has been replaced with Vitest for better speed and less dependencies.
- The generated web app runs under a single route, allowing for removal of the
wouter
library, and refreshing on the load screen working without 404s. - Removed Ollama support. (WebLLM should suffice for most developers, and you can always add it in if you want it.)
- Transitive dependency count reduced from 440 to 331, and updated to latest versions to keep on top of security.
About the Decent Bar
It's really designed for apps that will be deployed on the Decent Portal. But you can use it for apps deployed to other websites as well.
Features:
- The home button image is taken from the favicon of the app. By default it will use the Decent "D" logo. The button navigates to the domain root of wherever the app is hosted, and this destination can be overriden with a different URL.
- Displays name of your app in a playful font.
- Displays any links you provide. This is where you can handle meta-actions like showing an "About" dialog or sending the user to your Github issues page with a "Support" link.
- Contributor names are shown in the bar. Proudly put your name here.
- Updates via package management.
(developer documentation for using the DecentBar React component)
Below you can see some variations of the Decent Bar as rendered by my test app.

Reasons Behind the Changes
In general, this release was about making it easier for decent app developers to maintain their CDA apps without lots of manual merging around the Decent-Portal-related updates that will come in the future.

From 1.1 to 2.0, there will be manual merging, and I plan to directly help devs get through this. From 2.x on, the updates should mostly be handled with npm install decent-portal@latest
.
If you're interested, I wrote another blog post describing reasons for some of the other changes, e.g. removing Wouter, moving to to Vitest.