Core Concepts
Understanding these key concepts will help you get the most out of DCS.
Sites
A site is a website managed through DCS. Each site has:
- A unique slug (e.g.,
my-company-website) - An associated GitHub repository containing the source code
- Azure Static Web Apps resources for hosting (development and production)
- Text overrides for real-time content editing
- SEO metadata for search optimization
Site Types
DCS supports different site architectures:
| Type | Description | Example |
|---|---|---|
| VitePress | Documentation-style sites with markdown | Company blogs, docs |
| Vue SPA | Single-page applications | Web apps, dashboards |
| Static | Pre-rendered HTML sites | Marketing sites |
Companies
Sites belong to companies in DCS. A company represents an organization that owns one or more sites.
Company Roles
| Role | Permissions |
|---|---|
| Owner | Full access, billing, user management |
| Admin | Site management, dev requests, content |
| Editor | Content editing, blog management |
| Viewer | Read-only access to analytics |
Text Keys
Text keys are identifiers for editable text regions on your site. They follow a hierarchical naming convention:
{page}.{section}.{element}Examples:
home.hero.title— The main heading on the home pageabout.team.description— Team description on the about pagefooter.copyright— Copyright text in the footer
Text Overrides
When you edit text in the portal, you create a text override. The site fetches these overrides at runtime and displays them instead of the default text.
Default Text (in code) → Text Override (from API) → Displayed TextChange Lifecycle
Content changes in DCS follow a defined lifecycle:
saved → pending → committed → released| Status | Description | Revertible |
|---|---|---|
| Saved | Edit created in portal | Discard anytime |
| Pending | Awaiting commit to code | Discard or commit |
| Committed | Merged to release branch | Revert via rollback |
| Released | Live in production | Revert via rollback |
Development Requests
When changes require code modifications, you create a development request. These are analyzed by AI to determine the best approach:
Request Types
| Type | Description | Automation |
|---|---|---|
| Text Override | Simple text changes | Consolidated in build |
| Widget Config | Configuration changes | Automated via Copilot |
| New Widget | New UI component | Automated via Copilot |
| New Page | New page creation | Automated via Copilot |
| Layout Change | Structural changes | Automated via Copilot |
Automation Flow
Request → Intent Analysis → GitHub Issue → Copilot → PR → Review → DeployRelease Branches
DCS uses release branches to manage deployments:
main (production)
└── release/1.2.0 (development)
└── copilot/feature-123 (automated work)- main — Production code, always stable
- release/X.Y.Z — Development version being worked on
- copilot/ — Branches created by automation
Semantic Versioning
Sites follow semantic versioning:
- MAJOR (1.0.0) — Breaking changes
- MINOR (1.1.0) — New features
- PATCH (1.1.1) — Bug fixes, text changes
Deployment Environments
Each site has multiple environments:
| Environment | Purpose | URL Pattern |
|---|---|---|
| Production | Live site | example.com |
| Development | Preview changes | dev.example.com |
| Draft | Per-PR previews | pr-123.example.com |
Deployment Flow
Code Change → Build → Deploy to Dev → Review → Approve → Deploy to ProductionAPIs
DCS provides several APIs for site integration:
Text Content API
Fetch text overrides for a site:
GET /api/sites/{siteId}/text-contentSEO API
Fetch SEO metadata for a page:
GET /api/sites/{siteId}/seo/{pageSlug}Blog API
Fetch blog posts:
GET /api/sites/{siteId}/blog/postsIntegration Points
The useTextContent Composable
For Vue/VitePress sites, this composable provides text override functionality:
const { t, isLoading } = useTextContent()
// t(key, defaultValue) returns the override or default
const title = t('page.title', 'Default Title')GitHub Webhooks
DCS listens for GitHub events to:
- Track PR status for development requests
- Trigger deployments on branch updates
- Update request status when PRs merge
Azure Integration
DCS integrates with Azure for:
- Static Web Apps hosting
- Blob storage for assets
- Table storage for data
- Authentication via Entra ID
Next Steps
Now that you understand the concepts:
- Portal Guide — Learn to use the management interface
- Site Configuration — Set up your site integration
- API Reference — Explore the technical APIs
