A founder’s guide for key aspects of the Front End and the Back End of their app.

Some of the first terms that you’ll be introduced to when entering the world of apps and tech startups are “front end” and “back end.” These are really important terms to understand, especially once you’re ready to get your app built.

Front end — Everything the user sees.

Your app’s “front end,” or as some of those who are more technical refer to as the “client side,” is the part of your app that your users see and interact with. Another relevant term that you may hear is “UI/UX” (you may just hear one or the other), which stands for user interface/user experience. Think of the screens of your app like an “interface” that users will have to “experience” (or interact with).

When you have an app idea, the screens that your users will see need to first be designed using a digital design software like Adobe Photoshop or Sketch (see an example below).

front end

Once the designs are prepared, a developer who is skilled in HTML, CSS and Javascript (some popular frameworks are Angular, React, or Vue) in the case of web or cross-platform development, Swift for native iOS development, or Java for native Android development, will translate the screens into code.

Thus, your “front end” is born.

Back End — Everything Going On Behind The Scenes

Your app’s “back end,” also known as the “server side,” is pretty much everything else. While this part is not seen, is still plays an important role. Your back end serves to provide the functionality you need, like connecting with a database to store user account information, or integrating an API such as mapping.

The term “API,” which is short for “application programming interface,” is one that is important to understand. An API is generally understood as a compilation of the different “methods” or “web services” within an application. For example, the “Google Maps Directions API” is a service that calculates directions between locations. When building Google Maps, the developers built a back end that could easily be integrated into other applications, as it is on Uber for example. This is a smart, modern approach to building a back end.

front end and back end

Without going into too much detail, your back end will typically consist of (at least) three simple parts — a server, an application, and a database. The server is basically a computer designed to store data and process requests for data, which is usually stored in databases. As the name might suggest, a “database,” which you can think of like a more-programmable Excel sheet, stores structured data, like names, emails, or phone numbers, in tables or collections. While users interact with the front end of your app, the application, which is written in code and stored in a codebase, facilitates their communication with the database over the Internet.

With your back end in place, you have now integrated the functionality to support the features you need.

Do I need both?

When building an informational/promotional website, you may only need a front end to be developed. Particularly, if the site exists to simply display content but not provide any functionality or exchange any data, there is no use for a back end.

The case is different when building a “dynamic” web or mobile application, which will likely require some data transfer to manage different functionalities. When building a dynamic application, you will need both a front end and a back end. Some popular back end technologies are PHP, Node JS (Javascript framework), Ruby on Rails (Ruby framework), Python, or C#.

Some web developers have competencies in only front end or back end development. Similarly, most native mobile app developers will only have competencies in one platform, either iOS or Android, and may not have the competencies you need to build your entire app. Others, referred to as “full stack engineers,” have competencies in both front end and back end development. Therefore, you need to figure out which back end and front end technologies your app development will require, and then ensure that you have both ends covered when hiring your developer(s).

Where do I start?

You need to start by identifying the best technology stack for what you’re trying to build. Beyond programming languages/frameworks, you need to determine which database technology, web server, and operating system you will use. Some examples of a full stack might be LAMP — which stands for Linux (Operating System), Apache (Web Server), MySQL (database), and PHP (programming language); or MEAN — which stands for MongoDB (database), Express JS (web framework), Angular JS (web framework), and Node JS (web framework).

If you don’t have a technical background, you should consult with a software engineer or architect. Different technology can often be used to build the same product, but with different consequences. You need to build with attention to different quality attributes like maintainability, scalability, and security, all while staying within your time and budget constraints.

When hiring a developer (which I’ve written a guide to here), it’s important that you speak to them about what technology they suggest you using, and why. The “why” is important, because a person or firm with competencies in only a certain type of technology will have an obvious bias. When speaking to a development shop, it’s not uncommon to be told, “We can definitely achieve this in PHP,” regardless of what your product is, simply because PHP developers are one of the most commoditized types of resources in the market, even though PHP may not be the best technology for your app’s implementation.

Your decision here can make or break things for your startup. It’s important to speak to someone who can guide you in the right direction. Click here to watch our free 20 minute training on how to go from idea to product in 3 months or less.