Swat is an open-source ( LGPL) web application toolkit built with  PHP5. It is primarily developed and maintained by  silverorange, but participation and contributions are welcome. Check out what it can do in the online  Swat demo.

Swat is not a full-stack web framework. Swat is an interface toolkit analogous to  Gtk, but for web applications instead of native applications. Read about why Swat was created.

Get the latest Swat releases, Subversion repository, and PEAR channel info.
Browse the Source.
A working toolkit gallery with sample code.
High-level documentation, API documentation and tutorials.
Get Involved
Mailing lists, Jabber chat info, quick and easy ways to help out.
Related Projects
Projects and sites built with or using Swat.


  • object-oriented PHP 5 code
  • simplifies the process of building and maintaining functional user interfaces for web applications
  • generates standards-compliant XHTML output with flexible CSS hooks
  • relies on CSS for layout and styling
  • provides comprehensive and extensible error checking for forms

Swat 2.0 Planning Started

Planning for a 2.0 release of Swat is underway. See the Swat 2.0 Roadmap.


Swat is always under development but we do have a stable 1.0 release. You can get the latest code in our Subversion repository. Announcements will be made on the mailing list. The most recent release of Swat is .


Use namespaces in Swat JavaScript
Use YUI naming conventions for private members of classes in Swat JavaScript
TableViewInputRow does not use the correct widget names for replicated widgets added with JavaScript
SwatTableView::hasMessage() returns false when it should return true
SwatFormField::$required is set by SwatInputControl
Move some methods that logically should be in SwatNumber from SwatString
SwatForm::$encoding_type not automatically set to 'multipart/form-data' when SwatFileEntry is in a SwatInputCell
Clean up width detection in textarea resize grippy code
Allow actions on individual items in Swat
Swatml 2.0 Suggestions
Try New Method of Vertical Centering in Tiles
Tie clearing the cache into dataobject saving.
Make SwatYesNoFlydown and SwatYesNoRadioList a stock-type for SwatFlydown.
Entities used in serialized values that are then used in SwatHtmlTag will cause InvalidSerializedData exceptions
Make SwatCheckboxTree more parallel to SwatExpandableCheckboxTree
SwatWidget::requires_id should probably go on SwatEntry
Use SwatCheckbox on SwatCheckboxList and SwatCheckboxCellRenderer
Use type="search" for SwatSearchEntry
Add placeholder attribute to SwatEntry
Blorg database warnings
SwatString::byteFormat plural error
Uncramp SwatDetailsView
Add placeholder text to SwatTextarea

Recent Changes

<pre>/public/swat/trunk, 2</pre>

Other Projects Named Swat

Looking for the Samba Web Administration Tool? Refer to the  Samba documentation.