<story><title>Launch HN: Xkit (YC S18) – OAuth infrastructure as a service</title><text>Hey HN,&lt;p&gt;I’m Trey, the founder of Xkit (&lt;a href=&quot;https:&amp;#x2F;&amp;#x2F;xkit.co&quot; rel=&quot;nofollow&quot;&gt;https:&amp;#x2F;&amp;#x2F;xkit.co&lt;/a&gt;). Xkit helps developers build and maintain native integrations by turning OAuth for 25 of the most popular SaaS apps into a single API call that always returns fresh access tokens.&lt;p&gt;I went through YC two years ago in S18 (and some of you may have seen our launch) with Sparkswap, a trust-minimized bitcoin exchange. After a year and half of building that product and building up a small but loyal following, I made the hard decision to shut it down. The audience for a trust-minimized service like Sparkswap was too niche and the regulatory costs were too high. It felt like the only way to stay in that business would be to compromise on some of our core principles (e.g. go after gambling behavior, play regulatory games), so I decided to stop working in crypto and move to FinTech more broadly.&lt;p&gt;While doing customer discovery for a more traditional FinTech service, I encountered a pretty common request: integrations to the SaaS products my prospective customers were already using. As I was implementing OAuth with a slight variation for the 5th time, I realized I was re-writing code that thousands of other developers (probably including a bunch of people here) have already written (and debugged, and maintained).&lt;p&gt;So I stopped working on that FinTech service (for those keeping score at home, yes that&amp;#x27;s two pivots) and started building a tool to let you outsource the pain of authorizing 3rd party apps with a particular focus on OAuth. From my perspective, for an integration to really be native, it will probably be faster and easier to just write some code instead of fighting against a GUI. But my goal was to make sure that nearly every line of code you write is actually &lt;i&gt;for your integration&lt;/i&gt;, not authorization boilerplate.&lt;p&gt;Two years and two pivots after I went through YC, I&amp;#x27;m excited to share Xkit: the tool I wanted when I was building native integrations.&lt;p&gt;Xkit is really two things: 1) An end-user experience for viewing and connecting 3rd party apps, and 2) An API for retrieving always-fresh access tokens.&lt;p&gt;To make the first work, we establish a session with your user by piggy-backing on your existing authentication method (e.g. you send us their current JWT, and we validate it). From there, we can handle the OAuth dance: CSRF&amp;#x2F;state tokens, scope handling, callbacks, etc. For the end-user UI, we have a pre-built integration catalog to give your users an interface to browse your integrations, connect new ones, and repair broken ones. In fact, our integrations page (&lt;a href=&quot;https:&amp;#x2F;&amp;#x2F;xkit.co&amp;#x2F;integrations&quot; rel=&quot;nofollow&quot;&gt;https:&amp;#x2F;&amp;#x2F;xkit.co&amp;#x2F;integrations&lt;/a&gt;) is just our pre-built catalog rendered directly on our Webflow site. If you want more control over the experience you can do that too: our xkit.js library has all the tools for you to quickly build your own catalog without having to dig into OAuth.&lt;p&gt;For the API, just call it with the ID of the user and the name of the service, and we return a non-expired access token. You can call it from any backend process: a cloud function&amp;#x2F;lambda, a microservice, or a monolithic server. This makes your integration code a lot simpler: one API call using one API key rather than storing, encrypting, and refreshing tokens. You can even get access tokens on the front-end if you have a valid user session, so if you&amp;#x27;re building a front-end only app you no longer have to even think about whether a specific provider implements PKCE (looking at you, Atlassian).&lt;p&gt;We already work with over 25 of the most popular SaaS apps (Intercom and Zendesk added just last week!) and setting each one up typically just involves plugging in your OAuth credentials.&lt;p&gt;Imagine you had a team at your company that were experts in all the weird (sometimes undocumented) ways that various providers extend the OAuth spec, and they built an internal service that does all that stuff The Right Way™, lets you move it out of your core applications, and still gives PM and Design flexibility on the integration experience. That&amp;#x27;s Xkit.&lt;p&gt;You can get a free dev account (up to 10 users) to try it out here: &lt;a href=&quot;https:&amp;#x2F;&amp;#x2F;app.xkit.co&amp;#x2F;sign-up&quot; rel=&quot;nofollow&quot;&gt;https:&amp;#x2F;&amp;#x2F;app.xkit.co&amp;#x2F;sign-up&lt;/a&gt;, and if you send me an email (trey@) telling me that you came from this post, I&amp;#x27;ll give you 50% off your first year of the Startup or Pro plans. Thanks for making it through the wall of text. Would love to hear what you think!&lt;p&gt;Trey</text></story><parent_chain></parent_chain><comment><author>curo</author><text>I&amp;#x27;ve been looking for this for a while -- love it.&lt;p&gt;a) is SalesForce integration in the queue? Our primary use case is syncing customer records&lt;p&gt;b) i presume since you store the tokens, there&amp;#x27;s massive vendor lock-in right? just wondering how we might be at the mercy of your team (e.g., if you got acquired, raised prices, etc)&lt;p&gt;I think you&amp;#x27;re onto something big! At first I thought this was Auth0-like, so I suppose something more obvious in the landing page copy might help (e.g., &amp;quot;Build integrations into your SaaS apps in minutes&amp;quot;)</text></comment>
<story><title>Launch HN: Xkit (YC S18) – OAuth infrastructure as a service</title><text>Hey HN,&lt;p&gt;I’m Trey, the founder of Xkit (&lt;a href=&quot;https:&amp;#x2F;&amp;#x2F;xkit.co&quot; rel=&quot;nofollow&quot;&gt;https:&amp;#x2F;&amp;#x2F;xkit.co&lt;/a&gt;). Xkit helps developers build and maintain native integrations by turning OAuth for 25 of the most popular SaaS apps into a single API call that always returns fresh access tokens.&lt;p&gt;I went through YC two years ago in S18 (and some of you may have seen our launch) with Sparkswap, a trust-minimized bitcoin exchange. After a year and half of building that product and building up a small but loyal following, I made the hard decision to shut it down. The audience for a trust-minimized service like Sparkswap was too niche and the regulatory costs were too high. It felt like the only way to stay in that business would be to compromise on some of our core principles (e.g. go after gambling behavior, play regulatory games), so I decided to stop working in crypto and move to FinTech more broadly.&lt;p&gt;While doing customer discovery for a more traditional FinTech service, I encountered a pretty common request: integrations to the SaaS products my prospective customers were already using. As I was implementing OAuth with a slight variation for the 5th time, I realized I was re-writing code that thousands of other developers (probably including a bunch of people here) have already written (and debugged, and maintained).&lt;p&gt;So I stopped working on that FinTech service (for those keeping score at home, yes that&amp;#x27;s two pivots) and started building a tool to let you outsource the pain of authorizing 3rd party apps with a particular focus on OAuth. From my perspective, for an integration to really be native, it will probably be faster and easier to just write some code instead of fighting against a GUI. But my goal was to make sure that nearly every line of code you write is actually &lt;i&gt;for your integration&lt;/i&gt;, not authorization boilerplate.&lt;p&gt;Two years and two pivots after I went through YC, I&amp;#x27;m excited to share Xkit: the tool I wanted when I was building native integrations.&lt;p&gt;Xkit is really two things: 1) An end-user experience for viewing and connecting 3rd party apps, and 2) An API for retrieving always-fresh access tokens.&lt;p&gt;To make the first work, we establish a session with your user by piggy-backing on your existing authentication method (e.g. you send us their current JWT, and we validate it). From there, we can handle the OAuth dance: CSRF&amp;#x2F;state tokens, scope handling, callbacks, etc. For the end-user UI, we have a pre-built integration catalog to give your users an interface to browse your integrations, connect new ones, and repair broken ones. In fact, our integrations page (&lt;a href=&quot;https:&amp;#x2F;&amp;#x2F;xkit.co&amp;#x2F;integrations&quot; rel=&quot;nofollow&quot;&gt;https:&amp;#x2F;&amp;#x2F;xkit.co&amp;#x2F;integrations&lt;/a&gt;) is just our pre-built catalog rendered directly on our Webflow site. If you want more control over the experience you can do that too: our xkit.js library has all the tools for you to quickly build your own catalog without having to dig into OAuth.&lt;p&gt;For the API, just call it with the ID of the user and the name of the service, and we return a non-expired access token. You can call it from any backend process: a cloud function&amp;#x2F;lambda, a microservice, or a monolithic server. This makes your integration code a lot simpler: one API call using one API key rather than storing, encrypting, and refreshing tokens. You can even get access tokens on the front-end if you have a valid user session, so if you&amp;#x27;re building a front-end only app you no longer have to even think about whether a specific provider implements PKCE (looking at you, Atlassian).&lt;p&gt;We already work with over 25 of the most popular SaaS apps (Intercom and Zendesk added just last week!) and setting each one up typically just involves plugging in your OAuth credentials.&lt;p&gt;Imagine you had a team at your company that were experts in all the weird (sometimes undocumented) ways that various providers extend the OAuth spec, and they built an internal service that does all that stuff The Right Way™, lets you move it out of your core applications, and still gives PM and Design flexibility on the integration experience. That&amp;#x27;s Xkit.&lt;p&gt;You can get a free dev account (up to 10 users) to try it out here: &lt;a href=&quot;https:&amp;#x2F;&amp;#x2F;app.xkit.co&amp;#x2F;sign-up&quot; rel=&quot;nofollow&quot;&gt;https:&amp;#x2F;&amp;#x2F;app.xkit.co&amp;#x2F;sign-up&lt;/a&gt;, and if you send me an email (trey@) telling me that you came from this post, I&amp;#x27;ll give you 50% off your first year of the Startup or Pro plans. Thanks for making it through the wall of text. Would love to hear what you think!&lt;p&gt;Trey</text></story><parent_chain></parent_chain><comment><author>jaywalk</author><text>So I have to trust your company with valid access tokens for all of my users. No thanks.</text></comment>