frontpage.
newsnewestaskshowjobs

Made with ♥ by @iamnishanth

Open Source @Github

fp.

Open in hackernews

Configuration files are user interfaces

https://ochagavia.nl/blog/configuration-files-are-user-interfaces/
37•todsacerdoti•1h ago

Comments

Spivak•1h ago
Or you just use YAML. It's a configuration language for your software, you control which parser you use which can be YAML 1.2, you can use the safe loader which can't run untrusted code, and you're parsing the values into your language's types so any type confusion will be instantly caught.

I agree that it's not perfect but worse is better and familiar is a massive win over making your users look up a new file format or set their editor up for it. If you truly hate YAML that's fine, there's plenty of other familiar formats: INI, toml, JSON.

ruuda•1h ago
From the application point of view, recently I'm converging on this: define data structures for your config. Ensure it can be deserialized from json and toml. (In Rust this is easy to do with Serde; in Python with Pydantic or dataclasses.) Users can start simple and write toml by hand. If you prefer KSON, sure, write KSON and render to json. If config is UI, I think the structure of the data, and names of fields and values, matter much more than the syntax. (E.g. `timeout = 300` is meaningless regardless of syntax; `timeout_ms = 300` or `timeout = "300 ms"` are self-documenting.)

When the configuration grows complex, and you feel the need to abstract and generate things, switch to a configuration language like Cue or RCL, and render to json. The application doesn't need to force a format onto the user!

bee_rider•58m ago
KSON looks neat.

I think the post is hurt by the desire to sort of… “have a theory” or take a new stance. The configuration file is obviously not a user interface, it is data. It is data that is typically edited with a text editor. The text editor is the UI. The post doesn’t really justify the idea of calling the configuration file, rather than the program used to edit it, the UI. Instead it focuses on a better standard for the data.

The advancement of standards that make the data easier to handle inside the text editor is great, though! Maybe the slightly confusing (I dare say confused) blog title will help spread the idea of kson, regardless.

Edit: another idea, one that is so obvious that nobody would write a blog post about it, is that configuring your program is part of the UX.

skydhash•26m ago
There’s two configuration that I like:

- The key-value pair. Maybe some section marker (INI,..). Easy to sed.

- The command kind. Where the file contains the same command that can be used in other place (vim, mg, sway). More suited to TUI and bigger applications.

With these two, include statement are nice.

mholt•24m ago
This is why Caddy has config adapters: bring any config file language you like, and Caddy will run it. It's built-into the binary and just takes a command line flag to switch languages: https://caddyserver.com/docs/config-adapters
theamk•21m ago
KSON proudly claims "no whitespace sensitivity", which means "misleading indentation" is back. And it's pretty light on syntax, so there are going to be plenty of mistakes made here.

Here is an example I made in a few minutes:

    ports:
       - 80
       - 8000 - 10000
       - 12000 -
       - 14000

Guess how it parses? answer:

    {"ports":[80,8000,10000,12000,[14000]]}
VectorLock•3m ago
I like where their head is at here, especially the "superset of JSON" part. Some of the things I'm not _in love_ with like the %% ending blocks or how maybe a bit of significant whitespace might make things a bit less misleading with indentation as others have said, but overall I think I like this better than YAML.

Map Is Not Upside Down

https://www.maps.com/this-map-is-not-upside-down/
34•aagha•29m ago•27 comments

Nvidia buys $5B in Intel

https://www.tomshardware.com/pc-components/cpus/nvidia-and-intel-announce-jointly-developed-intel...
514•stycznik•7h ago•320 comments

Slack has raised our charges by $195k per year

https://skyfall.dev/posts/slack
2507•JustSkyfall•16h ago•1065 comments

Launch HN: Cactus (YC S25) – AI inference on smartphones

https://github.com/cactus-compute/cactus
42•HenryNdubuaku•2h ago•21 comments

TernFS – An exabyte scale, multi-region distributed filesystem

