A production review
The list below breaks this down into the parts that matter most. Read through each one and note anything that applies to your own setup.
- Confirm the data model and ownership rules.
- Check grants, row level security and privileged functions.
- Test loading, empty, error, retry and signed-out states.
- Keep API keys and payment logic server-side.
- Verify domains, email, webhooks, metadata and mobile behavior.
When a rescue is needed
A rescue project is justified when data is exposed, permissions are unclear, integrations are failing silently or the project cannot be deployed repeatably. Start with evidence and a safe release path rather than adding more screens.
- Capture the current failure and affected workflow.
- Review the database, auth and integration boundaries.
- Prioritise data safety and broken user journeys.
- Ship one verified fix at a time.
- Document the resulting setup for ongoing ownership.
Warning signs we look for
Before making changes, work through the points below. Each one covers a different part of the picture, so treat them as a set rather than picking favourites.
- Tables without row level security, or policies that allow more than intended.
- API keys or service role credentials referenced in client-side code.
- Forms that submit without validation or error handling.
- Payment or email integrations that fail silently with no log.
- A project nobody can deploy, explain or safely change.
What a rescue engagement delivers
A written review of the current state, a prioritised fix list ordered by data safety, verified fixes shipped one at a time, and handover documentation so the next change is routine rather than risky. The goal is an application the owner understands, not a bigger dependency on the rescuer.