# A LiveReload server implementation

**URL:** <https://forum.crystal-lang.org/t/a-livereload-server-implementation/2589>\
**Category:** Community\
**Created:** [October 1, 2020, 2:13pm UTC](https://forum.crystal-lang.org/t/a-livereload-server-implementation/2589 "2020-10-01T14:13:55Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![bcardiff](https://yyz2.discourse-cdn.com/flex036/user_avatar/forum.crystal-lang.org/bcardiff/32/3_2.png) [@bcardiff](https://forum.crystal-lang.org/u/bcardiff)\
**Post date:** [October 1, 2020, 2:13pm UTC](https://forum.crystal-lang.org/t/a-livereload-server-implementation/2589/1 "2020-10-01T14:13:55Z")

</div>

I made [https://github.com/bcardiff/live\_reload.cr](https://github.com/bcardiff/live_reload.cr), a [LiveReload](https://github.com/livereload/livereload-js) server implementation in Crystal.

To show its usage I publish a small markdown rendering server with livereload [https://github.com/bcardiff/sample-mdserver](https://github.com/bcardiff/sample-mdserver) .

On some projects where webpack is not required; and stylesheets, data, or views can be updated without rebuilding the http server this can improve the feedback loop.

* * *

Since there is no shard still that does filesystem watch across linux & darwin written in pure Crystal, for now live\_reload.cr does not watch files it self.

I’m also thinking of adding an API inspired in [https://github.com/mklabs/tiny-lr](https://github.com/mklabs/tiny-lr) to allow external processes to trigger file changes.