https://www.xtxmarkets.com/tech/2025-ternfs/
122•rostayob•3h ago•34 comments

Flipper Zero Geiger Counter

https://kasiin.top/blog/2025-08-04-flipper_zero_geiger_counter_module/
137•wgx•4h ago•37 comments

American Prairie unlocks another 70k acres in Montana

https://earthhope.substack.com/p/victory-for-public-access-american
160•mooreds•2h ago•105 comments

Luau – Fast, small, safe, gradually typed scripting language derived from Lua

https://luau.org/
93•andsoitis•4h ago•34 comments

Configuration files are user interfaces

https://ochagavia.nl/blog/configuration-files-are-user-interfaces/
37•todsacerdoti•1h ago•7 comments

KDE is now my favorite desktop

https://kokada.dev/blog/kde-is-now-my-favorite-desktop/
499•todsacerdoti•5h ago•402 comments

Aaron Levie: Startups win in the AI era [video]

https://www.youtube.com/watch?v=uqc_vt95GJg
20•sandslash•4h ago•2 comments

Chrome's New AI Features

https://blog.google/products/chrome/new-ai-features-for-chrome/
57•HieronymusBosch•1h ago•28 comments

OpenTelemetry Collector: What It Is, When You Need It, and When You Don't

https://oneuptime.com/blog/post/2025-09-18-what-is-opentelemetry-collector-and-why-use-one/view
6•ndhandala•47m ago•1 comments

The quality of AI-assisted software depends on unit of work management

https://blog.nilenso.com/blog/2025/09/15/ai-unit-of-work/
104•mogambo1•5h ago•64 comments

OneDev – Self-hosted Git server with CI/CD, Kanban, and packages

https://onedev.io/
13•jcbhmr•1h ago•1 comments

Grief gets an expiration date, just like us

https://bessstillman.substack.com/p/oh-fuck-youre-still-sad
249•LaurenSerino•3h ago•115 comments

Learn Your Way: Reimagining Textbooks with Generative AI

https://research.google/blog/learn-your-way-reimagining-textbooks-with-generative-ai/
4•FromTheArchives•34m ago•0 comments

Midcentury North American Restaurant Placemats

https://casualarchivist.substack.com/p/order-up
127•NaOH•2d ago•32 comments

Automatic differentiation can be incorrect

https://www.stochasticlifestyle.com/the-numerical-analysis-of-differentiable-simulation-automatic...
53•abetusk•4h ago•16 comments

CERN Animal Shelter for Computer Mice (2011)

https://computer-animal-shelter.web.cern.ch/index.shtml
276•EbNar•11h ago•36 comments

Show HN: The text disappears when you screenshot it

https://unscreenshottable.vercel.app/?text=Hello
471•zikero•15h ago•168 comments

Rereading books

https://maxgirkins.com/writings/on-rereading
28•mgirkins•4d ago•10 comments

CircuitHub (YC W12) Is Hiring Operations Research Engineers (UK/Remote)

https://www.ycombinator.com/companies/circuithub/jobs/UM1QSjZ-operations-research-engineer
1•seddona•8h ago

The Day the Linter Broke My Code

https://blog.fillmore-labs.com/posts/errors-2/
6•eik•3d ago•3 comments

Meta Ray-Ban Display

https://www.meta.com/blog/meta-ray-ban-display-ai-glasses-connect-2025/
575•martpie•17h ago•842 comments

Linking to text fragments with a bookmarklet

https://alexwlchan.net/2025/text-fragments-bookmarklet/
12•Bogdanp•3d ago•3 comments

This website has no class

https://aaadaaam.com/notes/no-class/
173•robin_reala•9h ago•76 comments

Pnpm has a new setting to stave off supply chain attacks

https://pnpm.io/blog/releases/10.16
164•ivanb•11h ago•104 comments

Ask HN: Dark Mode for HN?

7•todotask2•29m ago•7 comments

Show HN: One prompt generates an app with its own database

https://www.manyminiapps.com/
5•stopachka•1h ago•2 comments