Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Building The Wix SDK


Published on

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.

Published in: Software
  • Be the first to comment

Building The Wix SDK

  1. 1. 1 Building the Wix SDK: The Road to a Successful Ecosystem
  2. 2. 2 About Wix
  3. 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
  4. 4. 4 What’s a Wix App?
  5. 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. 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. 7 It All Started From One Method, Over Two Years Ago
  8. 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. 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. 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. 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
  12. 12. 12 Developer Relations
  13. 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
  14. 14. 14 As We Move Forward
  15. 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. 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. 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. 18. 18 Post Mortem
  19. 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. 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
  21. 21. 21 So, You Want to Build an SDK?
  22. 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. 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. 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. 25 Thanks! David Zuckerman SDK Product Architect
  26. 26. 26 Wix London Hackathon 7-9 November, 2014