Features

Everything Tessryx can do

This is the full list of what Tessryx can do, each with a link to its docs. Flip the switch in the toolbar to see the settings and limits behind each one. Things it can't do are listed at the bottom, in case you're checking.

All features

Building with your AI

You bring the AI. Tessryx connects to it over MCP, and you choose the workspace it can build in.

  • Build with Claude, ChatGPT or any MCP client

    Tessryx runs an MCP server, the standard way AI assistants connect to outside tools. Add it to the assistant you use and it can build in your workspace while you talk to it, from the data model through to the pages.

    How it works

    • Pick a workspace when you connect
    • It works with your role
  • Your AI runs and checks what it builds

    Your AI can make and change anything in your workspace and publish it. When something it built fails, it can run it again and read the error itself.

  • Guides written for your AI

    Tessryx gives your AI short guides on how the pieces fit together, plus recipes for common builds like a blog, and it reads them before it starts building.

  • You approve which workspace it uses

    When you connect, a Tessryx consent screen asks which workspace the assistant may build in, and a code sent to your email confirms it.

  • Your AI is held to your role

    Your assistant gets the permissions your role has in that workspace, checked the same way the web app checks them. It can't read secret values or change your account settings.

  • Bring your own AI, with no markup

    You build with the assistant and subscription you already have, and AI steps in your workflows run on your own model key. Tessryx doesn't bill for model usage at all.

  • Rate limits for agents

    If an assistant gets stuck in a loop, its requests are slowed down. Your own use of the web app isn't affected.

Data and content

Your content lives in records that follow a shape you describe. Saves are checked against it, and a published record gets its own public address.

  • Content records (a headless CMS)

    In Tessryx, content is a set of records. A record is one item, like a menu or a product, and it has to fit a shape you described, meaning which fields it has and what each one can hold. A save that doesn't fit is turned away with the field named.

    Free holds 100 records and Pro 1,000; Agency goes to 10,000. Past the limit you can still edit and unpublish, and live records keep serving.

    How it works

    • Your AI writes the schema
    • Your team edits in Content Studio
    • Saving and publishing are separate
    • Pages read it however suits them
  • Content types defined with JSON Schema

    Describe a kind of content once, for example a menu item with a name and a price. Tessryx uses that to check the data and to lay out the form people edit it in.

    Up to 100 schemas on Free, 200 on Pro and 1,000 on Agency.

  • A public JSON URL for every published record

    Publishing a record puts its JSON at a public URL, served from a global network. A site or app hosted anywhere can load it from there.

  • Every save checked against its schema

    Records are checked against their shape on every save, including saves made by your AI or by a workflow. If something doesn't fit, the save is refused and the message names the field.

  • Lists, paging and exact counts

    Build a "latest posts" list or a product index with paging and a total, even for big collections. Counts for votes and ratings stay accurate when lots of people submit at once.

  • Edits that can't overwrite each other

    If two edits to the same record collide, the second is refused and asked to reload, and the first is kept. Your AI can also change a single field without resending the whole record.

  • Rename or move a record

    Rename a record or move it to another folder in one step. Its published address stays where it is.

Editors and forms

Forms are generated from the schema of the data they edit, so changing the schema changes the form.

  • Forms generated from JSON Schema

    When your AI builds something on Tessryx, it also describes the data, such as a menu whose items each have a name, a price and maybe a photo. That description is a JSON Schema, and Tessryx reads it to lay out the form your team edits in, with dropdowns, date pickers and lists you can drag into order.

    How it works

    • The schema picks each control
    • A few hints cover the rest

Try it

A schema and the editor made from it

Schema

{
  "type": "object",
  "required": [
    "name",
    "email",
    "pickup",
    "items"
  ],
  "properties": {
    "name": {
      "type": "string",
      "title": "Your name",
      "minLength": 1
    },
    "email": {
      "type": "string",
      "format": "email",
      "title": "Email",
      "examples": [
        "sam@example.com"
      ]
    },
    "pickup": {
      "title": "Pick up",
      "oneOf": [
        {
          "const": "friday",
          "title": "Friday after school"
        },
        {
          "const": "saturday",
          "title": "Saturday morning"
        }
      ]
    },
    "items": {
      "type": "array",
      "title": "Order",
      "minItems": 1,
      "items": {
        "type": "object",
        "required": [
          "item",
          "dozens"
        ],
        "properties": {
          "item": {
            "type": "string",
            "title": "Item",
            "enum": [
              "Chocolate chip cookies",
              "Lemon bars",
              "Banana bread"
            ]
          },
          "dozens": {
            "type": "integer",
            "title": "How many dozen",
            "minimum": 1,
            "maximum": 6,
            "default": 1
          }
        }
      }
    },
    "notes": {
      "type": "string",
      "title": "Anything we should know?",
      "x-tessryx-ui": {
        "input": "textarea",
        "options": {
          "rows": 2
        }
      }
    },
    "paid": {
      "type": "boolean",
      "title": "Paid",
      "default": false
    }
  }
}

