Developing web applications

16 Jun 2023, 22:09 2min read

Hello there! My name is CPlusPatch, and today let's talk about an important subject for every web developer: server deployments.

I will be talking about how I write, debug and deploy my infrastructure here.

Development

My development workflow consists of the excellent VSCodium editor on my laptop powered by Arch Linux. I choose VSCodium and not Visual Studio Code, as the official Microsoft build of Visual Studio Code is proprietary and contains telemetry/tracking: VSCodium is a project that packages VSCode into a libre application, while keeping all features and extension support.

> Visual Studio Code is a distribution of the Code - OSS repository with Microsoft specific customizations, including additional source code and extensions, released under a traditional Microsoft product license.

For my applications, I tend to use the NuxtJS framework, as I like VueJS and Nuxt makes developing applications much faster and easier with its powerful features. I also use TailwindCSS for styling, as it allows you to skip using .css files entirely.

Deployment

I have a small, private VPS with Hetzner located in the United States where I host a couple of small applications and services. On this server, I have a Docker reverse proxy called Caddy which automatically manages fetching HTTPS certificates for me, as well as revalidating them when they expire: I then run git pull and build my app, and make it accessible over the reverse proxy via my custom domain. There, the app is built and online!

I do not use Cloudflare to make my site faster, as I consider Cloudflare to be a privacy and security risk. Cloudflare is only used for DNS management.

Code hosting

For my code hosting needs, I can use Codeberg to easily create and manage Git repositories. Codeberg is a free and open source alternative to GitHub, which I do not trust because of its tendency to steal code to train AIs and also because it is proprietary software.

Wrapping up

Overall, I try to keep most of my infrastructure under my control and prevent sensitive information from being accessed by third parties (such as Cloudflare). My hosting is configured well and I try to have the best performance possible.