| ▲ | dbla 5 hours ago | ||||||||||||||||
This looks really cool and I've definitely been feeling this pain. I've been building out a solution for myself on top of docker. What are the advantages of using coasts over docker? | |||||||||||||||||
| ▲ | jsunderland323 5 hours ago | parent [-] | ||||||||||||||||
Hey thanks! To be clear it does use docker. It's a docker-in-docker solution. I think there's a quite a few things: 1) You need a control plane to manage the host-side ports. Docker alone cannot do that, so you're either going to write a docker-compose for your development environment where you hard code dynamic ports into a special docker-compose or you're going to end up writing your own custom control plane. 2) You can preserve your regular Docker setup without needing to alter it around dynamic ports and parallelized runtimes. I like this a lot because I want to know that my docker-compose is an approximation of production. 3) Docker basically leaves you with one type of strategy... docker compose up and docker compose down. With coasts you can decide on different strategies when you switch worktrees on a per service basis. 4) This is sort of back to point 2, but more often than not you want to do things like have some shared services or volumes across parallelized runtimes, Coasts makes that trivial (You can also have multiple coast configs so you can easily create a coast type that has isolated volumes). If you go the pure docker route, you are going to end up having multiple docker-composes for different scenarios that are easily abstracted by coasts. 5) The UI you get out of the box for keeping track of your assigned worktrees is super useful. 6) There's a lot of built in optimizations around switching worktrees in the inner bind mount that you'll have to manually code up yourself. 7) I think the ergonomics are just way better. I know that's kind of a vibesey answer but it was sort of the impetus for making Coasts in the first place. 8) There's a lot of stuff around secrets management that I think Coasts does particularly well but can get cumbersome if you're hand-rolling a docker solution. | |||||||||||||||||
| |||||||||||||||||