Commit ID:82b6a4b9103c5b46b7833c92535010bdf9889b71

Ximedes exists to allow a group of smart, friendly and ambitious professionals to work together on relevant and challenging software projects, to the delight of our clients and ourselves. Contact us

Launching our new site

Joris Portegies Zwart
April 17, 2018

After a few weeks of rapid design and development, we are proud to welcome you to the new Ximedes website. While triggered by a necessary technology renewal, we have also taken the opportunity to reimagine the purpose and structure of our site.

A farewell to WordPress

Our previous website ran on WordPress (as do an estimated 30% of all websites). WordPress is a powerful platform, but its popularity also makes it a prime target for attackers. New vulnerabilities are reported often, and continuously patching and upgrading our WordPress installation became a chore. So, the time had come to choose another way to implement our site.

Overview of recent headlines covering WordPress vulnarabilities

What do we need?

The technical requirements for our website are quite modest:

  • Offer an easy and accessible way for anyone in the company to create content
  • Use a modern technology stack in line with our current standards
  • Be as secure as possible, while relieving our system admins from continuous patching as much as possible

Going static with Gatsby.js

In the early days of the web, most websites were static. Site owners created content and layout by directly writing HTML files, which were then published using a webserver. Updating content required editing these files, and user interaction was limited to simple form submission.

It wasn't long before dynamic websites became the norm. The content presented to users was created on the fly, using a combination of database queries and layout templates. Functionality like this makes it possible to create webshops that show real-time pricing stock information, and blogs that allow editors to easily create new content and publish it several times a day.

An old typewriter

We used WordPress for the latter purpose, and while it worked perfectly well, it was always a bit of overkill. We publish maybe a handful of new articles and other content a month, and there is no real need for instant publishing as WordPress offers. And between updates, our website is completely static - there's no webshop, forums, or other functionality that requires our website to be fully dynamic.

In recent years, a way of combining these two approaches has become commonplace - the use of static site generators to create a static site from dynamic content. These generators essentially perform the same trick that technologies such as WordPress do. But, instead of creating pages on every request, they do it once offline, and publish the resulting pages as a static site. This is the way we went with ximedes.com.

There are several competing tools and technologies to create static sites. We chose Gatsby.js, a static site generator that uses modern technologies (like React, Webpack, and GraphQL) to create fast, small and optimized websites from multiple types of content.

Deployment, Hosting and Security

Static websites are easy to host, and these days you don't even need a dedicated server to do it. Ximedes.com is hosted on a serverless Amazon platform - after being generated on a build server, all content is automatically stored in an S3 bucket. From there, Amazon's Cloudfront service delivers it to your browser, using multiple webservers hosted around the globe to ensure low latency wherever you are.

And, even though there is very little to hack in a static website, being security-minded we have made sure to add all necessary security headers, using AWS Lambda functions to make sure our site is as safe as can be.

No trackers

And finally, ximedes.com is completely clear of any trackers, be it third party trackers or for internal use. We take the privacy of our visitors seriously; we don't feel trading your personal information in exchange for free website statistics is a good deal for any of us.