Skip to content

app-store: add Firecrawl (io.pilot.firecrawl v0.1.0) - #192

Open
Alexgodoroja wants to merge 2 commits into
mainfrom
app/firecrawl
Open

app-store: add Firecrawl (io.pilot.firecrawl v0.1.0)#192
Alexgodoroja wants to merge 2 commits into
mainfrom
app/firecrawl

Conversation

@Alexgodoroja

Copy link
Copy Markdown
Collaborator

Playbook Step 7 for io.pilot.firecrawl. Companion to pilot-protocol/app-template#95 (merged) and pilot-protocol/pilotprotocol#447 (catalogue).

What this adds

  • Card on /app-store, under Web & Automation
  • App page at /apps/io.pilot.firecrawl and its plain twin at /plain/apps/io.pilot.firecrawl

Both are generated, not hand-written — src/data/apps.ts comes from scripts/gen-apps.mjs, so this feeds the generator rather than editing pages:

file change
scripts/gen-apps.mjs 3 one-line additions: APP_IDS, CATMAP (→ web), ICON_MAP
src/data/app-overrides.json catalogue snapshot for the app
src/data/app-methods.json 51 methods
src/data/app-demos.json the product demo
src/data/apps.ts regenerated
public/appicons/io.pilot.firecrawl.png brand mark

Data provenance

Everything is taken from the catalogue metadata shipped in pilotprotocol#447 — the same bytes the metadata_sha256 pins — so the store page matches what actually installs. Grants are read from the signed manifest, not retyped.

One thing worth noting: gated does not propagate into catalogue metadata.json (its methods[] carries only name and summary), so firecrawl.threat_protection_update is marked gated from pilot.app.yaml, which is authoritative for it. Worth closing that gap in BuildMetadata at some point so the website does not need a second source.

Icon

Firecrawl's flame mark — solid orange on transparency — on a near-black tile (#0b0b0a, fit: contain). Per the playbook's "visible on both light and dark", this is the mark rather than the dark wordmark, and the tile carries its own background so it reads in either site theme.

Checks

npm run check:plain  ✓ 97 required pairs present, no orphans, 45 stamped twins in sync
npm run check:site   ✓ 386 HTML files, 255 public pages, 25,079 internal references
npm run build        ✓ 383 pages

Confirmed generated: /apps/io.pilot.firecrawl.html, /plain/apps/io.pilot.firecrawl.html, and the card on /app-store.html.

apps.ts is 487 insertions, 0 deletions — purely additive, no churn to any other app's record. (lucide-static wanted to rewrite io.pilot.slipstream.svg on regeneration; that was reverted so this PR touches only Firecrawl.)

🤖 Generated with Claude Code

Card on /app-store plus the generated app page at /apps/io.pilot.firecrawl and
its plain twin. Data comes from the catalogue snapshot shipped in
pilot-protocol/pilotprotocol#447, so the page matches what installs.

- 51 methods (the full Firecrawl v2 API surface + help + balance), with
  threat_protection_update marked gated
- product demo carried through to the page and its plain twin
- icon: Firecrawl's flame mark, orange on near-black so it reads on both themes

apps.ts regenerated: 487 insertions, 0 deletions — no churn to other apps.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@github-actions

github-actions Bot commented Aug 3, 2026

Copy link
Copy Markdown
Contributor

🚀 Preview deployed to Cloudflare Pages

The app page was publishing our cost basis with Firecrawl. Removed:
- the micro-USD ledger unit and the '1 credit ~= 830 micro-USD' conversion
- per-operation dollar prices and the $0.0415 budget
- credits_seed / unit=micro_usd in the balance example
- that Pilot runs one shared Firecrawl account and users share a team
  (leaked via the gated reason and the scaffold-generated balance summary)

Published limits are now the user-facing ones: 1000 credits, 2 concurrent calls.

Also pins io.pilot.firecrawl first in the New & Updated shelf, and re-stamps the
plain twin (regen-plain needs GEMINI_API_KEY; the plain app-store page carries no
app list or count, so shelf order cannot change its content - verified).

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant