Is there a good solution for devshell with associated services? The app itself is fine that way, but what about the database, message queue, seed data, etc.?
I usually write a script that idempotently spins these things up locally, and use the shellHook to call that script. That way whenever I cd into the dir the first time, direnv loads the nix-shell, which starts the db, message broker, etc. I also have a shutdown script that I run when I manually want to shut things down. Works quite well.
For more advanced use cases, such as k8s with tons of services, you're better off using something like tilt.dev.
It's a userspace process orchestrator/scheduler that works across all relevant platforms, supporting daemon processes and k8s style readiness/health checks.
In combination with nix flakes, it quickly reduced my projects docker-compose usage for easy-to-configure services.
This gave huge performance benefits for the M1 Mac folks on my team especially for CPU intensive processes thanks to native binaries.
For maximal ease of use, the remaining docker-compose containers are started/stopped as a process-compose task.
Quite meta :)
You can install any services in your nix dev shell environment. Run them however you desire--a bash script that backgrounds their tasks, systemd user services, supervisord, or any other process manager.
So I'm aware you can script anything you want. I meant a more integrated version. Now I'm tempted to write one myself where you provide the (for example) mysql you want to run and it automatically inserts the right scripts...