Edit the schema and the editor changes with it.

Editor

Your name

Email

Pick up

Order

Anything we should know?

Paid

A small order form, the kind people ask their AI for. This is the form renderer from the Tessryx editor, running in your browser with the same validation. Nothing here is saved.
  • Inputs that fit the value

    Fields marked as an email, a web address, a date or a duration get inputs made for them. A number with a range gets a slider and a yes-or-no gets a switch. Short lists of choices become radio buttons, long ones a searchable list.

  • Rich text, Markdown and code fields

    Long text can be Markdown with a live preview or rich text with a toolbar. Code fields get a proper code editor, with highlighting for 22 languages.

  • Lists, tags and drag to reorder

    Lists of things, like the members of a team, get rows you can add and drag into order. A plain word list becomes tags, and pick-several fields become checkboxes.

  • Key and value maps

    For data where you pick the keys, such as a price for each country, the form gives you a key-and-value editor with a proper field for each value.

  • Either-or choices and fields that appear when needed

    A field can offer a choice, for example a link or an uploaded image, and show the fields for whichever is picked. Other fields can stay hidden until an earlier answer calls for them.

  • Defaults, locked and hidden fields

    New records start with their default values filled in. Locked fields show but can't be changed, and hidden fields keep their value out of sight.

  • Live validation and a raw JSON view

    Problems show up as you type, written out in words on the field that has them. A JSON tab sits beside the form for pasting in a big block or fixing something by hand.

  • Cron, timezone, color and slug fields

    A cron field shows the expression in words and lists the next few run times. Timezone and color pickers are built in, and a slug field fills itself in from the title.

  • Pickers that point at other records

    A field can point at another record, or at a page, workflow or integration in your workspace, picked from a search box that browses folders.

  • Image and file fields

    Mark a field as an image and editors get an upload button and a browser for your media library. The field stores the file's public address.

  • A form inside a form

    Some settings depend on another choice. Pick the workflow a page runs, for example, and the form loads that workflow's input fields underneath.

  • Content Studio

    Content Studio is where your team edits records, in the form or as JSON, and publishes them. Folders and search help on a big site.

  • Schema Studio

    A visual editor for designing data shapes by hand, with the fields in a tree on one side and each field's rules on the other. The raw JSON is one tab away.

  • A studio for every piece

    Workflows, pages, integrations and schedules each have a studio where you can read what your AI built and change it by hand. Most let you try it with real data too.

Media and files

One library for the images, video and documents your site uses, served from a separate file address.

  • A media library for images, video and files

    Keep the logos, photos, videos and PDFs your site uses in one library with folders, and use any of them on a page or in a record.

    Storage is 100 MB on Free, 5 GB on Pro and 50 GB on Agency. Files over the allowance keep serving; only new uploads are refused.

  • Media served from a global CDN

    Each file gets a public address on a global network, so images and video load quickly wherever visitors are. Bandwidth is free.

  • Files shown by their real type

    Tessryx checks what an uploaded file really is. Pictures, video, audio and PDFs display in the browser, and anything else is served as a download.

  • Uploads served from their own domain

    Uploaded files are served from a separate domain, and any script hidden inside an uploaded SVG is switched off, so an upload can't be served as a page on your site.

  • Private screenshots for your AI

    Screenshots an AI agent takes while checking its work stay private. They don't go into your media library or count toward storage, and they're deleted after a week.

Pages and APIs

