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