Pre:ClojureRemote 17

flyboarder
degree9
Published in
2 min readNov 27, 2016
ClojureRemote 17

At ClojureRemote this year I will be doing a presentation on Hoplon, specifically I’ll be doing a demo of how to build a chat application.

To help keep myself on track, I decided to document the planning and development process of my talk and write about it here.

I want this talk to express the benefits of working with a single language to build not only your client but also your server components. Thus unifying your application into a single cohesive code-base.

To achieve this goal I’ll be rebuilding the Feathers-Chat demo, and replacing the front end with a simple Hoplon client. The featherjs team has done a great job of giving us multiple examples of using feathers with different client libraries and frameworks. We will be reimplementing the jquery version of the chat application since originally under the hood Hoplon was built on jquery, and we know they work well together.

To begin with we will need to finish another project I have been working on, FeatherScript. This is a nice little wrapper library around both the feathersjs node.js libraries and the client library, to make everything more clojure-ish.

Ok, so our first task, FeatherScript. Well almost, since ClojureScript doesn’t compile npm packages, we are going to use a simple (cljs.nodejs/require) and pull in the feathers packages at runtime. This expects the feathers npm packages to be available on the system ahead of time. We will also need to package the feathers client package for use with cljsjs.

Time for the Task List:

  1. Package Feathers-Client for CLJSJS
  2. Wrap boot-npm to fetch feathers npm packages
  3. FeatherScript — Feathersjs cljs wrapper
  4. Chat Server Application
  5. Reimplement UI in Hoplon

I think that rounds things up for the initial bit of work to be completed. You can grab your Tickets right here:

As always, I prefer to work collaboratively with the community. The ClojureRemote-Chat repo is the place to be if you want to get involved.

If you are interested in tracking my progress there is a waffle for that.

--

--