The moment has finally come… Arachne, while still far from complete, is ready to put in the hands of developers for testing and feedback. I'm excited to see what people think of it, and gather some data about what's awesome and what's not.
First, however, I'm going to state a big list of caveats, so nobody gets their expectations raised too high just yet.
- Although many of the major underlying pieces are working, the current application development experience isn't yet close to what it will be. There's a snowball effect; each new module that becomes available will diminish the friction of application development just that much more. For example, the data abstraction layer (codename Chimera) will be huge, and an enabler for a lot of other tools that can't be started until it is ready. But it isn't quite done for this alpha release.
- Everything is subject to change! I've developed things in a way that makes sense to me, and suits my tastes and style, but Arachne ultimately isn't about me; it's about putting power in the hands of people who want a fast and efficient path towards building powerful webapps. So if my tastes differ from yours, if there's anything about Arachne that you find awkward or distasteful, please let me know.
- Related to the above: this is an alpha version of the software. That means that things can and will change. Until we release the first "production ready" builds, I can make no guarantee, or even put any effort, towards making sure that there are no breaking changes. If you build on top of Arachne, right now, you will be responsible for keeping up to date as things change underneath you.
With that out of the way, if you're still interested, what's in the release?
Here's what's ready:
arachne-coremodule, with the configuration, module and runtime infrastructure.
arachne-httpmodule, which defines abstract HTTP concepts such as servers and routes.
arachne-pedestalmodule, which provides a HTTP implementation based on Pedestal.
arachne-assetsmodule, which defines the basic concepts of a functional/immutable asset pipeline.
arachne-cljsmodule, which uses the asset pipeline to compile ClojureScript.
arachne-figwheelmodule, which builds on top of the CLJS module to provide a dynamic Figwheel-based development experience.
- A Discourse community where users can ask questions, give feedback and chat about Arachne.
There's still a lot to do in the near term that's missing:
- Finish the tutorials, to cover all the modules that are working.
- Write up the "module" documentation, which will be the best source if information for the concepts the modules introduce, their configuration schema, and the DSL they expose.
- Write up a rudimentary config browser, to demonstrate the power of of a data-driven application to introspect application config.
- Ship the kickstarter rewards. I've got this all lined up and ready to go, but haven't pulled the trigger on moving the physical goods yet. My apologies. I had intended to do this around the same time as the alpha release, but will do it this week instead. At any rate, backers should count on getting their stuff sometime in February.
I hope to finish up everything in the list above in the next two weeks, and then move on to the more long term roadmap. That roadmap includes, in rough priority order:
- Finish "Chimera", Arachnes data and persistence layer. This will unlock a whole set of additional modules to work on.
- Write modules to automatically expose APIs that can read/store data in a database. This will really start to demonstrate Arachne's immediate value for web services.
- Write a user authn/authz module, to help users quickly bootstrap "real" webapps with real requirements and functionality.
- Write some automated deployment tools, for "one click deploy" into cloud hosting providers. p It's hard to predict how many of these I will get done before my Kickstarter funding runs dry sometime in April, and I am no longer able to work on Arachne as much. But even when that happens I'll continue to work on it on an open-source basis (or figure out some other arrangment that will let me continue to make forward progress.)
At any rate, I hope you enjoy what we've produced so far, and don't forget to post your feedback. Thanks again for your support!