Web Tech Glossary
Feeling overwhelmed or lost in the terminology of a project is awful. When talking to developers, they may often fling technical terms and go on assuming that everyone is familiar with them.
It should be part of the developers’ role to communicate in simple terms and help all stakeholders understand what’s going on in the technical side but unfortunately it’s not always the case.
This glossary will help you be on top of tech terms and move with ease among frontends, backends, frameworks, CMSs, DNSs and more. We’ll focus on those that are related to nonprofits websites and web-based software.
In most cases I’ll be adding comments and examples that may be useful for nonprofits to definitions taken from the great content at the Mozilla Developers Network.
Table of Contents
Click on any of the section titles or terms below and the site will scroll to its definition.Missing a term? Let me know and I’ll add it!
An API (Application Programming Interface) is a set of features and rules that exist inside a software program (the application) enabling interaction with it through software - as opposed to a human user interface. The API can be seen as a simple contract (the interface) between the application offering it and other items, such as third party software or hardware. — MDN
In the context of nonprofit websites and other platforms, an API usually refers to services that expose or receive data in machine-compatible formats. These services allow the integration of systems.
For example, when your website processes a newsletter subscription form, it will probably send data to an API in MailChimp, SalesForce or some other platform.
A bug is a problem of some kind. Defects in websites, however, can be related to content, graphics or a mismatch between desired and actual behavior. To us, a bug is a software defect that prevents the platform from operating as designed.
Every Matrushka Blueprint website comes with a bug-free warranty for a full year. The warranty is extended for as long as we maintain your website. You just have to report the issue and we will fix it without additional charge.
CMS - Content Management System
A CMS (Content Management System) is software that allows users to publish, organize, change, or remove various kinds of content, not only text but also embedded images, video, audio, and interactive code. — MDN
Drupal, WordPress, Webflow, Contentful are examples of CMSs. There are many solid CMSs and although at Matrushka we work with Drupal, I wouldn’t say that it is superior to others.
A database is a storing system that collects organized data, to make some works easier like searching, structure, and extending.
In web development, most databases use the relational database management system (RDBMS) to organize data and programming in SQL. Some databases, however, don't follow the former mechanism to organized data, which called NoSQL.
Some famous server-side RDBMS are MySQL(or MariaDB which is a fork of it), SQL Server, and Oracle Database. On the other hand, some famous NoSQL examples are MongoDB, Cassandra, and Redis.
Browsers also have their own database system called IndexedDB. — MDN
The definition above refers to a database as a raw component that developers use. In our context, the term database can often refer to some software that allows you to store and manage a collection of data. It could be a grants management database, a case management system, a collection of UN Agreed Language or some other collection.
Some popular ones are: Laravel, Ruby on Rails, Django, VueJS, React, D3.js and Angular. Drupal has been described as a content management framework.
A framework is a set of software patterns, components and documentation that can be used as a starting point for software projects. By using frameworks, developers avoid reinventing the wheel and structure projects following a common pattern that will be consistent, and easier to understand by other developers.
There are dozens of frameworks, written in different languages; some for back-end and some for front-end development. Projects based on solid frameworks or platforms will be easier to maintain. If you go with a developer using only their own code, you run a higher risk of finding bugs, and depending on that specific developer to fix them.
Git is a free, open-source, distributed Source Code Management (SCM) system. It facilitates handling code bases with distributed development teams. What sets it apart from previous SCM systems is the ability to do common operations (branching, committing, etc.) on your local development machine, without having to change the master repository or even having write access to it. — MDN
JavaScript (or "JS") is a programming language used most often for dynamic client-side scripts on webpages, but it is also often used on the server-side, using a runtime such as Node.js.
JavaScript should not be confused with the Java programming language. Although "Java" and "JavaScript" are trademarks (or registered trademarks) of Oracle in the U.S. and other countries, the two programming languages are significantly different in their syntax, semantics, and use cases. — MDN
PHP (a recursive initialism for PHP: Hypertext Preprocessor) is an open-source server-side scripting language that can be embedded into HTML to build web applications and dynamic websites. — MDN
PHP is the server-side language behind Drupal, Laravel, Wordpress and many other pieces of software.
In a revision control system like Git or SVN, a repo (i.e. "repository") is a place that hosts an application's code source, together with various metadata. — MDN
Front, back, client and server
Warning! Confusing terms ahead
Is a tomato a fruit? Well, it is but you don’t want to add it to a fruit salad. Frontend, backend, client-side and server-side are sometimes hard to separate. The definitions may be clear but in practice the distinctions are often blurry for developers too.
For example, some code in the backend may generate part of the styles of a page, or the code running in your browser could prepare data to be stored properly.
The key takeaway is: don’t feel bad if it’s confusing. Sometimes there’s no clear-cut answer to whether something belongs to the front, back, server or client.
In simple terms, the frontend is the part of the website visible to the users. The interfaces you interact with, the things that happen in your browser.
It refers to the functioning of the website behind the scenes; all the data being stored, moved and transformed out of sight.
It’s the code that runs in your browser. All the frontend is eventually client-side code, even if some parts are produced in the server.
It’s the code that runs on the server. It may produce some elements that are sent to your browser and run as client-side.
A loosely-defined term that covers lots of services. The thing they have in common is that the services provided don’t depend on specific machines. Before cloud services, hosting services were tied to specific servers: physical machines that were located somewhere and processed your data.
DNS (Domain Name System) is a hierarchical and decentralized naming system for Internet connected resources. DNS maintains a list of domain names along with the resources, such as IP addresses, that are associated with them.
The most prominent function of DNS is the translation of human-friendly domain names (such as mozilla.org) to a numeric IP address (such as 151.106.5.172); this process of mapping a domain name to the appropriate IP address is known as a DNS lookup. By contrast, a reverse DNS lookup (rDNS) is used to determine the domain name associated with an IP address. — MDN
A domain name is a website's address on the Internet. Domain names are used in URLs to identify to which server belong a specific webpage. The domain name consists of a hierarchial sequence of names (labels) separated by periods (dots) and ending with an extension. — MDN
An IP address is a number assigned to every device connected to a network that uses the Internet protocol. — MDN
Secure Sockets Layer, or SSL, was the old standard security technology for creating an encrypted network link between a server and client, ensuring all data passed is private and secure. The current version of SSL is version 3.0, released by Netscape in 1996, and has been superseded by the Transport Layer Security (TLS) protocol. — MDN
Transport Layer Security (TLS), formerly known as Secure Sockets Layer (SSL), is a protocol used by applications to communicate securely across a network, preventing tampering with and eavesdropping on email, web browsing, messaging, and other protocols. Both SSL and TLS are client / server protocols that ensure communication privacy by using cryptographic protocols to provide security over a network. When a server and client communicate using TLS, it ensures that no third party can eavesdrop or tamper with any message. — MDN
The MDN Web Docs Glossary by Mozilla Contributors is licensed CC-BY-SA 2.5