Blog Post

The Complete Build vs. Buy Handbook for Adding In-App PDF Features

PSPDFKit
Illustration: PDF SDK: Build vs. Buy

When deciding whether to build or buy in-app PDF features for your product or internal solution, there’s no straightforward answer. To help you in the decision-making process, this guide provides insights to consider when conducting any feasibility study or cost estimation and developing a product roadmap.

Introduction

Adding advanced PDF features to an application is an excellent way to improve user experiences, productivity, and security. If you’re looking to architect a professional, in-app PDF solution, there are a few ways.

One is using cloud service providers like Adobe or Box. These solve a common problem for businesses needing centralized document management with PDF functionality and features.

But while PDF capabilities have become crucial in various fields, predicting each niche’s use case is challenging. And options offering predefined features only sometimes align with your needs for tailored PDF functionality. Additionally, you might encounter significant limitations with external service dependencies, especially when trying to cost-effectively scale up a purpose-built app.

So in this post, we’ll focus on two embedded alternatives:

  • Building customization on top of open source PDF libraries.

  • Buying a commercial PDF SDK (software development kit).

Using Open Source PDF Libraries

An open source PDF library or framework provides core functions such as creating, editing, and rendering PDFs. Using open source is undoubtedly faster than building from scratch. But it needs more custom code, delays time to market, and can impact app reliability, performance, and PDF fidelity.

Using a Commercial PDF SDK

A ready-made PDF SDK foundation like PSPDFKit offers organizations flexibility and speed for the cost of a license. A PDF SDK also provides a higher-level interface and prebuilt components that streamline development. Thus organizations achieve a faster time to market while leveraging the expertise and ongoing improvements an SDK provider offers.

The decision of whether to develop with an open source solution or a PDF SDK depends on your project’s complexity, among other factors. These can include development time, the desired level of control and functionality, and your own strategic goals and priorities when adding features.

Here are considerations when deciding whether to build or buy PDF features for your product or internal solution:

Build vs buy PDF SDK Consideration

Evaluating Your Requirements, Priorities, and Goals

Before deciding to build or buy PDF functionality, it’s essential to take a step back and give PDF the weight it deserves in the context of the problems your product will help customers solve. We can look at your organization’s unique value proposition, customer base, goals for the project, and requirements.

Customers often leverage PDF features offered by PDF SDKs to add “stickiness” to a product or workflow or to enhance a software package.

Below are a couple of examples to illustrate this.

  1. A commercial product’s smooth and functional PDF viewing supports engagement and retention. PDF features keep users in an app long enough to try premium features.

  2. Likewise, PDF functionality can help secure workflows and control experiences. It gives users tools to view, mark up, and edit PDFs efficiently in an app. Thus paper trails with personally identifiable information (PII) or electronic protected health information (ePHI) are kept version controlled and auditable in the app, since users are less tempted to exit for other methods that can’t be tracked.

In weighing PDF’s importance compared to your other goals, consider the following:

  • Is PDF likely to be or become the “secret sauce” of your product or company?

  • Will PDF features generate revenue for your product, or will they be used to drive retention or engagement?

The expense of in-house or custom development may be justifiable in some cases — for example, if PDF viewer functionality is an essential differentiator integral to your primary value proposition. But if PDF improves efficiency and indirectly supports revenue growth, then in-house development costs become more difficult to justify.

a. Time to Market and Competitive Advantage

Next, consider the competitive context: With PDF features widely distributed, even expected, and often free, there’s an imperative to move fast, especially when developing a commercial application.

The speed at which you introduce PDF integration into your app can significantly affect how competitive your app is, even if you’re not worried about money or budget constraints. Using a CI/CD development approach, you can have a quicker turnaround for feedback and faster deployment of new features.

But say you only release a PDF viewer’s initial version (v1). In that case, your competitors might keep improving and get ahead while you’re still spending time working on new features, performance, or platforms.

Even if you need a high degree of customization, you can still achieve significant customization faster, on a greater variety of platforms, and with fewer developer resources by using a PDF SDK. This frees up in-house teams to focus on seamless integration with your frontend, backend, and support systems, in addition to adding features to make the product stand out.

By leveraging an SDK-based solution, a small team can have PDF viewer functionality and features live within weeks instead of the minimum six-month process we estimate companies experience with most custom development.

Information

Six months includes product research, designing, coding, testing, and debugging the solution, as well as deployment.

b. Opportunity Costs

Engineering resources are both limited and somewhat expensive, so it’s important to consider the opportunity cost of dedicating these resources when building an app in-house.

