... can integrate Dream into a fully self-contained binary, or run it in large deployments behind proxies. Dream assumes no databases, environment variables, or configuration files, and requires no setup beyond installing the one package, dream. Dream sticks to base OCaml types as much as possible, introducing only a few types of its own. Dream handlers and middlewares are just bare functions. Dream has a flat namespace and aims for maximal clarity.