PricingBlogDocumentationDocsLoginRegister

How we use open source to build GlitchTip

February 11, 2022 • David Burke

GlitchTip was founded to create a truly free and open source application monitoring platform. We aim to use open source when building GlitchTip. We also try to keep things simple and affordable. In this post, I’ll explain our process and the software we use at Burke Software.

Source Control and Project Management

We use gitlab.com for hosting, CI, and project management. GitLab is an “open core” model and we choose to use the hosted version for simplicity (It does contain some non-free parts). Unlike it’s competitor GitHub, GitLab issues offer private submission, which covers more sensitive use cases such as security issue submission. I find its Docker-based CI system to be straightforward and prefer it over GitHub Actions.

test:
  image: python:3.10
  script:
    - pip install poetry
    - poetry install --no-interaction --no-ansi
    - ./manage.py test

I enjoy writing only Linux in Docker scripts. I don’t need to learn that much about GitLab CI.

One area that could be improved on is their paid support. I’ve worked with both their open source program and paid commercial support. The experience includes difficulty in paying bills, unresponsiveness, and considerable confusion over how I use GitLab with multiple organizations. Applying for their open source program can take months to get a response and includes having to reapply and fill out $0 invoices every year. That said, you can use gitlab.com without the open source program as long as you don’t need their more advanced features.

Monitoring

It should come as no surprise that we use GlitchTip to monitor GlitchTip for uptime, error, and content security policy events. We use our staging server to monitor production, which lets us test out features in upcoming releases.

We also make use of Grafana Loki for logging and database monitoring included in DigitalOcean’s managed databases.

Analytics

We use Plausible for web and in-app analytics. Plausible doesn’t track per user data for privacy reasons and is very lightweight. Matomo is a more powerful alternative I’ve used, but I prefer Plausible’s simple user interface and cheap hosted option. That being said, I would still recommend Matomo for users who need advanced workflows similar to Google Analytics.

Marketing Website

Our marketing site, glitchtip.com, is built with Scully. Scully is a static site generator that uses Angular. The primary reason we use it is to share code with our Angular front-end application. Scully uses a headless browser to render. Personally, I prefer Node-based static site generation as seen in Next.js and Angular Universal. They offer much faster speed. Scully offers more features than Angular Universal for static content, so Scully made sense for us. For anyone more familiar with React, I would fully recommend Next.js, which has terrific documentation. It can run both fully static sites and dynamic server drive apps. For Angular Universal, my favorite feature is its reuse of the Angular router, which makes for less code when sharing between server and client JavaScript. As opposed to next.js, which uses its own custom routing solution instead of React Router. All three are good options in my opinion and the choice should probably be driven by what you’re most familiar with.

Email

We use ProtonMail for Burke Software email. It’s mostly open source, though their back-end and some beta products are not. Self hosting email is very hard to do because of spam, so it’s best to use a provider. Their user interface is pretty good, though not as advanced as Gmail. It lacks automatic filters, for instance. Their Calendar and Drive option looks interesting but are only web apps at the time of this writing. That means I can’t sync calendar events to my usual places, which is important for me.

Hosting

We use DigitalOcean. It’s simpler than AWS, though part of that is from a lack of options. For example, finding the monthly pricing of their services is very easy. To do that in AWS, one must look up what instance types like t4g means in terms of CPU/Ram, then find it’s pricing (per minute) then convert it to some human readable concept like monthly. DigitalOcean lacks choice, however. If you want a small, one-core managed database with a fast SSD, then you’re out of luck with DigitalOcean. Their faster, storage-optimized options only come in larger instances.

We use Kubernetes and Helm for deployment. While they have a steep learning curve, I like that I can use them anywhere; on AWS, for instance. It also lets us run multiple applications in the same cluster, reducing costs.

Design

I wish I could talk about open source design tools, but we don’t use any. We use Figma. It runs on Linux, unlike some competitors.

Development OS and Hardware

I prefer to standardize Burke Software employee software and hardware. We use Ubuntu Linux and Dell XPS 13’s. I find Dell’s on-site support helpful for an all-remote company. Just because I know how to fix computers and install Linux doesn’t mean I want to. Being an all-remote team would make repairs very difficult otherwise. I’ve only had one hardware issue with a keyboard and, after calling support, a technician showed up to replace it. System76 is a good alternative. However, I don’t prefer their laptop offerings. For personal use, I have a System76 Thelio, which looks great! I’d love to see them build their own laptops in the future. As of now they use Clevo laptops. If I had one complaint about my Thelio system, it’s that there is no motherboard backplate. That makes it pretty hard to upgrade the motherboard.

Connect with us

Interested in learning more? Join the GlitchTip community chat on Gitter.