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.
Angular is an open-source front-end web framework built by developers at Google. Angular uses techniques like binding, directives, and services to asyncronously connect the data and logic layers of an appliction to the presentation layer all in one language. It has become a widely used framework for developing powerful web and native applications.
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.
Sass is a powerful CSS compiler language that provides a clean way to make repetitive CSS editing tasks mundane. Sass uses variables, nesting, mixins, extensions, and other tools to allow a developer to create reusable expressions that compile to clean and organized CSS stylesheets, saving time and effort.
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.
Drupal is an open-source PHP content management platform primarily used for content-intensive applications. For example, we have used Drupal in the past with many institutional projects, such as universities and hospitals where more custom content and taxonomy relationships are needed. Our primary experience has been with Drupal 7 and the more recent Drupal 8, which utilizes the Symfony framework for a more object-oriented and dependency-based development structure.
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
Bitbucket is one of our third-party platforms of choice for repository hosting and code management, similar to Github and Gitlab. We use Bitbucket to store, manage, and merge code between multiple developers and to deploy to server environments using Bitbucket's Pipelines and Deployments tools. Bitbucket also integrates with other Atlassian products like the Jira issue management tool.
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 repository 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.
PostgreSQL is an open-source relational database that is a very powerful alternative to the more ubiquitous MySQL. While primarily utilizing the same SQL statements and directives as MySQL, PostgreSQL has some nuanced advantages, and has become more popular for newer technologies and frameworks.
Local development and emulation
Atom is an open-source, cross-platform text editor developed by the folks at Github. We use Atom as one of our editors of choice due to its clean design and configurability. We favor simplicity over full integrated development environments (IDEs) and Atom gives us just enough features and formatting to let us create clean, readable code.
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.