For Atomcal the architecture of the code is plugin-based and every feature that you use is a plugin that can be plugged or unplugged at any time and is self-dependent in a way that the feature can work in its own world.
This gives the developers the ability to rapidly prototype and ship new features without worrying about breaking anything else.
Every plugin (for example drag to create events is a plugin) is plugged in the lean core and core is the canvas that shows all the event cards. This core has build-in features like infinite scrolling and the event card support UI and the CLI modal.
Even then a lot of the functionalities of these build-in core components depend on the plugins which mean all of these components are extendable via the plugins. For example, every CLI command or every keyboard shortcut is a plugin or a group of plugins.
Having almost everything naturally extendable in the code base gives us the chance to only work on features that are 100% required, but also work super fast, and things like the CLI commands can also be written by the user too. For example, if you want a CLI command for your calendar you can just write an AtomcalCliPlugin() and upload it to the plugins via the settings to do just that.
For ease of use, a group of plugins (besides the core) comes built-in when you install Atomcal, however, the calendar is built to be extensible however you may want it to be. Including the theme (which is also a plugin).
So now the question is what do we charge for? And we charge for things that are server-dependent. For example, if you want to connect your google calendar then you will have to rely on the server which costs $$ and we charge you for that.
If you want to have the collaborative notes support or if you want to have bookings support, then you will have to subscribe to the service. Please note that by subscribing to the service, you will be supporting the developers directly.