Firebrande documentation

Firebase operations, under control.

Firebrande gives teams a safer, clearer workspace for managing Firebase projects, data, storage, functions, and operational changes.

Firebrande
A clear workspace for safer Firebase operations.

Getting started

Getting a team from zero to a working Firebase project inside Firebrande is four steps: create an account, start a plan, connect Google and a Firebase project, then open a workspace tool. Each step below shows the actual screen you'll see, in order.

Before you start

  • A Google account that already has Owner, Editor, or a role with Firebase access on the project(s) you want to manage. Firebrande only discovers projects that account can already see.
  • A card for checkout — every plan starts with a 14-day trial, but Stripe requires a payment method up front to start it.
  • A modern browser (Chrome, Edge, Firefox, or Safari). No local install, CLI, or service-account key is required to get started.
  • If you're inviting teammates later, decide who should hold the owner role — it's the only role that can transfer ownership or move projects between teams.
01

Create your account

From the homepage, select Start 14-day trial (new account) or Sign in (existing account). Sign-in is handled by Clerk and supports Google sign-in as well as email and password. Creating an account automatically creates a personal team with you as its owner — there's no separate "create a team" step.

02

Start a plan

A brand-new team has no active subscription, so Firebrande routes you straight to Plans & billing after your first sign-in. Pick Solo, Pro, or Team and start the trial; every other workspace stays gated behind this step until the team has a trialing or active subscription.

03

Connect Google and a Firebase project

Open Team in the sidebar and authorize the Google account that owns your Firebase project. Firebrande lists every Firebase project that account can see and hasn't already connected — pick one and select Connect.

04

Open a workspace

Back on the workspace home, the sidebar now lists Firestore, Authentication, Storage, Functions, SQL Connect, and Intelligence for the connected project. Pick one to start browsing data, reviewing users, or shipping a change.

Step 1 — Create your account

The signed-out homepage is where every new user lands. Start 14-day trial opens sign-up; Sign in is for a returning account. Both use the same Clerk-hosted authentication card shown below, which supports Google sign-in alongside email and password — Firebrande itself never sees or stores your Google password.

Firebrande signed-out homepage with the Operate Firebase, Keep control hero, feature grid, and Solo, Pro, and Team pricing cards
The signed-out homepage: product overview, capability highlights, and the three starting plans.
Firebrande sign-in page with a branded panel on the left and a Clerk-hosted sign-in card on the right
Sign in with Google, or with email and password — the same card handles both sign-in and sign-up.

Step 2 — Start a plan

Signing up creates your personal team automatically, but that team starts with no subscription. Firebrande's server-side gate sends any signed-in user without an active or trialing subscription to Plans & billing before it will open any other workspace — the only two routes it lets through unpaid are /billing itself and /teams, so you can always reach billing or check team membership. Choose Solo, Pro, or Team and start the trial from the plan card; Stripe hosts the actual checkout.

See Billing and entitlements for the full plan comparison and screenshot.

Step 3 — Connect Google and a Firebase project

With an active plan, open Team from the sidebar. The first time through, authorize Google access when prompted — Firebrande needs this to discover which Firebase projects your account can see. Once connected, every discoverable, not-yet-claimed project appears in the Connect Firebase projects panel; select one and choose Connect to bring it into the team.

See Connect a project for the full panel walkthrough, environment tagging, and the screenshot.

Step 4 — Open a workspace

Back on the workspace home (select the Firebrande logo, or Dashboard in the sidebar), the connected-project count in the header confirms the project is live, and the Workspace tools grid becomes the jumping-off point for Firestore, Functions, Storage, Team, Gemini, Community, and Billing. The left sidebar mirrors the same tools for every page you visit afterward.

Firebrande workspace home showing the sidebar, connected project count, team pulse panel, and the workspace tools grid
Workspace home once a project is connected: sidebar navigation, connected-project status, and the workspace tools grid.
Launch note

This documentation is the starting point for the public product guide. The repository also contains a deeper operations guide for teams running production-sensitive workflows.

Connect a project