Common wisdom dictates that organizations get the best results by focusing on the main value proposition. Meanwhile, the features you set aside to make room for adding PDF functionality to your project(s) on your own could have been more effective at setting your product apart from the competition, improving the user experience, or earning cash in other ways.

Add to that the fact that PDF is a specialized sub-domain of document technology. Depending on the features you want to add, developers may need an understanding of the PDF specification, which is more than 1,500 pages long, with supplements and extensions. Unless you have seasoned in-house PDF developers, engineers must face a steep learning curve before committing any new features.

For example, say developers spend six months learning and building a custom PDF viewer with annotations such as sticky notes and text highlights. During that time, they miss out on building other valuable features. Learning also removes engineers from their original area(s) of expertise, increasing the opportunity cost as they become better and more efficient PDF developers.

c. Scoping Out a PDF Roadmap

When planning a roadmap for software development, there are several basic risks to consider. These include:

  • Technical complexity
  • Dependencies on external systems or APIs
  • Resource availability and skill gaps
  • Predicting development timelines
  • Changes in requirements

Estimating long-term requirements can be especially tricky when planning an in-app PDF solution. And this estimation depends on additional needs that evolve organically and are only sometimes predicted. Often, it starts with user requests. To satisfy these requests, product teams start further customizations, often innocently enough, without fully anticipating the challenges developers may face. This can lead to regrets down the line.

Another scenario, which is familiar to many organizations, is when the product’s direction is influenced by crucial clients, sales requests, or a RHiNO (Really High-value New Opportunity). In a situation like this, the job of decision makers is to foresee where unexpected demand might pop up — especially when it may otherwise seem easier to dive in and add a requested feature so as to please customers and stay competitive.

To help you understand when it’s advantageous to purchase a solution for implementing PDF features over adopting open source libraries, we surveyed more than 100 organizations, many of which had reached out to us after open source fell short of their requirements.

This table gives a rough idea of what features companies seek most when considering a PDF SDK.

Feature Percentage of Votes (rounded)
Viewer 26%
Signatures 19%
Forms 17%
Annotations 10%
Editor 9%
Generation 6%
Image Files 4%
Conversion 3%
Collaboration 3%
Office Files 2%
Redaction 1.3%
OCR 1.1%
Comparison 0.7%

d. Feasibility of Open Source Customization

PDF’s product specifications are complex, requiring a wide range of technical parts and engineering resources and a well-thought-out development strategy to implement. Open source offers an attractive middle pathway for those looking to move faster than building from scratch.

Thankfully, the PDF ecosystem has many excellent libraries supported by big companies, including the major browser vendors, ensuring everyone benefits from the shared research, audits, fixes, rapid security patches, and performance enhancements.

Information

The PSPDFKit SDK also uses an optimized fork of the open source PDFium for parsing and rendering PDFs. As a result, building on and supporting open source is in our company DNA.

Many companies pursuing custom development of PDF viewing also look to established open source libraries like PDFium or PDF.js to get a head start.

The table below gives an overview of some of the PDF features supported by major open source libraries.

Feature Open Source Library
Viewing PDFs PDF.js, PDFium
Annotations Not supported
Signing documents Not supported
Form filling PDF.js, PDFium
Editing pdf-lib
Text search PDF.js, PDFium
Redaction Not supported
Viewing images Not supported

However, there can come a point when you want to add advanced features like signatures or annotations on top of open source functionality. If such features are on your roadmap, or if you’re looking for cost and time savings in viewer development, consider the following points.

Developing unsupported features can be costly. For example, building annotations on top of an open source web viewer will require familiarity with basic PDF rendering instructions and the browser <canvas> coordinate system.

Customizing a viewer user interface (UI) adds extra costs and time. Additionally, some open source projects lack APIs for UI customization, requiring familiarity with the open source codebase.

Monitoring and maintenance. Frequent commits to open source libraries can impact your customized project. Quality assurance and bug fixing require active developer involvement.

Your product roadmap’s aggressiveness. Building a viewer may lead to migration costs for unsupported features.

Incomplete or stale documentation for open source projects slows down development and increases costs.

Reliance on open source community support may not ensure your project is completed on time. The speed of getting support when building your viewer will depend on how active and responsive the community is and how complex the issues you need help with are. (And keep in mind that some problems are never solved.)

User experience (UX) consistency when building across platforms. Dealing with inconsistent open source rendering, UIs, and features across platforms can lead to significant delays, as well as support, maintenance, and administrative complications.

Estimating Your PDF Feature Build vs. Buy Costs on Paper

