Hey everyone, Daniel here. I’m building an open source framework that makes it easy to code and deploy serverless applications – <a href="https://github.com/notation-dev/notation">https://github.com/notation-dev/notation</a> | <a href="https://notation.dev" rel="nofollow">https://notation.dev</a>.<p>I wanted a tool that delivers the benefits of serverless (scalable managed services), but with a first-class developer experience.<p>Here are the main concepts:<p>1/ Notation provides a set of primary infrastructure resources (eg API gateway, lambda, event bridge etc) that can be composed together into serverless apps. They are fully typed, so slot into place very easily. A lot of annoying cloud implementation details – things like constructing valid ARN strings, and writing JSON policy documents - are handled by the framework.<p>2/ Secondary infrastructure resources (eg IAM roles, permissions and integrations) are inferred from the relationships between the primary resources, and from explicit user intents. You can see these visualised in a generated graph.<p>3/ Runtime code (ie the lambda function code) belongs in separate modules – but, these can be imported into and referenced by infrastructure modules. Again, we have end-to-end types, so if a lambda function were configured to accept and API request, but got attached to an SQS stream, the compiler would quickly complain about that.<p>4/ Notation apps can be deployed directly to your own cloud accounts. If you want to develop locally, you can deploy using watch mode, which hot-swaps infrastructure resources, and provides snappy updates of serverless functions, while you code.<p>The next step is to integrate more AWS services, and then later expand to other cloud platforms (feature requests ofc welcome).<p>You can give Notation a spin at <a href="https://github.com/notation-dev/notation">https://github.com/notation-dev/notation</a>. I’d love to hear your feedback on the approach!