Blockspring is a library of user-generated coding functions that developers can insert directly into their applications and tools. The approach may be a key enabler in helping API providers scale their products to non-technical use cases, as well as support developers to more easily integrate third-party API functions into their apps.
Developers have traditionally used the platform to rapidly deploy functions as web services, and use in their apps or share with teams.
Now, Blockspring has also focused on end users by creating tools that enable non-technical users to make use of the functions directly in spreadsheets or via a Slack bot. All 1,770 functions are available via a spreadsheet that allows non-technical users to make API calls without knowing any code.
“We are trying to make data really easy to access,” says Paul Katsen, an engineer at Blockspring.
Katsen says the library service began with a clear target of supporting developers integrating code snippets as functions, and providing automatic cloud deployment of those functions using Blockspring’s back end.
“Then we realized: Why do we have to have programmers doing this? Is there a way to open this up to end users?” says Katsen. This led the Blockspring team to start “trying to think up a cool little interface,” but team members realized that instead of being distracted by another new programming task, they could simply use an interface non-developers were already used to: spreadsheets.
Now, the Blockspring site is building its platform chops, with developers and API providers creating new functions from small API wrappers to full algorithms and visualizations, and end users accessing spreadsheet tools to use these functions without having to ever see the code. “We are definitely attacking both sides,” says Katsen.
Developers can register on the library platform and contribute functions and API wrappers for others to use. End users can register and, thanks to some core integrations, access Blockspring from the tools they already use everyday. A Google Sheets tool is available with all of the functions already loaded (and more than 1,000 users have already downloaded the tool), and over 40 Slack bot integrations that can carry out functions directly from within the popular chat app are available.
“Any API service, any algorithm, any data visualization … anything you can do with code, you can wrap up as a little function that end users can use," Katsen says. "We can definitely make this significantly more impactful for people that were reliant on APIs in the past. For example, we have shared a bunch of things you can do with the Twitter API — you can automate a lot of stuff right from your spreadsheet.”
Katsen says the basis of Blockspring came out of the emergent microservices approach that is embracing Web-scale application architecture and to date has best been represented by the API culture of composability. He explains:
The technology behind it is the idea of microservices. In the past, it would have been pretty impossible for the entire world to deploy as many functions as we do; now we can make that happen. With the infrastructure we have set up, that’s things we have learned from the microservices world.
The leap that we can make is in defining the size of the microservice you want to make; it has to be incredibly focused. If it turns out that you can define it, then everyone can use it. It means developers who want to create functions need to ask, how can you make the inputs simple enough for everyone to understand? Instead of providing this huge JSON blob, your input will be either a number or a text. We are trying to define these inputs in simple terms. As long as we make the inputs simple enough, it will be possible for anyone to use it. All of that was by design.
Appealing to Both Communities on a Two-Sided Platform
Part of Blockspring’s most difficult design challenge will be to make sure the platform site appeals to both sides of the platform equation. This means that it must be friendly enough to appeal to nontechnical users looking for functions they can use without any coding know-how, yet engaging enough for developers that they want to ship and build functions through the Blockspring library.
“We are seeing a community of developers starting to add things to our library," confirms Katsen. “But how do you keep a site technical enough for devs to contribute functionality but easy enough for end users to discover new tools and pull them into their work? That has made the design of the site exceptionally difficult. How do you apply the platform to both parties? How do you make the documentation easy enough to understand?"
Katsen believes this is the core capacity that will unlock value for platform users: “If you can be that central product that brings together the business and the technical sides, you are doing something that no one else is doing.”
Discoverability of Functions
Already, Blockspring has 1,770 functions available. As more developers share their code snippets, this will continue to grow, which leads back to Blockspring facing the same problem as APIs and publicly available data sets: discoverability. With so many available functions, how will end users discover the ones that can add value to their work?
“At the moment we have simple tags,” says Katsen. He continues:
Already from businesses, they are saying we need to split this by team, for example, "these are the functions of text analysis that are useful to one of my teams." We need better ways to funnel people into the functionality they need. It is more about finding the right UI pattern and design pattern than a technical problem.
One of our learnings right now is that there are text analysis functions that a hobbyist wants to use, and then there are the functions that suit a business that is offering text analysis as a service as part of their product suite.
So as a business, you wouldn’t be the one creating a Blockspring function. The precedent is that you would partner with as many useful text analytics APIs as possible. Then we can provide these as API wrapper functions, which eliminates the barrier for using the APIs directly. It makes this a very pleasant experience for the business integrating those services.
Then the business can bring this inside their company, building data science templates and functions that allow internal end users to scale analytics endlessly. They just run a simple spreadsheet function. On Blockspring, we have an open community ready for everyone, and then we replicate these communities within an organization.
Blockspring’s Open Source-Like Business Model
What Katsen is referring to with this example is the business model behind Blockspring and the potential to leverage the open platform to better provide a paid service to customers. While Blockspring is free, it also offers enterprise plans aimed at helping businesses provide functions to all their staff. So what Blockspring learns about discoverability or balancing two-sided platform market needs on the public site can feed the services it offers to enterprise customers who are using a Blockspring library platform with internally created tools.
“It is like Yammer internally,” confirms Katsen. “It is just like a smaller social network. The reason we have Blockspring as open is that it is an awesome demo. It shows our enterprise customers that they can dramatically scale their capabilities internally. They do not face a constant obstacle of business users asking what to do around data analysis or other workflows.”
The Blockspring APIs
Blockspring also offers a number of APIs so that developers can programmatically insert API function calls into their wider workflows.
The two Blockspring APIs are:
- The Account API
- The Function API
This is a basic account authentication key that will allow users to run functions from external applications. It allows developers to call the Blockspring account key as an environment variable, which means the API account key does not to be hardcoded into applications running on a secure server. Alternatively, the Account API key can also be used in third-party apps so that Blockspring functions can be run directly from within those apps. Developers can also use the Account API key to create new functions programmatically, for example, by setting up an integration in GitHub to push functions directly to the Blockspring library.
“Every single function has its own API key,” says Katsen. “It calls back that specific function. The account key is a single master key, while function-level keys only work for public functions so that they can be exposed.”
When developers cut and paste the function code snippets from the Blockspring library into their applications, they are essentially using the Function API key. Katsen explains:
Instead of adding functions through the editor, you can add the function right from your local development environment and do Blockspring push to add functions. The reason for that is that developers want to be able to code in their own environment. It's definitely a hook for when you are creating a lot of functions.
In a follow-up article next week, ProgrammableWeb will publish a review of the Blockspring platform from a developer and an end-user perspective, and will share some example use cases of how the functions are being used.