A lean core + plugin-based architecture

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, drag and drop support to create events. Everything else is a plugin like event, settings, popups, cli etc

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 at a super fast pace, for example things like the CLI commands can be written using JSON.

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 want. Including the theme (which is also a plugin).