<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: GetSetKeys</title>
    <description>The latest articles on DEV Community by GetSetKeys (@getsetkeys).</description>
    <link>https://dev.to/getsetkeys</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4238619%2F87cea8a0-ac4b-4d2d-8209-50c71ca56a8f.png</url>
      <title>DEV Community: GetSetKeys</title>
      <link>https://dev.to/getsetkeys</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/getsetkeys"/>
    <language>en</language>
    <item>
      <title>One link to get into a client's App Store Connect, GitHub and DNS, without a shared password</title>
      <dc:creator>GetSetKeys</dc:creator>
      <pubDate>Wed, 11 Nov 2026 08:17:12 +0000</pubDate>
      <link>https://dev.to/getsetkeys/one-link-to-get-into-a-clients-app-store-connect-github-and-dns-without-a-shared-password-4753</link>
      <guid>https://dev.to/getsetkeys/one-link-to-get-into-a-clients-app-store-connect-github-and-dns-without-a-shared-password-4753</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fktcxd6lks60ubfnqb1u3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fktcxd6lks60ubfnqb1u3.png" alt="GetSetKeys: send one link, get every key. Client access for web and app agencies, with no shared passwords and every step checked." width="800" height="336"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Every web and app project starts the same way. Before anyone writes a line of code, the agency needs the client's accounts: App Store Connect, Google Play, GitHub, the domain's DNS, the host, Stripe.&lt;/p&gt;

&lt;p&gt;In October we read the access guides that 119 agencies, freelancers and app builders send their clients. Some ran to a dozen pages. Many still named menus the platforms renamed years ago. Too many asked the client to send a password. And none of them could tell the agency what the client had actually done.&lt;/p&gt;

&lt;p&gt;So we built &lt;strong&gt;GetSetKeys&lt;/strong&gt;. The agency sends one link, and the client grants access on each platform's own screen. Each step gives the exact email to invite, the role to pick and a button straight to the right page. Then it does the part a guide can't: every step is &lt;strong&gt;checked&lt;/strong&gt;, not ticked.&lt;/p&gt;

&lt;h2&gt;
  
  
  How the checking works
&lt;/h2&gt;

&lt;p&gt;There are three kinds of check, and none of them needs the client's password.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. One click.&lt;/strong&gt; The client signs in on the platform's own page and approves. For GitHub that's a GitHub App: it adds the agency's account to the repo with the chosen role, then revokes the client's token and uninstalls itself. Nothing is kept to reuse.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. The platform's own invite email.&lt;/strong&gt; Where a platform only lets people invite by email (App Store Connect, Stripe, WP Engine and so on), the client sends the invite from inside the platform. The agency's invite emails come in through Cloudflare Email Routing to a Worker, which matches the platform's sender and subject and ticks the step when the real invite arrives.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Live DNS.&lt;/strong&gt; For domain steps we look the records up live over DNS-over-HTTPS. When the records match, the step is done. Nobody sends a screenshot.&lt;/p&gt;

&lt;p&gt;Beside every step sits Porter, an AI helper (Claude under the hood), for the "which role do I pick?" questions. It can't mark a step done or change anything. Only the platform's own checks do that.&lt;/p&gt;

&lt;h2&gt;
  
  
  Stack
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;TypeScript everywhere&lt;/li&gt;
&lt;li&gt;React and Vite for the agency console and the client's page&lt;/li&gt;
&lt;li&gt;Hono on Cloudflare Workers for the API, D1 for data, R2 for files&lt;/li&gt;
&lt;li&gt;Cloudflare Email Routing into a Worker for invite emails, parsed with postal-mime&lt;/li&gt;
&lt;li&gt;Clerk for agency sign-in&lt;/li&gt;
&lt;li&gt;Anthropic's Claude for Porter&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Try it
&lt;/h2&gt;

&lt;p&gt;There's a sample console with sample clients, no sign-up needed: &lt;a href="https://demo.getsetkeys.com/?utm_source=devto&amp;amp;utm_medium=post" rel="noopener noreferrer"&gt;demo.getsetkeys.com&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Your first client is free, with no card: &lt;a href="https://getsetkeys.com/?utm_source=devto&amp;amp;utm_medium=post" rel="noopener noreferrer"&gt;getsetkeys.com&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What we'd love to hear
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Which platform do you wait longest for at kickoff?&lt;/li&gt;
&lt;li&gt;If you run an agency or freelance, what does your access checklist look like today?&lt;/li&gt;
&lt;li&gt;Is there a platform you'd want checked that isn't on the list?&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>showdev</category>
      <category>webdev</category>
      <category>cloudflare</category>
      <category>saas</category>
    </item>
  </channel>
</rss>
