A question came up recently in the Feat repository:
"What is the difference between this project and Spring?"
It's a fair question. If you look at Feat Cloud code, you'll find familiar concepts: controllers, beans, dependency injection, and annotations.
But the similarity is mostly in the developer experience.
Compile-time generation instead of runtime scanning
In a typical Spring Boot application, the framework performs a lot of work during startup: discovering components, processing annotations, wiring dependencies, and building runtime infrastructure.
Feat Cloud takes a different approach.
Its annotation processor handles controller mappings and dependency wiring during Maven compilation. The generated Java code can be inspected under:
target/generated-sources/annotations/
This means Feat Cloud does not need runtime annotation scanning for those generated mappings and wiring.
There is a trade-off: changes to relevant annotations or compile-time configuration require rebuilding the application.
No Servlet container
Feat does not build its web server on the Servlet model.
Feat Core provides HTTP server and routing capabilities on top of smart-socket. You can use its Router and Handler APIs directly, without annotations or a container.
Feat Cloud adds a higher-level programming model for developers who prefer annotation-based controllers.
What Feat does not try to do
Spring Boot has a much broader ecosystem. Security, data access, messaging, monitoring, and countless integrations are major strengths.
Feat does not aim to reproduce every Spring project or starter. Integrations such as MyBatis, Nacos, and XXL-Job are available, but some Spring ecosystem capabilities still require custom integration or a different solution.
If your application is deeply coupled to Spring Security or many Spring-specific starters, migration may not be worthwhile.
Why build another Java framework?
The question behind Feat is simple:
Can we keep a familiar Java development experience while moving more work from runtime to compile time?
Feat is one attempt to explore that direction.
It may be a better fit for resource-sensitive services, lightweight HTTP applications, and projects that value a simpler runtime model. It is not intended to be a universal Spring Boot replacement.
Project: https://github.com/smartboot/feat
Documentation: https://smartboot.tech/feat/
Spring migration guide: https://smartboot.tech/feat/practices/from-spring/




