Iterating on our configuration system. This allows things like categories, suggestions, and menu items for header and footer to be modified without having to actually modify code. We had most of this stuff integrated before, but it wasn't well documented. We have changed somewhat how we handled all of these, however with that we've also included more detailed documentation.
We have fully moved away from Mantine UI and are now using Shadcn/Radix UI and tailwindcss. Shadcn is built on top of Radix UI which essentially provides base primitive components to work with that are fully accessible out of the box. Seeing as we value accessiblity it seemed like the best route to take so we can focus on speed of development while maintaining all theming capabilities. With this introduction, all styling is done through tailwindcss. Tailwind is extremely popular in the developer community and we hope that this transition will make it easier for people who want to use or help maintain the application.
We've gotten rid of the separate API layer that was built on Expressjs. We don't see a need to have a separate API application as Nextjs has API endpoints that we can leverage. We believe that by utilizing proper caching mechanisms and taking advantage of Nextjs features that we can still provide a premium experience.
We got rid of NX. This was a monorepo tool that we had introduced to help manage the dependencies between our client and server applications. It proved to be more complex and annoying for both us and people using the codebase. Seeing as we moved to a only having a single application, we don't think NX is needed and we've removed it completely. This has made development and deployment much easier.
We've created a Docker image for the application and we are also utilizing runtime variables for both server and client within the application so that you can pass in different environment variables to your Docker runtime commands without the need to rebuild the Docker image.
We used to have some multi-tenant code within the application, and this was really not needed for 99% of use cases and most of it was really specific to us. This also made it a frustrating experience for others to utilize our codebase, so we've updated our processes and the codebase is now free of any and all multi-tenant code.
Our documentation has gotten a facelift and covers a lot more of the application. It is still a work in progress and we will continue to work on it even after we merge branches, but it should be much easier to get started with now.
Full Changelog: v1.0.2...v2.0.0