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).
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.
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 may be stored in databases or codebases. As the name might suggest, a “database,” which you can think of like a big Excel sheet, stores parameterized data, like names, emails, or phone numbers, in tables. 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.
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 developer or a product person. Different technology can be used to achieve 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 set up a 15-minute, no-obligation call with me.