Pkl, a Programming Language for Configuration

This page summarizes the projects mentioned and recommended in the original post on news.ycombinator.com

Our great sponsors
  • WorkOS - The modern identity platform for B2B SaaS
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • SaaSHub - Software Alternatives and Reviews
  • pkl-k8s-examples

    Examples for using Pkl with Kubernetes

  • Why yes, I would like to see more of those in my k8s, so glad we finally have the technology

    https://github.com/apple/pkl-k8s-examples/blob/96ba7d415a85c...

  • lowdefy

    The config web stack for business apps - build internal tools, client portals, web apps, admin panels, dashboards, web sites, and CRUD apps with YAML or JSON.

  • I'm really enjoying reading through the docs and the tutorial. We've created Lowdefy, a config web-stack which makes it really simple to build quite advanced web apps. We're writing everything in YAML, but it has it's limitations, specifically when doing config type checking and IDE extensions that go beyond just YAML.

    I've been looking for a way to have typed objects in the config to do config suggestions and type checking.. PKL looks like it can do this for us. And with the JSON output we might even be able to get there with minimal effort.

    Is there anyone here with some PKL experience that would be willing to answer some technical questions re the use of PKL for more advanced, nested config?

    See Lowdefy:

    https://lowdefy.com/

    https://github.com/lowdefy/lowdefy

  • WorkOS

    The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.

    WorkOS logo
  • pkl-pantry

    Shared Pkl packages

  • You are looking for templates: https://pkl-lang.org/main/current/language-tutorial/02_filli...

    There’s another repo, the Pkl Pantry, that provides a couple of ready made templates (Schemas) that you can try out: https://github.com/apple/pkl-pantry

  • hcl

    HCL is the HashiCorp configuration language.

  • Reminds me of [HCL](https://github.com/hashicorp/hcl), but without all the providers to deploy the config?

  • jsonnet

    Jsonnet - The data templating language

  • Kubernetes config is a decent example. I had ChatGPT generate a representative silly example -- the content doesn't matter so much as the structure:

    https://gist.github.com/cstrahan/528b00cd5c3a22e3d8f057bb1a7...

    Now consider 100s (if not 1000s) of such files.

    I haven't given Pkl an in depth look yet, but I can say that the Industry Standard™ of "simple YAML" + string substitution (with delicate, error prone indentation -- since YAML is indentation sensitive) is easily beat by any of:

    - https://jsonnet.org/

    - https://nickel-lang.org/

    - https://nixos.org/manual/nix/stable/language/index.html

    - https://dhall-lang.org/

    - (insert many more here, probably including Pkl)

  • dhall-lang

    Maintainable configuration files

  • Kubernetes config is a decent example. I had ChatGPT generate a representative silly example -- the content doesn't matter so much as the structure:

    https://gist.github.com/cstrahan/528b00cd5c3a22e3d8f057bb1a7...

    Now consider 100s (if not 1000s) of such files.

    I haven't given Pkl an in depth look yet, but I can say that the Industry Standard™ of "simple YAML" + string substitution (with delicate, error prone indentation -- since YAML is indentation sensitive) is easily beat by any of:

    - https://jsonnet.org/

    - https://nickel-lang.org/

    - https://nixos.org/manual/nix/stable/language/index.html

    - https://dhall-lang.org/

    - (insert many more here, probably including Pkl)

  • servers

    Configuration for my home lab (by shepherdjerred)

  • Try Deno with CDK8s! It's such a fantastic experience. Here's a repo for my home server: https://github.com/shepherdjerred/servers/tree/main/cdk8s

  • InfluxDB

    Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.

    InfluxDB logo
  • pkl

    A configuration as code language with rich validation and tooling.

  • At some point, we'll publish more documentation about this, including instructions for how to build your own language binding.

    And, it's only a sub-process right now, but we plan on also providing a C library as another way to bind to Pkl.

    But if you want to learn more about how this works, feel free to connect with us on GitHub! https://github.com/apple/pkl/discussions

  • guix

    Read-only mirror of GNU Guix — pull requests are ignored, see https://guix.gnu.org/en/manual/en/guix.html#Submitting-Patches instead (by guix-mirror)

  • > So what we are missing now is a 500GB framework that can write the config file for the programming language that is writing a config file for the actual program I wish to use.

    That exists since 1960. It's called LISP. The e.g. https://guix.gnu.org/ uses with great success, the Guile Scheme dialect of LISP, to be precise. And FYI the "framework" is:

      $ ls --human-readable --size $(readlink $(which guile))

  • kurtosis

    A platform for packaging and launching ephemeral backend stacks with a focus on approachability for the average developer.

  • 100%. Containers are essentially the new language-agnostic software libraries, but our current tools aren't adapted to write and distribute the "programs" formed from gluing them together.

    (Mostly-shameless plug, this is what we're trying to solve with Kurtosis: https://github.com/kurtosis-tech/kurtosis )

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts