Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 15 additions & 0 deletions docs/AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,21 @@ Other folders under `/docs` are **not actively managed**.
- Unless you have a specific task, **avoid editing** content outside `docs/wg/**` and `docs/reference/**`.
- Do not edit generated artifacts under `/apps/docs/docs/**`.

## Conventions

### `_history/` directories (unlisted docs)

Use a `_history/` folder inside any docs subdirectory (e.g. `docs/wg/platform/_history/`) for **historical snapshots** and other “record only” documents that should **not** appear in Docusaurus navigation.

- Put these documents under a `_history/` folder.
- Mark them as **unlisted** via frontmatter:

```md
---
unlisted: true
---
```

## Structure

| directory | name | description | active |
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
---
title: Vercel domain configuration snapshot (pre-BYOD)
status: historical
unlisted: true
---

This is a historical snapshot of **Grida-owned** domain configurations in Vercel **before** we introduced **Bring Your Own Domain (BYOD)** support.

- effective date: 2026-02-03
- reference: [PR 515: Grida - Multi-Tenant BYOD - Bring Your Own Domain](https://github.com/gridaco/grida/pull/515)

| Domain | Configuration | Notes |
| ---------------------- | ---------------------- | ----------------- |
| `grida.app` | `308 → www.grida.app` | Redirect |
| `www.grida.app` | Production | |
| `*.grida.app` | Production | Wildcard |
| `grida.site` | `308 → www.grida.site` | Redirect |
| `www.grida.site` | Production | |
| `*.grida.site` | Production | Wildcard |
| `demo.grida.co` | demo | Environment alias |
| `canary.grida.co` | canary | Environment alias |
| `grida-app.vercel.app` | `307 → grida.co` | Redirect |
| `app.grida.co` | `301 → grida.co` | Redirect |
| `forms.grida.co` | `301 → grida.co` | Redirect |
| `accounts.grida.co` | `307 → grida.co` | Redirect |
| `grida.co` | Production | |
| `www.grida.co` | `308 → grida.co` | Redirect |
| `bridged.xyz` | `301 → grida.co` | Redirect |
14 changes: 12 additions & 2 deletions docs/wg/platform/multi-tenant-custom-domain-vercel.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,19 @@
title: Multi-tenant Custom Domains on Vercel
---

| feature id | status | description | PRs |
| --------------------- | ----------- | ---------------------------------------------------------------------------------------------------------------- | ------------------------------------------------- |
| `byod-domains-vercel` | implemented | Multi-tenant BYOD domains (apex + subdomain) on Vercel: identity mapping, DNS verification, canonical redirects. | [#515](https://github.com/gridaco/grida/pull/515) |

# Multi-tenant Custom Domains on Vercel

> Long-lived invariants and architectural decisions for Grida custom domain support when Vercel is the edge provider.
> Long-lived invariants and architectural decisions for Grida **BYOD (Bring Your Own Domain)** support when Vercel is the edge provider.

## Terminology

- **BYOD (Bring Your Own Domain)**: user-owned domains attached to a tenant (apex or subdomain), e.g. `example.com`, `app.example.com`.
- **Platform domain**: Grida-provided domains under platform-controlled suffixes, e.g. `tenant.grida.site`, `tenant.grida.app`.
- **Custom domain**: legacy synonym for BYOD in older code/docs. Prefer “BYOD” for semantics and traceability.

## Audience

Expand All @@ -14,7 +24,7 @@ title: Multi-tenant Custom Domains on Vercel

## Purpose

Capture long‑lived architectural truths and invariants for custom domain support. This document intentionally avoids task-level instructions and short-term implementation details.
Capture long‑lived architectural truths and invariants for BYOD support. This document intentionally avoids task-level instructions and short-term implementation details.

---

Expand Down