This repository contains the documentation for Escalated, an open-source embeddable support ticket system with SLA tracking, escalation rules, agent workflows, and a customer portal.
escalated.dev/docs — Read the full documentation online.
The Markdown files in this repo are fetched at runtime by the Escalated marketing site and rendered as the /docs page.
docs.json # Manifest — defines groups, section order, sidebar labels, types, and tabs
sections/
getting-started.md # Single sections are standalone files
installation/ # Tabbed sections are directories
_intro.md # Shared intro text (appears above the tab switcher)
laravel.md # One Markdown file per declared tab id
rails.md
...
compare/ # Tabs are not always frameworks — here they are competitors
_intro.md
zendesk.md
freshdesk.md
...
docs.json is a list of groups; each group has a slug, a label, a description (shown on the
docs overview cards), and an ordered list of sections. Each section has a slug (the page URL at
/docs/{slug} and the content path), a label, and a type:
{
"groups": [
{
"slug": "getting-started",
"label": "Getting Started",
"description": "Install Escalated and get the support UI running in your app.",
"sections": [
{ "slug": "getting-started", "label": "Getting Started", "type": "single" },
{
"slug": "installation",
"label": "Installation",
"type": "tabbed",
"tabs": [
{ "id": "laravel", "label": "Laravel" },
{ "id": "rails", "label": "Rails" }
]
}
]
}
]
}single— A standalone Markdown file (sections/{slug}.md) rendered as one page.tabbed— A directory (sections/{slug}/) with_intro.md(shared heading + intro, shown above the tab switcher) and one Markdown file per declared tab. The section'stabsarray lists each tab'sid(which must match a{id}.mdfile in the directory) and itslabel(shown on the switcher). Tabs are whatever dimension fits the section — frameworks, data sources, competitors, or topics.
- Find the section you want to edit in the
sections/directory. - Edit the Markdown file directly on GitHub or clone the repo locally.
- Open a pull request with your changes.
Changes merged to main will appear on the site within one hour (the cache TTL), or immediately if the cache is cleared.
- Pick the group in
docs.jsonit belongs to (or add a new group with aslug,label, anddescription). - Add a section entry to that group's
sectionswith aslug,label, andtype. - For single sections: create
sections/{slug}.md. - For tabbed sections: add a
tabsarray (each{ "id", "label" }), then createsections/{slug}/with_intro.mdand one{id}.mdfile per tab. Every declared tab id must have a matching file.
- Use standard GitHub Flavored Markdown.
- Use fenced code blocks with language identifiers (e.g.,
```php,```bash,```ruby). - Use
>blockquotes for callout notes (rendered as styled callout boxes on the site). - Use Markdown tables for tabular data.
- Keep headings hierarchical:
# Section Titlein_intro.md,## Sub-headingin content files.
The Markdown is rendered server-side by Laravel's Str::markdown() (which uses league/commonmark). Syntax highlighting is applied client-side via Shiki. Any standard GFM Markdown will render correctly.
The README.md file is not pulled by the site — only docs.json and files in sections/ are fetched.
- Escalated — Shared frontend (Vue 3 + Inertia.js)
- Escalated for Laravel — Laravel Composer package
- Escalated for Rails — Ruby on Rails engine
- Escalated for Django — Django reusable app
- Escalated for AdonisJS — AdonisJS v6 package
- Escalated for Filament — Filament v3 admin panel plugin
- Escalated for WordPress — WordPress plugin
- Plugin SDK — TypeScript SDK for building plugins
- Plugin Runtime — Runtime host for plugins
MIT