Hey everyone! As promised in our last blog post, it's been two weeks, so it's time for an update on the progress of both Code.xyz and Standard Library. We are thrilled to be able to share that we hit a milestone earlier this week, more than 50,000 APIs have now been deployed to Standard Library — both using our command line tools and Code.xyz. These include Slack bots, Stripe stores, Messagebird's SMS APIs, everything you need to know about mountains via AscenDB's API, and tens of thousands of private workflow automation APIs (task scheduling, e-mail outreach, web scraping, you name it)!

If you've heard about Code.xyz and what we're doing at Standard Library but have no idea where to get started, our very own Janeth Ledezma Sanchez has you covered:

Now — the good stuff! Our community Slack workspace has been buzzing. There are all kinds of feature requests we've been itemizing and knocking out with a lot of interest around GitHub integration. We're pleased to announce that we've been listening and working hard to make Code.xyz a more integrated experience with your existing developer tools and workflows.

Code.xyz and Standard Library Updates

Export API Functions as GitHub Gists

  • Functions for APIs as Components: Export as GitHub Gist
    • We now offer the ability to export any individual function in your functions/ directory (API endpoints) as a GitHub Gist
    • This feature effectively turns functions / API endpoints into shareable components
    • You can use this functionality to share Code.xyz examples with others, or keep your own set of commonly used endpoints to mix-and-match in future API projects
    • This functionality is easily accessible by right-clicking the function you'd like to export from the TreeView or right-clicking the active file contents in the editor

Export as GitHub Gist

Import from GitHub Gists

  • Import from Gist: Load from URL
    • Once you have a gist, you can share it with others by sharing the link code.xyz/?gist=username/gistid0000 (where gistid0000 is the automatically generated unique gist id provided by GitHub)
    • The example below (and embedded at the bottom of this blog post) is located at https://code.xyz/?gist=keithwhor/6ad11a67add5860a75b0e8b0e3694af9

  • Import from Gist: Load from your Gists
    • By right-clicking in the Code.xyz TreeView, you can add any Gists you'd like to a project that you've previously saved from Code.xyz
    • These Gists can be used as "API function templates" or components as described above

Import Functions

Import Functions Dialog

API Documentation Introductions Made Easy: API.md

  • Platform Update: API.md
    • We've separated out internal and external documentation for your APIs into an API.md and README.md file
    • README.md is information for internal API development - you can share secrets around implementation details here
    • API.md is for end-users that you want to consume your API - it is used to generate documentation (namely, the API description and how to) on Standard Library

Thanks — try it out!

Want to try out our new features? Check out the example below: it's loading a Gist from my GitHub account that proves that [a == 1, a == 2, a == 3] can return [true, true, true] in JavaScript!

Thanks for reading, and stay tuned for more GitHub integrations!

Keith Horwood
Founder and CEO, StdLib

Last week we launched Code.xyz, the online code editor for building APIs to an amazing response — more than 2,500 APIs have been deployed using it in less than a week — and from everyone on the StdLib team, we wanted to say thank you. We're excited to build the future of serverless API development and collaborative coding with all of you!

Our post on Product Hunt skyrocketed to #2 Product of the Day, competing against new products from both Google and Intercom, and the announcement of our $2M fundraise from Stripe was well-received: I appreciate the personalized e-mails many sent in response. It means a lot, and we are very thankful to have such an awesome community of developers and supporters.

With that in mind, it's been six days since Code.xyz went live and we're on a roll — we're rapidly absorbing as much developer feedback as possible. I'd like to use this opportunity to cover our current changelog, establish a cadence for when you can expect product updates to both Code.xyz and StdLib to be announced, and finally, feature some feedback from the community.

