A framework/language to prototype webapps fast so you can touch grass
Note
It's pretty much clear now Aeria is and will remain to be a hobby project. I can only look back to it now and see how it contributed to my (now useless?) TypeScript and overall programming knowledge. Still, 100% human-made. No AI was ever directly used across any of the many project repositories. I'll still use Aeria for personal projects, and I'll keep working on the framework while doing so, just not so ambitiously anymore.
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.

