See what a change would break, before you make it

A Tessryx app is built from separate pieces, and each one declares what it uses: this page reads that record, this workflow calls that integration. Tessryx stores those links as a graph your AI can query from either end.

Your AI reads the graph before it changes things. Ask it to remove a field or delete an old workflow and it can tell you which pages would notice, or preview the delete and report what would fail. The app below is a real one; hover a piece to see what depends on it.

schemaeventdatafileeventschemainvite-listworkflowthemedatafileinvitesworkflowhome-renderworkflowinvite-renderworkflowadmin-renderworkflowadmin-apiworkflowrsvp-submitendpointhomeendpointi/:tokenendpointadminendpointadmin-apiendpointrsvpbirthday.nickpage.tech
Hover any piece to see what it would break
  • custom domain
  • endpoint
  • workflow
  • datafile
  • schema
mcp · tessryx

$ analyze_resource --kind workflow --resource birthday/theme --hypothetical delete

deployable: false · errors: 7

  • errorworkflow:birthday/home-render would break: steps[0](theme).sub_workflow.workflow references "birthday/theme@published", which would no longer exist
  • errorworkflow:birthday/invite-render would break: steps[0](theme).sub_workflow.workflow references "birthday/theme@published", which would no longer exist
  • errorworkflow:birthday/admin-render would break: steps[0](theme).sub_workflow.workflow references "birthday/theme@published", which would no longer exist
  • errordynamic_endpoint:birthday/home would break: depends on birthday/home-render, which would break
  • errordynamic_endpoint:birthday/i/:token would break: depends on birthday/invite-render, which would break
  • errordynamic_endpoint:birthday/admin would break: depends on birthday/admin-render, which would break
  • errorcustom_domain:birthday.nickpage.tech would break: depends on birthday/home, which would break
The pieces of a real app, birthday.nickpage.tech, with the dependencies Tessryx's own analysis tools report for it. Hover or tap a piece to see what relies on it.

How it works

  1. 01

    Ask in either direction

    You can ask for everything a page depends on, or for everything that depends on a schema. Each answer says whether a link follows the live version or the draft.

  2. 02

    Preview before acting

    A hypothetical delete, unpublish or publish returns the problems it would cause, and an app gets a yes or no on whether it can deploy.

Questions

Can I see this graph in the dashboard?

Not yet. Today it is a tool your connected AI uses, which is where the question usually comes up.

Does it block a delete that would break something?

It doesn't. Deletes always go through. The analysis is there so you or your AI can decide first, and a piece left pointing at something deleted fails with a clear error.

Under the hood

The technical details

get_resource_graph
Walks depends_on (default depth 3) or depended_on_by (transitive), showing each edge's @published or @latest text and what it resolves to now.
analyze_resource
Findings with severities, a deployable flag, and hypothetical delete, unpublish and publish previews. Read-only.
declared, not inferred
Edges come from the references each definition declares; values computed while a workflow runs are reported as unknowable rather than guessed.
deletes
Never blocked and never cascade. Anything left pointing at a deleted piece fails cleanly.
Docs:Apps

More highlights

Give your AI somewhere to build.

Free to start, no credit card. Bring the AI you already use.

Start building for free