zine and zig-live-webserver are nice in this respect, where instead of filling out a run step yourself, you have a function. This allows a more controlled API surface that can change without clients updating (eg, add optional fields) and has generally nicer usage.