We’ve long been the beneficiaries of open-source software at silverorange, building many of our websites and web applications on top of an open-source stack (PHP, Apache, Linux, PostgreSQL, etc.). We have also known for a while now that the next platform project we worked on would be released under and open-source license.
That time has come with the release of the Swat Web Application Toolkit. Swat is an open-source web application toolkit built with PHP5. It is primarily developed and maintained by silverorange, but participation and contributions are welcome.
A Bit of History
When silverorange got started in 1999, we built a set of reusable code libraries in ColdFusion (pushing the boundaries of what was possible in a non-object-oriented environment). These made many of the common tasks we were performing for many of our sites much easier. Then, with our switch to PHP we took what we had learned from our time with ColdFusion and applied to to a much stronger web application development platform we called the “PSeries” (no relation to the line of IBM servers).
Now, with Swat, we are developing our third-generation toolkit. This is the first time we have done so with the aim of releasing the code as open-source. Knowing this release was imminent has forced us to make better decisions and write better code.
The Road Ahead
At the time of this writing, Swat is at a 0.0.4 release. The widget-set is mostly filled out and the basic framework is in place. That said, it is still a young project and will evolve significantly in the next few months.
We’re getting starting building our first set of production sites on top of Swat that we plan to have live before the end of 2005. Given this requirement, there will be an eye on making the toolkit ready for a production-quality site as quickly as possible.
It’s Open - Come and Get It
The code for Swat is licensed under the LGPL and any included artwork under a Creative Commons license. The code lives in a public subversion repository. We’re in the process of moving our internal Swat development communication to a public mailing list.
Visit the Swat website for more information. Further news and updates about Swat will be posted here on the silverorange Labs weblog and in the swat-devel mailing list.

Comments
Jeff Smith - October 22, 2005 12:43 am
Congratulations guys. I can only imagine the countless hours you guys must have invested in this framework. I'm proud to see such great things coming out of PEI and will definitely be giving this a try in the near future.
Alexander Labunets - October 24, 2005 4:25 am
Wonderful project and excellent work, guys!
But I have some small questions:
1)Does SWAT use PEAR?
2)When you plan to do a public release? (*.tag.gz) Or maybe you have some roadmap?
My best wishes,
Alex
James - October 24, 2005 7:13 am
As a developer who doesn't use Subversion an alternative download would be much appreciated as this toolkit looks very useful.
Secondly I was just wondering how you deal with deal with values from a DB in your XML.
Steven Garrity - October 26, 2005 1:43 pm
Alexander, Swat uses the PEAR packaging format, but is not included in PEAR. We will be offering our own custom PEAR channel soon though.
Swat also depends on PEAR for some date stuff and MDB2.
We'll have tarballs for you shortly as well. Keep the good questions coming.
Steven Garrity - October 26, 2005 4:29 pm
We've now got downloadable releases on our new Swat Download page. Get 'em while they're hot!
Alderete - February 1, 2006 8:48 pm
If I could make a suggestion, I think this posting and the SWAT home page do not currently answer the question "What is SWAT?" You write "Swat is an open-source web application toolkit built with PHP5" but that is frankly so generic as to be completely contentless.
I looked at the SWAT demo section, and it looks like SWAT is a collection of web UI elements, which have some nice AJAX functionality. What I don't get is how it relates to PHP, or or how I as a PHP developer would use it in applications. That is to say, after reviewing the demo widget pages, I could imagine them being implemented in *anything*, any language. The PHPDoc API reference doesn't really help, because there is no overview explaining the high-level usage of the toolkit.
My point is, I think you should take some time and write two short paragraphs about what the toolkit is and does, how PHP developers would (at a very high level) use it, and why they would find it useful.
It may be obvious to you, after working on it so long, but it's not obvious to the casual visitor!
Alderete - February 1, 2006 8:49 pm
Great. I see your comments reveal my email address. Fabulous.
Steven Garrity - February 1, 2006 10:12 pm
Alderete,
Thanks for the feedback. We know that the information on the Swat website is lacking so far. We're hoping to expand on the overview, improve the documentation, and add some how-to/tutorials and examples. We'll do our best to post here on the labs website when we do post improvements to this content.
I've hidden your email address in your replies as well. Sorry about that.
Keiser - February 21, 2006 4:58 pm
I second many of the comments above.
I think this could be a wonderful, wonderful addition to my development toolkit, however, I'm still a bit confused on implementation and am anxiously awaiting the how-tos or tutorials!
Bo - February 22, 2006 5:46 pm
This is very interesting, but I can not wrap my brain around how to start with a simple example. I am confused about how SwatML fits into the picture. A basic tutorial would be very helpful just to get me up and running.
Kevin - March 5, 2006 2:43 pm
Code code code. I am in the market for a framework and yours got crossed right off of the list before i got 5 min into the site. For 2 reasons.
1. The lack of docs and description provided.
2. TABLES, you use them all over the place for reasons that could easily be avoided, how good is the widget if the markup is out dated and clumsy?
Just my thoughts, however this is one of the more promising I have seen in the last few days of my research :)
Steven Garrity - March 5, 2006 6:05 pm
Kevin, Swat isn't really intented to compete with any existing development frameworks. It's not really a "framework" in the sense that Ruby on Rails (et. al.)
Regarding your comment about tables - do you have specific examples of anywhere we're using tables (or other HTML tags) inappropriately? We do use tables when presenting (drumroll...) tabular data.
chris burgess - March 15, 2006 10:43 pm
Hi, SWAT looks cool, but I had some issues with the PEAR packages and channel - seems I'm running an older version of PEAR than you must be, as my install complains about not being able to handle v2 package.xml files or knowing how to do channel-discover.
I'm testing with PEAR on PHP5 on Ubuntu 5.10. Perhaps you could mention the required PEAR version on your download page?
So, Kevin: having roughly crossed SWAT off your list, can you tell us what remained? If there are better options out there, I'd love to see them!
Leo - April 4, 2006 11:11 am
Helo Steven and SWAT teem, SWAT seems to be very useful when it comes to solving on screen controls. The demos really make it shine back there. Though it seems, that many of us (developers) are running into the same problem.
I`m working under os x 10.4 and it wouldnt install the pakage, I also didn´t find a reason to install it. Couldn't get anyone to help me in the mailing list and couldnt connect to de jabber server, listed back there. It seems that I can't hit that nail when it comes to making it work.
I'll be waiting for any help you guys can give as on how to start using this ToolKit, it's a really great job, my hat, is off.
Leo
Luke S-D - September 20, 2006 1:18 pm
Could you tell me if any of the framework will work using PHP4?
Mike Gauthier - October 18, 2006 1:10 pm
Luke S-D:
Swat is designed to take advantage of many of the advanced features of PHP5. It will not work in PHP4.