I’ve been told I talk too smart/nerdy sometimes as a developer. That’s okay because I like being smart and a nerd, but it’s also not great when I’m trying to explain how or why a new feature works to a non-technical client. My Mom gave me advice once to assume anytime I talk about technical stuff to non-developers: pretend I’m talking to her. Today, I’m going to try and run through a list of terms we use frequently in the web development industry as though you are all my Mom.
No matter what we’re developing, the code has to live somewhere for people to view it on the Internet. Regardless if it’s a WordPress site for a local restaurant or a large scale application for a client outside our city, a server is a computer that exists somewhere to store and serve the code. If you’re asked to buy hosting, it means you’re paying for the use of some form of server.
Servers don’t just have to hold the code that powers your site, though - they can hold a range of data and scripts, including information provided by your customers through forms. User provided information is stored in a database on some sort of server (more on that term soon).
Some of the first web servers were housed in the closets of businesses in the early days of the Internet. Nowadays, most developers advise against this, especially if you live in an area that’s prone to natural disasters. If your server goes offline, your website/application is inaccessible to the folks on the Internet. This is especially bad if you’re an ecommerce platform. (Remember when Amazon servers went down and businesses lost a lot of money?)
Let’s hop from servers to something that might live on a server. I’ve written previously about how the first websites I worked on had content jammed in with code, requiring a developer or someone familiar with code to edit. These days, you’ll usually find content living in a database - a collection of data that lives on the server. There’s many different database softwares out there. One of the most popular ones is the open-sourced MySQL, which is often the default software used by various hosting companies.
The major difference between having your content living in-code and living inside a database is editability. If your content is trapped as text inside code, someone has to update the file holding the code and send that update up to the Internet. However, if your content exists inside a database, a person with approved access can sign in, update the content, then save it. The new content is displayed immediately after saving because the code was written to ask the database “Hey, give me the content you have stored over here to display to site visitors, please”.
This also means that if the server housing your database isn’t secure, or if access to the database is compromised (such as weak password from an approved user), Bad Guys can get to your content and do what they want with it.
Databases sound cool, right? Aw man, you’re ready to go in there and edit some content. Here’s what that might look like in a raw SQL query for MySQL (made up on the spot by me with fake database labels):
UPDATE name_of_table_with_data SET column_with_content = ‘new content here’ WHERE some_scary_extra_code_thing
Wait, that’s not what you signed up for, that’s still code! Rats! Don’t worry, our friend known as the CMS will help you out, because it’s your content management system. A content management system is a software that a person accesses to create and manage their content that lives on a database. The CMS most people know is WordPress, although it was initially built as a blogging platform and still contains some remaining database structures of one.
By using a CMS, you’re actually adding content into specified fields that are then queried and interpreted by other code. This code lives in a template file that talks to the database and returns the updated information to a page viewed by a user. A CMS could have only one template file to process content, or it could have multiple different ones. We’re usually using multiple templates to either get very specific data, to present that data in a very specific way, or possibly to lay out the content differently.
Phew, that was a lotta terms. We could keep going, but this is a good start on your journey to decode the various web industry terms you'll see and hear us toss around.
Want to work with a team of WordPress developers that understand all of this jargon that seems like a foreign language? Contact the experts at Integrity today!
Want to make a good first impression? Pay attention to your homepage (your users already are!). Here are some tips for great homepage design.
How do you make a minimum viable product that gets all parties' buy-in? You prototype. See why prototypes are a required step in app design.