Start here

Last updated on May 07, 2026

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.