https://github.com/erudit-js/erudit
π€ CMS for perfect educational sites.
https://github.com/erudit-js/erudit
cms education nuxt self-learning ssg vue web
Last synced: 2 months ago
JSON representation
π€ CMS for perfect educational sites.
- Host: GitHub
- URL: https://github.com/erudit-js/erudit
- Owner: erudit-js
- License: mit
- Created: 2024-11-12T06:32:41.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2026-03-26T12:15:38.000Z (3 months ago)
- Last Synced: 2026-03-27T04:30:17.401Z (3 months ago)
- Topics: cms, education, nuxt, self-learning, ssg, vue, web
- Language: TypeScript
- Homepage:
- Size: 6.92 MB
- Stars: 8
- Watchers: 1
- Forks: 0
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
- License: LICENSE
- Codeowners: CODEOWNERS
Awesome Lists containing this project
README
# Erudit
Erudit is a CMS for perfect community-driven educational sites:
- Content is written in **JSX/TSX** using custom DSL tags like `
`, ``, `` and many more provided by [`@erudit-js/prose`](https://github.com/erudit-js/erudit/tree/main/packages/prose) package and powered by [`tsprose`](https://github.com/Gwynerva/tsprose).
- **Type-safe cross-references** with automatic generation of tables of contents, search indexes, and content dependencies.
- Full **TypeScript power**: variables, functions, type-safe tag props, and more.
- Nuxt-powered **fully static** (no server required) site with **adaptive design** (looks good on both mobile and desktop).
## Minimal Example
Create empty folder, install `erudit` package and run preparation script:
```bash
npm install erudit
npx erudit prepare
```
For a smoother writing experience, I suggest building the project first:
```bash
npx erudit build
```
This command needs to be run **only once!**
Run it again if you change `erudit.config.ts` or after updating the Erudit package.
Thatβs it!
Start writing content in the `content` folder.
You can further customize the project by editing `erudit.config.ts`.
To preview your content changes live, run:
```bash
npx erudit launch
```
This starts a local web server with a live preview of your content at `http://localhost:3000`.
To generate and preview a fully static site, run:
```bash
npx erudit generate
npx erudit preview
```
## Monorepo Structure
- `packages/core` β Erudit types, schemas, tools
- `packages/cli` β CLI for running, building and previewing Erudit projects
- `packages/prose` β custom JSX DSL with collection of default and pluggable elements
- `packages/erudit` β Erudit Nuxt Layer (watches content, builds it and serves site)
## Local Development
1. Fork `erudit-js/erudit` repository to your GitHub account and then clone it to your local device
2. Install [Bun](https://bun.sh/) if you don't have it already
3. Run `bun install` to install dependencies
4. Run `bun build` to build all packages (`core`, `cli`, `prose`, except `erudit` as it is a Nuxt Layer)
Now the project is ready for your edits.
Try out your changes using the playground Erudit project in the `playground` directory.
Commands to control the playground Erudit project (run from the repository root):
```bash
bun play
bun play:prepare
bun play:build
bun play:launch
bun play:generate
bun play:preview
```