I'm the guy who built this, based on my own experience and DHH's comments on the Basecamp2 architecture. It's an attempt to keep things simple and lightweight while still getting many of the UX advantages of newer MVC frameworks.
I've tried a few different hooks for the project:
"Javascript-free AJAX"
"A simpler AngularJS"
"Declarative AJAX"
Any feedback on the best way to sell it would be appreciated.
Also, if anyone is interested in working on the project, there are two major areas left:
- Getting the History API smoothed out
- Making transitions pluggable
Please let me know if you are interested: @carson_gross
What you mean by that is obviously that the user of the library doesn't need to write JavaScript to use your library. But when it comes to web design, here is actually such a thing as writing functionality that works without JavaScript enabled in the browser (often called graceful degradation).
Normally I would not fuss over such a detail, but since literal JavaScript-free/optional functionality is an actual topic in webdesign, I would encourage you to pick a better phrase for your library (which runs and requires JavaScript), as to avoid confusion that the library itself would work without JavaScript enabled.
I like the phrase "Declarative AJAX", although it might be a bit on the technical side of your target audience.
When I built the library it was partially out of frustration at how hard much code it was to build simple AJAX functionality out in jQuery, ember, etc. and that's reflected in the original hook, but, upon reflection, it can come across as both negative and confusing.
I think I'm settling on "Declarative AJAX"...
I guess one post hoc rationalization is that the library isn't designed to replace anchors and, where they make sense, you should just keep using them.
But I'm just making that up. ;)
All in all, I think it's a neat idea. Since you give Rails examples, it might be nice to include some Rails helpers as separate project/gem that make it so you don't need to write so much boiler plate in your views.
I would certainly be interested in a project that does this but embeds all functionality in hyperlinks.
Some minor issues: The video tutorials are very hard to follow. I say this as someone that has never worked with Rails or Ruby.
So when you start talking about "routes", "partials" and I see code referencing "paginate" and erb files on your server code... In very alien-looking syntax, I might add. It makes for a very hard "tutorial" to follow.
I would definitely suggest making server tech-agnostic tutorials. Where you simply talk about the urls being requested, what they return and how they interact with the client-side. Please exclude specific server-side tech, no matter how cool or "fancy" it is, or how knowledgeable you are in it.
Looks like an interesting library, especially for backend focused devs.
Search for "Implementing A Dynamic Progress Bar" on this page:
http://intercoolerjs.org/intro.html
for a fairly elaborate example.
That being said, Intercooler is not designed to handle 100% of the AJAX cases you might run into. If you have a crazy dynamic UI, like a live graph or drawing canvas, this isn't the right tool.
But, it will play well with whatever the right tool is. :)