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