I’ll use this page to describe what a web application is, and what features and elements are frequently present or are standard in it.
The wonderful Ruby on Rails framework, combined with a number of other technologies, make it easy to build extremely sophisticated applications. But Rails is a heavy tool, and building a custom web application takes a lot of planning and time; on this page, I try to give you a sense of what you get for all that effort, and whether other (simpler) tools will better suit your needs.
Features of a well-built web application
The main reason to use a tool is that using it makes your job easier. I love Rails because it supports me in building applications with the following features. Here are some of the things that make for a great web application, in my eyes.
- Straightforward, intuitive interfaces that make it as easy as possible to add complex data to your application, transform it, and re-present it in useful ways. I pride myself on interfaces that make complexity manageable.
- Industry-grade security and encryption of sensitive data as needed. Information on the internet cannot be 100% secure, but with the right tools and forethought, we can get pretty close.
- Responsive design makes it easy to build interfaces that are tolerable on tablets and phones, not just on desktops and laptops.
- Email alerts can be sent to various site users, periodically or triggered by specific events, and are easy to manage and modify.
- Strong separation of structure, content, and style allows us to easily update the look, layout, or text of your app later on. Actually, most content (text and images) will be available for you to edit whenever you want, like in a CMS (content management system).
Do I need a web application?
If the following points mostly describe your needs, then you probably do not need an advanced tool like Rails. There are existing tools (like WordPress or Drupal and the many plugins / extensions available for them) that will allow you to do the same thing with much less work and overhead.
- The website is mostly a “brochure”, to spread information about your business / cause, and/or to serve as a quick reference, e.g. so patrons can quickly find out your business hours or location
- The site content is pretty much the same regardless of who’s viewing it or when. Content will only change when you decide to manually update it.
- The site may have pretty standard “shopping cart” and checkout functionality, but nothing more specific than that.
Contrast the above with the following needs. If you agree with many of the points below, then it sounds like you do need a custom web application:
- The website will need to be able to show different content to different viewers, either depending on their authorization level or some other traits.
- The website won’t just store text and pictures; it will keep track of various other kinds of information as well, and will make use of that information in order to decide what content to display to users. If so, then you need a custom database.
- Users (or a subset of users) will be able to interact with select parts of the database, either extracting information in a more organized form, or modifying the information.
- You’ll need lots of control over what permission users have to access and/or modify various pieces of information.
- What you envision feels more like a piece of software (like Microsoft’s “wizards”), rather than a simple exploratory website.
AtlasWebDev.com has an excellent article describing some of the benefits of building a website with Ruby on Rails (my platform of choice) from a business perspective. They also discuss when Rails is not a good match for your needs. Read more here.
If you’re unclear on how to determine what you need, I’m glad to meet and help you get oriented. You get a free hour meeting with me; shoot me an email from the home page to set that up.