Project connections live on the Teams page, scoped to whichever team you have selected in the sidebar. Owners and admins see a Connect Firebase projects panel listing every Firebase project Google discovers for the signed-in account that this team hasn't claimed yet. Pick one and select Connect to bring it into the workspace; a capacity badge in the panel header (for example 1 projects · team) tracks usage against the plan limit, and the connect button disables itself once the team is at capacity.

If Google access has expired, the panel shows Reconnect Google to discover Firebase projects instead of a list — sign in again from the account menu to refresh discovery. If nothing is missing but a project still won't show up, confirm the signed-in Google account can see that project in the Firebase console itself; Firebrande can only discover projects the connected account already has access to.

Connect

Choose a Google-discovered project from the list and confirm. It joins the team immediately and counts against plan capacity.

Set environment

Mark each connected project Development, Staging, or Production, give it a color tag, and optionally lock it read-only from the Environment safety panel.

Disconnect

Remove a project from the Firebase projects list when a team no longer manages it. This revokes Firebrande access only — it never deletes Firebase data.

Keep environments separate

Connect development and production projects as distinct projects. Check the active project before every write, migration, deployment, or policy change.

Teams workspace showing the Connect Firebase projects panel, members, environment safety, and GitHub repository access
The Teams page: connect Firebase projects, set environment safety, manage members, and link GitHub repositories in one view.

Connecting a project whose ID follows the common -dev/-staging/-prod naming pattern does two things automatically: it tags the project's environment to match, and it groups it with any other connected project that shares the same base name — so acme-app-dev and acme-app-prod land together under acme-app in the Firebase projects list below, instead of two unrelated rows. A group missing an environment shows a direct nudge (for example Missing Staging) rather than staying silent about it — the same one-project-per-environment setup Firebase's own documentation recommends, made visible instead of left to remember.

Firebase projects list grouped by app, showing a group with dev and production projects and a Missing Staging nudge
Projects sharing a naming pattern group automatically, with a nudge for whichever environment isn't connected yet.

What Firebrande manages

Six Firebase and Google Cloud surfaces, one workspace. Every card below links to the full walkthrough, screenshots included.

Common workflows

Review Firestore data

Select a project, open Firestore, choose a collection, and inspect documents. Use the query builder for filtered reads; preview bulk changes before applying them.

Move or transform data

Start from the Firestore jobs area, choose an export, import, transfer, or migration operation, and review its status and failures. Use a development project to rehearse the operation first.

Deploy Functions

Connect the project repository, review the deployment setup, confirm the required permissions, and inspect the deployment audit and monitoring views after release.

Ship SQL Connect changes

Inspect the service schema, select a repository, compare source, run verification, and complete the explicit approval step before deploying.

Firestore

Firestore is the data workspace for browsing collections, querying documents, editing nested values, designing starter schemas, writing and auditing scripts, and running durable data jobs. Always confirm the active project and collection path before a write.

The Active projects bar pins which connected project the workspace is reading and writing against — every tab underneath stays scoped to it. Open a tab and use the collection picker to choose a path (including nested subcollections like customers/customer-001/events), then reach for Query, New, Export, Import, or Transfer from the workspace toolbar. Add Tab keeps several collections open side by side so you can compare data without losing your place.

Firestore workspace showing the active project bar and collection tab toolbar
The Firestore workspace: active project context, tabs, and the Query, New, Export, Import, and Transfer toolbar.
01

Explore

Open collections, documents, subcollections, statistics, indexes, and saved queries.

02

Query

Filter and order results, use collection-group queries, count matches, and inspect explain metrics.

03

Change

Edit documents, queue filtered bulk work, import or export data, and monitor durable jobs.

04

Transfer

Copy selected collections and optional subcollections to one or more destination projects with checkpoints.

Firestore collection picker listing customers, events, and orders with live document counts
The collection picker lists every collection and nested subcollection with a live document count, searchable as the project grows.
Transfers are copies, not an automatic rollback

Review source, destination, collection paths, document limits, subcollection inclusion, and overwrite behavior before starting. Validate counts and sample documents in every destination.

Generate code and run scripts