A Tessryx site is a set of web addresses, each answered by its own workflow.

  • Pages and API routes

    A Tessryx site is a set of web addresses. A visitor opens a page; the page's own scripts call routes to load more posts or save a sign-up. Every address is an endpoint backed by a workflow.

    Pages and routes are capped at 100 on Free, 200 on Pro and 1,000 on Agency.

    How it works

    • An address and the logic behind it
    • Routes take JSON
    • Try it before it's live
  • Edge caching

    Each page and route on Tessryx has a cache time. Within it, visitors get a copy from the network edge near them and the page's workflow doesn't run. Those visits are quick and don't use credits, since credits are only spent when a page is actually built.

    How it works

    • Traffic spikes
    • After the cache time runs out
  • Dynamic routes with URL parameters

    One page design can serve every post in a blog by reading the post's name from the address. An address that matches nothing gets an ordinary "page not found."

  • Form submissions and JSON posts

    Forms and buttons on your pages can send things in, like a sign-up or a vote, and a workflow saves it or passes it along. Submissions are always handled fresh.

  • Pages built from your content

    A page can be put together on the server from a record your team edits, and visitors and search engines receive finished HTML. It can read the published version or your working draft.

  • HTML, JSON, XML, CSV and RSS

    An address can return a web page, data for your scripts, an RSS feed or a CSV export, with accented characters intact.

  • robots.txt, sitemap.xml and security.txt

    Serve robots.txt and sitemap.xml, or anything under .well-known, at the addresses search engines and security tools look for. They can be generated from your own data.

    Your own robots.txt takes effect on a custom domain, which comes with a paid plan.

  • Status codes, redirects and headers

    A page can answer "not found" when a record is missing, or redirect visitors to a new address. It can also add a few headers of its own.

  • Links that work on every address

    A page works the same on your free address and on your own domain, because each request tells it where its app starts and what its full address is.

  • Stale-while-revalidate for expired pages

    When a cached page expires, visitors keep getting the last copy straight away while a new one builds in the background.

  • Preview a draft page

    See what a page or route will return before it goes live, using your real data and settings.

  • "Not found" and "paused" pages

    A missing page gets a clean "page not found." If a workspace runs out of credits, visitors see a neutral "temporarily unavailable" page that doesn't mention billing.

Workflows

Workflows hold the logic. They're written as steps that run in order, top to bottom.

  • Workflows

    When a visitor opens a page on a Tessryx site, a workflow decides what they get. It's a list of steps. A step might look up a record or call a service, and the last one puts the page together.

    How it works

    • Steps switch on the blocks they need
    • Later steps read what earlier ones saved
    • One expression produces the output
    • Pages and schedules can share it

Try it

An expression over a league's standings

$standings

{
  "league": "Monday Night 8-Ball",
  "week": 9,
  "teams": [
    {
      "name": "Rack Attack",
      "wins": 7,
      "losses": 2,
      "points": 18
    },
    {
      "name": "Cue Tips",
      "wins": 6,
      "losses": 3,
      "points": 16
    },
    {
      "name": "Scratch & Win",
      "wins": 6,
      "losses": 3,
      "points": 15
    },
    {
      "name": "Side Pocket",
      "wins": 4,
      "losses": 5,
      "points": 11
    }
  ]
}

Expression

$standings.teams^(>points)[0].name

Result

"Rack Attack"
This runs JSONata in your browser with the reference library. Workflows run the same language on the server, where a step's result is a $variable like this one.
  • JSONata and JavaScript expressions

    Wherever a value has to be worked out, like a total or a filter, there's a small expression. Most are JSONata, a language for reshaping data, and the rest are JavaScript.

  • Read and write records

    A workflow can look up a record, save a new one, list a folder or count what's in it. A sign-up form, for example, posts to a route whose workflow saves the record.

  • Loops and parallel steps

    A step can repeat for each item in a list, or for as long as a condition holds. Steps that don't depend on each other can run at the same time.

  • Checks and error handling

    A step can refuse to run unless something is true, or skip itself when it isn't needed. After a failure, the workflow can carry on and let a later step deal with it.

  • Sub-workflows

    One workflow can run another and use what it returns. A page can be assembled from a few smaller workflows, one for the header and one for the rest.

  • Generated images and files

    A workflow can draw an image, like a share card for a new post, and publish it to your media library. It can also save a picture from another web address.

  • Typed input

    A workflow can declare the input it expects. Each run is checked against it, and wherever a person starts the run, they get a form to fill in.

  • Run time limits

    Each run has a time limit, and a run that hangs is stopped when it gets there. Longer jobs run as a chain of runs.

    Free runs up to 60 seconds, Pro up to 2 minutes and Agency up to 5 minutes.

AI inside your app

