Introduction
⚡️ flecks will help you build a flexible and powerful application in no time.
💸 Save time and money and don't duplicate effort. Instead, lean on infrastructure that already exists to solve your problems.
🧐 flecks is an exceptionally-extensible fullstack application production system. Its true purpose is to make application development a more joyful endeavor. Intelligent defaults combined with a highly dynamic structure motivate consistency while allowing you to easily express your own architectural opinions.
Features
flecks is built with supreme attention to the developer and end-user experience.
- 🧩 Small but pluggable
- The simplest application is two flecks,
core
andserver
(7 MB production server size): you don't pay for what you don't buy - Endlessly configurable through built-in hooks and then your own
- The simplest application is two flecks,
- 🛠️ Ready to build maintainable and performant production applications
- Documentation generation for your project with no fuss
- Write tests, run on server/in browser/...
- React / redux
- Realtime sockets with lots of goodies like binary packing and packet dispatching
- Databases using Sequelize to connect and Docker to easily persist
- Electron
- Docker
- REPL
- babel + Webpack 5
- 👷 Developers, developers, developers
- Easy to create a fleck; no need to publish packages or use voodoo
- HMR (even on the server)
- Configured to get instantly up and running with a consistent path toward production
Our shared goal—to help you quickly develop your application. We share our best practices to help you build your application right and well.
Design principles
- Little to learn. flecks should be easy to learn and use as the API is quite small. Most things will still be achievable by users, even if it takes them more code and more time to write. Not having abstractions is better than having the wrong abstractions, and we don't want users to have to hack around the wrong abstractions. Mandatory talk—Minimal API Surface Area.
- Intuitive. Users will not feel overwhelmed when looking at the project directory of a flecks project or adding new features. It should look intuitive and easy to build on top of, using approaches they are familiar with.
- Modular. flecks is built from the ground up with separation of concerns as a first-class concern.
- Sensible defaults. Common and popular performance optimizations and configurations will be done for users but they are given the option to override them. One should have to go out of their way in order to do the wrong thing.
- No vendor lock-in. Users are not required to use the default flecks, although they are encouraged to.
- Minimize duplicated effort. For instance, we ripped a lot of this wording off of the Docusaurus introduction page. 💃
We believe that, as developers, knowing how something works helps us become better at using it. Hence we're dedicating effort to explaining the architecture and various aspects of flecks with the hope that users reading it will gain a deeper understanding and be even more proficient in using it.
Staying connected
Something missing?
If you find issues with the documentation or have suggestions on how to improve the documentation or the project in general, please file an issue for us.