Every document has a code panel: open any row and its detail view adds four Develop tabs — Code, Client Code, Schema, and Subcollections — next to the read-only Firestore and Fields & Tree views and the Editable JSON tab. Nothing here writes to the document; every tab reads the document you already opened and generates code from it.

Code

A runnable server/client SDK example for this exact document: pick Web JavaScript, Admin Node.js, or Python Server, then Read, Create / replace, or Update fields. Copy or download it as-is, install command included.

Client Code

A ready-made UI form for the document's fields, generated in Vanilla JS, React, or Vue. Switch the language from one dropdown; toggle Code and Preview to see the same form actually rendered in the browser.

Schema

The document's inferred TypeScript document model — a copyable interface mapped to real Firebase SDK types (string, number, Timestamp, GeoPoint, Bytes, DocumentReference).

Firestore document Code tab showing an executable Web JavaScript SDK example with SDK and Intent selectors
The Code tab: an executable Firestore SDK example, switchable between Web JavaScript, Admin Node.js, and Python Server.
Firestore document Client Code tab showing a generated React form component with a language selector for Vanilla JS, React, and Vue
Client Code in React — the same generator also outputs Vanilla JS and Vue from the language dropdown.
Firestore document Client Code tab Preview showing the generated React form actually rendered with Name, Status, Seats, and Region fields
Preview renders the generated form for real, so you can check field names and types before copying any code.
Firestore document Schema tab showing an inferred TypeScript interface with string, number, and other typed fields
Schema: the document's shape as a TypeScript interface, imports and all.

Scriptlets

For anything beyond a single document, the Scriptlets drawer is a small script runtime scoped to the active project — open it from the terminal icon in the bottom-right corner of any Firestore tab. Write JavaScript or TypeScript against a provided ctx (db, projectId, collection), then Run current to execute a draft immediately or Save draft / Save as new… to keep it. Library lists every script saved with team visibility so a working script becomes something the whole team can reuse, and History keeps every prior version alongside its run log — each run recorded with a success, error, or pending status — so a script's behavior stays auditable, not just its code.

Scriptlets drawer showing a JavaScript draft that queries the customers collection, with Format, Library, History, Save draft, and Run current controls
The Scriptlets drawer: a project-scoped script editor with drafts, a team library, and an audited run history.
Scripts are privileged operations

Start with a read-only script, review the generated or hand-written code line by line, and save an audited version before repeating it. A script runs with the same project access as the workspace itself — treat it like any other write path, not a sandbox.

AI can help you write it — it can't run it for you

Ask Firebrande is available from every screen in this workspace, including the code panel and the Scriptlets drawer — it's the same project-grounded Gemini assistant described under Intelligence. Ask it to explain a generated snippet, draft a query for the Scriptlets editor, or spot a mistake in a form field, then copy what it gives you into the editor yourself. It has read-only project context, can't edit or execute a script directly, and any operational action it proposes elsewhere still lands in the Action review queue for a human to approve — never applied automatically.

Authentication

The Authentication workspace manages Firebase Authentication identities for the selected project. Search by email, phone number, or user UID, then review account status, providers, verification, activity, MFA factors, and custom claims before taking action.

The user table shows providers, verification status, and last sign-in for every account, with filters for status, recent activity, and linked providers. Current page loads results a page at a time; Load all pulls the full project for bulk filtering. Create user opens a form for a new identity, and selecting a row opens its detail drawer for edits. The toolbar also holds Export, Import, and Transfer for moving users between projects, Operations for job history, and Settings, Scripts, and saved View configurations for the table itself.

Authentication workspace showing the users table with providers, status, and last sign-in, plus search and bulk-action toolbar
The Authentication workspace: search and filter users, then export, import, transfer, or run bulk operations from the toolbar.

Manage an account

Create users and update email, phone, display name, photo URL, verification state, disabled state, password, and custom claims.

Secure an account

Send verification or password-reset email, revoke existing sessions, and inspect linked providers and MFA information.

Move user data

Preview CSV or JSON imports, export displayed users, and queue project-to-project transfers with the target reviewed carefully.

Authentication changes are user-impacting

Verify the project and user UID before editing. Deleting users, disabling accounts, revoking sessions, changing claims, or unlinking providers can immediately change access to your application.

