Start here
Firestruct is a native Firebase workspace for macOS. It connects to Firebase projects and emulators, lets users inspect
and manage Firestore/Auth/Storage data, and adds guarded workflows for tasks such as imports, exports, transfers, push
testing, seeding, migrations, and point-in-time recovery.
Start Here
- Foundation and App Shell: workspace layout, tabs, split view, output modes, feature flags, and command palette.
- Project Registry: linking projects, selecting environments, emulator setup, read-only mode, and local project state.
- Firestore: queries, JS scripts, table/tree/json/log views, CRUD, imports, exports, transfers, backups, and schema
tools.
- Auth: user search, filtering, editing, custom claims, bulk actions, import/export/transfer, scripts, and
Auth-to-Firestore linking.
- Storage: bucket browsing, upload/download/delete, URL actions, thumbnails, and profile photo integration.
- Push: FCM payload validation, token resolution, and send results.
- PITR Recovery: current vs historical Firestore document diff and guarded restore.
- Index Advisor: missing-index explanation, index comparison, and remediation helpers.
- Seed Studio: deterministic fixture generation, snapshots, and drift comparison.
- Tasks: queue, progress, counters, errors, and retry visibility for long-running work.
- Migrations: Fireway file and Firestore migration status inspection.
- Workspace Link: local Firebase workspace link, rules/index viewing, diffing, and deploy flows.
- Support: in-app Chatwoot support.
- Purchases and Pro Access: entitlement model and gated actions.
Every module also has a cli.md page. CLI support currently covers project selection, module selection, Firestore
query/create/update/delete commands, and broad Auth administration including list/search/create/update/delete, bulk
enable/disable, import/export/transfer, and local Auth scripts.
Basic Concepts
Project: a local link to a Firebase or emulator target. Firestruct stores display name, Firebase project ID,
environment, read-only status, emulator endpoints, selected Firestore database, color tag, and module settings.
Environment: the target type: emulator, development, or production. Production mutations and deploys require explicit
confirmation.
Module: a workspace area such as Firestore, Auth, Storage, Tasks, or Index Advisor. GUI modules open in tabs and may
expose output modes.
Output mode: a result view such as TABLE, TREE, JSON, LOGS, or Storage BROWSER.
Task: a queued long-running operation with status, progress, counters, duration, errors, and retry controls.
Read-only project: a project guardrail that blocks writes and destructive actions.
Pro-gated action: a paid capability such as writes, deletes, imports, exports, uploads, deploys, scripts, transfers, and
saved local workflows.
Simple query: a Firestore query built from path, filters, ordering, and limit.
JS Query / script: a local JavaScript run() workflow with Firebase Admin context, structured results, and captured logs.
Workspace link: a local Firebase repo association using files such as firebase.json and .firebaserc.
Safety Defaults
- Show target project and environment before every mutation.
- Require explicit confirmation for production writes, destructive operations, deploys, seed applies, migration
applies, and push sends.
- Validate same-project move and rename paths before running.
- Make overwrite behavior visible before confirmation.
- Run long imports, exports, transfers, deploys, seeds, migrations, and recursive mutations through Tasks.
- Keep credentials and Firebase data local to the user's machine.