One of the things that concerns most people when implementing a new technology is its cost. In this regard, a question we receive a lot is: “Is WebRTC Free?”.
Note: for answers to other webRTC questions, scroll to the end of the article and sign up for a free webRTC training & tutorials eCourse.
OK, let’s get back to answering the question: “Is WebRTC Free?”.
The project’s official website, greets all its homepage visitors with the following statement:
WebRTC is a free, open project that provides browsers and mobile applications with Real-Time Communications (RTC) capabilities via simple APIs. The WebRTC components have been optimized to best serve this purpose.
As soon as you enter the site, one of the first things you are presented with is the fact that WebRTC is free, meaning that there are no costs involved in its use.
Also as part of the site’s FAQ more detail is provided:
Please explain how WebRTC is free of charge?
Some software frameworks, voice and video codecs require end-users, distributors and manufacturers to pay patent royalties to use the intellectual property within the software technology and/or codec. Google is not charging royalties for WebRTC and its components including the codecs it supports (VP8 for video and iSAC and iLBC for audio). For more information, see the License page.
“Ok, I get it, WebRTC is free” – you may say. However a quick google search about WebRTC cost and providers, gives you all kind of numbers and pricing models. So if the official documentation says that it’s free, where do all these prices come from?
In this article we will explain to you what the costs of a WebRTC application are and where they come from.
Tracking Down WebRTC Costs… But First, Let’s Talk About Blocks.
Most of the brightest memories of my childhood were related to toys. I would bring my toys everywhere. One of them I recall the most my favorite toys was a set of LEGO blocks my father gave my for my 9th birthday. I remember how I would build a lot of cool things with them. (Well, they looked cool to me, but they probably just looked like weird figures to everyone else).
The set contained blocks in different sizes, shapes and colors, and each one of them could be used to achieve distinct effects to my cool creations. Probably that is where my love for building applications (which are also cool) and server infrastructures comes from.
But what does my LEGO block set have to do with WebRTC costs?
Well, you could think of your application as your “cool creation”, made up by several “blocks”.
WebRTC is one of those blocks, which due to its “size, shape and color” achieves the “effect” of adding real-time communication capabilities to the final product.
However, along with WebRTC, there are other “blocks” that provide other equally important “effects”, a.k.a features, such as: users and products registration, a nice user interface, databases, a caching layer, etc. It is the correct positioning of all these blocks that ends up forming the application.
In other words, WebRTC is not a product by itself, but a building block. A “block” that is used to build something else, either by you or by a paid developer.
This is where the first considerable cost comes from: the development cost.
Development costs vary according to application requirements and use cases. It is the first factor you should take into account when planning a budget for your application, whether you develop in-house hiring your own developers or using the services of an external software development firm.
Now, allow me to go back to my childhood and the blocks, in order to introduce another concept that is important when talking about WebRTC costs.
Putting the blocks in place to build awesome figures is indeed quite exciting (just as software development is), however, none of that would have been even possible if my father had not “bought” the set in the first place.
Similarly, even if you already have the WebRTC “building block” for free, you need to explicitly “buy blocks” to build and run your app, whether you decide to buy them generically to freely build the figures you come up with, or buy a set of blocks with the figure you can build already printed in the box. (You could use the latter to build something else though, but it is not as fun as building the actual thing it was meant to).
And by “buying the blocks” we refer to setting up the servers, the infrastructure that will make your application actually work and be reachable for your users. There are no WebRTC applications without servers.
At the very least, you need a signaling server for negotiating the call parameters between the peers.
You need STUN/TURN servers for surpassing NATs and firewalls.
You’ll probably also want to use a media server for enabling some advanced features such as recordings, simulcast and multi-party calls.
You can buy your servers one-by-one as “generic blocks” to build your infrastructure as you want, and take care of the maintenance, availability and scalability of it; or use the infrastructure offered by a CPaaS (Communication-Platform-as-a-Service) provider in which you “build what’s printed on the box” with little or none control over it.
Each approach has its own benefits and drawbacks.
Buying individual blocks might be less expensive but one who never played with bricks before, might struggle when trying to build a figure. On the other hand, a package for building a specific figure may even include instructions that make the assembling process easier, although it might have a more expensive price.
Likewise, building your own infrastructure might seem like a cheaper alternative; however, it can be quite complex, and when made without the proper expertise, can incur higher costs than using the services of a CPaaS. Using the services of the aforementioned, conversely, can make development process easier.
It’s all a matter of making a trade-off between requirements and available resources to come up with a strategy that suits your needs.
Of course there can be other costs, but the ones that are directly related to the implementation of WebRTC are both the cost of the app development and the underlying servers, because you actually need to build your application and you need servers to host it.
In conclusion, WebRTC is a powerful technology that allows you to add real-time communications capabilities to your applications, without having to worry about paying any kind of licenses costs or royalties for implementing it.
Just like many other tools, WebRTC has its own requirements around server infrastructure in order to work, that added to the obligatory development process, implies the need to invest an important part of the project’s budget on the two main cost sources: Development and Infrastructure.
Learn more about webRTC — Free Training & Tutorials eCourse
Sign up for a free webRTC training & tutorials eCourse. WebRTC makes it easy to add video and audio chat into your applications, which opens up a whole new world of interactivity to the web. Maybe you have heard about webRTC, want to get started but need to first learn more?
This email course is for you!
Each week of the series, you will receive an email to your inbox with a downloadable eBook written by one of our expert developers.
Contact us to build or improve your WebRTC app!
Do you need more information on how to have WebRTC work in your web application? Maybe you need to have a 2nd set of expert eyes take a look at one of your current applications and provide a “health check” web assessment? We have an experienced team ready & happy to help you out.