Safe Authentication workflow

  1. Confirm the active Firebase project and locate the user using a stable identifier.
  2. Review providers, verification, disabled status, recent sign-in, MFA factors, and claims.
  3. Choose the smallest action that solves the problem and record the reason.
  4. For bulk actions, filter first, review the selected count, and type the exact confirmation phrase.
  5. Refresh the user or review the operation job and audit entry after the change.

SQL Connect and data modeling

SQL Connect combines a PostgreSQL-backed data model with GraphQL operations and generated Firebase SDKs. Start with the service inventory, select a service, and use the workspace stages to move from modeling to controlled delivery.

01

Model

Review GraphQL source files, tables, fields, relationships, and connector configuration.

02

Authorize

Inspect authorization findings and confirm each query or mutation has the intended access behavior.

03

Test

Run query operations, save reusable contract tests, and exercise the authorization matrix.

04

Deliver

Compare source, validate migration risk, generate SDK artifacts, and deploy only after approval.

SQL Connect schema workspace showing the calories service and Meal table fields
SQL Connect keeps service inventory, schema fields, and authorization work in one project-scoped view.
Model changes are source changes

Editing the displayed GraphQL draft does not change the live database. Commit a reviewable change to the configured repository, inspect the migration preview, validate the complete workspace, and then promote it through the intended environment.

The Operations workspace distinguishes query reads from mutation writes. Queries can be used for verification and contract tests. Mutations require explicit confirmation and should be followed by a read that verifies the persisted result. Generated SDKs are repository artifacts; check their configured platform, package, output directory, and commit before shipping them.

Functions

The Functions workspace brings source, GitHub delivery, deployments, logs, secrets, packages, metrics, and incidents together for each selected Firebase project. Use it as a release loop: configure the source, make a reviewable change, deploy through GitHub Actions, then observe the result.

01

Configure

Connect GitHub, select the repository and branch, and confirm the Functions root, source directory, and entry point.

02

Develop

Work on a branch, inspect source and packages, keep manifests and lockfiles synchronized, and review the diff.

03

Deploy

Use repository-restricted OIDC and a protected GitHub environment to run the deployment workflow without service-account keys.

04

Observe

Inspect deployment properties, logs, invocations, errors, latency, alerts, and open incidents after release.

Deployment is separate from development

Package changes run on a work branch and commit package manifests after validation. Deploying Functions remains a separate, reviewed action against the selected Firebase project.

Selecting a deployed function opens its Overview, showing timeout, memory, ingress settings, update time, version ID, runtime, entry point, and its HTTPS or event trigger at a glance. Logs, Metrics, and Source sit next to it as tabs on the same function, and Open Google Cloud jumps to the matching Cloud Console page when you need controls Firebrande doesn't surface directly.

Functions workspace showing a deployed function's overview with timeout, memory, runtime, entry point, and event trigger
A function's Overview tab: deployment configuration, trigger details, and quick links to Logs, Metrics, Source, and Google Cloud.

For GitHub Actions setup, use Workload Identity Federation (OIDC) restricted to the intended repository. Configure the firebase-functions environment with the generated provider and service-account variables, add required reviewers in GitHub when supported, and verify the workflow run before treating a release as complete. Never add a service-account JSON key to the repository.

Storage

The Storage workspace manages Firebase Storage buckets and objects without hiding the underlying Google Cloud controls. Browse paths, upload files, inspect versions, update metadata, manage access, configure retention and lifecycle, and monitor folder operations from the selected project.

01

Browse

Select a bucket, navigate folders, search objects, and inspect current, versioned, or soft-deleted data.

02

Operate

Upload, download, preview, rename, move, create folders, edit metadata, and manage object holds.

03

Protect

Review IAM, ACLs, rules, public access prevention, retention, versioning, lifecycle, and managed-folder policies.

04

Recover

Use generations, restore, rewrite, durable folder jobs, previews, and audit history to make changes traceable.

The bucket list on the left shows every bucket in the selected project; picking one opens its breadcrumb-based browser on the right, scoped to Current, Versions, or Deleted objects. A prefix search narrows the current folder, and Filter refines by type or metadata. Upload and New folder sit above the object table alongside a grid/list view toggle and a settings shortcut for the active bucket.

