I write about web development and software engineering. 💻
## How It's Made
**This website is a personal project under ongoing improvement**.
It was built to be my own personal blogging platform. Under the hood, it includes features such as a Markdown editor, a draft system and SEO automation.
### Tech Stack
This website makes use of many of the **languages**, **frameworks** and **tools** I feel comfortable and proficient with. Here's the bucket list.
The application is structured in two major components:
1. The **backend** is responsible for **persisting data** and making it available through a secure **REST API**.
2. The **frontend** is responsible for **displaying content** in a minimalist and user-friendly fashion.
The frontend, built with Angular, makes use of **server-side rendering** to enable search engine compatibility and social integrations.
### Infrastructure and pipeline
This website is hosted on a [DigitalOcean](https://www.digitalocean.com) droplet and is powered by [CaptainDuckDuck](https://captainduckduck.com). Uploaded assets (such as blog post images) are stored on [AWS S3](https://aws.amazon.com/s3).
Under the hood, it uses **open-source, industry-standard technologies**: [Docker](https://www.docker.com) to manage and run app containers (API, frontend and database), [Nginx](https://www.nginx.com) as a reverse proxy and [Let's Encrypt](https://letsencrypt.org) for certificate management.
**Deployment** occurs through automated **CI builds** on [TravisCI](https://travis-ci.org/florimondmanca). These are triggered by pushes to the website's [GitHub](https://github.com/florimondmanca) repositories.
**Diagrams are worth a thousand words, aren't they?**
![Architecture of florimondmanca.com.](https://florimondmanca-personal-website.s3.amazonaws.com/media/markdownx/4b4bbf1a-d3e0-45b1-ab8d-0df139d26290.png)