Code.xyz Updates

  • Per popular request (thanks, Hugo!) we've improved cursor navigation in Code.xyz:

    • cmd + / (Mac), ctrl + / (Win) toggles // comments on selected lines (if not all commented, adds comments, otherwise removes)
    • cmd + ] (Mac), ctrl + ] (Win), tab on a highlighted selection adds indenting to every selected line
    • cmd + [ (Mac), ctrl + [ (Win), shift + tab on a highlighted selection removes indenting to every selected line
    • cmd + shift + z (Mac), ctrl + shift + z (Win) now acts as undo (joining previously enabled cmd + y / ctrl + y)
    • cmd + L (Mac), ctrl + L (Win) selects the current line (Unsupported in Safari)
    • cmd + c (Mac), ctrl + c (Win) on empty selection highlights and copies entire current line
    • cmd + x (Mac), ctrl + x (Win) on empty selection highlights and cuts entire current line
  • File Uploads are now supported (you can import files from your local filesystem)

    • Simply right click on the TreeView on the left and select "Upload Files..." — try it below!

StdLib Platform Updates

  • We've added a new function definition parameter, keys, which allows you to define function-specific API keys

For example, in functions/doAThing.js

/**
* This is my endpoint function, called "doAThing"
* @keys MY_API_KEY
*/
module.exports = async (context) => {
  // context is a "magic parameter"
  return context.keys.MY_API_KEY; // return API Key
};

You can pass in these keys to a StdLib function in one of two ways programmatically;

1. Using the lib-node Library

const lib = require('lib');
const myUsername = lib.myUsername({MY_API_KEY: 'someValue'});
let result = await myUsername.doAThing();
console.log(result); // returns "someValue"

2. Using an HTTP Request Directly

Simply set X-Authorization-Keys header to value {"MY_API_KEY":"someValue"} (JSON).

X-Authorization-Keys: {"MY_API_KEY":"someValue"}

Product Update Cadence

From this point forward, we will be posting Code.xyz and StdLib Platform updates on a weekly to bi-weekly cadence. We will never go more than two weeks without an update, and you can expect updates on Wednesdays before 9:00AM PT. This is our promise to our community — if there is any reason why Product Updates will take longer than a two week cadence, we will notify everyone ahead of time via our Twitter account, @StdLibHQ.

Community Feedback

We wanted to shine some light on some awesome community feedback we've received on Twitter since launching. If you'd like to be featured here in an update, feel free to tweet at us @StdLibHQ! We may use your feedback to fix a bug and thank you directly, or just include your kind words in a community post!

Chad Fowler (@chadfowler), CTO of Startup Advocacy at Microsoft...

Brian Leroux (@brianleroux), Co-founder at Begin...

Chris Munns (@chrismunns), Senior Serverless Developer Advocate at AWS...

Jared Short (@ShortJared), Director of Innovation at Trek10...

That's All for This Week!

Again, thank you so much for all the positive feedback and kind words! We'll be releasing more information in the coming weeks about the Code.xyz roadmap, our vision as to the future of API development, collaborative coding, and a whole lot more! Also, please keep in mind we're hiring, we'd love for you to consider joining us.

Cheers,

Keith Horwood
Founder and CEO, StdLib

We started StdLib in 2016 with a simple vision: web APIs should be first-class citizens of your development environment. Both developers and service providers should be able to publish, integrate with and manipulate Enterprise-grade APIs with the same ease-of-use they build and share documents or spreadsheets. We built the Standard Library serverless platform and API registry as a first step towards fulfilling this vision.

As it stands, Standard Library combines a scalable compute (hosting) layer with automatically generated documentation, authentication, billing, and more: enabling anybody to turn simple JavaScript functions into production-ready APIs in seconds.

Today, we are thrilled to talk about two major steps forward in our path to achieve the vision we’ve outlined:

  1. We are introducing a new product, Code.xyz, an in-browser code editor — an embeddable development environment for easily building APIs, webhooks, and workflow automation tasks that run atop StdLib infrastructure.

  2. We are humbled to officially announce $2M in strategic funding from Stripe, who many of you know as the payments platform for high-growth startups and technology-forward companies, bringing our funding total to $4M. They join a growing number of API and platform companies supporting us in our mission: Slack is an investor in our seed round, and MessageBird is both a customer and Enterprise partner of StdLib.

Code.xyz

Code.xyz is an online code editor. It was carefully hand-crafted to power API development: specialized for webhooks, workflow automation tasks, and, of course, general API design tooling. You can think of it almost like the Google Docs for API development and publishing — our goal is to (1) significantly reduce repetitive API development work for professional engineers, as well as (2) increasingly provide less technical knowledge workers greater access to writing software and utilizing Enterprise-quality integrations.

Organizations can use the standalone editor on code.xyz to:

  • Quickly design and prototype APIs with complete documentation
  • Share these API design specs internally or with clients
  • Ship these APIs to production using immutable version control
  • Never worry about endpoint scaling: the StdLib cloud auto-scales
  • Manage and share API templates (sources) within your organization or the StdLib community as a whole

Additionally, you can use the editor as an embedded widget in your documentation:

  • Onboard developers to your APIs with shippable, production-ready examples
  • Provide customers the ability to write custom logic in response to webhooks

We’ll be releasing more features around embedding in the coming weeks. The widget you see below is a Code.xyz embed. We’ve pre-loaded it with a simple “hello world” API project. To get started, try simply hitting “Run” in the bottom right to build the function as an API and execute it.

Why Code.xyz?

At StdLib we have been very focused on the future of software development. Mostly, we’ve been ruminating on the question: how will serverless computing change software development? The answer jumped out at us pretty early on: by removing barriers to entry to shipping software, serverless computing allows developers to spend less time worrying about operational implementation of code and spend more time working on integration of pre-existing pieces, or shipping units of integration themselves. Hence, a library of software - a “standard library” of APIs.

We hypothesized that by building a “standard library” layer, and baking in hosting, scaling, documentation, SDK generation, gateway functionality and more as part of the product, the resulting abstraction layer would increasingly allow less technical individuals greater access to building and utilizing web-based compute and provide more technical individuals a rapid development, iteration, and shipping process for APIs.

For the last 18 months, we’ve relied on word-of-mouth and simple command line tooling to enable developers to build with the Standard Library platform. Though we’ve been humbled by the community response to date, after reaching tens of thousands of developers we identified two roadblocks to our continued growth. The first is that for less technical individuals, asking them to install command line tools introduces a pretty high barrier to entry to using our product. The second is that for more technical individuals, there is a lot of noise in the “serverless” computing space and attempting to explain what we provide at StdLib above and beyond a typical serverless platform is less effective than just showing developers through an intuitive, familiar web interface. Code.xyz was engineered from scratch to remove these roadblocks, providing a bespoke experience for our developers and community.

$2M in Financing from Stripe

Around the time we were trying to answer our questions about the future of software development, we managed to find a great connection with the team at Stripe. Stripe’s mission, to grow the GDP of the internet by enabling new business models and lowering the barriers to entrepreneurship, resonated immediately with our own goals. We strongly believe in lowering the barriers-to-entry to both software development and API integration as a means to propel businesses forward.

Today we are humbled to officially announce $2M in strategic financing from a company we deeply respect and admire, bringing our funding total to $4M. The team at Stripe has been amazingly forthcoming and a pleasure to work with. We are especially grateful to Patrick and John Collison for their unbelievable support of our vision — and we'd also like to give a shoutout to Romain Huet, who published a wonderful guide to Stripe Payments with StdLib on GitHub.

We look forward to creating a more open, easily accessible software and API development landscape for everybody. The serverless computing revolution is still in its infancy, with much more to build and create. We eagerly open our arms to new and veteran developers alike. We would be thrilled to have your support.

If you are as excited about the future of software and API development as we are, please do check out our open positions at StdLib.

Thank you for reading and being a part of our journey,

Keith Horwood
Founder and CEO, StdLib