Improving the Python Developer Experience: Workflows for Debugging, Inspection, and Formulas

Hi everyone,

I want to bring a specific topic to the fore, as it’s something I’m actively grappling with.

I am a Python developer, and I frequently help partners get the most out of Grist. While my goal is always to leverage as much built-in functionality as possible, I often find myself writing small, custom functionalities within Python formulas to achieve the best UX/ergonomics for our workflows.

However, I highly miss having a robust environment to support this kind of development. Coming from a traditional Python background, I heavily rely on two types of workflows:

  1. The IDE: Where I value autocompletion, real-time inspection, and step-by-step debugging.

  2. Reactive Notebooks (like Marimo): Where I value easy inspection of cell scopes, states, and variables.

In my exploration of Grist, I couldn’t quite figure out the underlying architecture of the SaaS version (e.g., whether it’s running Python 3.11 via Pyodide, standard CPython, or something else). Because of this sandbox environment, I haven’t found a way to plug into the Python interpreter to output debugging messages, inspect available variables, or step through formula execution.

I would love to hear from the wider community and the Grist team on a few points:

  • Current Workarounds: What approaches do you use to debug and inspect complex Python formulas right now? Are there hidden tricks for surfacing logs or state?

  • Roadmap Updates: Is there anything on the roadmap to improve the DX (developer experience) for writing Python within Grist, such as advanced autocomplete or integrated debugging tools?

  • Formulas vs. Custom Widgets: Is the general philosophy to keep formulas lightweight and instead lean on Custom Widgets for more complex, logic-heavy functionalities? If so, what does that workflow look like in practice for you?

Looking forward to hearing your thoughts and experiences!

1 Like