Building The Wix SDK

26
1 Building the Wix SDK: The Road to a Successful Ecosystem

description

There's more to building a successful SDK than just crafting beautiful APIs. Creating a successful ecosystem combines technology, developer relations, marketing and quite a bit of luck. I'll share the trials and tribulations we've gone through at Wix building a successful ecosystem, talking about what worked, what didn't and where we see the web moving.

Transcript of Building The Wix SDK

Page 1: Building The Wix SDK

1

Building the Wix SDK:

The Road to a Successful Ecosystem

Page 2: Building The Wix SDK

2

About Wix

Page 3: Building The Wix SDK

3

53,000,000+ users

190 countries around the globe

45,000+ new users a day

34,000+ apps installed per day

150+ installations per app, per day

70,000,000+ HTTP requests a day

Wix By The Numbers

Page 4: Building The Wix SDK

4

What’s a Wix App?

Page 5: Building The Wix SDK

5

Wix Apps

iframes served to site visitors, owners

External application server

Installed from our App Market

Freemium model, billed through Wix with rev share

Wix App Parts

Distribution

*Site Management Console

Page 6: Building The Wix SDK

6

SDK Makeup

JavaScript libraries• UI Library, Runtime/Design-time

library

REST APIs• Integration with the Wix Hive

Web Hooks• Callbacks for lifecycle and events

Client libraries for REST APIs

Page 7: Building The Wix SDK

7

It All Started FromOne Method, Over Two Years Ago

Page 8: Building The Wix SDK

8

Our Reality, Then

Easily integrate with Wix*

Enable a blog like application

Wix used a custom JavaScript renderer

WYSIWG editors are fragile

No idea who our customers would be

Few resources for the project

Goals

Challenges

*5 minute rule applies

Page 9: Building The Wix SDK

9

*Deprecated

Wix.reportHeightChange*

One method launched the first ‘SDK’

Integrated through iframes• barebones interface using

postMessage

Framework agnostic JavaScript

Language agnostic backend

Page 10: Building The Wix SDK

10

Choosing iframes

Web Components were, and are still not standard*

WYSIWIG editors are fragile

Web Apps from disparate sources are terrifying security risks

One bad App can’t bring down a site

“Sandboxing”

*Shadow DOM is still not an ideal sandboxing solution

Page 11: Building The Wix SDK

11

JavaScript As a Bridge

Avoided forcing new JavaScript frameworks

A small API is easier to learn

Commands sent across iframe boundaries

Most calls are asynchronous. Callbacks, not promises

Learning Curve

Methods as Commands

Page 12: Building The Wix SDK

12

Developer Relations

Page 13: Building The Wix SDK

13

Our Outreach

Large partners get personal support

Individual developers use online resources

Hackathons, conferences

SF Lounge hosts developers, NYC Lounge hosts everyone

Targeted Support

Real World

Page 14: Building The Wix SDK

14

As We Move Forward

Page 15: Building The Wix SDK

15

Personas for targeting specific users

Use cases to model flows and sanity test ideas

Constant competitive analysis

Customer visits to test effectiveness of APIs, rework ideas

How We Grow Our SDK

Page 16: Building The Wix SDK

16

Dogfooding our SDK internally

Adhere to standards wherever possible

Add tools and libraries based on user research

How We Grow Our SDK

Page 17: Building The Wix SDK

17

Example: REST APIs

Standard REST API

Semantic versioning• Two level versioning for backwards

compatibility

Consistency across all APIs• Paging data, naming, patterns

Swagger for interactive documentation

Used internally in place of RPC

Page 18: Building The Wix SDK

18

Post Mortem

Page 19: Building The Wix SDK

19

If I’m Being Honest

API is exceptionally easy

Self hosting means app integrations are nearly painless

Direct product support means amazing apps

We successfully use it internally

What We Did Right

Page 20: Building The Wix SDK

20

If I’m Being Honest

HMAC signing for REST APIs is a constant headache

Documentation is lackluster

Example code needs to be much better

Being agnostic can lead to paralysis of choice

Multi tenancy places a large burden on indie developers

What We Did Less Right

Page 21: Building The Wix SDK

21

So, You Want to Build an SDK?

Page 22: Building The Wix SDK

22

Create personas for your target users

Segment the API across skill levels

Plan your support collateral as you’re building your SDK

Be aware of fads

Know Your Audience

Page 23: Building The Wix SDK

23

Minimize organizational knowledge

Do the hard work for your users

Use known concepts, don’t reinvent*

Stay consistent

Pragmatism can lower learning curves

Don’t Make Developers Hate You

*Unless it’s so much better, everyone else copies you

Page 24: Building The Wix SDK

24

Build a comprehensive and clear developer center

Provide sample code, real world examples

Have support engineers, or engineers who can support

Provide Top Notch Support

*Unless it’s so much better, everyone else copies you

Page 25: Building The Wix SDK

25

Thanks!

David ZuckermanSDK Product Architectlinkedin.com/in/davidzuckermantwitter.com/davidztlv

Page 26: Building The Wix SDK

26

Wix London Hackathon

www.wixhackathonlnd.com

7-9 November, 2014