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.


 

Missing a term? Let me know and I’ll add it!

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.

 

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.

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.

PHP is the server-side language behind Drupal, Laravel, Wordpress and many other pieces of software.

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.

 

 

 

 


 

The MDN Web Docs Glossary by Mozilla Contributors is licensed CC-BY-SA 2.5