The document discusses the development of the Wix SDK over two years to enable a successful ecosystem for Wix's 53 million users. It started with a single method to integrate apps through iframes with barebones communication. Choosing iframes allowed sandboxing of disparate web apps for security while avoiding forcing new frameworks. The SDK now includes JavaScript libraries, REST APIs, and web hooks. Moving forward, the SDK aims to improve documentation, examples, and support for developers through personas, use cases, and adhering to standards. Key lessons are to minimize learning curves, provide top-notch support, and avoid reinventing concepts unless significantly better.
3. 3
Wix By The Numbers
53,000,000+ users
190countries 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
5. 5
Wix Apps
Wix App Parts
iframes served to site visitors, owners
External application server
Distribution
Installed from our App Market
Freemium model, billed through Wix with rev share
*Site Management Console
6. 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. 7
It All Started From
One Method, Over
Two Years Ago
8. 8
Our Reality, Then
Goals
Easily integrate with Wix*
Enable a blog like application
Challenges
Wix used a custom JavaScript renderer
WYSIWG editors are fragile
No idea who our customers would be
Few resources for the project
*5 minute rule applies
9. 9
Wix.reportHeightChange*
One method launched the first ‘SDK’
Integrated through iframes
• barebones interface using postMessage
Framework agnostic JavaScript
Language agnostic backend
*Deprecated
10. 10
Choosing iframes
“Sandboxing”
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
*Shadow DOM is still not an ideal sandboxing solution
11. 11
JavaScript As a Bridge
Learning Curve
Avoided forcing new JavaScript frameworks
A small API is easier to learn
Methods as Commands
Commands sent across iframe boundaries
Most calls are asynchronous. Callbacks, not
promises
13. 13
Our Outreach
Targeted Support
Large partners get personal support
Individual developers use online resources
Real World
Hackathons, conferences
SF Lounge hosts developers, NYC Lounge hosts
everyone
15. 15
How We Grow Our SDK
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
16. 16
How We Grow Our SDK
Dogfooding our SDK internally
Adhere to standards wherever possible
Add tools and libraries based on user research
17. 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
19. 19
If I’m Being Honest
What We Did Right
API is exceptionally easy
Self hosting means app integrations
are nearly painless
Direct product support means amazing apps
We successfully use it internally
20. 20
If I’m Being Honest
What We Did Less Right
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
22. 22
Know Your Audience
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
23. 23
Don’t Make Developers
Hate You
Minimize organizational knowledge
Do the hard work for your users
Use known concepts, don’t reinvent*
Stay consistent
Pragmatism can lower learning curves
*Unless it’s so much better, everyone else copies you
24. 24
Provide Top Notch Support
Build a comprehensive and clear developer center
Provide sample code, real world examples
Have support engineers, or engineers who can support
*Unless it’s so much better, everyone else copies you
25. 25
Thanks!
David Zuckerman
SDK Product Architect
linkedin.com/in/davidzuckerman
twitter.com/davidztlv
26. 26
Wix London Hackathon
7-9 November, 2014
www.wixhackathonlnd.com
Notes de l'éditeur
Cloud based web development platform
HTML5 drag and drop site builder
Pixel perfect site layout
Hundreds of designer made templates
App Market and SDK
Small biz, artists, photographers
Cloud based web development platform
HTML5 drag and drop site builder
Pixel perfect site layout
Hundreds of designer made templates
App Market and SDK
Account Managers
App Review Process
“Boutique Garden”, we provide product help
Account Managers
App Review Process
“Boutique Garden”, we provide product help
Pixel perfect HTML, for a price
Custom Renderer, custom JavaScript framework
iframes can render however they choose