Skip to content
Back to skills

Manifest Frontend

ASecurity

Work with Manifest's frontend system — building, serving, dev workflow, debugging, and presets. Use when creating pages, components, debugging frontend errors, or configuring the build.

  • 57 stars
  • 0 votes
  • 0 copies
  • 2 views
  • Added May 31, 2026
toolstypescriptbashreactnodedebugginggitapifrontend

Works with

  • cli
  • api

Security analysis

A100/100

Scanned May 31, 2026

npx -y skills add diegosouzapw/awesome-omni-skill --skill manifest-frontend --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Manifest Frontend?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Manifest Frontend
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/diegosouzapw-manifest-frontend/badge)](https://www.skillsdirectory.com/skills/diegosouzapw-manifest-frontend)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: manifest-frontend
description: Work with Manifest's frontend system — building, serving, dev workflow, debugging, and presets. Use when creating pages, components, debugging frontend errors, or configuring the build.
---

# Manifest Frontend

Manifest has a two-layer frontend system: a **framework layer** (serving + building) and **preset extensions** (starter kits with templates and conventions).

---

## How It Works

The framework layer lives in `manifest/frontend.ts` (~90 lines) and handles three things:

1. **Building** — `Bun.build()` bundles `frontend/` into `dist/` with source maps.
2. **Serving** — `manifest/server.ts` serves `dist/` as a fallback after API routes. API routes always win.
3. **Live reload** — In dev mode, an SSE endpoint at `/__dev/reload` pushes reload events to the browser when files change.

The preset extensions provide the actual frontend code and conventions. Check which one is installed:

```bash
ls extensions/ | grep manifest-frontend
```

| Extension | Stack | Best for |
|-----------|-------|----------|
| `manifest-frontend-static` | HTML + Tailwind + vanilla TS | Content sites, dashboards, simple UIs |
| `manifest-frontend-reactive` | SolidJS + Tailwind | Interactive apps, real-time UIs, client-side state |

**Always read the installed extension's `EXTENSION.md`** for preset-specific guidance (component patterns, routing, API fetching).

> **Tailwind v4 + Bun:** Bun's bundler does NOT run the Tailwind compiler. It inlines `@import "tailwindcss"` but generates zero utility classes. Both presets use `bundleCss: false` + Tailwind CLI via `postBuild` in `config/frontend.ts`. If Tailwind classes aren't rendering, check these two settings first.

---

## Config

Read `config/frontend.ts` before making any frontend changes:

```typescript
export default {
  entryPoint: 'frontend/index.ts',  // or index.tsx for reactive
  outputDir: 'dist',
  sourceMaps: true,                  // always true — agents need source maps
  spaFallback: true,                 // serves index.html for all non-file paths
  devReload: true,                   // SSE live reload in dev mode
}
```

- **`entryPoint`** — `.ts` for static preset, `.tsx` for reactive preset.
- **`spaFallback`** — When `true`, any path that doesn't match an API route or a file in `dist/` serves `index.html`. Set to `false` for multi-page sites.

---

## Dev Workflow

One command does everything:

```bash
bun --hot index.ts
```

The server watches `frontend/` for changes, rebuilds automatically, and triggers a browser reload via SSE. No second process needed.

---

## Adding Pages and Components

**Static preset:** Add `.html` files and `.ts` files in `frontend/`. For SPA routing, handle `window.location.pathname` in TypeScript.

**Reactive preset:** Add `.tsx` files in `frontend/`. Import and compose them in `App.tsx`. SolidJS components are plain functions returning JSX.

**Static assets** (images, fonts, favicons): Put them in `frontend/public/`. They're copied to `dist/` as-is during build.

---

## Building for Production

```bash
NODE_ENV=production bun run build
```

Produces minified output with source maps in `dist/`. The `dist/` directory is gitignored.

---

## Debugging Frontend Errors with Source Maps

When a frontend error appears (error tracker, browser console, logs):

1. **Find the bundled location** — e.g., `dist/index.js:142:18`
2. **Read the source map** — `dist/index.js.map` maps bundled lines back to source files
3. **Locate the original file** — e.g., `frontend/App.tsx:28`
4. **Fix the source file**, not the built output
5. **Rebuild and verify** — `bun run build`

The browser dev tools do this mapping automatically. When debugging from server-side error reports, use the `.map` files manually.

---

## When to Suggest Upgrading

If the user is on the **static** preset and asks for:
- Client-side state management
- Dynamic/reactive UI updates
- Component-based architecture
- Real-time data binding

Suggest installing the **reactive** preset (`manifest-frontend-reactive`). Read its `EXTENSION.md` for install steps.

---

## Quick Reference

| Task | Command |
|------|---------|
| Build | `bun run build` |
| Dev (server + watch + reload) | `bun --hot index.ts` |
| Production build | `NODE_ENV=production bun run build` |
| Check config | Read `config/frontend.ts` |
| Check which preset | `ls extensions/ \| grep manifest-frontend` |

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.