Tesserae
e‑ink 디스플레이용 무료 오픈소스 대시보드 서버, 브라우저에서 대시보드 구성·프레임 렌더링·MQTT·REST 전송, 자체 호스팅·추적 없음
HTML 컴포넌트와 JSON·Markdown 콘텐츠, TypeScript 렌더러
HTML components, JSON or Markdown content, and TypeScript renderers. Built-in inspection, validation and documentation for developers and coding agents.
개발 도구TypeScript · HTMLGitHub @YASSB-FOSS온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
Static site builder: HTML components, JSON data, Markdown and i18n, with TypeScript renderers. Fast (esbuild), five dependencies, and a CLI coding agents use to inspect and check a site.
README 전체를 불러오는 중입니다.
README 전문 보기 ↗Website and documentation: yassb-foss.github.io
YASSB builds static websites from HTML pages and components, JSON data, Markdown and translation files.
<!-- create-from-data-source="news.json" renderer="newsList" -->.This split makes sites easy to change by hand and by coding agents, which can discover a site with
yassb inspect and verify their changes with yassb check.
Features: components, data-driven blocks, pages generated from Markdown with front matter, multi-language sites
(data-t translation keys), Sass or any CSS pipeline (e.g. Tailwind), TypeScript/JSX browser scripts bundled
with esbuild, a dev server with live reload and an in-browser error overlay.
Five runtime dependencies. Runs on Node.js 20+ and Bun.
npx yassb-web new my-site
cd my-site
npm install
npm run watch # http://localhost:3000
yassb build: every step with its duration, problems with file and line, a summary.
yassb watch: serves the site with live reload and rebuilds only what a change needs, then verifies the warm
build against a clean one.
yassb check: builds and validates the site; exit code 1 on errors.
yassb new and yassb help:
| Command | What it does |
|---|---|
yassb build | Production build into dist/public. --strict, --clean, --out <dir>, --json. |
yassb watch | Build, serve with live reload, rebuild on every change (config and code included). |
yassb serve | Serve the output without building. |
yassb new <name> | Create a project. --styles tailwind|css|bootstrap|pico, --scripts alpine, --deploy github-pages|netlify. |
yassb inspect [query] | What the site is made of (pages, components, data, renderers, directives, translations), with file:line. --json. |
yassb check | Build and validate (directives, data, translations, links, dependencies). Exit code 1 on errors. |
yassb docs [topic] | The complete guide, offline. |
<!-- src/app/pages/index.html -->
<!DOCTYPE html>
<html>
<head>
<!-- component="head.html" -->
</head>
<body>
<h1 data-t="HOME.TITLE">Welcome</h1>
<ul>
<!-- create-from-data-source="news.json" renderer="newsList" options="{"limit":3}" -->
</ul>
</body>
</html>
// builder/renderers.ts, registered in config/default.ts as customRenderers: { newsList }
import { RendererProps } from 'yassb-web';
export function newsList({ source, options }: RendererProps<Array<{ title: string }>, { limit?: number }>): string {
return source.slice(0, options?.limit).map(item => `<li>${item.title}</li>`).join('');
}
docs/guide.md — the complete guide (also yassb docs): structure, pipeline, directives,
renderers, custom directives, i18n, configuration, watch mode, diagnostics, architecture rules, recipes.bun install
bun run test # compile (tsc → dist/) and run the tests
bun run typecheck
Read AGENTS.md first: map of the code, compatibility contract, conventions.
The project website in landing/ is itself a YASSB site: cd landing && bun install && bun run build.
MIT