There is plenty to love about Rails, but there is one thing that might be overlooked when comparing frameworks purely on features. Rails is extracted from production. The main directions, approaches, and subframeworks are created in production Rails apps and brought back and integrated to the framework. And not just things like Active Storage, the whole framework started this way back in the day. My idea is to follow this in Business Class.
Real vs artificitial
Business Class started as a fresh project with features I might need, namely the Paddle integration. Starting fresh is good but it's also a lot of guesswork. We anticipate what might be. And sure enough, I worked on many projects over the years, so I wasn't short on ideas. But it's also a bit artificial. If something isn't used much, it's hard to judge.
An example of something that's in Business Class because I find it irreplaceable is the dev sign-in. It's a quick way to sign in as a particular user when developing the application. And I was always surprise people don't build something like that. They either log it slow every single time or use browsers to help them remember. But I don't like either option and so dev sign-in is a feature that I'll likely never remove.
On the other hand I built the tenant flows in a way that users can be part of many teams. This is actually pretty great in terms of the database design but most of the time there will be users having a single tenant. So the flow and menu should be probably reflecting that. Although an easy change to tailor, it's something that could be better out of the box.
What does it mean
What it means is that Business Class should be composed way more of battle tested ideas than novel ideas that sounds great (but I never used them). Only after nailing the design in a production app we should bring it in.
More specifically, I am now working more with LLMs and building a design system for LakyAI which is built on BC 2.0. I want to find some great flows and improvements I can port over for the next big version of the template.
And no, that doesn't mean a particular approach is automatically better or general for everyone. It just means it's good enough as a default.