DEV Community

Sloan the DEV Moderator
Sloan the DEV Moderator

Posted on

What's the difference between Front-end and Back-end development?

This is an anonymous post sent in by a member who does not want their name disclosed. Please be thoughtful with your responses, as these are usually tough posts to write. Email sloan@dev.to if you'd like to leave an anonymous comment or if you want to ask your own anonymous question.


I'm brand new to development and am trying to understand the difference between front-end and back-end development.

I think I kinda understand that front-end is what the user sees and back-end is how the information is retrieved, but I imagine there's a bit more to it than that. I would really appreciate hearing others' thoughts and explanations on this.

Analogies and examples would be very welcomed! Thank you all very much. ๐Ÿ™

Oldest comments (23)

Collapse
 
terabytetiger profile image
Tyler V.

I would summarize it as front-end is the interface that the user sees, back-end is the database and everything that happens outside of the interface that the user sees.

When you get into specifics, sorting specific things into one or the other can be different depending on who you ask ๐Ÿ˜…

Collapse
 
joelbonetr profile image
JoelBonetR ๐Ÿฅ‡

Technically the DB is "Data". Backend on the other hand is what interacts with this data and provides it to the frontend ๐Ÿ˜

Collapse
 
kayis profile image
K

They are both terms with historical baggage.

Back in the days, when people started to make websites, there was just backend development.

Scripting languages like Perl or PHP would receive a request from a browser, gather data from a database, and render an HTML file they would send back to the browser.

Then came the rise of JavaScript, and people would build parts of such applications inside the browser. More and more work would end up on the browser side of things, and one day, people would talk about frontend work. Where you would gather data from the server via an HTTP API, and the server wouldn't have to bother with HTML rendering anymore.

From then on, people would talk about "frontend development" when they meant devs that would somehow create js/html/CSS code to build a user interface in a browser.

And people would talk about "backend development" for everything that happened on the server side of development. It could be PHP, Python, Go, Ruby, JavaScript, C#, Java, or whatever.

Now, " frontends " are also built on platforms other than the web, like mobile apps for Android and iOS or desktop apps written in languages like JavaScript. I put it in quotes because, technically, these are all frontends for something. Yet, when you apply for a job, they are usually called "mobile development" or "native development" or something.

You can often split a stack in front and backend, while neither of these parts is web related. Modern compilers, for example, have frontends and backends. For the code, they accept (C, Rust, etc.) and the binaries they emit (Linux, Windows, etc.).

It's a bit like with "API"; every interface you access programmatically is an "API" in some way, but most of the time, when you read API in a job description, they mean an HTTP-based API like REST or GraphQL.

So, context is essential here.

Collapse
 
alco profile image
Jakub Stibลฏrek

Excellent summary.

Collapse
 
johnkey profile image
INDERA SHAH

good and shot explanation ๐Ÿ‘๐Ÿ‘๐Ÿฝ

Collapse
 
wjplatformer profile image
Wj

Front end is What you see outside, backend is what you see inside. So, given an example of a website.

Now, the front end is the HTML, CSS and JS. Here's the fun part, if you create a web server using python to host the website (recommend starting with Flask Python module), and you add a database, that is the backend.

You can then use things such as HTTP Requests to let's say store stuff on a database, or generate some sort of AI, or complicated stuff. Data are sent to the backend to sort them out more efficiently.

Collapse
 
techman09 profile image
TechMan09

Iโ€™ll have the shortest response :)

FRONTEND: What the browser sees (HTML, CSS, JS)

BACKEND: What the server sees (Ruby, PHP, Perl)

Collapse
 
charli_martell profile image
Carlos Eduardo Rueda Martell

Front-end development generally refers to the process of creating the user interface and visual design of a website or application. This can include everything from designing the overall look and feel of the site, to coding individual elements like buttons and forms.

Back-end development, on the other hand, focuses on the server-side components of a website or application. This includes things like database design and management, server administration, and security. While back-end development is often invisible to users, it's essential for keeping everything running smoothly.

So, in a nutshell, front-end development websites is all about the graphical interface while back-end development is more focused on the functionality of the site. Both are important in their own ways and most web developers have skills in both areas. However, some developers may specialize more in one area or the other.

Collapse
 
polterguy profile image
Thomas Hansen

Frontend runs on users devices and is typically created as iPhone apps, Angular apps, or JavaScript apps. Backend runs on server and typically communicates with frontend using web standards.

Start with frontend. Once you feel comfortable with frontend move to backend โ€ฆ

Collapse
 
perssondennis profile image
Dennis Persson

I previously comoared frontend and backend to the human body. Not sure if it will be helpful, but at least it could be a bi fun to read. You can read it here ๐Ÿ˜€

Collapse
 
louisefindlay23 profile image
Louise

Front-end is generally code that you write for the browser: the structure of webpages (HTML), design of webpages (CSS) and interactive elements (JS).

Back-end is generally application logic so a database (if you need one) and other functions such as file uploading and user accounts etc.

Collapse
 
bobbyiliev profile image
Bobby

In addition to what has been mentioned, here are some very helpful roadmaps for both:

roadmap.sh/backend

roadmap.sh/frontend

Collapse
 
jesusantguerrero profile image
Jesus Guerrero • Edited

A website or web app runs in the server-client architecture, that means that there's a machine that provide services(server) and other that receives(client)

Any code running on the server side is backend(storing data, API Endpoints, sensitive business logic, background jobs, etc).

Any code running on the browser is frontend (html, css, js, web workers) the traditional "what the user sees" is not longer accurate now frontend can manage routing, background services, caching and much more.