Skip to content
Chinmay Sawant edited this page Dec 27, 2025 · 3 revisions

Welcome to gopdfsuit 📄

Welcome to the official wiki for gopdfsuit. This project is a Go-based toolkit designed to make PDF manipulation efficient and straightforward.

👤 Project Status

As of now, I am the sole developer working on this suite. While the project is growing, I am actively looking for contributors and feedback to make it even better.

Important

Using gopdfsuit in production? If you are using gopdfsuit in your organization or are planning to use it, please let me know via any of my socials! Knowing how the tool is being used helps me prioritize the right features.


🚀 Deployment & Security

Caution

DO NOT DEPLOY this application on a public network. As of now, gopdfsuit does not have built-in security features (authentication/authorization). To use it securely, you should deploy the app in a private network and use your own middleware (like an API Gateway or Reverse Proxy) to handle security before passing requests to the suite.

Deployment Options

  1. Official Docker Image: You can use the pre-built Docker image provided by the gopdfsuit repository.
  2. Local Build: You can build your own Docker image locally. Refer to the Makefile in the root directory for build commands.
  3. Sidecar Deployment: For Kubernetes or OKD environments, you can deploy gopdfsuit as a sidecar container alongside your main application.
  4. Standalone Server: You can run the binary directly on your internal server.

🤝 How to Contribute

If you are interested in contributing, your help is more than welcome! Whether it's fixing a bug or suggesting a new feature, here is how you can get involved:

  1. Find a Task: Head over to the [suspicious link removed] tab to see open bugs or feature requests.
  2. Claim it: If you see something you want to work on, simply comment on that issue. This helps avoid duplicate work.
  3. Submit a PR: Once you’ve finished your changes, submit a Pull Request for review.

🕒 Availability & Communication

I am highly active and generally respond quickly when I am not at my day job. I am typically available during the following window:

  • Active Hours: 10:00 AM IST – 3:00 AM IST
  • Response Time: Usually within a few hours during active windows.

If you want to discuss a feature, brainstorm an idea, or just say hello, feel free to reach out via my socials:


The Motivation

Back in 2022 and 2023, I was deep in the trenches of Java reporting. I was constantly working with tools like JasperReports, ReportLabs, and iText.

I remember being genuinely amazed by JasperReports at the time—the drag-and-drop functionality just worked. It felt like magic. I actually caught myself thinking, "Man, I want to build something like this." But back then? I was still a total newbie in the software world. I brushed the idea off immediately, thinking there was no way I had the skills to pull off something that complex.

The Trigger

Fast forward to my current role. We hit a wall with iText Java and I was tasked with finding an alternative. The main requirement was XFDF functionality to integrate with our existing systems, but the constraints were tight.

I went down the rabbit hole looking for options. I tested everything—Aspose, UniPDF, Gotenberg, GoFPDF, wkhtmltopdf. It was frustrating. Every single one had a dealbreaker: they were either non-compliant, had licensing issues that didn't work for us, or were just incredibly expensive.

Working in the healthcare domain makes this even harder. We have strict compliance rules; we can’t just buy a SaaS solution and send sensitive data to a third-party API. Everything has to be secure and in-house.

The Spark

That’s when the old idea came back: Why not just build a PDF engine myself?

It happened to overlap with me experimenting with AI tools. I had just bought a GitHub Copilot subscription and was testing its limits by building "MotionSaver" (a project to bring the macOS lock screen to Windows). I realized that with Copilot acting as a pair programmer, I could punch way above my weight class.

So, I decided to stop looking for a vendor and started building. I took on the challenge to build the compliance-friendly, cost-effective engine we actually needed.