kit is a web framework designed for growth 🚀
"Spend your time on building what your users need, not wondering how to do it."
kit provides comprehensive answers on how to write & organize your code at every level
You'll find an overview of what's provided in the framework below.
How to write codeLink to this section
The primitives you'll use to write & chain methods, describe higher lever operations (including happy & error paths) and document your code!
Improve your code flow with Railway Oriented Programming.Easily chain your methods & descrive your happy & errors paths.Customize to your need with the simple pluggin system.
Unified validation primitive for all your data.Contracts can be used on method signatures and provide an alternative to static typing.Forms, DB models or any data can be easily validated through ChangeSets.
Unified error handling.Provides a generic error format.Report your errors to external backends (NewRelic, Sentry, etc) or persist them in your DB.
How to organize business logicLink to this section
What you need to create Bounded Contexts where most of you code will live. With Kit, bounded contexts include all your domain logic + a web UI + an API + an Admin UI
Describe the Resources you want the API to expose and it becomes available over JSON:API and soon GraphQL!Handles pagination, filtering & resources linkage out the box, even when the Resources do not live on the same DB.
Admin web interface for the bounded context.Currently using ActiveAdmin with a system of resource descriptions.
How to structure & deploy in productionLink to this section
No more monolith VS micro-services: deploy as 1 or N services without chaning a line of code in your bounded contexts!
Basic layout & configuration to build your "bounded contexts".Kit's bounded contexts usually include the business logic for a number of Models + Web UI + API + Admin UI
Application container to serve bounded contexts.Use 1 AppContainer to deploy as a monolith, or N AppContainers to deploy as micro-services without having to change a single line of code inside your bounded contexts!
Expose bounded contexts' endpoints to the world and between multiple bounded contexts.The Router deals with the various protocols to expose endpoints (HTTP, Mailer) and connect bounded contextes together.
Included bounded contextsLink to this section
Complete bounded contexts that can be added to your app or deployed as micro-services.