# Anti-features to stay clear of
> "I didn't learn how to make a lightbulb. I learned 999 ways how *not* to make a lightbulb."
> -- Thomas Edison (attr.)
Because Mo++ is inherently the new motion graphics tool, we want it to avoid the issues that plague existing motion graphics tools. These are not a personal attack on other tools; it's simply our guiding philosophy on what we need to avoid.
* Stay FOSS and free of charge or at least Pay-What-You-Want-But-You-Can-Pay-Zero-Dollars (like Gumroad)
* Don't pad the UI with too much whitespace...
* ...but don't make it badly cramped either!
* The app should not use 50% CPU or RAM while idling or performing a simple operation
* The app should also not devour your disk storage space
* Not too many dependencies
* Not too many settings to overload the user (especially not too many unneccessary ones), and if we have an overload of settings we should put the settings in a separate `preferences.yml` file
* No spaghetti code, even if it's slightly more convenient that way!
* Real autosave, not the ridiculously wonky autosave Premiere/After Effects uses! Think twice about autosave, don't ignore its importance!
* We want stability and speed, not a huge feature set
* That means testing, testing, testing! As much testing as possible so our end-users don't suffer the consequences of an unforseen bug or crash
* Because the no. 1 principle is: things should ***just work***!
* Graceful degradation - even if there is a crash the app should still be able to recover, and in situations with
* No cryptic messages to the user!
* A well-thought default/empty state! Don't just show a billion interface widgets and expect the user to "know" what to do!
* Authentic design - we want to build our app with our personal experience and struggles with current motion graphics programs in mind, not just to match what is "cool" or to match the most popular mograph tool
* No platform discrimmination
* Everything should work equally well on Macs, Windows PCs, and Linux computers
* On lower performance computers, the tool should adjust correspondingly to work
* Performant UI - we want to minimize app freezes, UI crashes, and just weird UI behavior
* Everything should be done non-destructively