Apps
An App is a self-contained project that you build and deploy through Major. Every app is backed by a GitHub repository, giving you full version control and the ability to use your own development tools.Templates
When creating an app, you choose from available templates:| Template | Description |
|---|---|
| Vite | React single-page application with fast builds |
| Next.js | Full-stack framework with server components |
Lifecycle
Apps follow a simple lifecycle:- Create — Scaffold from a template or clone an existing app
- Develop — Build locally with the CLI or in the web editor
- Connect — Attach resources (databases, APIs)
- Deploy — Ship to production with one command or click
- Share — Grant access to teammates via RBAC
Resources
Resources are the databases, APIs, and storage services your apps connect to. Major manages credentials securely so you never need to handle secrets in your code.Architecture
- Secure Flow: Your app connects to the Major API, which proxies requests to your actual resources.
- Authentication: Powered by a
MAJOR_JWT_TOKENissued to your session. This token contains your user scopes, ensuring the client can only access what you’re permitted to access. - Generated Clients: Major generates resource clients for you. You’ll find one per resource in
src/clients/.
Supported resource types
PostgreSQL
SQL database queries
DynamoDB
AWS NoSQL database
S3 Storage
Object storage and files
Custom API
Any REST API
HubSpot
CRM integration
Google Sheets
Spreadsheet access
Using resources in code
RBAC (Role-Based Access Control)
Major provides granular access control at both the organization and application level.Organization roles
| Role | Permissions |
|---|---|
| Member | View apps and resources |
| Builder | Create new apps |
| Admin | Full control including user management |
Application roles
| Role | Permissions |
|---|---|
| User | View and run the deployed app |
| Editor | Modify code and create versions |
| Admin | Full control including sharing and deletion |
Resource roles
| Role | Permissions |
|---|---|
| User | Use the resource in applications |
| Admin | Configure and manage the resource |
Groups
Groups let you manage permissions for sets of users efficiently:- Inheritance — Group members inherit all permissions granted to the group
- Default permissions — Configure groups to have automatic access to new apps
- All Users group — Every organization member, useful for open-by-default apps
How they work together
- Admins configure resources and grant permissions to users and groups
- Builders create applications and use resources to securely access company data
- Users get access to apps via RBAC and use them to get work done