# Omit --language. The backend is Bun.

## tags: flisk, bun, node, backend

`flisk resource --type backend` scaffolds Bun and Hono. That is the default on purpose. Omit `--language` and the output stays byte-identical to the historical scaffold. Interactive create does not ask you to pick a language.

Python, Go, Rust, and Node are opt-in. You name them, or you do not get them.

```bash
flisk resource api --type backend --stack shop --yes
flisk resource api --type backend --language go --stack shop
flisk resource --type backend --frameworks
```

The first command is the default. The second is an explicit provider. The third lists registered backend frameworks: id, display name, the language they scaffold with, and the command that creates them. An unknown id fails before any file is written. `Python` and `python` match. A legacy `service.json` with no `language` field stays valid and is not rewritten.

## What Go actually writes

`--language go` writes `go.mod`, `main.go`, and `main_test.go`. The server is the standard library, `GET /health`, reads `PORT`, and listens on every interface. The image is a `golang:1.23` build stage plus a production stage, because Tilt builds `--target production`. A test stage is there so CI can run the language's tests in the image.

The id is stored as `framework` in `service.json`. Omitting the flag writes no `framework` field.

Live reload is also opt-in. Add it, then run `flisk up` again:

```json
{ "dev": { "liveReload": true } }
```

## What not to do in a pull request

One language per pull request. Copy the Python provider and its tests. Register it. Add the Dockerfile template. Do not edit `engine/schemas/service-schema.json` to add the id. `language` there is an open string. The CLI registry is what rejects an unknown id.

Do not add that language's dependencies to the CLI package. Do not "improve" the default by making interactive create prompt for a language. Bun stays the default so old output does not move under you.

`flisk config regenerate` rebuilds project-level config. It does not recreate resource source. If you wanted a Go service and you already generated Bun, make a new resource with `--language go`. Do not hand-convert `main.go` into the Bun directory and expect verify to bless it.

[Backend language providers](https://github.com/flisk-sh/flisk/blob/main/docs/backend-language-providers.md)

[flisk.sh](https://flisk.sh)
