Web Apps != Web Sites

An overview

Dan Powell
Aug 9, 2017 · 3 min read

There is a difference between web applications and web sites.

Web sites are largely static. Other than a contact form the user does little or no data input and simply consumes a brand and its content — presented in the best light possible.

Web applications, however, are built for interactive experiences. Emerging from the confluence of data-rich functionality and slick presentation, a good web app is more of a platform than a pamphlet.

The workout generator is built a top of Ruby on Rails. Ruby on Rails is a popular web framework embraced by companies like Basecamp, Square, and Airbnb. Its flexible MVC framework makes it a good starting point for web applications. Its large open source community makes it a safe bet at scale.

This is a rather dramatic change from Wordpress and PHP (its code underbelly).

While Wordpress is good for making brochure-like static websites and blogs, Ruby on Rails makes use of a modern object-oriented language to create web applications. This makes sure that it can be rapidly prototyped and evolve overtime without need for major rewrites.

The development cycle for each type of site is also distinct.

The typical static website lifecycle is design, development, and launch. From start to end, this takes between a few weeks and a few months. After launch day only minor changes are made along with the addition of content. The base code changes only slightly until the eventual redesign and overhaul.

With a software application, however, it would prove too costly to start from scratch each time a change needs to be made to core features.

As such a different backend mechanisms are needed to host and support the two over their active lifetimes.

Small and medium size brand Wordpress sites are often hosted on shared hosting that offer one-click installs like BlueHost, DreamHost and GoDaddy. They are put in place and seldom change.

The typical web application, however, is launched rather quickly with iterative changes and feature upgrades coming soon and continuously thereafter. To accommodate this, it is best to have a Continuous Integration environment setup.

This involves creating a repository of shared code that makes use of Version Control — almost always by means of git. There is no need to get into specifics, but git is like track changes on steroids.

Multiple developers can branch off of a production branch of code, make their changes, and after testing it add the feature back into the master branch.

Auditing, backing up, and sharing all this code happens on a service called GitHub or BitBucket. It is where the fresh master copies of code live.

This code then, however, needs a place to be put to use. This is where a hosting platform like Heroku comes in.

When the time is right, code is pushed from GitHub to the production environment on Heroku. It is then users are able to realize changes and feature upgrades.

TL;DR

Wordpress works for simple sites. This type of static site is good for brand building and tends to be designed and developed over relatively short time periods with little major overhauls to the code base. This means that small touch put-in-place deployment makes sense.

Web applications are used for interactive features. Ruby on Rails is a popular framework for building such an application. Applications tend to be designed and developed over longer cycles creating the need for more complex deployment architectures.

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade