Generated App
Generate App produces a standalone Vite + React + TypeScript project. The output is the public claim site your recipients visit to check eligibility and claim — not an internal admin tool. Everything it needs is ejected into the workspace, so there is no runtime dependency on the CLI.
What You Get
- Vite + React + TypeScript SPA scaffolding
- Four layout presets in source form —
Centered,Two-Column,Hero Banner,Step Card - Solana wallet integration — Phantom, Solflare, all Wallet Standard wallets
- Eligibility check and claim flow wired to the on-chain airdrop
- CSS custom properties for all theme tokens so the design can be re-themed after generation
CLAUDE.mdandAGENTS.mdfiles in the output, describing safe extension points for AI coding agents such as Claude Code or Cursor
The deployed claim site produced by Generate App, showing the hero, status badge, countdown, stats, and the wallet connect or claim CTA.
Project Structure
my-campaign/
campaign.config.json # Runtime config (brand, network, campaign, ui, content, links)
.bonkit/
workspace.json # Studio workspace — reopen to re-edit
export-manifest.json # Generation record (timestamp, layout, network, claim mode)
package.json # Standalone Vite project
vite.config.ts
tsconfig.json
index.html
.env.example # VITE_RPC_URL, VITE_SITE_URL
README.md
CLAUDE.md
AGENTS.md
src/
App.tsx # Top-level component bound to the selected layout
main.tsx # React DOM mount
theme.ts # Baked theme tokens
layout-config.ts # Baked layout config
styles.css
layouts/ # Ejected layout sources (all four presets)
components/ # UI primitives + wallet components
hooks/ # useAirdrop and related hooks
lib/ # airdrop-client, transaction builders, utilities
public/ # Hero images and other assets extracted from the studioRe-editing
Reopening the workspace restores the studio state.
airdrop-studio ./my-campaignThe studio reads .bonkit/workspace.json, rehydrates every section, and lets you regenerate the app with updated settings.
The on-chain airdrop state survives regeneration. You do not need to recreate the airdrop to change layout, theme, or copy.
Theming the Generated App
The generated app uses CSS custom properties for every token. You can re-theme without touching React components:
:root {
--color-primary: /* your value */;
--color-surface: /* your value */;
--radius-md: /* your value */;
}The studio bakes initial values into src/theme.ts. After generation, src/styles.css and the :root block are the source of truth.
Extending with AI Coding Agents
The generated project includes:
CLAUDE.md— instructions tuned for Claude CodeAGENTS.md— general-purpose agent instructions (Cursor, Cline, etc.)llms.txt— project summary for LLM context
These files describe the safe extension points (layouts, components, hooks) and the parts that should not be modified (wallet provider, airdrop client). An agent can add features like new eligibility copy or custom sections without touching the claim transaction path.
Essential Features
A few features are not optional and cannot be hidden:
Connect Wallet— the entry point for the claim flowEligibility— determines whether a wallet is in the recipient listClaim— signs and submits the claim transaction- Schedule-driven state — the Claim button is automatically disabled before the start date and after the end date
Next Step
Continue to Deploy to host the generated app.