DEV Community

IronSoftware
IronSoftware

Posted on

IronPDF's Journey — From Startup to 50+ Engineers Building .NET Libraries

Most developers don't think about who builds the libraries they use every day. IronPDF started as a side project solving one developer's HTML-to-PDF problem. Today, it's maintained by a team of 50+ engineers and used by Fortune 500 companies worldwide.

Here's the story of how IronPDF grew from a single developer's frustration to a production-grade library powering millions of PDF generations per day.

The Problem: HTML to PDF Was Terrible in .NET (2013)

The State of PDF Libraries in 2013

Back in 2013, if you needed HTML-to-PDF in .NET, your options were:

  1. iTextSharp — Powerful PDF manipulation, terrible HTML rendering
  2. wkhtmltopdf — Command-line tool based on outdated WebKit
  3. Commercial libraries — Expensive ($2,000-$5,000 per developer)
  4. Roll your own — Use System.Drawing (Windows-only, poor quality)

The problem:

None of these could render modern HTML/CSS correctly. Bootstrap layouts broke, Google Fonts didn't load, JavaScript charts didn't execute.

// 2013: This was the "best" option for HTML to PDF
using iTextSharp.text;
using iTextSharp.text.pdf;
using iTextSharp.tool.xml;

var html = "<h1>Invoice</h1>"; // Simple HTML only
var htmlStream = new MemoryStream(Encoding.UTF8.GetBytes(html));

using var pdfStream = new FileStream("invoice.pdf", FileMode.Create);
var document = new Document();
var writer = PdfWriter.GetInstance(document, pdfStream);
document.Open();

XMLWorkerHelper.GetInstance().ParseXHtml(writer, document, htmlStream, null);
document.Close();

// Result: Broken layouts, no modern CSS support
Enter fullscreen mode Exit fullscreen mode

The Frustration That Started Everything

The scenario:

I was building an invoicing platform for a client. Requirements:

  • Generate professional invoices from HTML templates
  • Use Bootstrap for consistent styling
  • Support Google Fonts
  • Match the web page exactly

What happened:

I spent 2 weeks trying to make iTextSharp render Bootstrap correctly. It failed every time. Flexbox didn't work, Google Fonts required manual embedding, CSS Grid didn't exist in iTextSharp's renderer.

The moment:

After the 50th failed attempt, I thought: "This is ridiculous. Chrome can render this HTML perfectly. Why can't a PDF library?"

That question led to IronPDF.

The Solution: Embed Chromium for PDF Rendering (2014)

The Insight

The realization:

Chrome uses Chromium to render HTML. Chromium supports all modern CSS and JavaScript. If I could embed Chromium's rendering engine in a .NET library, I could generate pixel-perfect PDFs.

The challenge:

  • Chromium is a massive C++ codebase (25M+ lines of code)
  • It needs to run in-process (not spawning external browsers)
  • It must work cross-platform (Windows, Linux, macOS)
  • It has to be fast (no browser process overhead)

The first prototype:

