Skip to content
Back to skills

Journey Frontend

ASecurity

Use as the frontend build stage of the Butterbase journey. Implements the Frontend section of 02-plan.md by delegating to deploy-frontend. Scaffolds (if needed) and deploys via create_frontend_deployment + manage_frontend (start_deployment). Sets VITE_API_URL and VITE_APP_ID env. Skipped if the plan is API-only.

  • 533 stars
  • 0 votes
  • 0 copies
  • 2 views
  • Added June 1, 2026
ai-agentsgonextjsapifrontend

Works with

  • cli
  • api
  • mcp

Security analysis

A92/100
  • mediumInstalls packages at runtime which could introduce malicious dependencies

Pro shows the line behind each finding and how to fix it

Scanned June 1, 2026

npx -y skills add butterbase-ai/butterbase-skills --skill journey-frontend --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Journey Frontend?

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

Security grade badge for Journey Frontend
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/butterbase-ai-journey-frontend/badge)](https://www.skillsdirectory.com/skills/butterbase-ai-journey-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: journey-frontend
description: Use as the frontend build stage of the Butterbase journey. Implements the Frontend section of 02-plan.md by delegating to deploy-frontend. Scaffolds (if needed) and deploys via create_frontend_deployment + manage_frontend (start_deployment). Sets VITE_API_URL and VITE_APP_ID env. Skipped if the plan is API-only.
---

# Journey: Frontend

Stage 3j of the guided journey. Build (or adopt) and deploy the frontend.

## When to use

- Dispatched by `journey` when `current_stage: frontend`.
- Directly via `/butterbase-skills:journey-frontend`.
- Skipped (annotated `(n/a)`) if `frontend_stack: none` in `00-state.md`.

## Preflight

If `docs/butterbase/03-preflight.md` is missing, older than 24 hours, or `00-state.md` has `app_id: null`, invoke `butterbase-skills:journey-preflight` first. Wait for it to return successfully before proceeding.

## Inputs

- `docs/butterbase/02-plan.md` — the Frontend section.
- `docs/butterbase/00-state.md` — for `app_id`, `api_base`, `frontend_stack`.

## Procedure

0. **Refresh docs.** Call `butterbase_docs` with `topic: "frontend"`. For framework-specific deploy patterns, also WebFetch `https://docs.butterbase.ai/frontend`. Skip if cache is fresh.

### Use `@butterbase/sdk`

Any frontend that talks to the deployed Butterbase app should use `@butterbase/sdk`:

- Install: `npm install @butterbase/sdk` inside the frontend project.
- Initialize: `import { createClient } from '@butterbase/sdk'; const bb = createClient({ apiUrl: import.meta.env.VITE_API_URL, appId: import.meta.env.VITE_APP_ID });`
- Auth: `bb.auth.signInWithOAuth({ provider: 'google' })`, `bb.auth.signOut()`, `bb.auth.getSession()`.
- Data: `bb.db.from('posts').select('*').eq('user_id', userId)`.
- Storage: `bb.storage.upload(file)`, persist the returned `object_id`, resolve download URLs via the SDK at render time.
- Realtime: `bb.realtime.from('posts').on('insert', cb).subscribe()`.

Do NOT hand-roll `fetch()` against the REST API in a Butterbase frontend — the SDK handles auth headers, presigned URL refresh, realtime reconnection, and type-narrowing. The MCP tools are not for runtime code.

For framework-specific patterns (Next.js Server Components, SvelteKit load functions, etc.), call `butterbase_docs` with `topic: "sdk"`.

### Build and deploy

1. Read the Frontend section and `frontend_stack` from `00-state.md`. Print: `"About to deploy a <stack> frontend for app_id <id>. Proceed?"`. Wait for `yes`.
2. Invoke `butterbase-skills:deploy-frontend` via the Skill tool with the frontend spec, `app_id`, and `api_base`. The wrapped skill scaffolds (if no `package.json` exists in `./web` or chosen path), sets `VITE_API_URL` and `VITE_APP_ID`, builds, calls `create_frontend_deployment`, then `manage_frontend action: start_deployment`.
3. Capture the live URL from the response. Show it to the user.
4. Append one line to `docs/butterbase/04-build-log.md`:
   `<ISO timestamp>  frontend  manage_frontend  <live-url>  ok`
5. Also write the live URL into a new `deployed_url:` field in `00-state.md` front-matter.
6. Tick `- [x] frontend` in `00-state.md`, set `current_stage: deploy`.
7. Return to `journey` orchestrator (or ask `"Continue to deploy verification? (yes/no)"`).

## Outputs

- Live deployed frontend URL.
- `deployed_url:` in `00-state.md`.
- One line in `04-build-log.md`.

## Anti-patterns

- ❌ Forgetting to set `VITE_API_URL` and `VITE_APP_ID` — frontend will load blank.
- ❌ Wrong MIME types — let `deploy-frontend` handle the bundling; do not hand-roll.

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.