Skip to content

TechStack

Tynan Byrne edited this page Apr 20, 2021 · 1 revision

Tech Stack

These are the technologies used to build the Black Devs UK website. This is a full-stack TypeScript project, with solutions that are both modern and have great community support.

Language

TypeScript

TypeScript was developed at Microsoft to turn regular JavaScript into a strongly typed language akin to Java or C++. The added type safety helps large scale projects scale far easier than JavaScript as errors can be caught and fixed before the code is run. However, TypeScript transpiles to JavaScript eventually which ensures it can run in any browser. See the benefits of TypeScript here.

Front end

React

React is a JavaScript library used to build modern user interfaces. Developed at Facebook originally, React was released in 2013 and has since become the go to way to create a slick UI on the web. Find the docs here.

NextJS

NextJS is a framework built on top of React that offers additional functionality to give a great developer experience. Features of NextJS include built in CSS support, server side rendering, analytics, and TypeScript support. See how NextJS improves the React experience here.

Tailwind CSS

Tailwind CSS is a utility-first CSS framework that has picked up speed in recent years. It eschews traditional semantic class names for classes such as font-medium and text-cyan-600 to make building modern websites simple and easy. See what Tailwind can do here.

Apollo Client

Apollo is a popular state management library for JavaScript and TypeScript that can be used to manage data fetched with (GraphQL)[graphql.org]. It can be used to build performant web apps thanks to the built in cache at its core, and makes using GraphQL with React simple with the Apollo Client library. See Apollo's website here.

Back end

MongoDB (Mongoose)

MongoDB is a popular NoSQL database for modern web applications. Its document data model is a lot more flexible than relational databases, and it natively supports JSON as well to make working with the database as simple as possible. Mongoose takes things further by abstracting away a lot of the boilerplate and MongoDB validation away to make the developer experience even better for those using Node.js. There are websites for both MongoDB and Mongoose.

GraphQL

GraphQL is a query language made at Facebook to offer an alternative to traditional REST APIs. Significantly, GraphQL servers provide only a single endpoint as opposed to REST's multiple endpoints, which aims to stop overfetching of data by returning only what the query has asked for. See what GraphQL can do here.

Testing

Jest

Jest is a popular JavaScript/TypeScript testing library. It has all of the features you would come to expect from a testing library such as running tests in parallel, easy mocking with its built in mock functions, and easy to understand exceptions for when a test fails. Jest can be used with the front end and the back end. Read more here.

Pa11y

Pa11y is a framework for testing website accessibility. Using their command-line interface, a web page can be loaded and any accessibility issues it has can be spotted in a one off snapshot. Read more about Pa11y here.

Continuous Integration

GitHub Actions

A simple solution from GitHub themselves, GitHub Actions allows for projects to have their workflows automated. This can be used to automate CI/CD and have software built, tested and deployed straight from the GitHub repository. Read about GitHub Actions here.

Clone this wiki locally