Recommendations for building modular web systems

Oscar de la Hera Gomez
We recommend building a modular web system using Craft CMS, GatsbyJS and AWS.

The three key technologies to our modular web system: GatsbyJS, Craft CMS & AWS.

A list of recommendations for building a modular web system like ours can be found below.

Gatsby JS

Our preferred development technologies

Our preferred development technologies

GatsbyJS is a framework that is built on top of React JS which uses Static Site Rendering to generate a static site and which can integrate other technologies via plugins, IDE's or API's.

GraphQL

"GraphQL is a query language for APIs and a runtime for fulfilling those queries with your existing data. GraphQL provides a complete and understandable description of the data in your API, gives clients the power to ask for exactly what they need and nothing more, makes it easier to evolve APIs over time, and enables powerful developer tools." - GraphQL

GraphQL primary use is to connect Gatsby to the Craft CMS and power the generation of the pages using the gatsby-node.js script.

For this script our recommendation is to make it as light as possible and apply static front-end queries for the layout using fragments.

This will work like a charm and speed up your refresh and work flow until you create layouts whose dynamic queries are larger than 15 seconds. At this point, we move the layout GraphQL to the backend, allowing it to be a dynamic, fractured backend query.

Sitemap Generator

A package that generates an XML sitemap for your website needed for Google Search Console.


What is a Sitemap?

"An XML sitemap lists a website’s important pages, making sure search engines (such as Google) can find and crawl them all. In effect, a sitemap helps a search engine understand your website structure.

Think of it as a map for your website. It shows what all of the pages are on your website." - GatsbyJS, 2022

React Helmet & Structured Data

Use React Helmet to integrate or dynamically update the SEO and structured data of your pages.

Typescript

TypeScript is considered the future of JavaScript as it provides a syntax for types and is a strongly typed programming language that gives you better tooling at any scale.

Styled Components

Styled Components are our recommended way to build content driven styled components due to its ability to allow for dynamic CSS as types.

What are content driven styled components?

Content driven styled components are defined as responsive javascript components designed in Figma which incorporate data from a model gathered by a headless CMS.

Google Analytics

Google Analytics is our recommended Analytics resource to due ease of installation on use

Craft CMS

Our preferred CMS development technologies

Our preferred CMS development technologies


Craft CMS is a PHP driven CMS which we designed in Figma to allow a user to alter the entire structure, content and visual of the website using its out of the box functionality to create the database and offer the website via the GraphQL.

We recommend choosing Fortrabbit as the hosting provider as it integrates a daily database backup as an OOTB add-on service.

The plugin's that saw as fundamental for our Database & Asset Backup and Sync was the following the Remote Remote Sync plugin which allows you to backup and sync database and assets to an S3.

Amazon Web Services (AWS)

Our AWS Service Offering

Our AWS Service Offering

A wide suite of AWS services is used to host and offer functionality to the website.

  • S3 for website storage as well as Asset and Database backups
  • Route53 for website routing
  • Cloudfront as Global Delivery Network
  • DynamoDB as databases for contact and collaborator information
  • SES to offer email services
  • Lambda and Gateway API to offer the services via the web
delasign logo

Book a Free Consultation.

An icon of an email.

Click here to email us.

Fill in the details below to book a free consultation or to let us know about something else. Whatever it is, we are here to help.

How can we help you ?

Contact Details