I've been trying to make Clay a little more developer friendly, mainly to make up for a lack of documentation. Adding Composer support was a part of that. I'm hoping, over time, I can continue building in tools that assist in that department, but to also use them as a form of documentation.
Tonight I started on an example/starter app that will demonstration how applications work and all of the options available to use from Clay itself. Apps are their own entity within Clay, so it's impossible to demonstrate everything possible to build in an app, but I can show ways to do certain things.
I've always hated scaffolded apps, but I was still considering building a generator that gives you a simple, functioning app. I still may do that, as a temporary solution, but I have a better idea for the long term. I may tell you about it some day...or I may just wait and show you.
The one tool Clay needs the most is documentation and I plan to slowly document everything. I had a complete set of docs for Clay years ago, but it kept changing so much that was not maintainable by just me. Clay is stable now and if nothing else I'll have a complete document on for 2.0.
I'm currently adding Composer (the PHP package manager) support in Clay, with the hope that access to additional packages will speed up my development flow. I do not plan to make Composer a requirement to use Clay, it will only be for Clay developers.
Until now there has been very little 3rd party code within Clay, I've attempted to write as much of it as I can. Unfortunately, that isn't the timeliest way to do things, especially if there is a specialized package that can do the same things. There are still plenty of things I want to add to Clay that I'll have to write myself, but these packages (which are equivalent to Clay Libraries) will definitely makes development easier and faster.
Again, Composer won't be required to use Clay, it will just be a developer tool, in addition to NPM (Node.js Package Manager) and several other command line tools that are used for Clay development. All of the 3rd party packages will be included in Clay and managed through the release cycle process.
Regard your soldiers as your children, and they will follow you into the deepest valleys; look on them as your own beloved sons, and they will stand by you even unto death.
- Sun Tzu
Most leaders today see their people as numbers or workers. Sun Tzu had a very different view of his people and that has had a profound impact on how I treat everyone I work with, whether I am their boss or not. Sun Tzu taught that leadership is a balance of multiplicity. Wisdom, ingenuity, planning, compassion, awareness, and many other attributes come together to make a great leader.
You have to be everything your followers need, some things they want, and nothing they don't need. Great leaders are loved for those truncated attributes. My motto as a leader has always been similar to the Sun Tzu quote above. My quote would be: "Not matter what rank I wear, it makes no difference to my troops. I wear my rank in your heart, not on my sleeve."
I've been working on the Contact app, still some work left on the admin side, but it's getting there. I hope to finish it this week and get to work on the Pages app.
I've been considering adding routing functionality to Clay to use for short urls. The catch is how to combine it with application::URL() for generating urls to apps. My fear is it would be a performance hit, because of the extra db queries when generating those urls.
The Pages app will be the biggest content app so far. My plan is to make it a mini CMS within Clay. It will change the way content is displayed in Clay and will be the focal point for content in at least Clay 1 & 2.
I've still been working on ClaySS, trying to get a baseline in there so I can begin working it into the 1.6 alpha codebase (coming some day). That means I am actually going to release 1.0 soon. I've still been holding off for the Pages and Contact apps, but I'm about to shift toward getting those finished, then there will be some clean up, a new menu and we'll see where we need to go from there. I'd imagine at least 1 beta release will come out, but I don't see a lot changing after that.
I've kind of made a 1.0 release my own mental hurdle, so I need to get it out so I can move on!
I've been working on ClaySS, have the base in there, just need to add some default styling. I'm not to the point where I've started making a theme yet, but it's getting there. ClaySS wont be used in 1.0-1.5, it's for the next major version, which starts at 1.6. It could take a while to finish...
I've been working on the Pages and Contact apps. The Pages app will just be for making custom pages, for now. Eventually it will replace the System app as the default app.
Hope everyone is having a good weekend and please remember to keep the areas affected by Hurricane Harvey in your prayers.
I've been working on a new themeable CSS framework and today I named it and created a repo: ClaySS. Who saw that coming, right? 😉
ClaySS will replace Bootstrap and jQuery in Clay 2.0, but will be available as a standalone SASS package on npm. ClaySS is based on iotaCSS, so you will be able to use iota's components for React, Angular, and Vue as well.
I've been torn on whether or not I wanted to go this direction, but with my focus shifting away from PHP somewhat and more toward node.js, I think it's time to create something different. Bootstrap is awesome, I've used it for several years and it has in a lot of ways shaped the way web sites look today. On the other hand I think it's dependency on jQuery is holding us back. They've both served us well, but it's time to move on.
Clay 1.0 will continue to use Bootstrap, as it is built into all of the apps and themes. Clay 2.0 will be very different in a lot of ways, I think moving away from Bootstrap at the same time is the best approach. I still plan to write Clay 2.0 in PHP, but there are some twists (not spilling the beans yet).
One of my projects is a Baptist web site I'm launching "soon". If you've followed me over the years you may recognize the name, but it's been sitting idle for a while.
I've found it's easier to build features into Clay and other projects if I have a real world use for them, so I'll be expanding into several different directions. I'm learning a lot, so I think it's worth it just for that, but I'm also building a nice tool set for future projects as well. More to come on the Baptist site, it'll start small and grow over time. It's really just my personal commentary and a study site, but it'll also be open for other contributors as well.
I've been fairly busy lately, a few different projects going on at the same time. No complaints though, it's good to stay busy. I look to expand the widgets app with some additional APIs and blocks over the next few weeks. I also have some Zillow features to add, probably over the next week. Of course there are the usual suspects within Clay to finish as well. I'll get to them eventually. After working with several CMS' over the last couple of weeks, I think one of the things I've neglected in Clay is a good menu system. I have the utilities in place to build one, but never implemented the actual menu. I'll have to work on that as well.
Clay now has a Widgets application which allows you to use APIs from 3rd parties on your site. It isn't feature complete, but you can view the Zillow Reviews API on my client's site at L&M Realty. If you get an error, that's because Zillow hasn't approved my request increase and L&M gets a lot of traffic. I haven't finished the template for the API, but right now it splits between team requests and agent requests. If multiple agents are requested it will split them into tabs, which I haven't finished implementing.
I'm working on an app that will allow you to build portable website widgets using 3rd party api's. It'll also provide hooks within Clay so you can plugin the widgets to other apps. Any requests for api's to use?
I'm officially a New Mexico business owner. I'll be doing web sites, apps, customization and consulting. Pretty excited :)