Below are some of our favorite tools of the trade for website and mobile application development. Don’t worry, you don’t have to know what any of this means. But we like to ease the curiosity of our more tech-savvy clients.
These aren’t the only weapons in our arsenal, but they are what we use most often. We do NOT like restrictions, proprietary possessiveness, or dependence. We like independence, open-source software, community development, and coding standards.
Web server technologies and cloud
The Apache HTTP Server Project is the most often used web server and is completely open-source. It represents the "A" in the LAMP stack acronym and the web server we use on almost all of our web projects. While most web projects will use a standard configuration, we will occasionally put on our server administration hats, for example, to help you set up an SSL (Secure Sockets Layer) certificate.
As you may be able to tell, we like open-source software. Linux is the most popular operating system for servers and accounts for approximately sixty (60%) percent of the usage share ahead of Microsoft Windows. We use servers configured with the Linux system and this allows us to use the full spectrum of open-source technologies, free of licensing fees and restrictive, dependent, proprietary software.
Amazon Web Services (AWS) - owned by Amazon (the same company that used to just ship books) - has become one of the largest cloud computing and web service hosts in the world due to its flexible and low-cost approach. We often utilize various AWS services, including Simple Storage Service (S3) object storage, CloudFront content delivery network (CDN), and Simple Email Service (SES) transactional email service. If you like, we can help you assemble your cloud architecture with AWS as well.
While we use AWS for a lot of cloud services, we use DigitalOcean for our cloud web servers. They are fast and inexpensive and spinning up a resizable web instance takes little effort. They also provide simple one-click installs for common open-source web applications and stacks, including LAMP, LEMP, MEAN, GitLab, and OwnCloud.
Bower is a front-end package management tool for the command line closely associated with Node.js, NPM, and Git. We use it to install a wide array of components, such as Bootstrap, jQuery, Angular.js components, fonts and other packages. Bower simplifies the process of installation and dependency sharing and management.
HTML5 is the freshest revision of the HTML markup language, the base language used in all websites. HTML5, along with CSS3, is extremely useful for responsive mobile development and introduces some great new features and tags, including the native <AUDIO> and <VIDEO> elements, and the <CANVAS> dynamic-2D-drawing element. In the spirit of progress we have embraced this new technology and are happy to help you use it in building your site.
Server-side frameworks and languages
CodeIgniter is our choice of PHP-based MVC (model-view-controller) framework when building highly-customized sites that do not fit into a typical marketing website model. The framework is lightweight and intuitive and favors a streamlined collection of granular functions and classes. We prefer this to the rigid conventions found in other frameworks. In addition, the community is large and the documentation is very good.
OpenCart is our choice for an open-source, PHP-based e-commerce platform. OpenCart is built in a model-view-controller framework with clean and customizable templates and themes. The administration panel is very intuitive and customization and integration with third-party components and plugins is a cinch.
PHP is a popular open-source server-side scripting language and we use it a lot. PHP is ubiquitous in the development world, so it is easy to find a well-developed package for anything web-related. For example, PHP is the foundation of WordPress for blogging, Magento for online commerce, and MediaWiki for wiki. The list goes on and on.
WordPress has advanced well beyond a blogging platform to become the most powerful and popular PHP-based content management system. We develop custom WordPress themes for every type of website – from portfolio websites and restaurants to medium-sized professional businesses and online stores.
Version control and deployment
Git is an open-source revision control system created by the chief architect of Linux. Revision control is absolutely vital for projects the involve multiple developers since it provides for easy code merges and restoration to older versions of a working file. It is fast and platform-independent and is the foundation of GitHub and GitLab – our preferred project host applications.
As Git is our choice of revision control system, GitHub is one of our tools of choice for web-based project management. Public and private repositories can easily be created. Collaborators can be easily added and removed and their progress followed. Projects can be easily branched and forked. We even use GitHub sometimes for quality assurance (QA) testing, as issues can be easily tagged, tracked, and resolved.
GitLab is another one of our tools of choice for Git project management. GitLab offers the same features as other applications such as GitHub and Bitbucket, including collaboration, access management, issue tracking, and more. However, GitLab is a self-hosted application, which means we are not restricted by account levels on the size or number of repositories. We are only limited by the size of the server we employ, which is theoretically limitless.
Communication and utility
We use Google as our primary third-party provider of web-based communication and organization tools, including the gold standards for email and site tracking statistics: Gmail and Google Analytics. While our preference is Google, we will still gladly help you set up other third-party email systems and integrate other site tracking tools.
According to its website, the World Wide Web Consortium, or W3C, is an “international community that develops open standards to ensure the long-term growth of the Web.” In our effort to comply with web standards and produce clean, cross-browser-compliant sites, we often use the W3C validators to find and repair any errors or omissions in our code.
MySQL is the most used open-source relational database in the world. It is the “M” of the popular open-source LAMP stack and is the default choice for most developers working with PHP, Perl, Python, and similar server-side scripting languages. Unlike more powerful databases such as Oracle, MySQL is free and easy-to-use and can be used for virtually any project, large or small.
Local development and emulation
AMPPS is an open-source, cross-platform virtual server emulator with the LAMP basics – Apache, MySQL, Perl, and PHP. We use AMPPS to develop websites locally on our computers before uploading to a production or staging servers. This allows us to develop, test, and debug quickly and easily.
Notepad++ is a basic open-source text-editor with multiple-language syntax highlighting and some basic comparison features. We favor simplicity over full integrated development environments (IDEs) and Notepad++ gives us the simplicity we need to stay close to the code to keep things clean and easy to manage.
Vagrant is an open-source, command-line tool for building stand-alone development environments. It works with virtual machine management tools such as VirtualBox, to create self-contained virtual environments on your computer. We use these virtual machines to emulate real servers with different configurations and stacks like LAMP and MEAN.
VirtualBox is a virtual machine package manager run by Oracle which allows for the emulation of virtual environments on a local computer. In combination with Vagrant, VirtualBox works in the same way as AMPPS and XAMPP, except that configurations can be self-contained which is a big advantage to developers working on several applications at once.
XAMPP is an open-source virtual Apache server installation with the LAMP basics – MySQL, Perl, and PHP. We use XAMPP to develop websites locally on our computers without having to upload and test on an actual web server. This allows us to develop, test, and debug quickly and easily.