chext

A plain-text format for defining Slate chips.

chext lets you write chips as plain text — paste it directly into the slate editor to import chips instantly, or connect a GitHub repository to keep your slate in sync with your codebase.

Syntax

Comments

Lines starting with // are ignored entirely. You can also append inline comments after content using // comment — everything after the // is stripped.

// This whole line is a comment
:NOTE
Hello world // this part is ignored

Chip markers

A line containing only :TYPE (a colon followed by the chip type in uppercase) starts a new chip block. All lines below it — until the next marker — belong to that chip.

:NOTE
First chip content

:QUOTE
Second chip content

Line indexing

Within each chip block, lines are zero-indexed. Line 0 is the first non-marker line. Most chip types assign specific meaning to line 0, line 1, etc. Refer to each chip's section below.

Chip edits

Append a [key:value] list directly after the chip type on the marker line to pass options to a chip. Multiple key-value pairs are separated by commas. Keys are case-insensitive. Not all chip types support options — refer to each chip's section below.

:INFO [align:center, theme:dark, links:https://example.com]
My Title
Body text here.

Layout

Append .half to the chip type to make the chip occupy half the grid width instead of the full width. Place a bare | as the last non-blank line of a chip block to vertically connect it to the chip that follows. Half-width chips connected with | are placed side by side.

:COUNTER.half [links:https://example.com/stats]
6400 Active Users
|
:COUNTER.half
98.9% Uptime

Line continuation

End a content line with a trailing \ to suppress the following newline — the next line is joined to the current one without a line break. Useful for keeping long bodies readable in source while storing them as a single paragraph.

:NOTE
This is a very long line that would be hard to read in source, so it is split across two lines in the file but treated as one continuous line.

Chip types

Slatesource supports 18 chip types in chext format.

GitHub integration

Connect a GitHub repository to a slate and Slatesource will read .chext files from your repo and render their chips automatically. No GUI needed — define your slate in code, alongside your work.

Folder structure

Create a folder anywhere in your repository to represent a slate. The folder name doesn't matter — it's just for organisation.

my-project/
├── .slate
├── assets/
│   ├── photo.png
│   └── logo.png
└── pages/
    ├── home.chext
    ├── about.chext
    └── roadmap.chext

.slate

The .slate metadata file is what the GitHub integration detects to identify a slate folder. Its fields are currently being defined — for now, use the placeholder format below.

name: My Project
description: A short description of this slate.

home.chext

Required. Defines the main (default) page of the slate.

<page-name>.chext

Optional. Each additional .chext file defines an extra page. The file name (without .chext) becomes the page name and slug.

Examples

Browse real-world slate repositories for reference: github.com/StephaneB1/slates

Full example

A complete home.chext file exercising every chip type and every edit option.

// ============================================================
// draftkit — Home
// Exercises: all chip types · chip edits · all layout patterns
// ============================================================


:PROFILE [image:profile.png]
Alex Rivera
San Francisco, CA
Indie maker and designer building tools for independent creators since 2019.


:INFO [align:center, links:https://draftkit.io]
Draftkit 2.0 is Here
The distraction-free writing and publishing toolkit for indie creators. \
Write in Markdown, publish to your own domain, reach your audience directly - \
no middleman, no algorithm, no subscription tax.


:NOW.half
Shipping Draftkit v2.0 — launch week in progress.
|
:COUNTER.half [links:https://draftkit.io/stats]
6400 Active Users


:COUNTER.half [links:https://status.draftkit.io]
98.9% Uptime
|
:COUNTER.half
42 M Words Written
|
:COUNTER.half
4.8 App Rating


:GALLERY [displayStyle:travel]
screenshot-editor.png
screenshot-publish.png
screenshot-analytics.png
screenshot-mobile.png


:QUOTE [links:https://draftkit.io/blog/philosophy]
The best writing tool is the one that gets out of your way.


:INFO [align:right]
What You Get
Draftkit is a one-time purchase that includes everything: editor, publisher, \
newsletter delivery, and analytics. No subscriptions. No hidden fees. \
No algorithm deciding who reads your work.

Available on macOS, Windows, and the web. One license covers all three.
|
:COUNTER.half
3 Platforms
|
:COUNTER.half
$49 One-Time Price


:CHECKLIST [links:https://draftkit.io/changelog]
What's Included
[x] Distraction-free Markdown editor
[x] One-click publish to custom domain
[x] Built-in newsletter delivery (up to 5 000 subscribers)
[x] Audience analytics dashboard
[ ] Podcast episode support (coming v2.1)
[ ] Team workspaces (coming v3.0)


:TASK.half [label:shipped, labelColor:#27ae60]
[x] Ship dark mode
|
:TASK.half [status:in_progress, label:urgent, labelColor:#e74c3c, deadline:2026-03-31T00:00:00Z]
Migrate legacy subscribers
|
:TASK.half [status:open, label:v2.1, labelColor:#3498db]
Podcast episode support


:TASK.half [status:done, label:released, labelColor:#27ae60]
Finalise v2.0 release notes
|
:TASK.half [status:in_progress, label:in review, labelColor:#f39c12]
Update onboarding flow
|
:NOTE [links:https://draftkit.io/upgrade]
Version 2.0 is a breaking change for custom themes. Run `draftkit migrate` before \
upgrading. A full migration guide is at draftkit.io/upgrade.


:PATH [links:https://draftkit.io/changelog]
v1.0 → v2.0
From solo writing tool to full creator publishing platform
|
:LINK.half
https://draftkit.io/changelog
What's New in v2.0
|
:LINK.half
https://draftkit.io/roadmap
Public Roadmap
|
:NOTE
v1.0 shipped June 2021. v2.0 is the result of two years of feedback from 6 400 writers.


:IMAGE.half
product-launch.png
|
:COUNTER.half
847 Sign-ups on Launch Day


:MOMENT
behind-the-scenes.png
Building Draftkit
San Francisco - 2024

:INFO [align:left, links:https://draftkit.io/about]
The Story
Draftkit started as a personal tool Alex built for his own newsletter in 2019. After \
sharing it with a few writer friends, it grew quietly by word of mouth for two years \
before a Product Hunt launch in 2021 pushed it to 1 000 users overnight. Version 2.0 \
is the first major rethink of the product since that launch.
|
:COUNTER.half [links:https://draftkit.io/about]
5 Years in Development


:DURATION
2019-06-01T00:00:00Z
2026-03-01T00:00:00Z


:NOTE [links:https://draftkit.io/support]
Draftkit is built and maintained by a single developer. Support is personal and \
direct — you will always reach a human. Response time is under 24 hours on weekdays.


:SOCIALS
Follow the Build
https://twitter.com/draftkit
https://bsky.app/profile/draftkit.io
https://github.com/alexrivera/draftkit
|
:CONTACT [links:mailto:alex@draftkit.io]
Questions & Licensing
alex@draftkit.io