From 2039bcad0459a4d09884a1c3ad444bd2cb03d500 Mon Sep 17 00:00:00 2001 From: docs-writer-bot <123709173+docs-writer-bot@users.noreply.github.com> Date: Wed, 15 Apr 2026 16:25:36 -0700 Subject: [PATCH] =?UTF-8?q?docs:=20update=20from=20mono-builder=20(2026-04?= =?UTF-8?q?-12=20=E2=86=92=202026-04-15)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- getting-started/billing.mdx | 2 +- getting-started/core-concepts.mdx | 4 +++ getting-started/quickstart-web.mdx | 12 ++++++- web/connectors.mdx | 2 ++ web/crons.mdx | 10 ++++++ web/deploying.mdx | 14 ++++++++ web/editor.mdx | 12 +++++-- web/env-vars.mdx | 58 +++++++++++++++++++++++++++++- web/index.mdx | 6 ++++ 9 files changed, 115 insertions(+), 5 deletions(-) diff --git a/getting-started/billing.mdx b/getting-started/billing.mdx index 2177728..375eff2 100644 --- a/getting-started/billing.mdx +++ b/getting-started/billing.mdx @@ -32,7 +32,7 @@ Team plans increase limits to **15 builders**, **50 viewers**, and unlimited app Plans are billed monthly or annually. -Annual plans include a **20% credit bonus** on top of the monthly balance. When you select an annual plan, the pricing display breaks down the cost as the base monthly price plus the bonus credit value, making the total benefit more transparent. Unused credits roll over for 30 days on monthly plans and 365 days on annual plans. +Annual plans include a **20% credit bonus** on top of the monthly balance. When you select an annual plan, the pricing display prominently shows the base monthly price alongside the bonus credit value in green (displayed as "$X monthly" + "+$Y extra"), making the bonus value immediately obvious. Unused credits roll over for 30 days on monthly plans and 365 days on annual plans. Team plans also enable **domain auto-enrollment** — new users who sign up with your organization's email domain are automatically added. diff --git a/getting-started/core-concepts.mdx b/getting-started/core-concepts.mdx index 280ead6..f58619f 100644 --- a/getting-started/core-concepts.mdx +++ b/getting-started/core-concepts.mdx @@ -104,6 +104,10 @@ Persistent memory stores organization-wide knowledge that your AI assistants and Memory is organized into files that can be viewed, created, edited, and deleted — either through the Memory panel in the editor or through API endpoints. The system tracks which source (user, AI coder, or memory agent) made each change. +### Memory Agent Resilience + +The memory agent automatically retries transient failures to ensure reliable operation. When a fetch request fails with a temporary error (HTTP 408, 429, 502, 503, 504 or a network timeout), the agent retries with exponential backoff. All fetch requests enforce a per-request timeout of 15 seconds, protecting against hanging connections. + ## How they work together 1. **Admins** configure connectors and grant permissions to users and groups diff --git a/getting-started/quickstart-web.mdx b/getting-started/quickstart-web.mdx index b7ec3ce..3ee4b71 100644 --- a/getting-started/quickstart-web.mdx +++ b/getting-started/quickstart-web.mdx @@ -7,7 +7,17 @@ This guide walks you through creating an app using the Major web dashboard. No l ## Step 1 — Sign in -Go to [app.major.build](https://app.major.build) and sign up or sign in. From the dashboard you can create a new app by describing what you need, manage your existing apps, or configure resources. +Go to [app.major.build](https://app.major.build) and sign up or sign in. + +**Parametrized signup pages:** If you access Major through a parametrized signup link, the signup form displays campaign-specific messaging. The heading reads "Get a free, personalized demo" and a tailored subtitle describes what will be built for your use case. For example, if you sign up through a renewals campaign, you'll see "We'll build an incredible renewals dashboard with you" instead of generic text. Other campaign options include health and leadgen. After entering your email on the initial screen, you can choose to "Create Major account" or "get started for free". Your email and associated campaign/UTM data are stored for demo follow-up. + +**Standard signup:** On the main signup page, you can choose between OAuth sign-up or email/password authentication. + +**On mobile:** The signup page displays a chat-like interface with animated steps showing your app generation workflow. OAuth sign-up options appear first; toggle to email/password fields if you prefer. Once you complete sign-up, a preview of your generated app appears below. + +**On desktop:** The signup form includes OAuth buttons and email/password fields. A full editor mock shows the app generation workflow running in real time. + +From the dashboard you can create a new app by describing what you need, manage your existing apps, or configure resources. ## Step 2 — Create an app diff --git a/web/connectors.mdx b/web/connectors.mdx index fcc6ec9..188399f 100644 --- a/web/connectors.mdx +++ b/web/connectors.mdx @@ -29,6 +29,8 @@ When editing a connector, you can configure each environment independently. This | default | prod.example.com | myapp_prod | | staging | staging.example.com | myapp_staging | +Environments appear sorted by creation date (oldest first). Your default Production environment always appears at the top of the list. + To configure: 1. Click on a connector to edit it 2. Select the desired environment diff --git a/web/crons.mdx b/web/crons.mdx index 6497498..bad5f25 100644 --- a/web/crons.mdx +++ b/web/crons.mdx @@ -20,6 +20,16 @@ The Crons panel in the editor shows all defined jobs with their schedules and ex - **Delete jobs** — remove cron jobs from your app - **View versions** — see cron definitions from different app versions and deploy specific versions +## Home Page View + +Your application cards on the home page display a "scheduled jobs" indicator when you have deployed cron jobs. The indicator shows: + +- A calendar icon +- The count of scheduled jobs +- The names and detailed schedules of each job (e.g., "Daily at 9:03 AM", "Weekly on Monday at 2:15 PM", "Monthly on the 15th at 10:45 AM") + +Click the indicator to jump directly to your app's cron management tab. Use the "Filter Scheduled Jobs" button to display only applications that have scheduled jobs. + ## Execution When a cron executes, Major sends an HTTP POST request to the specified URL with an `x-major-cron-jwt` header containing a signed token. Use this to verify the request came from Major. diff --git a/web/deploying.mdx b/web/deploying.mdx index 611fbc1..c952bd6 100644 --- a/web/deploying.mdx +++ b/web/deploying.mdx @@ -29,6 +29,20 @@ When a user visits a private app while logged out, Major redirects them to sign When deploying for the first time, you can choose a custom subdomain for your app (e.g., `my-app.apps.prod.major.build`). Existing apps can update their URL slug in application settings. +## Custom Domains + +Organizations can register a custom domain and map multiple applications to different subdomains under it. + +### Organization Domains + +Register a custom domain at the organization level (e.g., `coolapp.com`). Once registered, all applications in your organization can use subdomains under this domain. + +### Application Subdomains + +Each application can be assigned a subdomain that maps to the organization's custom domain. For example, if your organization domain is `coolapp.com`, you can assign the subdomain `app1` to make your application accessible at `app1.coolapp.com`. + +Multiple applications can run under the same organization domain with different subdomains, enabling you to manage multiple apps under a single branded domain. + ## Per-User OAuth in Deployed Apps If your app uses resources configured for **per-user** authentication, Major automatically enforces an OAuth gate. When a user accesses the app without a connected OAuth account, they're redirected to the `/connect` page to authorize access. diff --git a/web/editor.mdx b/web/editor.mdx index a44c87f..913aa78 100644 --- a/web/editor.mdx +++ b/web/editor.mdx @@ -9,6 +9,15 @@ The Major Editor provides a collaborative environment to modify your application The editor includes an AI assistant with full context of your application code. You describe what you want to build or change in the chat panel, and the AI reads your codebase, asks clarifying questions if anything is ambiguous, and works through the implementation with you. +## Session State + +Your coding session has a state that indicates whether the AI agent is ready to work. The frontend observes this state to determine AI readiness: + +- **READY** — The AI agent has finished startup and is actively running. You can send messages and the AI will respond. +- **CLOSED** — The session has ended. The AI is no longer available for this session. + +When you open the editor, the session starts and the AI agent initializes. Once initialization completes, the session transitions to READY and the agent stands by to process your requests. + ## Images and Attachments You can attach images and files to your AI chat messages. Drag and drop or paste screenshots, mockups, or reference images directly into the chat. Supported file types include: @@ -23,7 +32,7 @@ The AI uses these attachments as context when building or modifying your app — ## @ Mentions -Type `@` in the chat to explicitly reference connectors, attachments, and workspace files in your message. This tells the AI exactly which resource or file you're talking about. +Type `@` in the chat to see a popover of available connectors, attachments, and workspace files. Click an item to reference it in your message, or type to filter the list. This tells the AI exactly which resource or file you're talking about. ## Tool Cards @@ -89,4 +98,3 @@ The AI assistant has built-in TypeScript language server support, giving it prec The AI assistant can query production logs from your deployed applications. Ask the AI to investigate runtime errors, search specific log patterns, or examine application behavior in production. The AI searches logs collected from your app's container stdout and stderr, filtered by organization and app ID. Use this to debug issues in deployed apps without leaving the editor. The AI can correlate log messages with your code to identify root causes and suggest fixes. - diff --git a/web/env-vars.mdx b/web/env-vars.mdx index 504843d..1c66050 100644 --- a/web/env-vars.mdx +++ b/web/env-vars.mdx @@ -19,4 +19,60 @@ After changing environment variables in a deployed app, click **Redeploy** to ap ## CLI -You can also manage environment variables from the CLI. Environment names are case-insensitive, so `--env staging` and `--env Staging` resolve to the same environment. See the [CLI Resource docs](/cli/resource) for details. +Environment names are case-insensitive, so `--env staging` and `--env Staging` resolve to the same environment. + +### API Endpoints + +You can manage environment variables programmatically via HTTP. All endpoints require authentication with a valid CLI token. + +#### List environment variables + +```bash +GET /cli/application/:applicationId/env-variables +``` + +Returns all environment variables for an application with their per-environment values. + +**Response:** +```json +{ + "variables": [ + { + "key": "DATABASE_URL", + "values": { + "development": "postgres://...", + "staging": "postgres://...", + "production": "postgres://..." + } + } + ] +} +``` + +#### Set an environment variable + +```bash +POST /cli/application/:applicationId/env-variables/set +``` + +Sets a single environment variable for a single environment. + +**Request body:** +```json +{ + "key": "DATABASE_URL", + "environment": "staging", + "value": "postgres://..." +} +``` + +#### Delete an environment variable + +```bash +DELETE /cli/application/:applicationId/env-variables/by-key/:key +``` + +Deletes an environment variable. To delete for a specific environment only, include `environment` as a query parameter. Omit it to delete the variable across all environments. + +**Query parameters:** +- `environment` (optional) – delete only from this environment; if omitted, deletes from all environments diff --git a/web/index.mdx b/web/index.mdx index 57ddf80..83c4823 100644 --- a/web/index.mdx +++ b/web/index.mdx @@ -4,3 +4,9 @@ description: "Build, configure, and deploy your internal tools." --- The Major web dashboard is where you build, configure, and ship your internal tools. Use the AI-powered [editor](/web/editor) to develop your app, [deploy](/web/deploying) to production, configure [environments](/web/environments) for staging and production, and manage [permissions](/web/permissions) to control who can access what. + +## Pinning Apps + +Pin your most-used apps to keep them visible at the top of your app grid. Hover over an app card to reveal the pin icon, then click it to pin or unpin. Pinned apps appear in their own "Pinned" section at the top of the dashboard. + +Your pins are saved per user and per organization, so they persist across the "My Apps" and "All Apps" tabs and remain visible when you filter by search.