146 blog posts published by month since the start of 2025. Start from a different year:

Blog URL
Posts year-to-date
146 (62 posts by this month last year.)
Average posts per month since 2025
12.2

Post details (2025 to today)

Title Author Date Word count HN points
How to implement Login with GitHub using Go and WorkOS Maria Paktiti Jan 02, 2025 1485 -
How to implement SAML SSO with WorkOS, Entra ID, and Node Maria Paktiti Jan 03, 2025 2334 -
How to implement Log in with Google using Go and WorkOS Maria Paktiti Jan 07, 2025 1784 -
We shipped our auth server to your browser with WASM. Here's how it's going Aaron Tainter Jan 03, 2025 1480 1
What is multitenant authentication? Jan 03, 2025 1356 -
AuthQuake: Microsoft's MFA system vulnerable to TOTP brute force attack Zack Proser Jan 03, 2025 787 -
How to implement row-level security with WorkOS FGA and Postgres: tutorial and code Zack Proser Jan 10, 2025 1259 -
Best practices for secrets management Zack Proser Jan 10, 2025 1434 -
How to build a user management dashboard with WorkOS and Node Maria Paktiti Jan 13, 2025 1808 -
How to build SAML SSO with WorkOS, Okta, and Go Maria Paktiti Jan 09, 2025 2079 -
How to build SAML SSO with WorkOS, Okta, and Ruby Maria Paktiti Jan 14, 2025 2139 -
What is device fingerprinting and how does it work? Zack Proser Jan 16, 2025 1517 -
How do you know when you’ve hit product-market fit? Michael Grinich Jan 16, 2025 1021 1
How WorkOS Radar does rate limiting with device fingerprinting Zack Proser Jan 17, 2025 595 -
Understanding Zero Trust security Maria Paktiti Jan 20, 2025 1961 -
How WorkOS Radar really works Jan 16, 2025 757 -
How WorkOS Radar's bot detection works Jan 16, 2025 498 -
How to run DeepSeek locally Zack Proser Jan 29, 2025 867 84
How to build SAML SSO with WorkOS, JumpCloud, and Node Maria Paktiti Jan 21, 2025 2081 -
Breaking the AI Mold: China's DeepSeek-R1 pushes local and open AI forward Zack Proser Jan 23, 2025 886 -
Email deliverability and spam prevention: why your emails aren’t getting delivered and how to fix it Maria Paktiti Jan 30, 2025 1499 -
What does it mean to distill a machine learning model or LLM? Jan 31, 2025 1016 -
What is Ente Auth? Zack Proser Jan 23, 2025 665 -
How to build SAML SSO with WorkOS, Okta, and Python Maria Paktiti Jan 15, 2025 2200 -
What is Authentik? Zack Proser Jan 28, 2025 513 -
Google OAuth vulnerability can expose sensitive data of failed startups Maria Paktiti Jan 22, 2025 596 -
Shadcn-ui: What is it, and why do you care? Zack Proser Jan 23, 2025 497 -
Passwordless authentication: your options explained Maria Paktiti Jan 31, 2025 2772 -
Defending against bad actors: WorkOS Radar vs Castle vs Auth0 vs Stytch vs Arcjet Maria Paktiti Jan 27, 2025 2294 -
Which auth providers support SCIM? Maria Paktiti Feb 06, 2025 2278 -
Top AI Agent frameworks and platforms in 2025 Zack Proser Feb 14, 2025 857 -
How to build RBAC with WorkOS and Node Maria Paktiti Feb 12, 2025 1316 -
Understanding the OAuth 2.0 Client Credentials flow Maria Paktiti Feb 14, 2025 1296 -
The battle against bots: How to detect and stop them Maria Paktiti Feb 11, 2025 2884 -
What is federated identity? Maria Paktiti Feb 07, 2025 923 -
Scaling up: Why Fine-Grained Authorization is key as your product moves upmarket Maria Paktiti Feb 10, 2025 1448 -
How to build secure AI agents that are Enterprise Ready Zack Proser Feb 05, 2025 1103 -
What is Arcade.dev? An LLM tool calling platform Zack Proser Feb 13, 2025 972 -
RBAC best practices Maria Paktiti Feb 13, 2025 1492 -
EKM vs KMS: An introduction to key management Maria Paktiti Feb 17, 2025 1750 -
Session management best practices Maria Paktiti Feb 19, 2025 1928 -
The best feature flag providers for apps in 2025 Zack Proser Feb 20, 2025 1668 -
Identity federation vs identity delegation Maria Paktiti Feb 24, 2025 1137 -
How encryption works in a Data Vault using EKM Maria Paktiti Feb 20, 2025 1153 -
How to stop bots with honeypots Maria Paktiti Feb 21, 2025 1049 -
What is the difference between Radix and shadcn-ui? Zack Proser Feb 20, 2025 817 -
Relationship-based vs policy-based authorization: what's the difference and how do they work together? Maria Paktiti Feb 18, 2025 2765 -
AI agents are taking over: How autonomous software changes research and work Zack Proser Feb 20, 2025 1415 -
What Is API Authentication? A guide to OAuth 2.0, JWT, and key methods Zack Proser Feb 26, 2025 1450 -
Tenant isolation in multi-tenant systems: What you need to know Maria Paktiti Feb 27, 2025 1924 -
OAuth 2.0 and OpenID Connect: The evolution from authorization to identity Zack Proser Feb 26, 2025 1022 -
Context is king: tools for feeding your code and website to LLMs Zack Proser Feb 26, 2025 1326 -
Securing AI agents: authentication patterns for Operator and computer using models Zack Proser Feb 26, 2025 1500 -
What is the aud claim in identity, authentication, and authorization? Zack Proser Feb 27, 2025 477 -
How to add custom claims to JWTs Zack Proser Feb 27, 2025 402 -
How to add granular permissions to your API using OAuth scopes Maria Paktiti Feb 28, 2025 2124 -
How it felt to reach Product-market fit (PMF) at WorkOS—and what no one tells you Michael Grinich Mar 03, 2025 998 -
JWT storage 101: How to keep your tokens secure Maria Paktiti Mar 04, 2025 2603 -
Identity tokens vs Access tokens: understanding the key differences Zack Proser Mar 07, 2025 848 -
What is Claude Code? An agentic developer tool Zack Proser Mar 07, 2025 695 -
FGA vs ABAC: Understanding the differences Maria Paktiti Mar 05, 2025 1326 -
What is the Model Context Protocol (MCP)? Zack Proser Mar 07, 2025 1373 -
OAuth best practices: We read RFC 9700 so you don’t have to Maria Paktiti Mar 06, 2025 2028 -
When database security is not enough: How the cloud makes application-level encryption a must Maria Paktiti Mar 07, 2025 1433 -
Introducing Manus: The general AI agent Zack Proser Mar 13, 2025 767 -
Defending OAuth: Common attacks and how to prevent them Maria Paktiti Mar 12, 2025 3923 -
Spot the bots: How to track malicious activity with JavaScript tagging Maria Paktiti Mar 10, 2025 1797 -
SAMLStorm: Critical Authentication Bypass in xml-crypto and Node.js libraries Mark Tran Mar 14, 2025 2153 10
GAIA Benchmark: evaluating intelligent agents Zack Proser Mar 13, 2025 665 -
What are Cursor Rules? Zack Proser Mar 11, 2025 484 -
Composio.dev overview Zack Proser Mar 11, 2025 672 -
The ABCs of token security: JWS, JWE, JWK, and JWKS explained Maria Paktiti Mar 13, 2025 2197 -
How to deploy Laravel apps with enterprise-ready authentication Conner Simmons Mar 18, 2025 738 -
WorkOS Vault: Advanced Encryption for Sensitive Data Ryan Cooke Mar 18, 2025 1721 -
WorkOS Connect Michael Hadley Mar 17, 2025 949 -
Getting Started with Claude Desktop and custom MCP servers using the TypeScript SDK Zack Proser Mar 17, 2025 1055 -
Custom Metadata, External ID, and JWT Templates Maxwell Hammad Mar 19, 2025 873 -
New enterprise login integrations in AuthKit Cameron Matheson Mar 20, 2025 1073 -
New widgets available for user profiles and organization switching Lucas Motta Mar 21, 2025 739 -
How to build Login with LinkedIn using Node and WorkOS Maria Paktiti Mar 27, 2025 1286 -
Beyond the basics: Why device fingerprinting is mission-critical in 2025 Zack Proser Mar 25, 2025 1031 -
How AI Agents authenticate and access systems Zack Proser Mar 25, 2025 1346 -
How to choose the right authorization model for your SaaS Maria Paktiti Mar 26, 2025 2411 -
Advice for coding with AI Zack Proser Mar 25, 2025 538 -
n8n: The workflow automation tool for the AI age Zack Proser Mar 24, 2025 1161 -
Zod for TypeScript: A must-know library for AI development Zack Proser Mar 26, 2025 1027 -
WorkOS, Next.js, and CVE-2025-29927 Nick Nisi Mar 25, 2025 473 -
How to build Login with Slack using Node and WorkOS Maria Paktiti Mar 31, 2025 1240 -
How to build Login with GitLab using Node and WorkOS Maria Paktiti Mar 28, 2025 1338 -
An introduction to WebAuthn Maria Paktiti Mar 24, 2025 2295 -
Credential stuffing vs. brute force attacks: Key differences and how to stop them Maria Paktiti Mar 28, 2025 1610 -
How to build Login with LinkedIn using Python and WorkOS Maria Paktiti Apr 01, 2025 1277 -
Top Ruby gems for authentication & authorization Maria Paktiti Apr 02, 2025 4267 -
Securing your app with Risk-Based Authentication and AI Maria Paktiti Apr 04, 2025 3099 -
How to build a game-building agent system with CrewAI Zack Proser Apr 03, 2025 1578 -
Smithery AI: A central hub for MCP servers Zack Proser Apr 08, 2025 832 -
HMAC vs. RSA vs. ECDSA: Which algorithm should you use to sign JWTs? Maria Paktiti Apr 08, 2025 4053 -
Generative AI at the edge with Cloudflare Workers Zack Proser Apr 07, 2025 1401 -
Security risks of iframes: Protecting your app from potential attacks Maria Paktiti Apr 10, 2025 2114 -
Prisma ORM for TypeScript - A technical primer Zack Proser Apr 10, 2025 913 -
ArkType: A high-performance runtime type validation for TypeScript Zack Proser Apr 14, 2025 560 -
How to handle JWT in Python Maria Paktiti Apr 14, 2025 2459 -
MCP, ACP, A2A, Oh my! Zack Proser Apr 16, 2025 1151 -
From 1.0.0 to 2025.4: Making sense of software versioning Maria Paktiti Apr 17, 2025 4738 -
Agent to agent, not tool to tool: an engineer’s guide to Google’s A2A protocol Zack Proser Apr 18, 2025 881 -
WorkOS + Cloudflare MCP: Plug and Play Auth for Agentic AI Builders Zack Proser Apr 16, 2025 636 -
IBM’s Agent Communication Protocol (ACP): A technical overview for software engineers Zack Proser Apr 22, 2025 1149 -
SAML's signature problem: It’s not you, it’s XML Maria Paktiti Apr 22, 2025 1246 8
Why your app needs refresh tokens—and how they work Maria Paktiti Apr 23, 2025 1782 -
Best practices for MCP secrets management Zack Proser Apr 28, 2025 897 -
DBConnection pooling deep dive William Huba Apr 28, 2025 1867 -
In-Memory Distributed State with Delta CRDTs William Huba Apr 28, 2025 2517 -
oRPC: OpenAPI Remote Procedure Call for Type-Safe APIs Zack Proser Apr 28, 2025 862 -
Mastra.ai Quickstart - How to build a TypeScript agent in 5 minutes or less Zack Proser Apr 29, 2025 896 -
On-premises and hybrid authentication: Challenges and best practices Maria Paktiti May 01, 2025 1750 -
Diagnosing SAML assertion failures: A step-by-step debugging guide Maria Paktiti May 02, 2025 4468 -
The hidden pitfalls of SAML metadata: How to avoid downtime Maria Paktiti Apr 30, 2025 2642 -
Introducing RFC 9728: Say hello to standardized OAuth 2.0 resource metadata Maria Paktiti May 08, 2025 1304 -
January Updates Garrett Galow Feb 06, 2025 191 -
March Updates Garrett Galow Mar 31, 2025 465 -
April Updates Conner Simmons Apr 30, 2025 313 -
What is NIST and why should developers care? Maria Paktiti May 12, 2025 1268 -
Secure by design: How engineers should build and consume APIs Maria Paktiti May 13, 2025 2581 -
How to sync users from Entra ID to your app using Node and WorkOS Maria Paktiti May 15, 2025 1778 -
Email deliverability troubleshooting guide Maria Paktiti May 22, 2025 5317 -
Why building your own BYOK is a trap Maria Paktiti May 22, 2025 2300 -
Why implementing SAML from scratch is a terrible idea Maria Paktiti May 20, 2025 2080 -
Your codebase is now addressable: Codex, Jules, and the Rise of agentic parallel coding Zack Proser May 20, 2025 550 -
Security threats in SPAs and how to defend against them Maria Paktiti May 19, 2025 1666 -
Agno: The agent framework for Python teams Zack Proser May 20, 2025 593 -
MCPNight 2025: When the AI infra community overflowed the Exploratorium in San Francisco Zack Proser May 21, 2025 650 -
February Updates Garrett Galow Mar 06, 2025 312 -
OAuth 2.1: What’s new, what’s gone, and how to migrate securely Maria Paktiti May 14, 2025 1384 -
Flipping the flow: How MCP sampling lets servers ask the AI for help Maria Paktiti May 23, 2025 1626 -
What is free trial abuse -- and how can you stop it? Zack Proser May 29, 2025 899 -
Device Authorization Grant: Solving OAuth for screens without keyboards Maria Paktiti May 28, 2025 885 -
How MCP servers work: Components, logic, and architecture Maria Paktiti May 30, 2025 2290 -
OpenAI's Codex wants to become your AI coworker Zack Proser May 29, 2025 642 -
Securing AI agents: A guide to authentication, authorization, and defense Maria Paktiti Jun 02, 2025 2299 -
May Updates Conner Simmons Jun 02, 2025 389 -
Understanding bearer tokens: What are they and how to use them securely Maria Paktiti Jun 03, 2025 1058 -
How AI agents connect to systems: A technical guide Maria Paktiti Jun 05, 2025 1565 -
Why AI still needs you: Exploring Human-in-the-Loop systems Maria Paktiti Jun 06, 2025 2629 -
How to implement an organization switcher with WorkOS and React Maria Paktiti Jun 04, 2025 1392 -
SCIM: The hidden growth engine behind tools like Slack and Figma Maria Paktiti Jun 11, 2025 1872 -
AI Isn't Magic. Context Chaining Is. Zack Proser Jun 10, 2025 1122 -