pub async fn serve_until( config: AppConfig, frontend: Router, on_listen: impl FnOnce(Listening), stop: impl Future<Output = ()> + Send + 'static, ) -> Result<(), Box<dyn Error + Send + Sync>>