No Docker Is a Valid Answer
Not every service needs a container to be developed. Pick containers for what they are good at and let simple processes stay simple.
Not every service needs a container to be developed. Pick containers for what they are good at and let simple processes stay simple.
Containers solve real problems, and they also cost startup time, disk and a daemon someone has to keep alive. The honest question is not whether to use them but where.
The default question is wrong
Teams usually start from how do we containerize this. The better start is what does this service need from the machine. A small website and an API written in Node, Python, Go or Bun need a runtime and a port. They do not need an image.
When you ask the first question for everything, the laptop pays for isolation nobody asked for.
Local processes as a first-class mode
A service whose service.json declares a command runs as a plain local process. When every service in the project does, flisk up needs only those runtimes: no Docker, no Tilt and no generated files. flisk doctor adjusts to match and checks only that the programs are installed.
The same idea is why the starter demo works without Docker. When Docker is not running, or on native Windows, flisk demo falls back to a two-service app (a menu API and a website) started as local processes, so the first thing a new person runs does not depend on a container engine.
When containers earn their place
- Databases and queues. You want the real thing at the real version, and a container is the cheapest way to get it.
- Gateway routing. Traefik gives every service a stable
*.localhostURL with ports assigned for you. - Parity. If production runs the container, running the container locally catches the image that does not build.
Those are real reasons. They are reasons about specific services, not about the whole project.
Mixing is allowed
The two modes are not a fork in the road. You can scaffold a service with flisk resource <name> --local to run it on your computer, keep Postgres in a container, and let both sit in one project. The manifest says which is which, so a newcomer reads the answer instead of discovering it.
A laptop that starts what you are actually working on, the way that costs the least, is a better default than a uniform stack that makes everything equally heavy.