Skip to main content
Fymo lets you build fast, server-rendered Svelte 5 apps using just Python, no separate Node.js backend to write or maintain. Under the hood, Fymo compiles your Svelte components once at build time with esbuild. A persistent Node.js process then renders them on each request, communicating with Python over a lightweight protocol. Your app ships as a single WSGI app, with no per-request compilation and no second server to deploy.
If you already know SvelteKit, a lot of this will feel familiar: remote functions, typed clients, and server-side rendering are all here. Fymo just runs them from a Python backend instead of Node.

Why Fymo

  • Compiles once, runs fast: Svelte components build into hashed dist/client/*.js bundles at build time, shared across every route. No compiling on the fly.
  • A sidecar, not a rewrite: Python talks to a long-lived Node process over stdio. That sidecar holds prebuilt SSR modules in memory and renders in microseconds.
  • Remote functions, SvelteKit style: write server functions in app/remote/*.py and call them from the frontend through a typed $remote client. Fymo handles the wire format and CSRF protection for you.
  • Batteries included: session, password, and OAuth auth, a durable Postgres job queue, and SSE-based broadcasts. Frontend code for all of it is generated automatically.

Requirements

  • Python 3.11+
  • Node.js 20+ (Fymo’s bundler shells out to esbuild)
From here, you can install Fymo and scaffold your first project, or take a tour of how a Fymo project is laid out.

Quickstart

Install Fymo and scaffold your first project.

The app/ directory

A map of where everything lives in a Fymo project.