Models can do work inside your app too, either answering once or working through a job with tools.

  • AI agents with tools

    An AI step without tools answers once and hands back text. Give it tools and it keeps going, turn after turn. It can call your integrations or run another workflow, build and edit things in your workspace, or open your site in a browser and look at it, until the job is done.

    How it works

    • You choose its tools
    • It's limited to the folders it's given
    • It can use a key without seeing it
    • Jobs longer than one run
  • AI steps in a workflow

    Any step can ask a model to write or summarize something, and the answer flows into the rest of the workflow. It runs on your own model account, with no markup from Tessryx.

  • Scoped agents

    An agent that can build is limited to the folders it was given. It can't add to that list, and whatever it creates or connects has to fit inside it.

  • Keys an agent can use but never see

    A workflow that holds a key can be handed to an agent as a tool, like one that calls an image service. The agent can call it but never gets to read or reuse the key.

  • Long-running agents

    An agent can keep working across many runs. At the end of a turn it hands its conversation to the next run, and older turns get summarized to keep the conversation small.

  • Live progress and a stop switch

    A long agent can write a progress report after each turn for a page to show. The person who started it can also stop it partway, without waiting for the run to end.

  • Agents that look at your pages

    An agent can open your site in a real browser and check its own work. It gets screenshots at desktop and phone sizes, plus a list of any text that overlaps or runs off the edge.

  • Your own model server

    Point an AI step at a model server you run yourself, as long as it speaks the same protocol as the provider. Your key is sent to it as usual.

Schedules

Run a workflow on a timer, whether or not anyone visits.

  • Cron jobs and scheduled tasks

    A schedule runs a workflow on a clock, whether or not anyone visits. The pool league template uses one to pull new results every morning; other sites rebuild a summary every hour or send a digest on Mondays.

    Free includes one daily scheduled job. Pro has 10 that can run every 15 minutes, Agency 50 that can run every minute.

    How it works

    • Point it at a workflow
    • Test it with Run now

Try it

The cron field from the schedule editor

Timezone

New York

Examples

Schedule (cron)

0 9 * * *
At 09:00 AM

Next runs load in your timezone.

The next 7 days

The same field the schedule editor shows, running in your browser. It reads the expression back in words and lists the next runs in your own timezone.
  • Run a schedule now

    Fire a schedule on the spot to test it, without waiting for its next turn. You can switch it on or off whenever you like.

  • Jobs longer than one run

    A scheduled job that's too big for one run, like working through thousands of records, can run as a chain. Each run saves a bookmark and the next one starts from it.

Integrations and secrets

Your workflows can call outside services, and the keys for them are stored write-only.

  • API integrations

    Connect a service like Stripe or your email provider once, and any workflow can call it. Your AI sets up the call and you paste in the key.

  • Authentication for outside services

    Calls sign in to the other service with a token, a password or a key, and can sign each request the way X (formerly Twitter) requires. The credential comes from a stored secret.

  • Write-only secrets

    Once a key is saved, no one can read it back, including you and your AI. You see its name and the last few characters, and rotating it means pasting a new value over the old one.

Sign-in and access

Any page can stay public or sit behind a sign-in, and a team-only page opens just for people in your workspace.

  • Visitor sign-in for your site

    A page or route on a Tessryx site can require a sign-in. A visitor who isn't signed in goes to Tessryx, signs in with an email and password or with Google, approves your site the first time, and comes back to the page they asked for.

    On every plan, and people who sign in to your site never use a seat. Sign-in on your own domain needs a plan with custom domains.

    How it works

    • Gate the pages that need it
    • Anyone, or only your team
    • Choose what everyone else sees
  • Members areas with each visitor's own data

    Let anyone who signs in into a members area and show each person their own things, like saved items, without learning who they are.

  • Admin pages only your team can open

    Build an admin area into your live site that opens only for people with a role in your workspace. Remove someone's role and they're out within seconds.

    Only workspace members get in, and seats are 1 on Free, 3 on Pro and 10 on Agency.

  • What signed-out and refused visitors see

    Decide page by page whether a signed-out visitor goes straight to sign in or sees a page with a sign-in button. A visitor who isn't allowed can get "access denied" or be sent somewhere else on your site.

  • Pages that know who's signed in

    Add one script tag and the page knows whether the visitor is signed in as soon as it loads. It can send them to sign in without losing what they typed, and show team-only buttons to your team alone.

  • Private visitor ids and a plain consent screen

    Before a first sign-in, Tessryx tells the visitor which site is asking and that it gets an anonymous id, with no email or name. The id is different on each site, so two sites can't link up the same person.

  • Preview a page as a pretend visitor

    Before publishing, your AI can render a members-only or team-only page as a made-up visitor with whatever roles you choose.