Storage workspace showing the bucket list, breadcrumb navigation, Current/Versions/Deleted tabs, and object table toolbar
The Storage workspace: pick a bucket, browse by prefix, and switch between current, versioned, and deleted objects.
Object paths are data

Renaming or moving an object changes its path. Verify references, download URLs, rules, and application code before applying a folder or object operation.

For sensitive buckets, review public access prevention and IAM before creating access links. Use resumable uploads for large files, validate content type and metadata, and treat exported objects and signed or tokenized links as sensitive credentials.

Intelligence

Firebrande Intelligence has two complementary surfaces. Change Intelligence compares live and Git architecture snapshots for release impact, while Gemini Intelligence answers questions using redacted, project-grounded context.

Change Intelligence

Capture live inventory, analyze a full Git commit, compare immutable snapshots, evaluate release policies, and create a durable release capsule.

Gemini Intelligence

Ask about deployments, logs, Firestore, Storage, Authentication, SQL Connect, and release risk with citations to the grounded context.

Action review

AI can draft an operational proposal, but proposed mutations are stored separately and require explicit human approval.

Change Intelligence workspace showing architecture capture, impact comparison, and release policies
Change Intelligence compares architecture snapshots and release policies before deployment.

Gemini Intelligence pairs an Ask Firebrande chat panel — with request, token, and latency counters — against a Provider and policy panel where owners and admins pick the provider (Firebrande-managed Vertex AI or a bring-your-own Gemini API key), model, region, data policy, and usage retention, and can disable Intelligence for the project entirely. The Action review queue below it is where any AI-drafted operation (like a Functions deploy) waits as a named resource, action, and payload until a person approves it — nothing executes from a proposal automatically.

Gemini Intelligence workspace showing the Ask Firebrande panel, provider and policy settings, and the action review queue
Gemini Intelligence: project-grounded chat, provider and data policy controls, and the human-approved action review queue.
Analysis is not authorization

Review the project, evidence, policy result, and proposed arguments yourself. Never paste secrets into prompts, and do not treat an AI answer or risk score as proof that a release is safe.

Teams and projects

Teams are the security boundary for collaborators and connected Firebase projects. Team managers control membership, project connections, environment safety, and explicit GitHub repository links. Workspace access then follows the member’s role and the selected project’s policy.

Owner

Full team and project administration, including ownership changes and project moves.

Admin

Manage members, invitations, projects, safety policies, and linked repositories.

Member or viewer

Use project workspaces according to capability: members can make many routine changes; viewers are read-only.

Disconnecting is not deleting

Disconnecting a project removes Firebrande’s connection, tokens, linked repository, saved workspace state, and task history for that team. It does not delete the Firebase project or its data.

Project safety settings distinguish development, staging, and production and can mark a project read-only. Confirm the team, project ID, environment, and role before any production-sensitive operation.

Owners and admins invite teammates by email with a starting role directly from the Teams page (see the screenshot under Connect a project), and change or remove a member's role at any time. The same page's GitHub repository access panel is where repositories get explicitly linked to a project — Functions and SQL Connect delivery only reach repositories linked here, never a Google account's full repository list.

Billing and entitlements

Billing belongs to the team. Stripe hosts checkout, payment methods, invoices, and cancellation; Firebrande synchronizes subscription state and uses it to enforce paid access, seat capacity, and project capacity.

Solo

$19/month, one user, and up to three Firebase projects — enough for a dev, staging, and production project per Firebase's own recommended setup. Firestore, Authentication, Storage, Functions, Rules, and Scriptlets. Includes the 14-day trial when the team has not used it.

Pro

$39/month, up to two users, and up to fifteen Firebase projects. Adds SQL Connect, Gemini Intelligence, and GitHub Actions + WIF deployment workflows for Functions and SQL Connect. Deployments beyond the plan's included quota are billed per use.

Team

$119/month and up to ten users, with unlimited Firebase projects and unlimited deployments. Adds Change Intelligence and the full audit trail on top of everything in Pro.

Enterprise

