building the wix sdk
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
1
Building the Wix SDK:
The Road to a Successful Ecosystem
2
About Wix
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
4
What’s a Wix App?
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
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
7
It All Started FromOne Method, Over Two Years Ago
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
9
*Deprecated
Wix.reportHeightChange*
One method launched the first ‘SDK’
Integrated through iframes• barebones interface using
postMessage
Framework agnostic JavaScript
Language agnostic backend
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
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
12
Developer Relations
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
14
As We Move Forward
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
16
Dogfooding our SDK internally
Adhere to standards wherever possible
Add tools and libraries based on user research
How We Grow Our 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
18
Post Mortem
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
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
21
So, You Want to Build an 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
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
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
25
Thanks!
David ZuckermanSDK Product Architectlinkedin.com/in/davidzuckermantwitter.com/davidztlv
26
Wix London Hackathon
www.wixhackathonlnd.com
7-9 November, 2014