When building a new product, you suddenly face countless challenges and decisions. Sadly, there's no magic formula for making the right choices, whether you're just starting out or are a seasoned entrepreneur. Having walked this path several times as a team, we understand the excitement and worry it can bring.
We are a small team that recently launched Globalping, a global network testing platform. This project is special because it is our second attempt after a startup with a similar product idea didn't reach the desired outcome. With Globalping, we're taking a different approach to reach our goals and vision for the product.
In this blog post, I'll share insights and learnings from our experiences with the startup and how they influence our approach at Globalping. In particular, I'll write about why we built a JavaScript-based open-source platform and how these choices have transformed the project.
Let's go back a few years to when we founded a startup called PerfOps. The idea was to build a B2B SaaS platform for optimizing Internet-based applications. It used RUM (Real User Monitoring) data to gather performance metrics on CDN providers and enable Multi-CDN load-balancing functionality.
As a bonus, it also allowed users to run network measurement requests like traceroute and dig from different locations worldwide.
Like many startups, we needed funding. Luck was on our side as we received VC backing, allowing us to build a team and rent hundreds of VMs (virtual machines) to build a global network for on-demand network testing. As a result, we could develop new technologies to analyze billions of RUM data points and utilize them in DNS-based load-balancing in real time.
While this venture didn't work out as envisioned, the experience gained was invaluable and shapes Globalping's path today.
Some takeaways:
But even after the unfortunate fate of the startup, we still saw the potential and need for accurate, open, and reliable network testing and performance monitoring. And so, Globalping was born, a second chance to do things differently and draw from experiences to create a better service for our users and ourselves. Now, let us share with you how we do that.
We believe it was a natural progression to make Globalping an open-source project. For once, we’re already familiar with the concept. We've been running jsDelivr for about 10 years, a free, open-source, multi-CDN service that serves more than 230 billion monthly requests.
So we already knew the pros and cons of open source, what to do, and what to avoid – the more we thought about it, the more it made sense that Globalping must be open source.
The main reasons to make Globalping open source were:
Naturally, open source also has its challenges. Product development requires developers, designers, marketers, and developer relations experts. And while we have the support of tech experts from our community, we still work with a core team that's compensated for their work.
Instead of relying on VC funding, we're now building partnerships with like-minded companies and seeking support from GitHub sponsors, whose donations keep us running.
The next important decision was the technology we wanted to build Globalping with. We confidently picked JavaScript, relying on our experience in operating large-scale, real-time JavaScript apps.
The benefits of our familiarity with the language have already paid off, allowing us to build new features faster and find and fix bugs more easily than with less familiar languages.
In addition, JavaScript's popularity among app and web developers worldwide made it an obvious choice for us. The language has a rich and robust ecosystem of tools, libraries, and packages that align with our development goals. By using other open-source projects, we can leverage the knowledge and efforts of the community, avoiding reinventing the wheel.
Since JavaScript itself has a vast community, there are many potential contributors to Globalping. And because JavaScript code is mostly straightforward to read, it's easier for newcomers to navigate and understand the source code.
As a result, developers can contribute faster, which keeps motivation up and drives the project forward.
Ultimately, while our core team continuously works on Globalping, we welcome any contribution to the platform. By choosing JavaScript, we can maintain an open and collaborative environment that invites anyone interested in making Globalping a helpful and user-friendly network testing platform.
Finally, we'd like to briefly introduce you to the Globalping platform and hopefully spark your curiosity to try it out to improve troubleshooting and network testing in your teams!
Get quick access to measurement results: We've developed a variety of integrations to meet the needs of different users, whether they're network pros or newbies. If you are most comfortable in your terminal, use our CLI tool. Our GitHub bot and Slack app are great helpers for teams working together on network issues.
Finally, you can also use Globalping in a simple and user-friendly graphical interface on our website to run tests when you don't have access to your usual setup, for example.
Write commands consistently across integrations: Since we don't want you to learn everything from scratch every time you switch integrations, we've implemented a uniform command structure. In general, all Globalping commands follow the same format:
globalping [command type] [target] from [location] [flags]
So, for example, to run ping to jsdelivr.com from Vienna and Berlin using two probes (defined with the limit flag), you write the following command:
globalping ping jsdelivr.com from "Vienna, Berlin" --limit 2
And this is what the result could look like:
Create your own tools with our API: Want to build your own tool using the Globalping platform? No problem – you can use our REST API (with generous limits) to create whatever you want!
Become part of the network: Globalping relies on a globally distributed network of probes powered by our community. We're happy to welcome anyone who sets up a probe in Docker at their home, office, or servers to help deliver reliable results to all users for free.
Today, we're happy to see how Globalping evolves and grows, shaped by our past experiences and learnings. Eventually, we hope Globalping will become the go-to platform for anything related to Internet performance, latency, and uptime.
We'll continue refining features and delivering a great user experience so anyone interested can use the platform.