Supported languages and stacks
Tokay reads the project files to choose the runtime, framework, and start command, so most applications do not need platform specific build configuration. This page describes the environments we have verified and what to do when Tokay cannot identify a runnable Service.
Last updated
Supported runtimes
Tokay supports Node.js, Bun, Python, Go, Ruby, Rust, PHP, and static HTML.
Version requirements in the project are respected. Examples include a go.mod toolchain line, a Rust toolchain file, or a PHP version requirement in Composer. When the project does not pin a version, Tokay chooses a current supported version.
Verified frameworks
The following frameworks have been tested end to end. An unlisted framework can still work when it uses a supported runtime and a normal build or start command, and plain scripts work in every supported language.
- Node.js and Bun. Express, Next.js, Nuxt, SvelteKit, Astro, Remix, Koa, Fastify, Hapi, NestJS, Hono, Restify, SolidStart, and Qwik.
- Python. Django, FastAPI, Flask, Starlette, Litestar, Quart, Falcon, Bottle, Pyramid, and Streamlit.
- Ruby. Rails, Sinatra, Roda, Hanami, Grape, Padrino, and Cuba.
- PHP. Laravel, Symfony, Slim, Lumen, CodeIgniter, and CakePHP.
- Go. net/http, Fiber, Gin, Echo, Chi, Gorilla/mux, and Beego.
- Rust. Axum, Actix-web, Rocket, Warp, Poem, Tide, and Salvo.
Static site generators
A static site builds during deployment and is served as a web app with HTTPS and a URL like any other.
- Hugo, Astro, Eleventy, Gatsby, Docusaurus, VitePress, and Next.js (static export).
Database migration tools
When the code uses one of these tools, Tokay runs the migration as part of the deploy. Database migrations describes the rehearsal, snapshot, and approval safety around every run.
- Node.js. Prisma, Drizzle, Sequelize, TypeORM, MikroORM, Knex, and Graphile Migrate.
- Python. Django, Alembic, and Aerich.
- Ruby. ActiveRecord.
- PHP. Eloquent.
- Go. golang-migrate and Atlas.
- Rust. SQLx and Diesel.
Package managers
Tokay detects the package manager from the project's manifest and lockfile and installs dependencies with it.
- Node.js and Bun. npm, pnpm, Yarn, and Bun.
- Python. pip, uv, Poetry, PDM, and Pipenv.
- Ruby. Bundler.
- PHP. Composer.
- Go. go modules.
- Rust. Cargo.
System tools are part of the runtime
Some applications call operating system packages to generate PDFs, process images, or run a headless browser. Tokay detects those calls and includes the required tools in the Service environment when supported.
Make an unusual project detectable
Make sure the code includes a clear entry point and uses a supported runtime. If Tokay does not find a runnable Service, add or clarify an entry point such as server.js, app.py, or index.html, then push or analyze the code again.
See How Tokay sets up your app for the full detection and review process.