Join our Beta: Python (& Multi-Step Function) in Apps

Hey there, community!

One of the most requested features we've seen on this forum is the ability to use Python in apps. Today, Python is only available in Workflows, which means if you want to leverage Python for data transformation, business logic, or scripting in your apps, you're stuck reaching for workarounds.

We have a feature in closed beta that changes this: backend functions. Backend functions are a new primitive that lets you execute single or multi-step logic on the backend, directly within your apps. And yes, they support both JavaScript and Python!

Here's a quick 2-minute walkthrough showing it in action, or you can read more about it in our docs.

What you can do with it:

  • Write code (JavaScript and Python) alongside resource queries (SQL, REST, GraphQL, etc.) in a single function
  • Chain multiple steps together with control flow, conditionals, and error handling
  • Use built-in libraries like Lodash, Moment, UUID, Numbro, and PapaParse
  • Pass parameters in and get structured results back
  • Keep sensitive logic on the server instead of in client-side JavaScript

A few things to know:
This is a closed beta, so there are some rough edges. Each backend function is local to the app where it’s created (cross-app reusability and source control integration are both coming soon).

Want to try it out?
Please sign-up for the waitlist. Available now on cloud. If you're self-hosted and interested, you can sign-up as well and we will reach out when it's available.

We'd love your feedback as we build the best version of this feature!

Andrew

5 Likes

Hi Andrew,

Really excited about this.

Quick question, I'm trying to use a function to set up a variable, but it seems variables are out of scope for functions as it currently stands??

Both the variable and the function are at a page level (not global). So not sure if I'm missing something here.

Thanks

Hi Miguel - Since the full function executes server-side, you will need to return any values you want to store in the App’s state. You should be able to do this with success handlers (or error handlers). Would that work? If not (or if that’s not ideal), please let me know more about the use-case and why. Feel free to email me directly too if that’s easier.