A framework to prototype webapps fast so you can touch grass
Documentation | How to Contribute
Aeria is a framework designed to streamline CRUD-based applications with a type-safe, developer-friendly experience. It includes a lightweight MongoDB abstraction layer and a DSL for model definition supporting nested objects, arrays, references, upload fields, and more, making it ideal for applications with complex data structures and relational logic. Additionally, a HTTP routing API with very simple bindings is provided to build business logic.
The project was created to offer a more cohesive and straightforward way to create data-centric applications using MongoDB compared to alternatives like Express/Mongoose.
$ npm create -y aeria-app@latest hello-world
- Authentication
- File management
- Security (rate limiting, entity ownership, RBAC, etc)
- tRPC-like SDK with 1:1 typing
- Ready-to-use dashboard extensible with Vue
A common concern people have when being introduced to something like Aeria is: "Am I going to learn a whole new language just to use that thing?". Aeria has a very flat learning curve because it is not a fully-fledged programming language. It has only two main concepts: collections and contracts. Learning the whole thing can be done in half an hour or even less.
You probably won't have a hard time guessing what the code below does:
collection Person {
icon "person"
properties {
name str
job enum @values([
"programmer",
"doctor",
"policeman",
])
age int @minimum(1) @maximum(120)
profile_picture File @accept(["image/*"])
}
functions {
get
getAll
insert
remove
upload
}
}
Or that one:
contract GetPersonBySlug {
payload {
properties {
slug str
}
}
response
| Error {
properties {
httpStatus int
code str
}
}
| Result Person
}
Aeria brings a lot of benefits when you need to prototype an MVP fast and then scale to a more robust project. The most obvious is that the amount of code -- and thus time -- needed to implement a feature is dramatically reduced compared to conventional approaches, thanks to the DSL and builtins that the framework offers.
Along with that, it ships a ready-to-use extensible dashboard and a 1:1 typed SDK. It is also a lot faster than Mongoose and Prisma when dealing with references.
To sum it up: if your database pick is MongoDB and you are going for building a project fast and you care about type-safety, Aeria is the right pick for you.
Reach out to learn more about Aeria and know about upcoming features.