All our sites are built with the following characteristics, unless otherwise requested.
For larger, content-heavy websites, we usually build on the Concrete5 content management system. In our view, this cms is much more intuitive and easy to use than other, more popular suites like Drupal or Joomla (although if a client prefers one of these cms’s we are happy to develop on those frameworks as well). We occasionally build smaller sites with the Wordpress cms.
We build custom web applications and rich internet applications using either our home-grown framework or CakePHP, depending on the needs of the project. We write object-oriented php5 code using best practices for design and security. We apply design patterns when appropriate and use an mvc architecture. Our code is easy to read, and heavily documented in-line.
Our databases are usually set up in mysql5. We prefer the Apache web server, but are also willing to develop sites which will be deployed on Microsoft iis. We develop our sites on Mac os x and typically deploy them on Linux or Windows machines.
Over the past few years, the web industry has placed much emphasis on front-end performance—and rightly so—as that is where the bulk of the bottleneck is for quick and smooth user experiences. At One Hat Design Studio, llc, we have stayed on top of these advances and utilize them in all of our sites. A few examples of these advances are in the use of image sprites, Ajax operations, css/js placement and formatting, and compression.
We use css for layout and not tables, and use semantic markup—even using Microformats where applicable. When developing for Flash, we manually write code in Actionscript 3.0.
Handicapped accessibility is important to many of our clients, and we make sure that when needed, our websites conform to Section 508 guidelines and the w3c’s accessibility guidelines.
Our sites use clean urls and optionally allow for ssl secure logins. We ensure that our sites are search engine friendly by performing extensive search engine optimization (seo) on them if requested by the client.
One Hat follows the graded system of browser support outlined by Yahoo! web developer Nate Koechley in this article. Briefly, this system means that browsers are split into different categories of levels of support. Those browsers which support a given technology will take advantage of that technology. Those browsers which don’t recognize it degrade gracefully. We do not guarantee identical appearance or functionality between browsers or platforms. We do, however, strive for acceptable appearance and functionality.
We are also able to build custom desktop applications using Adobe AIR!
The following paragraphs describe the process used for larger web applications:
Communication between One Hat developers and the client takes place within the Assembla online project management software package which includes a bug tracker, milestones chart, time tracker, wiki, and more.
Source code is managed using the Mercurial version control system, which itself is integrated into Assembla. Each developer has access to the complete source code on his or her local machine for development and testing. A Staging environment will be set up next to Production and configured to be identical to it. Builds will be pushed first to the Staging environment for further testing, and then later to Production.
Unit tests are constructed within the given framework for all models and controllers as development progresses to ensure quality code. Testing of the views and client-side code will be conducted via Selenium, an application which is able to simulate user interactions. Cross-browser testing will take place near the end of development to ensure a consistent and usable experience in all of the supported browsers.
Our source code is non-obfuscated and heavily documented in-line using PHPDoc. From this, an automated API documentation will be output, such that another developer would be able to figure out the logic of the code without difficulty. Written documentation from a user’s perspective will be provided, heavily based on the Functional Specification.
One Hat conducts on-site training sessions, based on the needs of the client and complexity of the project.
Ask us about other issues including scalability, security, availability, and ongoing support.