app-dev-practices

Guides building, registering, and configuring Fusebase React and Vite apps.

5|2|Updated Feb 9, 2026
One-click install
npx skills add https://github.com/ryan-haver/fusebase-mcp --skill app-dev-practices-ryan-haver
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: app-dev-practices
Source: https://github.com/ryan-haver/fusebase-mcp/tree/main/apps/client-portal-dashboard/.claude/skills/app-dev-practices
Command: npx skills add https://github.com/ryan-haver/fusebase-mcp --skill app-dev-practices-ryan-haver

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Building Fusebase apps involves many platform-specific conventions—scaffolding, Vite configuration, token-based authentication, multi-user state isolation, and CLI registration—that are easy to get wrong without a consolidated reference. ## Core Features & Use Cases - Scaffolding & Project Structure: Enforces fusebase scaffold for canonical React + Vite + Tailwind v4 + shadcn/ui setups, with correct Vite and PostCSS configuration. - Authentication & Multi-User Design: Covers fbsfeaturetoken handling, per-user state isolation, stable partition keys, and 401/session-expiration flows. - Registration & Access Control: Automates fusebase app create with access principals (visitor, org roles) and permission grants. - Use Case: When creating a new client portal app, follow this guide to scaffold the project, configure authentication, register the app with the CLI, and set public or role-based access without hitting common build pitfalls. ## Quick Start Ask the AI to scaffold and register a new Fusebase app following the app-dev-practices guidelines.

Frequently Asked Questions about app-dev-practices

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I create a new Fusebase app?▼

Run `fusebase scaffold --template spa --dir apps/<name>` to generate the canonical React + Vite + Tailwind v4 + shadcn/ui structure, then register it with `fusebase app create` including name, subdomain, path, and build commands.

How do I handle authentication in a Fusebase app?▼

Read the `fbsfeaturetoken` cookie on app load, falling back to `window.FBS_FEATURE_TOKEN`, and pass it via the `x-app-feature-token` header. All apps must handle token expiration through AppTokenValidationError or 401 responses.

Why does my Fusebase app build fail with vite not found?▼

The build fails when npm runs in production mode (NODE_ENV=production), skipping devDependencies like vite and typescript. Fix it by running `npm install --include=dev` before building.

Can I add a css.postcss block in vite.config.ts?▼

No. An inline css.postcss block overrides the external postcss.config.js entirely, silently disabling Tailwind and other PostCSS plugins. Keep PostCSS plugins only in postcss.config.js.

How do I make a Fusebase app public or restrict access by role?▼

Use the `--access` flag with `fusebase app create` or `fusebase app update`. Set `--access=visitor` for public access, or `--access=orgRole:member` with comma-separated roles like guest, client, manager, or owner.

How should per-user data be stored in multi-user Fusebase apps?▼

Store per-user state in httpOnly cookies or dashboard rows keyed by a stable identity like userId, normalized as `user:<userId>`. Never use token-derived keys or shared env vars, since tokens rotate and env vars are global to all users.