Unlimited seats and projects, SSO, and dedicated support, priced and contracted individually. Enterprise isn't self-serve — it's activated after a direct conversation, not through Plans & billing's checkout. Reach out from the pricing page to start that conversation.

Active means trialing or active

Past-due, incomplete, canceled, and other inactive subscription states do not satisfy the paid workspace gate. Owners and admins manage billing through Plans & billing; members and viewers cannot open billing actions.

Plan gates are enforced server-side, not just hidden in the UI

Calling SQL Connect, Gemini Intelligence, Functions/SQL Connect deployment, or Change Intelligence from a plan that doesn't include it returns 402 with the plan you'd need — the same central authorization path every other capability check already goes through, not a separate client-side check.

The Plans & billing page shows the team's Current subscription banner (plan and status) above the three plan cards, each listing its own limits and a trial-start button. Switch which team you're viewing with the team selector at the top — billing is always scoped to one team at a time, never to an individual project.

Plans and billing page showing the current subscription banner and Solo, Pro, and Team plan cards
Plans & billing: current subscription status, plan comparison, and Stripe-hosted checkout.

See docs/BILLING_ENTITLEMENTS.md for checkout, webhook reconciliation, plan limits, environment configuration, and billing incident runbooks.

Firebase Security Rules

Firebase Rules are the client-data authorization boundary for Firestore and Storage. They are separate from Firebrande team roles, Google Cloud IAM, and server credentials, so each layer must be reviewed independently.

Deny by default

Require authentication, verify ownership or membership, validate fields and file properties, and keep destructive operations narrow.

Test denials

Simulate anonymous, cross-team, malformed, oversized, and immutable-field changes—not only successful requests.

Release carefully

Compile first, test the exact paths, deploy to the intended project or bucket, and retain a rollback ruleset.

Rules are not filters

A Firestore query is denied if it could return even one unauthorized document. Storage Rules and Firestore Rules are separate, and trusted Admin SDK calls require their own IAM and server authorization review.

The Rules editor lives under a bucket's or project's Settings panel. Edit the ruleset source directly, then either Compile only to catch syntax errors without publishing, or Deploy rules once you're confident. The Rules simulator runs a single request — path, method, authenticated or not — against the current draft and reports allow or deny, and Ruleset history keeps every previously deployed ruleset so you can see what changed and when.

Storage Rules editor showing the ruleset source, a rules simulator, and ruleset deployment history
The Rules editor: compile or deploy a ruleset, simulate a single request against it, and review deployment history.

See docs/FIREBASE_RULES.md for Firestore and Storage examples, simulator behavior, CI testing, deployment, and troubleshooting.

Security model

Firebrande combines account identity, team membership, project capability checks, project safety policies, and downstream Firebase or Google permissions. Every sensitive operation should be understood as a chain: user → team → project or resource → capability → external provider.

Identity

Sign in with the supported account, keep Google authorization current, and reconnect when project tokens expire.

Authorization

Roles and capabilities are checked server-side against the project’s team before protected API work begins.

Protection

Read-only projects, confirmation phrases, repository allowlists, redaction, encrypted tokens, and audit records reduce operational risk.

A confirmation phrase is a literal, typed guard on top of the button click: bulk-disabling users, for example, asks you to type DISABLE <count> — the exact operation and affected count — before Queue operation unlocks. The dialog also states how many users and projects will be touched and that separate durable jobs are created per project, so a multi-project bulk action can't silently apply everywhere at once.

Disable selected users dialog requiring the operation name and affected count to be typed before confirming
A confirmation-phrase dialog: the exact operation and affected count must be typed before the action is queued.
Defense in depth

Firebrande’s controls do not replace Firebase Security Rules, Google Cloud IAM, GitHub branch protection, or provider billing and quota controls. Review all layers before production access.

  • Never share OAuth tokens, invitation links, API keys, service-account keys, or download tokens.
  • Use the least-privileged team role and external provider permission that supports the task.
  • Prefer previews, dry runs, staging projects, protected branches, and explicit approvals.
  • Record the project, resource, actor, operation, timestamp, and job or commit ID for sensitive changes.

