Skip to main content
Major is built around three core concepts that work together to help you build, deploy, and secure internal tools.

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:
TemplateDescription
ViteReact single-page application with fast builds
Next.jsFull-stack framework with server components

Lifecycle

Apps follow a simple lifecycle:
  1. Create — Scaffold from a template or clone an existing app
  2. Develop — Build locally with the CLI or in the web editor
  3. Connect — Attach resources (databases, APIs)
  4. Deploy — Ship to production with one command or click
  5. 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_TOKEN issued 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

import { myDatabaseClient } from './clients';

const result = await myDatabaseClient.invoke(
  'SELECT * FROM users WHERE active = true',
  [],
  'fetch-active-users'
);

if (result.ok) {
  console.log(result.result.rows);
}
Credentials flow through the Major platform. Your app never sees connection strings or API keys.

RBAC (Role-Based Access Control)

Major provides granular access control at both the organization and application level.

Organization roles

RolePermissions
MemberView apps and resources
BuilderCreate new apps
AdminFull control including user management

Application roles

RolePermissions
UserView and run the deployed app
EditorModify code and create versions
AdminFull control including sharing and deletion

Resource roles

RolePermissions
UserUse the resource in applications
AdminConfigure 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

  1. Admins configure resources and grant permissions to users and groups
  2. Builders create applications and use resources to securely access company data
  3. Users get access to apps via RBAC and use them to get work done

Next steps