Use Cases

Pkl is a good fit for:

Generating Static Configuration

Are you using a tool, service, or application that is configured with JSON, YAML, or any other static configuration format?

By generating this configuration with Pkl, you can reduce verbosity and increase maintainability through reuse, templating, and abstraction. JSON, YAML, and XML property lists are supported out of the box; renderers for other configuration formats can be developed and shared by anyone. Automatic defaults, strong validation, and sensible error messages come in reach with configuration schemas.

Generation can be triggered manually, by an automation pipeline, or by the target application.

Application Runtime Configuration

Are you the author of a tool, service, or application that consumes configuration?

By adopting Pkl as your "native" configuration solution (rather than, say, using it to generate JSON files), you benefit from a modern configuration library that is safe, easy, and enjoyable to use. At the same time, anyone configuring your application — whether that’s your users, site reliability engineers (SREs), or yourself — benefit from a well-defined, well-documented, and scalable configuration language.

At the time of writing, Pkl offers configuration libraries for the JVM runtime, Swift, and also for Golang.

We maintain the following libraries:

In the future, we hope to add support for other popular languages and platforms, realizing our vision of a polyglot config solution based on a single config language.

<Your Use Case Here>

We are just getting started. Tell us about your Pkl success story!