There are several ways to estimate total costs of building versus buying. And depending on your framework of choice, that could significantly impact your final decision and outcome.

When you think about the long-term cost of adding features to your app, the usual belief is that building them in-house initially requires a significant investment but becomes cheaper over time. Eventually, there comes the point where the total amount spent on building in-house is less than the recurring payments for an SDK or APIs over the same period. In theory, that moment looks something like the image below.

Line graph showing build cost vs. buy cost over time, with build starting expensive then tapering and buy displaying a consistent low spend

Figure 1. — The Total Costs of an In-House Build vs. Buy in Theory

According to the image above, after a certain point, building in-house becomes more cost-effective. Using open source enhances this logic, as you can assume the most demanding investment in building essential functions, like PDF rendering, is taken care of.

Yet building in-house software costs much more than getting developers to make the product. The above model only works well for organizations with the technical resources and ability to plan far ahead, and often, the costs never balance out. With PDF viewer development, you must also factor in the potential need to upgrade features, add platforms, and fine-tune performance. In practice, especially for product teams concerned with concepts such as minimum viable experience, user-centered design, and competitive advantage, development costs look more like what’s shown in the image below.

Line graph showing build cost vs. buy cost over time when adding new features

Figure 2. — The Total Costs of Customizing and Updating Open Source vs. Buying

Information

These graphs obviously don’t factor in any opportunity costs if you’re using in-house resources.

a. Costs of Custom Development

Let’s take a deep dive into cost estimation of custom development compared to using a PDF SDK.

We’ll look at a custom development formula first. You might want to grab a coffee before taking the plunge. ☕️

If you’re deeply familiar with these formulas, feel free to skip to the examples.

Total Cost with Custom Development

In-House Build Cost = Initial Build Cost [Development Labor + Infrastructure Over Expected Finite Time Period] + Maintenance and Scaling Cost [Initial Break-Fix and Customer Feedback Period as Usage Grows + Recurring Infrastructure Costs]

Initial Build Cost = Development Labor + Infrastructure Over Expected Finite Time Period

Parameters That Can Help with Determining the Cost of Building

Development Labor

  • Estimated number of developers that will be required

  • Estimated length of development (in months)

  • Annual salary of developers

  • Assumptions — e.g. no major setbacks happen, figures are based on internal experience with hiring developers for building a PDF viewer

Cost of Development Labor = Annual Salary of Developers/12 × Estimated Length of Development (in months) × Estimated Number of Developers That Will Be Required

Infrastructure Needed to Deploy the PDF Viewer

  • Select from two types of solutions:

    • The averagely priced — List 1–2 averagely priced solutions with accompanying service costs per month.

    • The premium priced — List 1–2 premium priced solutions with accompanying costs per month.

  • Kinds of service needed — Server, computing memory, storage options, etc.

  • Assumptions — e.g. medium-to-high server usage, number of infrastructure/services required is based on internal experience

Infrastructure Over Expected Finite Time Period = (Cost of Service 1 + Cost of Service 2 + Cost of Service 3 + Cost of Service n) × Estimated Length of Development

Maintenance and Scaling Cost = Initial Break-Fix and Customer Feedback Period as Usage Grows + Recurring Infrastructure Costs

Parameters That Can Help with Determining the Cost of Maintenance

Initial Break-Fix and Customer Feedback Period as Usage Grows

  • Estimated number of developers required for routine break-fix issues

  • Annual salary of maintenance developers

  • Additional cost of provision and/or deprovision servers as needed

  • Assumptions — e.g. code is developed to scale horizontally on infrastructure, there are routine break-fix issues

Cost of Annual Maintenance = (Annual Salary of Maintenance Developers × Estimated Number of Developers That Will Be Required for Routine Break-Fix Issues) + Additional Annual Cost of Provision and/or Deprovision Servers as Needed.

Simplified Build Costs with Real-World Examples

Build vs buy PDF SDK Costing

Now let’s get a real-world feel for these theoretical costs. We’ll first need to simplify our model to make our math more relatable. For now, let’s ignore infrastructure, maintenance, support, and upgrade costs. Sure, they’re important for the total cost of your build, but they can get pretty complex and vary a lot, making them hard to illustrate in this guide.

Also, it’s a bit tricky to quantify any opportunity cost, but we’ll keep it in mind for our two simple examples. These are meant to give you a ballpark idea, and they mirror projects our PDF SDK customers have shared about what they’ve built or tried to build.

  • Example 1: Essential PDF viewer with no advanced features, and developers who live in an inexpensive location.

  • Example 2: Complex PDF viewer with advanced features and more developers, all of whom live in the San Francisco Bay Area.

