Abstract SDK

Start building your dream integration with the Abstract SDK

The Abstract SDK is a JavaScript package that wraps both our web API and our desktop CLI in a unified interface.
Product

Last fall, I traveled with Tom Moor to the Design Tools Hackathon. Some of you may have seen that we quietly announced a public beta of our SDK there. And while we haven’t talked much about it publicly since, we continued working closely with our customers since that announcement.

We are aiming to officially release the SDK later this year, but as we’ve been getting more and more questions about it, I wanted to share more about what the SDK is, why we’re building it, and what some early adopters have already done with it (and you can, too).

What is the Abstract SDK?

The Abstract SDK is a JavaScript package that wraps both our web API and our desktop CLI in a unified interface. Since JavaScript runs in many environments, the SDK makes the data that lives in Abstract accessible in a variety of places.

Right now, you can use the Abstract SDK to:

  • Get activity events in an Organization, Project, or Branch
  • Get Organizations, Projects, Branches, Commits, files, pages, layers
  • Get preview images for layers
  • Get the same data for a layer that powers our Inspect feature
  • Get diffs (we call them changesets) between Commits to see what has changed
  • Get and create share links
  • Get and create comments, with or without an annotation
  • Get and create Collections
  • And more.

You can see everything the SDK can do by reading the full API documentation.

As a part of our SDK, we’ve also built the ability to embed Abstract content into any place that you can put an iframe. Our embeds work in tandem with Public sharing, but we’re also planning to support private embeds in the future.

We have a great start with our SDK and people are already building some useful things with it. To open up even more possibilities, here’s a look at what we are working on or planning in the near future:

  • Webhooks: We are actively working on webhooks. Being able to respond to events like Branch, Commit, and merge has been one of our number one requests.
  • OAuth: Our SDK currently relies on user API tokens, but we will be adding more robust authentication and authorization mechanisms like OAuth as we get ready for our official launch.
  • Full API Coverage: We have a lot of our APIs, both local and web, in our SDK today, but our plan is to have full parity with the same APIs we use to build Abstract’s desktop and web applications. We get really excited thinking about all the powerful integrations you can build once you have the full breadth of programmatic access that we do.

Why we are building an Abstract SDK

We founded Abstract to build a platform that creates a more open, connected, and collaborative design ecosystem. We started by opening up and giving more visibility into the design process as a matter of course. And now, we’re excited to bring our platform into the next phase by giving rich programmatic access to all of the data and activity happening within your design organization.

It’s no secret that designers and developers overlap in many areas of work. Increasingly, we see that developers are building internal tools, integrations, or scripts to either expose design work in interesting ways or automate particular parts of their software development process. Abstract is becoming the design collaboration platform of choice for many companies, and our SDK is enabling forward-looking design and development teams to continue to build upon our vision of open design.

Last, but definitely not least, the Abstract SDK is our first major open source effort. We are big believers that contributing to open source squarely fits within our vision of creating a more open ecosystem. So expect more open source initiatives in the future.

Abstract SDK, in the wild

Our customers are already using the Abstract SDK to automate their processes, build new experiences, and bring more visibility to their design process. Here are a few examples of things we’ve seen.

Marvel

Our friends at Marvel recently wrote a post about how they built an integration that syncs files in an Abstract Project with a Marvel project. As soon as changes are merged into Master, their integration automatically syncs content from Abstract to a Marvel prototype. This allows you to do all your designs in Abstract and know that your Marvel prototype is always up-to-date with what has been approved and merged to Master in Abstract.

They write, “In essence, you’ve created a Master Prototype. One that is always ready to share with clients, developers, researchers, and other stakeholders or embed in docs and websites etc, knowing with absolute certainty that it has been approved and is the final version.”

Abstract To-do App

Jelle Overbeek created an app that gives you an overview of comments in your Branches as to-dos, so that you can keep track of feedback you’ve received. Check out the GitHub repo to contribute improvements, or download one of the pre-built releases.

Wix

UX FEED was created by Gilad Segal, Igor Shegolev & Itay Hershkovitch from Wix.com – Website Builder.

The Wix team has huge TVs that monitor events from their servers. This gave them an idea to provide their own “updated status” of ongoing UX projects and to give more visibility into their work. In the words of the team, they wanted “to expose more people from our company to our work in progress, to create meaningful UX and product hallway talks, and to give a sense of pride and ownership to people involved in our projects.”

The UX FEED is our way to communicate the hard work being done by our products team, developers, and UX designers.

They built a project that they call UX FEED: a web app that shows recently updated Projects, including the team members, Activity feed, active Branches, Collections, and relevant Artboards.

“The UX FEED is our way to communicate the hard work being done by our products team, developers, and UX designers. Abstract provides a very wide range of layers in their SDK (and simple documentation), so we were able to choose only the relevant information we wanted to show to our colleagues.”

What will you build?

We’re thrilled by the projects that are being built using the SDK and look forward to seeing more amazing things that are yet to be imagined and launched.

If you’re ready to play around, you can get started by going to our SDK site. Of course, we want to hear what you’re working on, so please reach out to us by opening issues on the repository and sharing your feedback in our Spectrum community.