Supports multiple content formats including knowledge cards, articles, slides, announcements, courses, and product showcases
monakit — Astro Starter Template
By monakit
MonaKit is an Astro-based multi-format content platform template that supports knowledge cards, articles, slide presentations, announcements, courses, and other content types.
Explore the design
Compare the page layouts and mobile experience. Open any screenshot for a closer look.
Actual screenshot captured by the server browser.
All pages & views 3
Screenshots show visual appearance; interactive behavior may differ.
What stands out
A quick read of the recorded project description.
Slides are based on reveal.js and support Mermaid diagrams and math formulas
Built-in Pagefind full-text search, RSS feeds, dynamic OG images, and sitemap
Courses support chapters, volumes, and slide chapters, with optional Cloudflare Stream video integration
Uses Astro content collections; content is written in Markdown/MDX and organized by year/month
Provides Biome linting and formatting scripts, plus build analysis commands
Template Details
MonaKit is a multi-format content platform template built with Astro, aimed at scenarios that need to publish multiple content forms at once. It unifies knowledge cards, long-form blog posts, reveal.js slides, announcements (Doodles), courses, and product/link showcases (Creations) into the same set of content collections. Content is written in Markdown/MDX and organized by year/month subdirectories, while courses are organized separately by course-id.
The template includes full-text search (Pagefind), RSS feeds, dynamic OG images, and a sitemap, and supports integrating video for course chapters and trailers via Cloudflare Stream. Course structure is defined by toc.md, which specifies metadata and chapter order; chapter files are sorted by numeric numbering. A chapter can be turned into reveal.js slides via the theme field in frontmatter, and standalone slide assets can be embedded in MDX using <Slide id="slug" />.
Usage limitations: The video feature depends on Cloudflare Stream, requiring you to generate signing keys and configure the relevant environment variables; CLOUDFLARE_ACCOUNT_ID and CLOUDFLARE_API_TOKEN are only used when running the key generation script and are not involved at runtime. Product showcase data comes from src/assets/creations.json. The code is under the MIT license, but third-party assets such as demo images, fonts, and icons need separate license verification, and external services such as domains and hosting may incur costs.
Is it right for your project?
Use Cases
- Building a personal knowledge base that publishes articles, knowledge cards, and slide presentations together
- Creating an online course site with chapter structure and optional video
- Publishing product and link showcase pages, along with announcements to record changelogs
- Static content sites that need full-text search, RSS, and dynamic OG images
Suitable For
- Front-end developers familiar with Astro and Markdown/MDX content collections
- Creators or teams that need to mix multiple content formats within one site
- Projects planning to use Cloudflare Stream to host course videos
Getting started & customization
Use these recorded setup notes alongside the repository instructions for your chosen version.
- 1
Initialize the project using the npm create astro@latest command and specifying the monakit/monakit template
- 2
After installing dependencies, copy .env.example to .env and configure at least SITE_URL
- 3
If course videos are needed, run scripts/generate-stream-key.ts to generate keys and fill in the Cloudflare Stream-related environment variables
- 4
During build, pnpm build automatically generates the search index; you can also run pnpm build:search-index separately
- 5
Third-party assets such as demo images, fonts, and icons need to be checked against their respective licenses; do not judge solely based on the MIT license
License & source material
Usage conditions & limitations
Free to use · keep license noticeThis entry covers the free version under the MIT license in the public repository; the free scope is the code of this version and does not mean external services or third-party assets are free.
Must comply with when using
- Allows free use, modification, commercial use, and distribution of this version's code.
- When distributing copies or substantial portions of the code, retain the original author's copyright notice and the full MIT license notice.
- The code is provided as is; warranties and limitations of liability are governed by the original license and applicable law.
Additional costs & items to verify
- Demo images, fonts, icons, and other third-party assets need to be checked against their respective licenses; do not judge solely based on the code's MIT license.
- External services such as domains, hosting, databases, payments, or AI may incur additional charges.
- The course video feature is optional and requires generating your own signing key pair and configuring Cloudflare Stream-related environment variables to enable.
- Using the video feature requires providing credentials such as Cloudflare account ID, API Token, Stream customer code, and signing key, which are external service dependencies.
- The Cloudflare account ID and API Token are only needed when running the key generation script and are not involved at runtime.
View Original Text Basis
Permission is hereby granted, free of charge
Original License Text
To enable video in courses, generate a signing key pair and set the following env vars
Original README
CLOUDFLARE_ACCOUNT_ID= CLOUDFLARE_API_TOKEN= CLOUDFLARE_STREAM_CUSTOMER_CODE= CLOUDFLARE_STREAM_KEY_ID= CLOUDFLARE_STREAM_PRIVATE_KEY=
Original README
https://github.com/monakit/monakit/blob/main/LICENSEhttps://github.com/monakit/monakit/blob/main/README.mdCLOUDFLARE_ACCOUNT_ID` and `CLOUDFLARE_API_TOKEN` are only needed to run the key generation script
Original README
Compiled by DeepSeek based on repository license and README ·2026-10-04. Results only cover the materials read; dependencies, images, fonts, and subsequent term changes are subject to their respective original texts.
Project checks & description sources
Template Information
- Source platforms
- Astro Themes
- Documentation and maintenance reference score
- More documented · 87 / 100
- Technologies
- Astro
- Website type
- Starter
How this score is calculated
Our heuristic uses license records (up to 30), a demo link (12), a preview (10), stars (15), recorded maintenance (15), description completeness (8), feature records (5) and classification data (5). It is not a code, security or performance test, or a Google score. A link does not establish tested functionality.
What to verify for this project
- Repository update recorded
- 2026-05-20
- Screenshot last checked
- 2026-10-04
A demo link is listed. Check it with your own content and viewport sizes; its presence does not confirm that forms, authentication or payments work.
The catalog identifies Astro as the primary stack. Check the actual dependency manifest and lockfile for versions and hosting requirements. These notes use recorded metadata, not a code audit or a deployment test.
Use a selection guide →How this description was prepared
AI-assisted description based on catalog records and repository material. Repository authors are not automatically the reviewers of this description.
Review declaration: [email protected] · 2026-10-04
Inspect the recorded source material
SHA-256: bf15ecab707ada887e31a66c3fd78967b86f6e37d34ca15072fa596e05e3fc86
2026-10-04T04:51:10.771Z
Source file / repository# MonaKit
Multi-format content platform built with Astro, featuring knowledge cards, articles, presentations, announcements, and courses.
## Features
- **Knowledge Cards** - Research summaries with customizable themes
- **Articles** - Long-form blog content
- **Slide Presentations** - Interactive reveal.js presentations with Mermaid and math support
- **Doodles** - Release logs and announcements
- **Courses** - Structured learning with chapters, parts, and slide chapters
- **Video** - Course video support via Cloudflare Stream
- **Search** - Full-text search with Pagefind
- **Creations** - Product and link showcase
- **RSS Feed** - Auto-generated feed for blogs
- **OG Images** - Dynamic Open Graph image generation
- **Sitemap** - Auto-generated sitemap
## Tech Stack
- Astro 6 (SSR, Vercel adapter)
- React 19
- TailwindCSS 4
- Reveal.js
- Pagefind
- Biome (lint + format)
## Quick Start
```bash
npm create astro@latest my-astro-project -- --template monakit/monakit
```
## Development
```bash
pnpm install
cp .env.example .env
pnpm dev
```
### Available Scripts
```bash
pnpm dev # Start dev server
pnpm build # Production build (auto-builds search index)
pnpm preview # Preview production build
pnpm build:search-index # Build search index manually
pnpm build:analyze # Build with bundle analyzer report
pnpm check # Type check and lint
pnpm fix # Auto-fix issues
pnpm format # Format files with Biome
```
## Content Structure
```
src/content/
├── cards/ # Knowledge cards (Markdown/MDX)
├── blogs/ # Blog articles (Markdown/MDX)
├── slides/ # Presentations (Markdown/MDX)
├── doodles/ # Announcements (Markdown/MDX)
└── courses/ # Courses (Markdown/MDX)
└── <course-id>/
├── toc.md # Course metadata + chapter order
├── 01-chapter.md # Chapter file (text or slide)
└── slides/ # Slide resources (embedded in chapters)
```
Content organized by `year/month` subdirectories, except courses which are organized by `course-id`.
## Courses
Each course lives in `src/content/courses/<course-id>/`:
- **`toc.md`** — course metadata (`title`, `description`, `pubDate`, `structure`, optional `video` for course trailer) and optional intro body
- **`NN-slug.md`** — chapter files, numbered for ordering; add `theme:` frontmatter to make a chapter a reveal.js slide
- **`slides/`** — standalone slide resources that can be embedded in chapter `.mdx` files via `<Slide id="slug" />`
Chapters can optionally include video via Cloudflare Stream. See [MonaKit in Action](https://www.mymona.xyz/courses/monakit-in-action) for a full walkthrough.
### Cloudflare Stream (optional)
To enable video in courses, generate a signing key pair and set the following env vars:
```bash
# Generate KEY_ID and PRIVATE_KEY (only needed once)
npx tsx scripts/generate-stream-key.ts
```
```env
SITE_URL=https://yourdomain.com
# Cloudflare Stream (optional — for video chapters and course trailers)
CLOUDFLARE_ACCOUNT_ID=
CLOUDFLARE_API_TOKEN=
CLOUDFLARE_STREAM_CUSTOMER_CODE=
CLOUDFLARE_STREAM_KEY_ID=
CLOUDFLARE_STREAM_PRIVATE_KEY=
```
Note: `CLOUDFLARE_ACCOUNT_ID` and `CLOUDFLARE_API_TOKEN` are only needed to run the key generation script — they are not used at runtime.
## Product Data
All creations data is defined in `src/assets/creations.json`.
Explore similar templates
Compare previews and descriptions within the same stack and category.

astrowind
AstroWind is a free, open-source Astro starter theme using Astro and Tailwind CSS, released under the MIT license.
Astro · Blog
accessible-astro-starter
An accessibility-focused Astro 6 starter template with WCAG 2.2 AA practices, Tailwind CSS 4, TypeScript, Prettier, ESLint, form validation, blog and portfolio examples, and preference toggles for dark mode, high contrast, and reduced motion.
Astro · Blog

astro-erudite
astro-erudite is an opinionated, unstyled static blog template built with Astro and native CSS, with no UI or CSS framework and minimal dependencies.
Astro · Portfolio

astro-shopify
A lightweight Shopify headless ecommerce starter template built with Astro and Svelte, integrating the Shopify Storefront API for product and inventory data, with built-in cart state management and basic add-to-cart and checkout flow.
Astro · E-commerce

brutal
Brutal is a neobrutalism Astro starter theme from ElianCodes, derived from the author's personal site and generalized. It includes a Markdown blog collection, build-time RSS and sitemap, image optimization, Tailwind CSS styling, and Biome checks, with no JavaScript by default.
Astro · Starter

qwind
Qwind is a free and open-source website template built on Qwik and Tailwind CSS, featuring directory-based routing via QwikCity, a Markdown blog, dark mode, and static deployment configuration.
Astro · Tool Site
