Many of us in open source communities tend to be proponents of not only the primary project we’re working with (like Drupal), we also tend to be pretty big proponents of other types of open source software. These may be projects that benefit us in our day to day work, libraries that we leverage to build on our main project, or software we end up using in our personal lives, for projects that we do strictly for our own purposes.

Tag1, being a company based on using open source software, uses a variety of software based on the day to day work of our team, and the needs of our clients. This software ranges from Drupal itself, to the underlying software it uses, to the testing software, and IDEs and plugins we use to help create quality code and content.

Drupal

We all know Drupal is open source, and one of the largest CMS projects out there. It relies on a variety of other open source software as well - MySQL, PHP, Composer, Symfony, and so on. Some parts of Drupal make use of additional libraries that fulfill needs that would otherwise go unmet.

Load testing

No well-trafficked website completes its development without load testing. Goose is Tag1’s load testing tool of choice. Inspired by another open source testing tool, Locust, Goose was created by Tag1 CEO Jeremy Andrews to address some of Locust’s limitations. Tag1 has used Goose for client work and had positive results.

JMeter, created by the Apache Foundation, is one of the largest open source load testing tools available. It covers a wide range of tests covering web protocols and applications. We did a comparison of these tools in this blog post: Choosing the right load testing tool JMeter vs. Locust vs. Goose.

Local development

Two of the most popular local development tools at Tag1 are Lando and DDEV. Local development environments help developers create consistent tooling and environments for all of their projects. Configurations can be added to the code repository, enabling new developers on a project to jump right into work, with less time spent setting up your personal environment to match the main development system. Tag1 Senior Infrastructure Engineer Greg Lund-Chaix gave a talk that included getting started with DDEV at Drupal 4 Gov in 2020.

Lando performs similar tasks to DDEV, and is popular at Tag1 due to its supported integrations with popular Drupal hosting providers like Pantheon and Platform.sh. The ability to do these direct integrations speeds up some of the development and delivery time, and helps enable our clients to more easily work with those tools as we complete engagements.

Continuous integration, deployment, and automation

Ansible and Puppet are two well known deployment tools, enabling automated server configuration. Chef delivers server configuration and applications, automated by devops teams. They have different methods for completing their tasks; Ansible pushes changes while Chef and Puppet run on individual servers or machines and pull changes.

Circle CI is a continuous integration system, testing software based on what the code needs.

Jenkins is another server deployment automation tool, used for easily repeated tasks related to testing and deployment.

Languages

Underneath all of the projects we use as part of our work, are the languages those projects are built in.

  • PHP - Drupal, Symfony, Composer
  • Python - Locust, Ansible
  • Ruby - Puppet
  • Rust - Goose

Writing and editing

A very popular open source code and text editor, Visual Studio Code (often known as VSC) is used by developers and writers alike. The Marketplace provides over 20,000 extensions, adding features for everything from theme changes to linters to version control integration. Atom is another popular editor and IDE (integrated development environment). While not as popular as VSC, it has a devoted following and has many extensions, called packages.

While not an open source project itself, PHPStorm is one of the most popular IDEs available. It provides many tools developers use, and while it has a licensing structure, open source developers can get licenses for free if they meet the qualifications.

When you’re writing information, whether it’s code or prose, a linter can make a huge difference in how well you write. A linter is an analysis tool that looks for errors and can look for inconsistencies, as well as enforce syntax and style. VSC, Atom, and other IDEs often have those linters built in or available as extensions. For those writing documentation, Vale is a popular and powerful tool that can be used with a team, especially when employing docs as code methodologies. There are many others, like Proselint and Alex.js. For those writing code, linters are widely available; GitHub offers a linter process as part of its Actions, while GitLab offers linting of CI processes. Many developers and technical writers feel this is a critical tool in their processes, saving time and catching errors before they get committed to the main branch.

Collaborative editing

Yjs is one of Tag1’s preferred tools to create collaborative editing solutions. We helped integrate it into WordPress. It also can integrate with other editing tools such as Prosemirror. Marijn Haverbeke, the creator of Prosemirror, joined us for a Tag1 Team Talk.

Fun projects

Outside of what we do every day as part of our work for ourselves and our clients, Some of us are also involved in and use open source projects in our daily lives to accomplish tasks.

The 3D printing community has a wide variety of open source projects available to upgrade and create new things, no matter what your skill level. Ultimaker Cura, while owned and operated by the Ultimaker company, has a thriving community, with users creating plugins based on their needs. OctoPrint, run by Gina Häußge is a wonderful project that helps makers manage their 3D printers remotely. One of the major implementations of Octoprint is for the Raspberry Pi - a hardware community with an unofficial open source hardware model. Octoprint also has a large community of users and contributors, and many plugins to customize your experience are available. Marlin Firmware is one of the widely used open source firmware packages for 3D printers.

OpenSprinkler is a company with open source software that can run all of your home’s watering needs. It’s highly customizable, from manual watering adjustments, to checking the weather and adjusting based on its algorithms, to attaching your own rain sensors for watering specific to your needs.

Summary

Open source software is everywhere. It’s a major part of the newest generation of makers. Every business needs a website, and huge numbers of people have access to social media, or other spaces where they can find people doing the same kinds of things. Open source software goes hand in hand with everything from business to entertainment. It’s a great way to build skills, and meet new people.

Photo by Tekton on Unsplash.