I'm working on Vix, which is a document repository and content
management system written in Clojure with a CouchDB backend. After the
announcement on July 23 I immediately got excited about ClojureScript
and the Google Closure toolkit, so I dropped the existing Backbone.js
and jQuery code and rewrote all client-side functionality in
ClojureScript. Despite (or maybe because of) the fact that the
functionality is still very minimal I wanted to share this code as an
example of ClojureScript in the wild.

Be warned that:
- this is not perfect, clean example code written by a ClojureScript
expert (in several places I've used hacks and shortcuts to make things
work), but hopefully at least a starting point for others working on
similar functionality,
- you should read the installation instructions carefully (e.g. there
is still a hardcoded path in src/vix/db.clj at the time of this
writing, which I hope to correct in the near future),
- I'm actively developing this application, so things will change and
new features will be added frequently,
- the application isn't done yet, although it has a working prototype.

I'm concentrating on adding features that will allow users to manage
feeds (currently "blog" is the default feed), add media files like
images and to manage users. I had trouble getting unit testing to work
properly for the ClojureScript part of the application, so I
grudgingly wrote it using a non-TDD approach. Retrofitting unit tests
into the ClojureScript part is a priority. The user interface is also
lacking some bells and whistles that I had previously implemented in
jQuery, but still have to rewrite using Google Closure. Eventually, I
want to turn Vix into a commercial SaaS offering, with a focus on
performance (e.g. Amazon CloudFront support), scalability and webshop
functionality. The application itself, however, will be perpetually
available as open source software, because I'm committed to sharing my
code.

Here is the GitHub page for Vix: https://github.com/fmw/vix

This is not a "launch post" for Vix, because we're not ready for
supporting typical end-users yet, but I hope that the code will be
useful to other developers in the meantime. I'm also happy to receive
any feedback (positive as well as negative) and answer questions. You
can reply to this post, but if you prefer to contact me privately you
can also find my contact information on Github (https://github.com/
fmw).

Sincerely,

F.M. (Filip) de Waard / fmw

P.S. I'd like to thank the ClojureScript developers. There are
surprisingly few glitches considering that the project has only just
been released. The language is incredibly well designed and a pleasure
to use. Thanks for making client-side development more enjoyable!

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en

Reply via email to