1.9 KiB
1.9 KiB
Masonry
Masonry is a library that provides and implements all the basics necessary to build robust, production ready web applications.
Features
- Authentication via SpartanAuth
- Authorization via SpiceDB
- Database - your pick of Turso, LibSQL, SQLite, MySQL, Postgres
- Payments via Stripe with flexible product configurations and pricing
- Semantic Search for RAG or application navigation
- System Email templates and SMTP integration
- Cross-platform, installable apps for mobile, desktop and web
- Predetermined frontend frameworks and adjustable styles
- Built in notification framework
- Customizable calls to webhooks for any event
- Integrate with an object storage system like S3
DSL Features
- Indicate values that are based on Environment variables
- On Entities, we should indicate what CRUD functions should be implemented instead of implementing all, or forcing the user to define each in the Endpoints section
- Yaml file to include custom template functions (Otto for JS)
- Support multi-file outputs based on a directory+manifest file.
- Support multi-step generation. e.g. gen the proto file, use
masonry g
to get the basic server set up, genmain.go
from a template, then update gorm overrides, etc. - Support field transformations on Entities using a template for
BeforeToORM
inservice.pb.gorm.override.go
Design Philosophy (changeable...)
The goal of this project is to make building software for web and mobile applications as fast as possible while maintaining the highest level of quality and maintainability as possible.
- The more that can be derived from configuration the better.
- Pre-built functionality should be isolated into libraries and modules with simple interfaces to minimize manual coding.
- Composable applications minimizes dependencies and maximizes extensibility.