Insight into Clay's Development Path
I've been pushing forward with Clay's new release cycle and planning the development path toward Clay 2.0. In about a week I'll be releasing the first public download of Clay and continue prepping for the 1.0 release in August. I mostly consider 1.0 to be finished, it needs documentation and a few important application features, but at this point I'm more concerned with a stable core than features that can be added at any time. With that being said, I plan to round out some of the major needs before August and plug in as much as possible during the monthly release cycles from there out.
Looking ahead, I have some really nice plans for Clay 2.0 and 2.5. It's difficult not to dive in and start making changes, but I'm going to spend a lot more time planning this time around. My hopes for Clay 2.0 are to strengthen the way applications interact and build in several things that will improve Clay for the user and the developer. The biggest addition being, of course, for the developer. The plan is to build in an integrated development environment (IDE) that will act as a development and project management tool.
Clay's IDE will be based on an existing web-based IDE or system and I haven't decided yet how much I went integrate it into Clay's core or if I will try to keep it as native as possible. What I would like is an IDE that can be used to write and edit code on the server side in a sandbox, deploy a test version when needed, and then deploy a live version to be public on the site. It should be able to support multiple hosts for deployment and a patching system for rolling out updates. The IDE should support Git and be able to do all of the main functions of a Git client. It should also have project management features, such as shared tasks and collaboration.
One of the key components of my desired IDE is the ability to manage multiple projects that are local or remote. I'm not only doing this to help Clay's development, the idea is to have a project management environment built into a web site that can be used for anything. But, with that being said, the IDE should provide a strategic advantage over other systems and allow site migrations and upgrades to be done nearly entirely on-site. I know a lot of CMS' are beginning to build in more editting tools for the server side code, but the goal for Clay 2.0 is to make local development obsolete and to provide the ability to write the code on the servers it will be used on.
For Clay 2.5, I want to take development to another level and provide a way to create applications and themes from within the Clay, without having to write a majority of the code behind them. Using wizards and user input, the user should be able to build an application or theme from their web site and use the IDE for editting as needed. A built in package manager will allow users to share apps and even use eachother's apps as templates when creating new ones.
Well, those are some of the plans I have for Clay over the next year or so. There are a few other things I want to do, but I've mentioned a lot of those before or should probably keep a few surprises at least.
Log in to comment