I've searched for resources, but the amount on this aspect of development seems quite thin. Are there any well-regarded resources out there on SDK design & development?
Some of the areas I'd love to see other people's thoughts on:
- Build tools and associated goals: minimal filesize, async loading of optional components, testing - Philosophical approaches: including and customising libraries most customers will use, vs just providing documentation on how to integrate with them - Architectural choices and tradeoffs at various stages in product lifecycle: self-hosted iframes vs pure JS integrations, NPM packages vs script embeds. - Integration pitfalls: conflicts in CSS naming or 3rd-party packages, causing performance issues, bugs in obscure browsers - Process pitfalls: what choices might run afoul of big companies' security processes, or create unforseen challenges in getting the integration approved outside of the code-world.
The closest article I've found is https://sdk-design.js.org/ which has some great information at the beginning and end, but is somewhat generic in the middle. I suspect theres some great info buried in one-off technical blog posts at SaaS startups as well.
Theres also the option of learning from good examples - the obvious choice here being Stripe who are known for their great documentation & SDK design https://stripe.com/docs/development
Has anyone else found themselves in this position? How did you learn and improve (without having to do it the hard way of pushing bugs to your customers production sites!)? Did you find, or create, any useful resources on building modern browser SDKs?