Example 1 — Low Budget, Low Risk

For a basic PDF module similar to Adobe Acrobat Reader, the initial development period would be 2–4 weeks of intensive coding and UI customization, depending on the platform.

We want to implement strategies to limit costs and uncertainty for this build.

The infrastructure cost can be optimized depending on your requirements. For example, you can do prototype development using only a laptop or desktop and may not require cloud infrastructure. In this case, existing development machines should suffice. Your infrastructure cost, in the short run, would then be zero.

After launching the MVP, you can also implement a feature freeze. To see a similar approach, check out what Slack did when developing PDF previews.

Assuming a skilled developer working in an inexpensive location with a $100,000 annual salary, the labor cost for this project would be, at most, $7,200 in the first month, and possibly as low as $1,650 for one developer week.

Example 2 — High Budget, High Risk

Let’s now examine the upper end of the spectrum. We’ll imagine a more robust PDF tool with features reminiscent of Adobe Document Cloud. These could encompass PDF viewing, annotation, digital signing, and forms — all of which need to work smoothly for the product to be considered competitive.

We’ll use two US-based developers, each earning an average salary of $120,000 annually. This is in addition to the associated product manager and designer roles.

With a simplified infrastructure, excluding maintenance, and factoring in an average of six developer months of work, the associated costs would be approximately $360,000.

It would then take at least six months to launch an MVP on a single platform.

Our timeframe accounts for the minimum time needed for product planning and design, plus an average of four months for quality assurance, such as testing and debugging of features.

For a project bearing some similarities, consider Dropbox’s development of its annotations framework. This “hybrid” framework, separating Dropbox annotation tools from PDF.js rendering, was conceived to facilitate security around the iframe, monitoring, and maintenance, and to ease implementation of smooth annotation on additional file formats in Dropbox previews such as images.

b. Costs of Buying and Implementing a PDF SDK

So far, our big-ticket item has been developer salaries. But scaling, upgrading, maintenance, and administrative costs like crafting user documentation are important too. And then there’s infrastructure — a small but notable cost on top. We’ve explicitly excluded these costs from this guide, but they’re key to estimating the total cost of your build as well.

Next, we’ll tackle the costs of buying and implementing a PDF SDK. Some might think using an SDK means virtually zero upfront costs. But yes, while implementation costs are generally less than custom development, they’re not insignificant. At the very least, any premade solution needs basic UI customization to align with your desired look or brand and to integrate with your existing apps and support systems. You’ll also need to handle a bit of maintenance and fine-tuning. For example, a sales-centric PDF creator in Salesforce would need regular tweaks, adjustments, and backend syncs.

Much of the math from our custom build estimate also applies to our SDK estimate, but we also need to throw in the added cost of a license. So, our simplified buy formula ends up looking like what’s below.

Total Cost with Custom Development

Simplified Cost = Cost of Implementation [Customization + Integration] + Recurring Subscription Cost [Base Rate + Premium Features] + Recurring Administrative / Maintenance Labor Cost + Infrastructure Over Expected Finite Time

Additional parameters that can help with the cost of implementation include:

  • Several person-hours involved in training and implementation

  • Number of platforms for implementation

  • Compatibility and support for plugging the SDK into the existing product

  • Migrating the old project (if any) into the new environment

  • Testing the solution

  • Security and vulnerability analysis of the product after integration

Training and implementation are worth factoring into the cost, separate from licensing. We’ll estimate a week for developer training and another week to implement the PDF SDK, or about half a developer month in total.

In short, if you’re looking at a mid-range developer who charges $45 an hour, that’s roughly $3,600 to implement a PDF SDK into your app to get its features and functionalities up and running.

Strategies to Manage Costs When Buying a PDF SDK

Most SDK vendors operate on a per-component pricing model. As they typically don’t broadcast module pricing, you’ll have to hash out the exact figures with their sales team. If you’re planning to use multiple components, you can negotiate the pricing for a solution that’s cost-effective and that scales well with your user count, document volume, and platforms.

Additionally, to trim the cost of a cross-platform implementation, consider using modern frameworks supported by the SDK, like React Native or Flutter. It’d help if you got consistent rendering, a UI, and feature parity across platforms with the SDK. This results in a unified user experience, cutting down administrative and support costs and letting you run with a more agile and streamlined team.

Case Study: How BoardPro Speeds Up Development for Unlimited Board Team Meetings

“We’re the only company offering unlimited meetings, unlimited users, unlimited documents. And let’s face it, governance isn’t one-size-fits-all. You can’t expect small businesses and non-profits to pay hefty license fees. It’s a non-starter for them.”

