How to explain to my client the difference between Front End and Back End?

  • I'm currently managing a project to bring a medium-sized shop into the online world for the first time.

    The very non-technical shop owner is failing to understand what "front-end" and "back-end" means, and I was wondering if anyone had any good ideas.

    He currently understands front-end to mean the part of the website that normal users will see and use, and back-end as being the admin part of the website. But of course, the admin system is still front end — he just doesn't understand this.

    He also thinks that the front-end can be created by anyone, in the same way anyone can put together a newsletter using MS publisher.

    Front-end: The code that makes up the part of the visible website. Back-end: The code that runs the site/makes it have any practical function. At least that's what I tell everyone.

    Whomever downvoted: please explain why.

    The title is funny; the shop owner is thinking in terms of front office and back office. As for his second illusion, you have to find examples that relate to his industry or interests - can everybody design a good-looking car? Building on the obligatory car analogy, guess you can also solve the front/back office/end mixup...

    A client we used to work with always called the backend "the brains of the thing"

    I'd talk the customer's language: the back end is the storeroom behind the shop; the front end is the shop bit that the customers come into.

    Go to Facebook and in Web Developer Tools, disable CSS and JS. And say "This is what a website would look like without front-end code"

    This question appears to be off-topic because it is not about UX.

  • First off, it's not wrong of the client to refer to the admin side as back-end. It's actually fairly common terminology to call any aspects of a content management system that aren't publicly available the "back end." This confusion between the front and back end of a CMS and the front and back end of code may be a large part of the problem you're encountering.


    If you need to explain the difference between front-end code and back-end code, try explaining that it's a difference in where the code exists.

    To explain where the code exists, you'll need to explain the concept of a server. In explaining these concepts to ten-to-fourteen-year-old children (whom I assume have a technology skill level similar to your client), I've done this by saying something like:

    You have a monitor [point to the monitor]. Usually it just displays the information on your computer here [point to the rest of the computer, or base of the laptop] but it can display information from any computer it's connected to [point to an ethernet cable if possible]. That's what the internet is; it's just a bunch of computers wired together where you can get information from any of them.

    Some computers aren't used by individual people, and don't have monitors of their own connected. They spend all the time sending out information. We call them servers because they're like a servers in a restaurant. You ask the server for food and he gives you back whatever you ordered.
    [I realize this analogy is inaccurate because the computer server is more akin to the restaurant chef, while the restaurant server is like whatever medium is bringing you the information, but I've found it's best not to overcomplicate things.]
    Your computer asks the server for information, and it gets the right information from a database and sends it back to you. We call code on the server "back-end" code because it's like the back part of a restaurant. You don't see what's going on in the kitchen, but you know that they're pulling together the right food for you.

    (At this point, you may find it helpful to explain the concept of a database. I've found it effective to say that it's basically just a large spreadsheet containing the information you need and to open up an Excel spreadsheet and fill in a couple of columns to demonstrate.)

    So if you want to see a website, you type in the address of the website. That sends a request for information from that address out to a server, and it sends back the information you want, just like if you asked a server in a restaurant for a menu.

    There's a big difference between a restaurant menu, and a webpage. On a webpage you have to be able to click on things to interact with them. You can do this because the server has sent your computer some code that tells the computer what to do when you click on various things. We call this code the "front-end" code.

    On a website, when you want to know more about something, you click on it to request information. That's just like if you select something from a menu in a restaurant and ask the server to get it for you. The front end (menu/webpage) lets you request something (food/information) from the server.

License under CC-BY-SA with attribution


Content dated before 7/24/2021 11:53 AM