Skip to content

Festivals-App/festivals-website

Repository files navigation

Mozilla HTTP Observatory Grade



FestivalsApp Website

This repository contains the source files of the official website for the FestivalsApp as it is available at festivalsapp.org and a lightweight go sidecar app, called festivals-website-node. The festivals-website-node will register with the festivals-gateway discovery service and exposes other functions including updating the website via a webhook.

Figure 1: Architecture Overview Highlighted


DevelopmentDeploymentEngageWebsite


Development

I have a rather custom development workflow for the FestvialsApp website. This is probably due to my dislike for website development: i can't bring myself to learn the right way. Though unconventional, it is quite straight forward as the website only uses html and css.

All website files are in the source folder waiting to get compiled by the compile script which is minifying and merging those files and is outputting the result to a folder called out. This folder now contains a new folder with the current timestamp as its name and a folder called current. The current folder will always contain the newest compiled files, and can be used to check the latest changes to the source files using a browser. The base locale of the website is german, localized versions of the website are stored inside a top level folder with a descriptive name, like 'EN' for the english localization. Images are all stored in a top level folder called images and need to be compressed and optimized by hand, as the compile script won't attempt any optimizations on the images.

The key requirements for the website are: fast, easy to update, open source, accessible(*) and secure.

The server directory manages API routes and middleware for the sidecar app and the operation folder documents deployment and environment. GitHub Actions are in .github, and .vscode provides recommended settings.

Requirements

Setup

I use Visual Studio Code, as it is super easy to run the compile script with just a shortcut (Shift+Cmd+B) and i don't have any preferences when developing websites, the provided configuration files should let you start right away. You only need to install minify on your system to allow the compile script to run.

Deployment

I use nginx to serve festivalsapp.org, deployed in a small VM running Ubuntu at digitalocean. Just follow the deployment guide for deploying it inside a virtual machine or the local deployment guide for running it on your macOS developer machine.

Engage

I welcome every contribution, whether it is a pull request or a fixed typo. The best place to discuss questions and suggestions regarding the festivals-website is the issues section. More general information and a good starting point if you want to get involved is the festival-documentation repository.

The following channels are available for discussions, feedback, and support requests:

Type Channel
General Discussion
Other Requests

Licensing

Copyright (c) 2017-2025 Simon Gaus. Licensed under the GNU Lesser General Public License v3.0