User Spotlight: Stirling-PDF

User Spotlight: Stirling-PDF

What do PDFs, chat GPT, and Reddit all have in common? Stirling-PDF, an open source web based PDF manipulation tool.

Anthony Stirling was on the hunt for a PDF website but was unable to find exactly what he was looking for. He consistently found the tools to be lacking in functionality, prohibitively costly, lacking a Docker version, and in some cases, simply untrustworthy. Rather than settling for an inadequate solution, he set out to build his own.

Starting Off With a Challenge

Anthony started the project with two main parameters in place. A 24-hour time limit, and using only Chat GPT to build it. The next day, with v1 of the project completed, he decided to share it on Reddit. His post was met with an enthusiastic response, validating the hunch that a locally hosted, trusted, and free PDF application was a necessity for many.

Fast forward to today, and that solo project has grown into an active, open source project with nearly 100 contributors, and over 19,000 stars on GitHub. The project aims to provide fully locally owned software, with zero tracking, that eliminates the need for overpriced tooling.

While zero tracking complicates determining the exact user count, it’s confirmed that at least 50 universities and educational establishments have deployed Stirling-PDF to date. A testament to the commitment Anthony and fellow contributors have to providing an excellent tool, and user experience.

Evolving Over Time

Anthony began coding as a Java developer, and then later transitioned into DevOps. A throughline in his experience has been focusing on automation to make tasks easier, quicker, and more secure for the different users he works with. These focus areas guided him as he transitioned Stirling-PDF into an open source application.

That transition has had its own rewards and challenges. As Anthony puts it:

“Thankfully, the pros greatly outweigh the cons, the benefits are being able to give back to a community and have the community also give back to the project, and having so many collaborators gives me different viewpoints and skills in the work I do. creating a vastly improved application overall, both for quality and security. And for those without tech skills, it still means freedom to access, trust that others can verify code quality, and free for nontechnical contributions like translations”.

The challenges faced are those you might expect for this type of work. Time management, people management, securing funding, and code review. The latter improved significantly through the careful selection of tools.

Building a Toolset

In addition to Dependabot and Jenkins, Stirling-PDF is strengthened by a handful of other tools. Their application of different developer tools is an excellent example of leveraging multiple resources in conjunction to bolster security from various angles.

They started out using Sonar for general code health and security checks, noting the tool’s ease of integration as one of the main reasons for adoption. They complimented this with an additional security tool for pull request scanning, and reporting on dependency security issues.

Later on, they began using an additional tool for docker image vulnerability alerting. They found this to be a good addition as it caught some issues their other scanners missed and provided a nice view for docker images. Eventually, Pixeebot was added to the list. When asked what about Pixeebot appealed to him, Anthony explained:

“I liked Pixeebot for its security-focused results and automation. It seemed to catch things missed by others, and unlike others, it would offer possible solutions to the issues by creating its own PRs directly with the repo in an automated way… I am unaware of tools that make the solution so easy. I found it much nicer than things where I just have a ‘This is a possible solution code snippet’. Which often doesn't apply to the actual use case.”

As of today, 11 of Pixeebot’s fixes have been merged into Stirling-PDF, contributing to the application's security and performance.

What’s Next for Stirling-PDF

Stirling-PDF is constantly evolving and improving. Some of the upcoming features mentioned in their docs include tracking to provide real-time updates of ongoing operations, auto-rename functionality to rename files based on their title, and folder support.

Make sure to keep an eye on this Stirling-PDF! There are currently multiple ways to contribute to the project, through coding and non-technical work. For more information, head over to their contributor guidelines. You can also show your support for the project by becoming a sponsor.