// Early prototype (2014)
var renderer = new [ChromePdfRenderer](https://ironpdf.com/blog/videos/how-to-render-webgl-sites-to-pdf-in-csharp-ironpdf/)();
var pdf = renderer.RenderHtmlAsPdf("<h1>It works!</h1>");
pdf.SaveAs("test.pdf");
Enter fullscreen mode Exit fullscreen mode

Result: Perfect PDF rendering. Bootstrap layouts worked. Google Fonts loaded. JavaScript executed.

This was the birth of IronPDF.

Early Days: Side Project to Real Product (2014-2016)

The MVP (2014)

First version features:

  • HTML string to PDF
  • Basic page settings (size, margins)
  • Windows-only
  • .NET Framework 4.5+

First customer:

A small consulting firm needed to generate 500 invoices per month. They paid $499 for a license.

Validation: People would actually pay for this.

Growing Pains (2015)

Challenges:

  1. Chromium updates — Chromium updates every 6 weeks. Keeping IronPDF in sync required constant work.
  2. Cross-platform support — Customers wanted Linux and macOS support (Chromium works on all platforms, but integration was complex).
  3. Feature requests — Customers wanted PDF manipulation (merge, split, forms, signatures), not just HTML rendering.

The decision:

IronPDF needed to become a full-featured PDF library, not just an HTML renderer.

Expanding Features (2016)

Added:

  • Merge and split PDFs
  • Text extraction
  • Form filling
  • Digital signatures
  • Watermarks
  • PDF/A compliance
  • Linux and macOS support
  • .NET Core support (early alpha)

Revenue: ~$200,000 ARR (400 licenses sold)

Team size: 3 engineers (me + 2 contractors)

The Turning Point: Fortune 500 Adoption (2017-2019)

First Enterprise Customer (2017)

Scenario:

A Fortune 500 healthcare company needed to generate 100,000 patient lab reports per month. Their requirements:

  • Bootstrap templates (modern CSS)
  • Chart.js graphs (JavaScript execution)
  • HIPAA compliance (encryption, digital signatures)
  • PDF/A archival standard
  • SLA-backed support

Why they chose IronPDF:

  • Only library that could render their templates correctly
  • Chromium rendering matched their web app exactly
  • Comprehensive feature set (one library, not three)
  • Commercial support available

Deal size: $25,000 (enterprise license for 30 developers)

Impact: Validated IronPDF for enterprise use cases.

Scaling Challenges (2018)

Growing pains:

  • Support requests increased 10x
  • Bug reports for edge cases
  • Feature requests for niche use cases
  • Need for faster response times

The solution:

Hire a dedicated support team and expand engineering.

Team growth:

  • 2017: 3 engineers
  • 2018: 12 engineers
  • 2019: 25 engineers

.NET Core and Cross-Platform (2019)

Customer demand:

60% of new customers were using .NET Core and deploying to Linux Docker containers.

The challenge:

IronPDF was built for .NET Framework on Windows. Porting to .NET Core required:

  • Rewrite native code integration
  • Test on Ubuntu, Debian, CentOS, Alpine Linux
  • Support ARM processors (Raspberry Pi, AWS Graviton)

The result:

IronPDF 2020.1: Full .NET Core 3.1 support on Windows, Linux, and macOS.

Customer reaction:

"Finally, a PDF library that works on Linux without hacks. Deployed to our Kubernetes cluster in 30 minutes."

Becoming a Product Company: Iron Software (2020-2022)

The Expansion Beyond IronPDF (2020)

Customer feedback:

"We love IronPDF. Do you have similar libraries for Excel, OCR, barcodes?"

The opportunity:

Developers wanted the same quality and support for other document processing tasks.

Iron Suite launched:

  • IronPDF — PDF generation and manipulation
  • IronXL — Excel file generation and reading (no Excel interop required)
  • IronOCR — Optical character recognition
  • IronBarcode — Barcode generation and reading
  • IronQR — QR code generation and reading
  • IronPrint — Advanced printing
  • IronWebScraper — Web scraping
  • IronZIP — Compression

Team growth: 25 → 40 engineers

Remote-First During COVID-19 (2020-2021)

Challenge:

COVID-19 forced remote work. How do you scale a team remotely?

Approach:

  • Hire globally (access to better talent)
  • Async communication (documentation over meetings)
  • Robust CI/CD (automated testing, deployment)

Result:

Team grew from 40 to 50+ engineers across 12 time zones.

Benefit: 24/5 support coverage (customers get responses faster)

.NET 5, .NET 6, .NET 8 Support (2020-2023)

Microsoft's challenge:

.NET releases annually. IronPDF must support new versions on launch day.

Our approach:

  • Access to .NET preview builds (6 months early)
  • Automated testing on nightly .NET builds
  • Day-zero support for new .NET versions

Customer impact:

"IronPDF supported .NET 8 on release day. Other libraries took 6 months."

Today: 50+ Engineers, Millions of PDFs (2023-2025)

Current Scale (2025)

Team:

  • 50+ engineers (development, QA, support, DevOps)
  • 12 time zones
  • Fully remote

Customers:

  • 10,000+ companies
  • Fortune 500 enterprises
  • Startups and SMBs
  • Government agencies
  • Educational institutions

PDFs generated:

  • ~10 million PDFs per day across all customers
  • Peak load: 500 PDFs/second during tax season

Supported platforms:

  • .NET Framework 4.6.2+
  • .NET Core 3.1+
  • .NET 5, .NET 6, .NET 8, .NET 10
  • Windows (x64, x86)
  • Linux (Ubuntu, Debian, CentOS, Alpine, ARM)
  • macOS (Intel and Apple Silicon)
  • Docker, Kubernetes, Azure, AWS, Google Cloud

What We've Learned

Lesson 1: Solve Real Problems

IronPDF exists because existing solutions failed. We didn't build a PDF library for the sake of building one—we solved a problem we personally experienced.

Lesson 2: Prioritize Developer Experience

Developers choose libraries based on:

  1. Does it solve my problem? (functionality)
  2. How fast can I integrate it? (simplicity)
  3. Will it work when I deploy? (reliability)

IronPDF's design philosophy:

using IronPdf;
// Install via NuGet: Install-Package IronPdf

// This should be all you need for 80% of use cases:
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("output.pdf");
Enter fullscreen mode Exit fullscreen mode

3 lines. That's it.

Lesson 3: Support Matters

Developers buy libraries for features but stay for support. We respond to support emails within 24 hours (often faster).

Lesson 4: Invest in Quality

Every IronPDF release goes through:

  • 10,000+ automated tests
  • Manual QA on Windows, Linux, macOS
  • Performance regression testing
  • Security vulnerability scanning
  • Documentation updates

We ship monthly updates. Not annually. Monthly.

Lesson 5: Transparent Pricing

We learned from iText's AGPL trap. IronPDF pricing is upfront:

  • $749 per developer
  • Perpetual license (no forced annual renewals)
  • No runtime fees
  • No hidden costs

Customers appreciate honesty.

The Future: What's Next for IronPDF

.NET 11 and Beyond (2026+)

Commitment: Day-zero support for every .NET release.

AI Integration (2025-2026)

Emerging use case: Generate PDFs from AI-generated content.

Example:

using IronPdf;
using OpenAI;
// Generate PDF from AI-created content

var openai = new OpenAIClient("api-key");
var response = await openai.Completions.CreateAsync("Generate an invoice for...");

var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf(response.Content);
pdf.SaveAs("ai-invoice.pdf");
Enter fullscreen mode Exit fullscreen mode

We're exploring:

  • AI-assisted PDF template generation
  • Intelligent text extraction (understanding context, not just OCR)
  • Automated redaction (detect and redact PII automatically)

WebAssembly and Blazor (2025)

Customer request: Generate PDFs client-side in Blazor WebAssembly.

Challenge: Chromium rendering engine is too large for WASM.

Our approach: Hybrid model (lightweight client, heavy rendering server-side).

Sustainability: 10-Year Support Commitment

Promise:

If you buy IronPDF in 2025, it will still work in 2035.

How we'll do it:

  • Maintain backward compatibility
  • Support legacy .NET versions for 10 years
  • Continue security patches even after feature freeze

Why this matters:

Enterprises build applications that last decades. They need libraries they can trust.

Why We Built IronPDF This Way

Open Source vs Commercial: Our Philosophy

Why IronPDF is commercial, not open source:

  1. Sustainability — Open source maintainers burn out. Commercial funding enables full-time engineers.
  2. Support — Free libraries have community support (Stack Overflow). Commercial libraries have SLAs.
  3. Security — We patch vulnerabilities within 30 days. Open source projects often take months.
  4. Features — Revenue funds R&D (Chromium updates, new features, performance improvements).

What we learned from iText's AGPL approach:

Disguising commercial software as "open source" erodes trust. We're upfront: IronPDF is commercial. Here's the price. Here's what you get.

Customers respect honesty.

Team Culture: Remote-First, Developer-Centric

How we work:

  • Fully remote (50+ engineers across 12 time zones)
  • Async communication (documentation, not meetings)
  • Trust and autonomy (engineers own features end-to-end)
  • Continuous learning (conference budgets, book budgets, training)

Why this works:

Happy engineers build better software. Our retention rate is 95%.

The Bottom Line: What IronPDF Represents

IronPDF is more than a library:

It's a commitment to:

  • Solving real problems (modern HTML rendering, not 2013 hacks)
  • Developer experience (3 lines of code, not 30)
  • Production reliability (50+ engineers, not one person's side project)
  • Long-term support (10-year commitment, not abandoned after 2 years)
  • Transparent pricing (no AGPL traps, no hidden fees)

From one developer's frustration to 50+ engineers serving 10,000+ companies:

That's IronPDF's journey.

If you're building .NET applications that generate PDFs, you're building on 12 years of hard-won lessons, continuous improvement, and a team that cares about making your job easier.

Learn more at IronPDF.com


Written by Jacob Mellor, CTO at Iron Software. Jacob created IronPDF and leads a team of 50+ engineers building .NET document processing libraries.

Top comments (0)