Tips For App Configuration

If you’re used to running or developing apps that accept arguments from a config file or the command line, you’ve likely spent more time wrestling with configuration syntax than you’re comfortable admitting. Simpl.js takes some of this hassle out of configuration by accepting a single JSON-formatted config object as input to each app. As a developer, this means no getopt and no eval for parsing configuration data, but here are some additional pointers that will improve the user experience when configuring your app:

  • Sane Defaults - Your app should work normally (or log a descriptive error message) if its config object is empty.
  • Backward Compatibility - Rather than reinterpreting a configuration field in a new version of your app, create a separate field and support both.
  • True JSON - Adhere to JSON semantics in your config file; don’t use things like comma-delimited string values or objects with significant key ordering.