I wrote something similar, called Slinky [0], which also transparently compiles various compiled web langauges (SASS, HAML, CoffeeScript, TypeScript, etc.).

The issue with these systems is that they lie in between something like Python's SimpleHTTPServer and a complete frontend development tool like Grunt or Gulp. They're great for small projects, but have trouble scaling up.

[0] https://github.com/mwylde/slinky

Slinky looks very neat! I do feel it inhabits a very different niche from devd, though. I have no ambitions for devd to compete with tools like Grunt, Gulp or Slinky.

Devd has a simple job: it just serves files and triggers livereload when files change, and is completely agnostic about the build process. That means it works very well as a complement to Gulp - in fact, this is one of my primary use cases for devd. My gulp setups are simpler now: I've ditched Connect and node livereload libraries, and instead gulp JUST renders files to disk. It's early days, but having two sharp tools each doing what they do best seems to work well.

I should add that I definitely don't think there's one "right way" to do this stuff. I love the fact that we're free to explore variations to see what works and what doesn't. The more things we try the merrier!

Do you have an example gulpfile that uses devd? I've had a lot of trouble getting connect + nodemon to work well together and would love a better solution.

Devd doesn't appear in my gulpfiles at all, actually. Gulp literally just renders to disk. I then start devd separately with the appropriate livereload flags to handle the service end of things.

For instance, here's a devd command-line from the docs (https://github.com/cortesi/devd) that handles proxying local services, with a static directory overlaid. Gulp would be rendering assets into that static directory, the change would be noticed by devd, and liverload would be triggered.

  devd -l \
  -w ./src/ \
  /=http://localhost:8888 \
  /api/=http://localhost:8889 \
  /static/=./assets