Troubleshooting

When something fails, confirm the signed-in account, selected team, Firebase project ID, environment, read-only state, and exact operation before retrying. Firebrande uses clear failure boundaries: 401 means authentication, 403 means access or capability, 423 means read-only, and 409 usually means a resource conflict.

Provider access

Reconnect Google or GitHub when credentials expire, then verify the project or repository is visible to the intended account.

Jobs

Check Durable Activity, checkpoints, retries, and item errors before starting a second transfer, export, or bulk operation.

Escalation

Collect the team, project, role, timestamp, operation, error, job ID, commit, or deployment revision—without secrets.

Some failures come with a built-in fix, not just an error string. A disabled Google Cloud API, for example, surfaces as a step-by-step recovery card with a direct link to enable it and a Retry button — the underlying error text stays visible underneath for anyone who needs to escalate it.

Functions workspace showing a Cloud Functions API not enabled recovery card with numbered steps and Open Cloud Functions API, Retry, and Manage APIs buttons
A guided recovery card for a disabled Google Cloud API, with the raw error preserved below the steps.

The repository guide docs/TROUBLESHOOTING.md contains symptom-by-symptom runbooks for every workspace.

Safety and access

Firebrande applies team-aware access to connected projects. Some workspaces and operations are read-only, and destructive or production-sensitive actions ask for an explicit confirmation. Treat the selected project as part of the change record: verify its name and ID before acting.

  • Use least-privilege Google and Firebase access for each team member.
  • Prefer development projects for imports, migrations, policy experiments, and deployment rehearsals.
  • Review a preview, diff, or plan before applying a bulk operation.
  • Keep credentials, tokens, and secrets out of documents, scripts, commits, and screenshots.

The read-only switch itself lives per project in the Teams page's Environment safety panel (see the screenshot under Connect a project) — checking it blocks writes across every workspace for that project until it's cleared again, regardless of a member's role.

Before launch

  1. Confirm your Firebase project and team access.
  2. Review security rules and production safeguards.
  3. Run a representative workflow in a non-production project.
  4. Invite your team and agree on a change-review process.

Deploy safely

Configure environment variables, migrations, OAuth callbacks, Stripe webhooks, Postmark, cron, staging, smoke tests, and rollback.

docs/DEPLOYMENT_ENVIRONMENT.md

Use the API

Review route families, capabilities, identifiers, error codes, durable jobs, pagination, and retry behavior.

docs/API_REFERENCE.md

Control providers

Check Firebase/GCP prerequisites, IAM, quotas, budgets, cost drivers, and provider incident response.

docs/PROVIDER_PREREQUISITES_COSTS.md

Integrate GitHub

Link repositories explicitly, use protected branches and WIF, review generated workflows, and record deployment runs.

docs/GITHUB_INTEGRATION.md

Administer support

Manage roles, invitations, ownership, project moves, billing responsibility, support intake, and incident escalation.

docs/ADMINISTRATION_SUPPORT.md

Recover safely

Freeze unsafe work, restore from verified sources, validate data and access, resume jobs carefully, and rehearse recovery before an incident.

docs/DISASTER_RECOVERY.md

Release with evidence

Run offline, authorization, browser, Rules, live Firebase, provider, migration, and smoke tests with explicit approval and rollback criteria.

docs/TESTING_RELEASE_QUALITY.md

Protect data

Minimize provider content, protect credentials, enforce team boundaries, define retention, and handle exports or deletion deliberately.

docs/DATA_PRIVACY_RETENTION.md

Design accessibly

Support keyboard and screen-reader use, visible focus, clear errors, responsive layouts, reduced motion, and safe asynchronous workflows.

docs/ACCESSIBILITY_UX.md

Govern privacy

Maintain accurate data inventories, provider reviews, user-request workflows, transfer controls, and incident notification paths.

docs/PRIVACY_COMPLIANCE_GOVERNANCE.md

Core guides: docs/WORKSPACE_OPERATIONS.md covers operational workflows, docs/LIVE_FIREBASE_TESTING.md covers live Firebase verification, and docs/TROUBLESHOOTING.md contains symptom-by-symptom runbooks.