<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Almeida · Blog</title>
    <link>https://almeidazs.com/en-us/blog</link>
    <description>Notes on what I build: architecture, decisions and what went wrong along the way.</description>
    <language>en-US</language>
    <atom:link href="https://almeidazs.com/en-us/blog/rss.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Conta Rockfeller: how I built the SSO that unified sign-in across the company</title>
      <link>https://almeidazs.com/en-us/blog/conta-rockfeller-sso</link>
      <guid isPermaLink="true">https://almeidazs.com/en-us/blog/conta-rockfeller-sso</guid>
      <pubDate>Thu, 22 Oct 2026 12:00:00 GMT</pubDate>
      <description>An in-house OpenID Connect provider built on Better Auth, with per-school roles, global logout, outbox-backed webhooks and authorization for AI agents. The decisions, the mistakes and what I'd do again.</description>
      <category>sso</category>
      <category>oidc</category>
      <category>oauth</category>
      <category>better-auth</category>
      <category>nestjs</category>
      <category>security</category>
      <category>architecture</category>
    </item>
  </channel>
</rss>