Domains and hosting

Each workspace starts on a free web address, and your own domain can take over when you're ready.

  • Custom domains with automatic HTTPS

    Every Tessryx workspace starts on a free tessryx.app address. To put a site on your own name, claim the domain in your dashboard and add two records at your DNS provider. One proves the domain is yours and the other points it at Tessryx.

    Custom domains come with a paid plan: 2 on Pro, 10 on Agency, unlimited on Scale. More are $8 a month each.

    How it works

    • Claim it
    • Add the records
    • Wait for the certificate
    • Point it at an app
  • A free yourname.tessryx.app address

    Each workspace gets a secure web address as soon as something is published, with no domain to buy. Pages there show a small "Served by Tessryx" badge and stay out of search results.

  • Point a domain at one app

    Choose which project a domain shows and which page is its home page. Several sites can share a workspace, because each domain only reaches its own project's pages.

    Needs a custom domain, so a paid plan.

  • Root domains like yourbrand.com

    A bare domain like yourbrand.com works if your DNS provider can point a bare domain at another name, as Cloudflare, Route 53 and DNSimple can. If yours can't, the www address does the job and your registrar forwards the rest.

    Same as custom domains: a paid plan.

  • Extra domains, $8 a month each

    On Pro and Agency you can add domains one at a time without moving up a plan. Agencies use this when a new client site needs its own.

    Pro and Agency. Scale already includes unlimited domains.

Versions and safety

Saves become numbered versions you can go back to, and your AI can check what depends on a piece before it changes it.

  • Version history and rollback

    Saving a page, a workflow, a schema, an integration, a schedule or an app creates a new numbered version and keeps the earlier ones. Visitors get whichever version you published.

    How it works

    • Publishing is its own step
    • Pieces follow live or draft
  • See what depends on what before you change 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.

    How it works

    • Ask in either direction
    • Preview before acting
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.
  • Drafts and publishing

    Your changes are drafts until you publish them. You can try a draft with real data first and then publish the version you checked.

  • Publishing refuses broken references

    If a page or workflow points at something that doesn't exist or was never published, publishing it is refused, with the reason. Drafts can still be saved in any order.

  • Take something offline without deleting it

    Take a page, a schedule, an app or a record offline and keep everything, ready to bring back later.

  • Rename anything in place

    Rename a page, a workflow, an integration, a schedule, an app or a record where it is, and its history comes along.

  • Apps: one project, managed as a unit

    An app gathers a project's pieces, from its data to its pages and schedules, into one place you open and manage together. New pieces in the project's folder join automatically.

  • App Studio

    Opening an app lists its pieces in one sidebar and opens each in its usual editor without leaving the project. A short setup checklist ticks off each step once it's done.

  • Export and import an app

    Download a whole project as one file and import it into another workspace you belong to. Before anything is created, you see what it will add and what's already there.

  • Start from a template

    Pick a ready-made app, fill in a short form, and Tessryx builds a working copy in your workspace and runs its first data sync. Today there is one template: a pool league site.

    The template's daily sync uses a schedule, and Free includes one.

  • Delete an app, or everything in it

    Deleting an app usually removes just the grouping and leaves its pieces alone. A separate action deletes every piece and then the app, once you type its name to confirm.

Runs, usage and billing

