Public homepage (Home tab)#
Every tournament's public page (/your-slug/public) opens on a Home tab. Write it once in CrabbyTab and you have an event website: an about section, the schedule at a glance, rules and motions info, prizes, venue directions with pictures, a welcome video, maths for scoring rules, and a Register button while registration is open. You do not need a separate site.
Where to edit it#
- Sidebar → Admin → Configuration → Public visibility.
- Find Public homepage. Type Markdown in the box on the left; the preview next to it shows exactly what visitors will see. Syntax help (below the box) lists everything you can use.
- Press Save. Like every public-page setting, this saves on your device first: press Upload and publish in the notice that appears (or Upload now in the top bar). The public page updates within about a minute.
Limits: up to 20,000 characters. The text is shown as written in every language; it is not translated.
What visitors see#
- The Home tab is the first tab and the one the page opens on. Other tabs (draw, results, tab, motions, break…) appear as you release them. A link such as
/your-slug/public?tab=drawopens a specific tab. - If the homepage is empty, the Home tab shows the older Welcome message instead (plain text), so existing tournaments keep working.
- The tournament staff credits (also on Public visibility) are shown on the Home tab.
- While registration is open (Registration page), a prominent Register button links to the registration form. It disappears automatically when registration closes.
- Links to the public schedule and calendar, check-in status and audit log appear when those are switched on.
- The first paragraph of the homepage becomes the description shown in search results and link previews (WhatsApp, Facebook, Slack, X…), so make it a good one-sentence summary.
Syntax cheat-sheet#
| You want | Type |
|---|---|
| Heading | ## Schedule (one # is fine too; headings sit under the tournament name) |
| Bold / italic / strikethrough | **bold**, *italic*, ~~struck~~ |
| Link | [Rules PDF](https://example.org/rules.pdf) or just paste https://… |
| Email link | [Write to us](mailto:tab@example.org) |
| Image |  (must be an https link; the text in brackets is the alt text for screen readers) |
| YouTube video | Paste the YouTube link alone on its own line, or @[youtube](https://youtu.be/VIDEO_ID). Watch, youtu.be, Shorts and embed links work; ?t=90 starts at 90 seconds. |
| Bullet / numbered list | - item / 1. item |
| Checklist | - [x] Venue booked / - [ ] Judges confirmed |
| Table | ` |
| Quote | > Debate is the art of… |
| Code | `inline` or a block fenced with three backticks |
| Divider | --- on its own line |
| Inline maths | $\frac{a}{b}$ |
| Display maths | $$ on a line, the formula, $$ on a line |
| A literal dollar sign | \$500 prize (a plain $ starts maths) |
Example#
## Welcome to the Dhaka Open 2026
Three days of BP debating at the University of Dhaka, 14–16 November.
Registration closes on **1 November**.
@[youtube](https://youtu.be/dQw4w9WgXcQ)
### Schedule
| Day | |
| --- | --- |
| Friday | Rounds 1–3 |
| Saturday | Rounds 4–5, break night |
| Sunday | Quarters, semis, grand final |
### Prizes
- Champions: \$500
- Best speaker: \$100
Speaker scores are averaged as $\bar{s} = \frac{1}{n}\sum_{i=1}^{n} s_i$.

Questions? [Email the tab team](mailto:tab@example.org).
What is not allowed (and why)#
The homepage is public, so CrabbyTab only renders safe content:
- No HTML. Tags such as
<div>,<script>,<iframe>or<style>are dropped, not shown. Use Markdown instead. - Images must use
https://links. Upload them somewhere public first (your university site, an image host, Google Drive "anyone with the link" direct links, etc.). Images load lazily and without sending your page address to the image host. - Links may be
https://,http://,mailto:or a path on the same site (/your-slug/public?tab=draw). Other kinds (for examplejavascript:) are removed and only the text remains. Links open in a new tab and are markednofollow. - Videos: only YouTube, through its privacy-enhanced domain (
youtube-nocookie.com), in a sandboxed frame. Other video sites are shown as ordinary links. - Maths is rendered by KaTeX with untrusted-input settings: commands that create links or HTML (
\href,\url,\htmlClass…) are disabled, and very large or deeply nested formulas show an error instead of slowing the page.
Tips#
- Keep the first paragraph short: it is your search-result and link-preview text.
- Put dates, the venue and the registration deadline near the top. The Register button appears on its own, so you do not need to add a registration link.
- The homepage does not change when rounds are released; update it yourself for announcements (for example "Break announced: see the Break tab").
- Use the Search engines setting on the same page if you do not want the tournament listed by search engines.
Details#
- Stored as the
publicHomepagetournament setting (Markdown text), included in settings export/import and validated by the REST API's preferences endpoint. - Published with the tournament's public snapshot, like every other public setting; visitors never read Firestore directly. See Caching, indexing and performance.
- The renderer (Markdown, KaTeX and their styles) is loaded only on the Home tab and in the editor preview, so other pages stay light.
- Developer notes:
src/components/markdown/(renderer),src/lib/markdown/(URL rules, YouTube parsing, plain-text summary), and the "Public homepage" section ofdocs/public-pages-and-notifications.md.
See also: Public pages and releases · Registration · Settings reference.