Kim Thibault
— Co-Founder and CPO of BoardPro Limited,

BoardPro Limited, a board management software company for small-to-medium-sized businesses and nonprofits, leverages PSPDFKit’s Instant collaboration solution to enable real-time PDF document annotation and discussion among board members in 2,000 boards across 26 countries.

During the startup phase, BoardPro faced the challenge of adding annotation features without incurring high licensing fees or diverting focus from its core business. After exploring different options, BoardPro selected PSPDFKit for its ability to synchronize annotations across multiple users and devices seamlessly. In addition, even with slow network connections, Instant’s reliability and smart sync function proved vital for smooth collaboration, especially when working with large PDF board packs.

Beyond technological superiority, PSPDFKit offered BoardPro a cost advantage by providing a flat-rate per-organization pricing model. This flexible pricing structure aligned with BoardPro’s goal of delivering value to price-sensitive customers, allowing unlimited meetings, users, and documents.

Case Study: Northwoods’ Journey Towards HIPAA Compliance Without Compromise

"Early on, we understood having all these features in our back pocket would be very valuable for a future contract or customer, as we could just pay to turn it on.”

Jeff Turner
— Director of Engineering at Northwoods Consulting Partners

Northwoods Consulting Partners is a software consultancy that serves hundreds of human services agencies across the United States. Its secure, HIPAA-compliant software makes it easy for caseworkers to access their documentation tools and case files on the fly, using AI to simplify document management in Traverse, Northwood’s purpose-built cloud solution.

Working across various document and image formats, Northwood converts these various formats to PDF at ingestion for easy viewing in its Traverse application. In the past two years, Northwoods has partnered with PSPDFKit to improve its web and mobile document experience with modern PDF SDK features.

Some of the strategies the Northwoods team used to reduce development costs included the following:

  1. Switching from a .NET PDF library to a drop-in web component rich with features like annotation, redaction, and forms.

  2. Leveraging React Native SDKs for development so caseworkers could enjoy smooth remote Android and iOS access to critical case files.

Using PSPDFKit’s web and mobile components gave Northwoods a leg up in building its web viewer. It streamlined the team’s ability to meet its roadmap goals and respond quickly to demand for additional, key PDF features. Leveraging our React Native SDK also helped the company move toward a consistent UX across platforms, reducing administrative, support, and maintenance costs, so the team could focus instead on realizing a user-centered design and differentiating the product.

The Bottom Line for Your Choice: When to Build or Buy

Deciding between “build vs. buy” is like picking between creating a custom tool or grabbing one from the store. When you build, you get to select each component, customizing it to your specific needs. But building is also akin to operating a mini workshop — it’s initially more expensive, it takes extra time, and you’re responsible for all repairs and updates.

With PDF viewing, open source is an option — a middle ground between build and buy — with several excellent and well-supported libraries taking some of the maintenance burden off your back. But even open source has costs and starts to feel a lot like “build” when it’s time to incorporate sophisticated features.

Opting for “buy” has its development costs too. However, just like when purchasing a toolkit, a PDF SDK is cheaper in pure developer terms and faster than open source, and the maintenance of features is someone else’s problem. Plus, you can ramp up the number of documents, users, and features more quickly.

In summary, your in-house project to add PDF viewing and features will run smoothly if:

  • Your project needs are simple (limited to PDF viewing).

  • You’re dealing with small, easy PDFs (like invoices or sales reports).

  • The project isn’t supposed to last a long time.

  • Users don’t mind a few glitches in how their PDFs look or work.

However, you’ll want to consider a PDF SDK if:

  • The PDF viewer is going to be used a lot in your business or in a product you’re selling.

  • The performance and functionality of the viewer is important to make you stand out from the competition.

  • You need advanced PDF features not supported by open source viewers, like signatures and annotations.

  • Users want their PDFs to look just right and work smoothly.

  • You need to develop across different platforms (web and mobile).

  • You’ll have to respond to demand for additional advanced features.

If you and your team are still in the evaluation phase and would benefit from input from developers specialized in PDFs, please feel free to contact us.

Share Post
Free 60-Day Trial Try PSPDFKit in your app today.
Free Trial

Related Articles

Explore more
COMPANY  |  Company

New Generative AI-Enabled Integrated Document Workflow Capabilities by PSPDFKit

COMPANY  |  Company • Products • Remote Work • Insights

2023: Year in Review

COMPANY  |  Company

PSPDFKit Acquires Low-Code Process Automation Platform Provider Integrify