DEV Community

flisk
flisk

Posted on

Goose Lang and Flisk.sh 101: Two Binaries, Not One Flag

Part 1 of Goose lang and Flisk.sh 101.

This series is a laptop tutorial. Part 2 and 3 are the Goose programming language. Part 4 is flisk.sh. Part 5 puts both in one folder and stops before the lie.

The three Gooses

You typed What it is In this series
goose hello.goose Wouter van Oortmerssen's compiler. It emits C. No heap, no GC. Parts 2 and 3
goose configure The AAIF AI agent. Desktop, CLI, recipes. Not this series
goose up pressly/goose, the database migrator. Not this series

If goose --version talks about providers, you installed the agent. The language compiler's first useful command is goose hello.goose or goose build hello.goose. Check which goose before part 2 and do not put the agent and the compiler on the same PATH entry.

What Flisk will generate

Flisk starts services on your machine. You describe one in service.json. flisk up writes Docker and Tilt files and starts that stack. It is not a deploy tool. Production stays on Helm, Argo CD, or Kustomize.

Backend languages you can pass today:

--language What you get
omitted Bun and Hono
python FastAPI
go net/http
rust axum
node node:http
goose the CLI should fail before it writes files

A generated backend answers GET /health, reads PORT, and binds every interface. A Goose program from the language tutorial prints a line and exits. Those are not the same process. Part 5 is where that matters. Do not skip there and invent a flag.

What you need before part 2

  • macOS or Linux for the full loop. Native Windows can inspect a Flisk project. Starting the stack there needs Ubuntu on WSL2.
  • Node.js 22.12 or newer, only for the Flisk install in part 4.
  • Docker and Tilt, only when you run flisk up. flisk doctor --no-ping does not need them.
  • A C toolchain if you will goose build. Linux also needs libc headers (libc6-dev or glibc-devel). macOS needs the Xcode command line tools. In-process goose file.goose needs those headers too, but not a separate compile of your program.
  • Goose prebuilt compilers exist for Windows x64, Linux x64, and macOS Apple silicon and Intel. Linux wants glibc 2.35 or newer. macOS wants 13.3 or newer.

The command to try, then forget

After part 4's install, this is the negative test:

flisk resource orders-api --type backend --language goose --stack shop
Enter fullscreen mode Exit fullscreen mode

Expect a failure and an empty directory. If a future Flisk version accepts goose, stop this series and read that version's provider guide. Do not keep a tutorial that contradicts --help.

Repo shape we are walking toward

shop/
  hello.goose          # part 2, host only
  total.goose          # part 3, host only
  services/shop/orders-api/   # part 4, Flisk owns this tree
Enter fullscreen mode Exit fullscreen mode

You own hello.goose and service.json. Flisk owns .autogenerated/. An editor, human or agent, does not "fix" a generated Dockerfile to make Goose look like a backend.

Next: install the compiler and print one line.

Top comments (0)