Each run is recorded with what it cost, and a failed run shows the step that broke.

  • Run history and step traces

    Each run is listed with how it went. Open one to see the steps, what each read and what it got back, and your AI can read the same history to debug its work.

    Free keeps the step trace only for runs you start and for failed runs.

  • Run a workflow on demand

    Run any workflow by hand from Workflow Studio, or ask your AI to, for a test or a one-off job. You don't need a website for this.

  • Credits for runs

    Tessryx charges for the work your logic does, in credits. A typical page build is 1 credit, and a longer job costs 1 credit per 10 seconds, whatever started it.

    A month of credits is 10,000 on Free, 100,000 on Pro and a million on Agency.

  • See where your credits went

    A live balance, a chart of credits used each day, and a breakdown by workflow, page, domain or trigger.

  • Low-credit warnings

    You'll hear before you run out: a dashboard note at half, emails at 20% and 10%, and one more when credits hit zero.

  • No overage bills

    Credits are prepaid, so there are no overage bills. If they run out, runs pause until you top up, while cached pages, published records and media keep serving.

  • Credit packs that never expire

    Credit packs are one-time purchases, available on every plan including Free. Bought credits don't expire, and on a paid plan unused monthly credits carry over for a month.

  • Plans and limits

    Plans differ in their limits. Where a feature isn't on Free at all, like custom domains, it says so on this page.

  • Change plans without losing work

    Change plans from the dashboard whenever you like. Moving to a smaller plan doesn't delete anything; what's over the new limits waits until you upgrade again.

  • A grace week when a card fails

    If a subscription payment fails, your sites keep serving for a week while you fix the card. Once it goes through, everything comes back with no fee.

  • Plain messages at a plan limit

    If something would go past your plan, the message says which limit and how to raise it. Your connected AI is told not to keep retrying.

  • Free sites stay up while they're used

    The free plan has no trial clock. A free site that's in use stays live; only an account with no activity for 90 days gets a warning before anything is removed.

Team and account

Teammates get one of five roles. Your own sign-in can use two-factor, and you can see every device that's signed in.

  • Workspaces

    Each workspace has its own apps, content, domains, team and bill. You can belong to several and switch from the account menu.

  • Five team roles

    There are five roles, from Viewer, who can look but not change anything, up to Owner. A copywriter can edit and publish content without being able to change how the site works.

  • Invite your team

    Add people by email and pick their role. They'll see the invitation on their dashboard the next time they sign in with that address.

    Seats are 1 on Free (the owner), 3 on Pro and 10 on Agency, so inviting someone starts on Pro. People who only sign in to your sites never use a seat.

  • Seats, and what a smaller plan does to them

    Your plan sets how many people can build in the workspace. After a downgrade, the most recently added teammates lose access until there's room again; nothing about them is deleted, and the owner keeps access.

    Free 1, Pro 3, Agency 10.

  • Two-factor sign-in

    Turn on two-factor sign-in and every login also asks for a short code sent to your email. Turning it off again needs a fresh code too.

  • Active sessions

    The Security page lists the devices signed in to your account, with where and when, and signs out any one of them or all the others.

  • Email and password, or Google

    Sign up with an email and password or with Google, and add the other later if you want both. Password reset links never reveal whether an address has an account.

  • Connected apps you can revoke

    Each AI assistant you've connected is listed with the workspace it can reach and when it was last used. Disconnecting one takes effect at once.

What Tessryx doesn't do

These are the ones people ask about most. Where there's a workaround, we've put it under the item.

