Skip to content

flwrjs/camomile

camomile

npm

WARNING: This project is WIP and under no circumstances production-ready.

Camomile is a toolkit for automating usual tiresome project tasks: building, linting, testing, and packaging.

Think Gulp or Make, but more compact, more customizable, yet less annoying and easy-to-use.

Why?

To be honest, I just find it annoying, that tools like Gulp take loads of space inside my node_modules, tools like Make aren't JS-friendly, and tools like Rollup or Webpack weren't built for something that isn't JS. When one tries to build something that isn't a web application (like a CLI, static site or a simple script), it's hard to find a lightweight yet robust and modular tool. Camomile is the solution to all the stress and headaches one gets when developing something simple for modern web 🍵

Ambitions

Camomile is not a ready project, but rather a list of ambitions. Here is a list of features we want Camomile to have, in comparison to other similar tools:

  • like Make, Camomile is easy yet configurable. Each task is a mere JS function, that can do anything
  • unlike most JS build tools, Camomile is compact. Broccoli installs 255 extra packages, Camomile will aim to install < 10
  • like Ninja, Camomile is effective and doesn't do unneeded work. When a source file didn't change, it won't be compiled
  • unlike Gulp, we will always try to ship the latest dependencies, so that you would never get red text inside npm audit
  • like Taskr, we will aim to provide long-term support for older Node.js versions. Starting with Node.js 12, every LTS version will get all security updates. Yes, beyond after end-of-life
  • like Rome, TypeScript is the language of Camomile. With strong typing, we try to eliminate silly bugs
  • like Rollup, Camomile is next-generation. It is aimed at ESM codebases and favors ESM output. The configuration is ESM too!
  • like Snowpack, Camomile is fast. The defined tasks run in parallel, and we're ready to write native code to speed up the slow chunks

License

BSD-3-Clause © 2021, Nikita Karamov and other contributors