https://github.com/refrakt-md/refrakt
Markdoc-powered content platform with semantic runes — structured, themeable, schema-rich sites from plain Markdown
https://github.com/refrakt-md/refrakt
markdoc planning static-site
Last synced: 10 days ago
JSON representation
Markdoc-powered content platform with semantic runes — structured, themeable, schema-rich sites from plain Markdown
- Host: GitHub
- URL: https://github.com/refrakt-md/refrakt
- Owner: refrakt-md
- Created: 2026-02-12T08:37:45.000Z (5 months ago)
- Default Branch: main
- Last Pushed: 2026-06-15T11:51:16.000Z (12 days ago)
- Last Synced: 2026-06-15T11:58:06.862Z (12 days ago)
- Topics: markdoc, planning, static-site
- Language: TypeScript
- Homepage: https://refrakt.md
- Size: 12.2 MB
- Stars: 1
- Watchers: 0
- Forks: 0
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# refrakt.md
**Write Markdown. Get structure.**
A content framework built on [Markdoc](https://markdoc.dev). Extend Markdown with 100+ semantic runes — tags that transform standard Markdown into structured, SEO-rich, machine-readable content.
[Documentation](https://refrakt.md) | [Getting Started](https://refrakt.md/docs/getting-started) | [Rune Catalog](https://refrakt.md/docs/runes)
## Features
- **Built on Markdoc** — Not another Markdown dialect. Refrakt extends Markdoc with semantic runes that add meaning to the Markdown you already write.
- **Runes, not components** — Runes reinterpret the Markdown inside them. A heading inside `{% nav %}` becomes a group title. A list inside `{% cta %}` becomes action buttons. You write Markdown — the rune decides what it means.
- **SEO from the start** — Every rune can emit Schema.org JSON-LD and Open Graph metadata automatically. Recipes get Recipe schema, events get Event schema, FAQs get FAQ schema — no manual wiring.
- **AI-powered authoring** — Generate full pages with `refrakt write`. The CLI knows every rune and produces valid Markdown with proper rune structure. Supports Claude and local models via Ollama.
- **Layout inheritance** — Define regions in `_layout.md` files that cascade down directory trees. Headers, navigation, and sidebars compose automatically.
- **Portable content** — Your content stays decoupled from presentation. Adapters for SvelteKit, Astro, Next.js, Nuxt, and Eleventy. Renderers for Svelte, React, Vue, and plain HTML.
## Quick Start
```bash
npm create refrakt my-site
cd my-site
npm install
npm run dev
```
For static HTML output:
```bash
npm create refrakt my-site -- --target html
```
## Packages
### Core
| Package | Description |
|---------|-------------|
| `@refrakt-md/types` | Shared TypeScript interfaces |
| `@refrakt-md/runes` | ~47 core rune schemas, SEO extraction, config |
| `@refrakt-md/transform` | Identity transform engine (BEM classes, structure injection) |
| `@refrakt-md/lumina` | Lumina theme (design tokens, CSS) |
| `@refrakt-md/behaviors` | Progressive enhancement JS (tabs, accordion, datatable, form) |
| `@refrakt-md/content` | Content loading, routing, layout cascade |
| `@refrakt-md/svelte` | Svelte renderer and component registry |
| `@refrakt-md/react` | React renderer (RSC-compatible) |
| `@refrakt-md/vue` | Vue renderer |
| `@refrakt-md/html` | Static HTML renderer (no framework required) |
| `@refrakt-md/sveltekit` | SvelteKit adapter (Vite plugin, virtual modules, HMR) |
| `@refrakt-md/astro` | Astro integration |
| `@refrakt-md/next` | Next.js adapter (React Server Components) |
| `@refrakt-md/nuxt` | Nuxt module |
| `@refrakt-md/eleventy` | Eleventy (11ty v3) plugin |
| `@refrakt-md/highlight` | Syntax highlighting with Shiki |
| `@refrakt-md/ai` | AI prompt building and providers |
| `@refrakt-md/cli` | CLI tools (write, inspect, contracts) |
| `create-refrakt` | Project scaffolding |
| `refrakt-md` (VS Code) | Syntax highlighting, snippets, and rune inspector |
### Plugins
Nine official plugins add domain-specific runes, layouts, and CLI commands — install only what you need.
| Plugin | Runes |
|--------|-------|
| `@refrakt-md/marketing` | hero, cta, feature, pricing, testimonial, bento, steps, comparison |
| `@refrakt-md/docs` | api, symbol, changelog |
| `@refrakt-md/design` | swatch, palette, typography, spacing, preview, mockup, design-context |
| `@refrakt-md/learning` | howto, recipe |
| `@refrakt-md/storytelling` | character, realm, faction, lore, plot, bond, storyboard |
| `@refrakt-md/business` | cast, organization, timeline |
| `@refrakt-md/places` | event, map, itinerary |
| `@refrakt-md/media` | playlist, track, audio |
| `@refrakt-md/plan` | spec, work, bug, decision, milestone |
## Documentation
Full documentation is available at **[refrakt.md](https://refrakt.md)**.
- [Getting Started](https://refrakt.md/docs/getting-started) — Scaffold a project and write your first page
- [Rune Catalog](https://refrakt.md/docs/runes) — Browse all 100+ runes with examples
- [Theme Development](https://refrakt.md/extend/theme-authoring/overview) — Create custom themes with design tokens and CSS
- [CLI Tools](https://refrakt.md/docs/cli) — Inspect runes, generate content with AI, audit CSS coverage
- [Adapters](https://refrakt.md/docs/adapters) — SvelteKit, Astro, Next.js, Nuxt, Eleventy, and plain HTML
- [Plugins](https://refrakt.md/docs/configuration/plugins) — Install, create, and extend plugins
## Contributing
Contributions are welcome! This is an npm workspaces monorepo — build order matters:
```bash
npm run build # Build all packages in dependency order
npm test # Run all tests
```
See [RELEASING.md](RELEASING.md) for the release process.
## License
[MIT](LICENSE)