XML is better than YAML

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

SurveyJS - JavaScript Form Builder with No-Code UI & Built-In JSON Schema Editor
Add the SurveyJS white-label form builder to your JavaScript app (React/Angular/Vue3). Build complex JSON forms without coding. Fully customizable, works with any backend, perfect for data-heavy apps. Learn more.
surveyjs.io
featured
InfluxDB – Built for High-Performance Time Series Workloads
InfluxDB 3 OSS is now GA. Transform, enrich, and act on time series data directly in the database. Automate critical tasks and eliminate the need to move data externally. Download now.
www.influxdata.com
featured
  1. config

    configuration library for JVM languages using HOCON files

    This is one of the few HN discussions where I feel a little bit qualified to give an opinion :)

    Two years ago I started a small data quality checker software where users could define their alerts, frequencies,.. all in config files instead of modifying code.

    I started with JSON as config format, but then realised comments are necessary to guide users in defining alerts. I moved to YAML, but after some "indentation incodents" started using HOCON conf [0] and never looked back. I don't see any reason for choosing YAML over one of JSON or HOCON, except being forced to. Features such as inheritance and text block support which were essential for me are nicely supported in HOCON.

    [0] https://github.com/lightbend/config/blob/main/HOCON.md

  2. SurveyJS

    JavaScript Form Builder with No-Code UI & Built-In JSON Schema Editor. Add the SurveyJS white-label form builder to your JavaScript app (React/Angular/Vue3). Build complex JSON forms without coding. Fully customizable, works with any backend, perfect for data-heavy apps. Learn more.

    SurveyJS logo
  3. json5

    JSON5 — JSON for Humans

    I believe that's JSON5.

    https://github.com/json5/json5

    It's my preferred configuration file format, it fixes all the problems I have with JSON (trailing commas, comments) without turning it into a mess full of gotchas like YAML.

  4. npm

    The fact that JSON doesn't support comments is so annoying, and I always thought that Douglas Crockford's rationale for this basically made no sense ("They can be misused!" - like, so what, nearly anything can be misused. So without support for comments e.g. in package.json files I have to do even worse hacky workaround bullshit like "__some_field_comment": "this is my comment"). There is of course jsonc and JSON5 but the fact that it's not supported everywhere means 10 years later we still can't write comments in package.json (there is https://github.com/npm/npm/issues/4482 and about a million related issues).

  5. LGV_MeetingServer

    An aggregation server for meeting list servers.

    I find “self-documentation” often doesn’t actually work. It’s great in theory, but often falls down, in practice.

    I often need to preface my config stuff with fairly substantial comment blocks that discuss the reasoning behind the configuration.

    Here’s an example: https://github.com/LittleGreenViper/LGV_MeetingServer/blob/m...

  6. uplaybook

    A python-centric IT automation system.

    Agreed, I do a lot of Ansible, and it took me a while up front, but I've become pretty accustomed to YAML. Though I still struggle with completely groking some of the syntax. But, I recently took a more serious look at TOML and felt like it'd be a bear for Ansible.

    A few months ago I made a "mini ansible / cookie cutter" ( https://github.com/linsomniac/uplaybook ), and it uses YAML syntax. I made a few modifications to Ansible syntax, largely around conditionals and loops. For YAML, I guess I like the syntax, but I've been feeling like there's got to be a better way.

    I kind of want a shell syntax, but with the ansible command semantics (declarative, --check / --diff, notify) and the templating and encryption of arguments / files.

  7. json-schema-spec

    The JSON Schema specification

  8. ron

    Rusty Object Notation

    Whenever this kind of arguments come up, I am sad that RON (https://github.com/ron-rs/ron) is not better known. To me it feels like a cleaner and better JSON.

    In any case, my little experience with it had made me hate YAML. Generally speaking, I have come to dislike any language with significant whitespace other than Haskell.

  9. InfluxDB

    InfluxDB – Built for High-Performance Time Series Workloads. InfluxDB 3 OSS is now GA. Transform, enrich, and act on time series data directly in the database. Automate critical tasks and eliminate the need to move data externally. Download now.

    InfluxDB logo
  10. yaml-sucks

    YAML sucks.

  11. strictyaml

    Type-safe YAML parser and validator.

    NestedText already is the way I use YAML; everything is intepreted as a string. I have some trust in my YAML parser to not mangle most strings. I could use NestedText, but users would be unfamiliar with it, and IIRC the only parsers are in Python. But then I could use StrictYaml too https://github.com/crdoconnor/strictyaml

  12. keep

    The open-source AIOps and alert management platform

    hey! would be cool to chat about what you've build. we are currently building Keep (https://github.com/keephq/keep) where you can define alerts as YAML's. would be cool to learn from you.

  13. github-workflows-kt

    Authoring GitHub Actions workflows in Kotlin. You won't go back to YAML!

  14. Visual Studio Code

    Visual Studio Code

    Actually no, it’s something called jsonc.

    It’s proprietary (?)

    https://github.com/microsoft/vscode/issues/100688

  15. clojure-style-guide

    A community coding style guide for the Clojure programming language

    Fixed link to that style guide entry: https://guide.clojure.style/#opt-commas-in-map-literals

    Per that style guide, the above map would be formatted like this (on HN, just indent by two spaces):

      {:a 1

  16. gron

    Make JSON greppable!

  17. nix-configs

    My Nix{OS} configuration files (by thiagokokada)

    Sorry, didn't see this comment. It is here: https://github.com/thiagokokada/nix-configs

    In the `actions` directory is all the Nix files. There is some glue code in `lib/flakes` to generate the YAML files from Nix.

  18. SaaSHub

    SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives

    SaaSHub logo
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

  • JSON5 – JSON for Humans

    21 projects | news.ycombinator.com | 8 Dec 2024
  • Guido van Rossum's Post Removed for Violating Python Community Guidelines

    3 projects | news.ycombinator.com | 29 Aug 2024
  • orjson: Fast, correct Python JSON lib supporting dataclasses, datetimes, NumPy

    2 projects | news.ycombinator.com | 20 Aug 2024
  • Python Kafka

    1 project | dev.to | 30 May 2024
  • How to Manage and Migrate Docker Volumes for PostgreSQL

    1 project | dev.to | 28 May 2024

Did you know that JavaScript is
the 3rd most popular programming language
based on number of references?