Crossed off lately Tessryx couldn't do these until recently.

  • No database queries or joins

    Records are JSON documents in folders. You can fetch one, list a folder in date or name order, page through it and count it, but there's no query language, no joins across records and no full-text search.

    Model it the way you'd model it for DynamoDB, with folders shaped around how pages read the data. A workflow can write one item into every folder it belongs in (a fan-out write), and a folder count gives a tally without reading the records. For real queries, call a database you run through an integration.

  • Apps don't export as code you can run elsewhere

    An export is a zip of definitions that another Tessryx workspace can import. There is no self-hosted version and no source-code export.

    The formats are open (standard JSON Schema, with logic in JSONata or JavaScript), so what you built can be read outside Tessryx even though it won't run there.

  • No drag-and-drop page builder

    Pages are built by your AI and edited by describing the change to it, or by hand in Workflow Studio. Content is edited in forms, never by dragging boxes around a page.

  • No native mobile apps

    What you build runs in the browser, including on phones. It isn't an app-store app.

  • No built-in email sending or payments

    There's no email block and no checkout of its own.

    Connect an email service or Stripe as an integration; the keys live in Secrets and your AI wires the calls.

  • No "run when something changes" triggers

    A workflow runs when a page or route is requested, on a schedule, or when someone starts it. Saving a record or publishing something does not start one.

    Receive outside events on a route that accepts posts, or check for changes on a schedule.

  • Incoming webhook signatures can't be checked

    A route gets the parsed JSON body, not the raw bytes, and expressions can't compute an HMAC or read a secret, so signature checks like Stripe's aren't possible inside a workflow.

  • Query strings, headers and cookies never reach your logic

    A page's workflow sees the parts of the address it declared, a JSON body and, behind a sign-in, who the visitor is. It never sees ?page=2 style parameters, request headers, cookies or the visitor's IP.

    Put changing values in the path, like /posts/page/2, or send them as JSON.

  • Plain HTML form posts aren't read

    Routes accept JSON bodies only, so a classic form-encoded post isn't parsed. Only GET and POST are supported.

    Submit the form from the page with fetch and JSON. Pages your AI builds on Tessryx already work that way.

  • Other websites can't call your routes, and your logic can't set cookies

    Responses carry no CORS headers, so browser scripts on other domains are refused, and workflows cannot set cookies of their own.

    Published records' JSON addresses do allow any site to read them.

  • No websockets or streaming responses

    Each request gets one complete response. There are no websockets, server-sent events or streamed pages.

    Poll a route from the page, or let a long agent write progress to a record the page reads.

  • JavaScript in workflows is calculation only

    A JavaScript expression can compute anything, but it can't fetch, use npm packages, set timers or touch files.

    Outside calls go through integrations, which a step can use and pass on.

  • AI steps run on Anthropic models only

    The AI step speaks Anthropic's API, with your key, or a server you run that speaks the same API. Prompts are text; images reach the model only through tool results, and there is no structured-output mode.

    Call another provider's API as an ordinary integration. That covers a single answer; the tool-calling loop only runs in the AI step.

  • Integrations send JSON, and only to the public internet

    Request bodies are always JSON, so form-encoded, XML and file-upload calls aren't possible. Private and internal network addresses are refused, a 4xx or 5xx is a result rather than a failure, and nothing is retried for you.

    Put a small public endpoint in front of a private service, and check $response.status in the workflow.

  • No "connect your account" sign-in for outside services

    Integrations can't run an OAuth 2.0 authorization flow or refresh tokens on their own. A credential is a static value you paste into a secret.

    Store a long-lived token as a bearer secret and rotate it when it expires.

  • Every media file is public

    Anyone with a file's address can open it. A members-only page doesn't protect the images or PDFs it links to.

    Keep private material out of media, and put sensitive data behind a signed-in route.

  • No image resizing, thumbnails or video transcoding

    Files are served exactly as uploaded, up to 100 MiB each. HEIC and TIFF download rather than display, and video isn't converted or streamed adaptively.

    Upload web-ready sizes and formats; for long video, host it on a video service and embed it.

  • Visitors sign in with a Tessryx account

    Login with Tessryx is the sign-in for your site. You can't plug in your own user directory, limit a page to an email domain, list who has signed in, or sign a visitor out from the server.

    Use the private visitor id to keep each member's records, and workspace roles for anything admin.

  • No SSO, custom roles or audit log yet

    Team sign-in is email and password, or Google. Signing in through your own identity provider (SAML or OIDC), SCIM, roles beyond the five built in, per-folder permissions and an audit log aren't built.

    SSO is part of the Scale plan, set up with us when a team needs it.

  • Two-factor is an emailed code only

    There's no authenticator app, passkey, SMS or hardware key, no backup codes, and no way to require two-factor for a whole workspace.

  • Records and media have no version history

    Pages, logic and schemas keep their newest 10 versions plus the published one. A content record keeps only its saved and published copies, and a replaced or deleted file is gone.

    Export the app now and then if you want a copy of its content to fall back on.

  • Publishing doesn't clear cached pages

    There is no purge button. A change shows once the cached copy runs out, so the cache time is the longest an edit can take to appear.

    Keep cache times short while a page is changing, and raise them once it settles.

  • No catch-all routes or automatic redirects

    Each part of an address matches one path segment, addresses are lowercase, and renaming a page leaves no redirect behind.

    Give each depth its own route, and send a 301 from the old address with a small workflow if it matters.

  • No built-in translations

    Fields have no language versions of their own.

    Model languages in the schema, for example an object keyed by language code, and have pages pick the right one.

  • No rate limits or bot checks for your own pages

    Tessryx doesn't throttle visitors to your site, and you can't add a captcha to a form. A flood against a page that isn't cached runs its workflow every time.

    Cache the pages you can. A cached visit doesn't run anything, so a popular page stays cheap.

Free to start

Connect your AI and build one thing

Most of what's on this page is on the free plan, and where something isn't, it says so. Connecting your AI takes a minute.

Using a different AI? Create a free account and connect it from your dashboard.