<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:webfeeds="http://webfeeds.org/rss/1.0">
    <channel>
        <title><![CDATA[Xano Developer Hub]]></title>
        <description><![CDATA[Xano Developer Hub]]></description>
        <link>https://community.xano.com</link>
        <generator>Bettermode RSS Generator</generator>
        <lastBuildDate>Wed, 28 Oct 2026 08:37:58 GMT</lastBuildDate>
        <atom:link href="https://community.xano.com/rss/feed" rel="self" type="application/rss+xml"/>
        <pubDate>Wed, 28 Oct 2026 08:37:58 GMT</pubDate>
        <copyright><![CDATA[2026 Xano Developer Hub]]></copyright>
        <language><![CDATA[en-US]]></language>
        <ttl>60</ttl>
        <webfeeds:icon></webfeeds:icon>
        <webfeeds:related layout="card" target="browser"/>
        <item>
            <title><![CDATA[Xano builders: what AI task would you try with free API credits?]]></title>
            <description><![CDATA[Hey everyone — are you adding an AI feature to a Xano app? What’s the part you’d most like to test before spending more on API calls?

I’m vita from the Tokatlas team. We’re a commercial multi-model API...]]></description>
            <link>https://community.xano.com/discussion-and-questions-1kv6mqqm/post/xano-builders-what-ai-task-would-you-try-with-free-api-credits-pBVdGS6s0DWRs03</link>
            <guid isPermaLink="true">https://community.xano.com/discussion-and-questions-1kv6mqqm/post/xano-builders-what-ai-task-would-you-try-with-free-api-credits-pBVdGS6s0DWRs03</guid>
            <dc:creator><![CDATA[Ziwei Yao]]></dc:creator>
            <pubDate>Wed, 28 Oct 2026 06:20:23 GMT</pubDate>
            <content:encoded><![CDATA[<p>Hey everyone — are you adding an AI feature to a Xano app? What’s the part you’d most like to test before spending more on API calls?</p><p>I’m vita from the Tokatlas team. We’re a commercial multi-model API platform, and we’re running a 20-spot free API-credit trial for developers with real projects. The 20 spots are shared across our community outreach, not 20 per site.</p><p>For Xano builders, I’d love to hear about one specific backend task: extracting fields from a document, generating a draft, or an agent making several model calls. Tell us what goes in, what a useful result looks like, and which model or API features you need. A short description is plenty.</p><p>We’ll select a mix of suitable use cases and confirm the model, endpoint, credit scope and expiry before you start. This is an invitation to test your workflow, rather than a prebuilt Xano template. Please keep API keys, customer data and private code out of the comments.</p><p>To join, reply here or email <a href="mailto:affiliates@tokatlas.com" rel="noopener noreferrer nofollow" class="text-interactive hover:text-interactive-hovered">affiliates@tokatlas.com</a> with “Xano trial” and a few lines about your project. Replies close November 2, 2026, at 15:59 UTC; we’ll share selected usernames and next steps here within three days. No purchase, upvote or positive review required.</p><p>Take a look: <a href="https://app.tokatlas.com" rel="noopener noreferrer nofollow" class="text-interactive hover:text-interactive-hovered">https://app.tokatlas.com</a></p><p>What would you put through its paces first?</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Activation of Logical replication on our Launch plan]]></title>
            <description><![CDATA[Hi Xano team, We're on legacy Launch plan, with the Direct Database Connector add-on). Our client is moving to their own Postgres on Azure over the next few months and we need to keep both databases ...]]></description>
            <link>https://community.xano.com/discussion-and-questions-1kv6mqqm/post/activation-of-logical-replication-on-our-launch-plan-5SPhNOw4I8lpkpr</link>
            <guid isPermaLink="true">https://community.xano.com/discussion-and-questions-1kv6mqqm/post/activation-of-logical-replication-on-our-launch-plan-5SPhNOw4I8lpkpr</guid>
            <category><![CDATA[Engineering]]></category>
            <category><![CDATA[help]]></category>
            <category><![CDATA[integrations]]></category>
            <dc:creator><![CDATA[Alaba Oduola]]></dc:creator>
            <pubDate>Tue, 27 Oct 2026 09:19:20 GMT</pubDate>
            <content:encoded><![CDATA[<p>Hi Xano team, We're on legacy Launch plan, with the Direct Database Connector add-on). Our client is moving to their own Postgres on Azure over the next few months and we need to keep both databases in sync during the migration. On our instance wal_level is "replica" and the connector role has no REPLICATION attribute, so log-based change data capture isn't possible today. Could you tell us: <br>1. Is logical replication (wal_level = logical, a role with REPLICATION) available through an add-on, the Pro plan, or a custom/Enterprise plan? If so, what would it cost?<br>2. Could it be enabled temporarily, for example for 3-6 months while we migrate?<br>3. If you enable Custom SQL Table Names and convert tables from JSONB to standard SQL, does anything change for existing endpoints, functions, table triggers or the test data source? Is there any downtime, and can it be rolled back?</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Missing data on user's table]]></title>
            <description><![CDATA[Hi there,

is there anyone having issues on user's table, in this case, missing the email and sometimes other info? i mean, the email field is going to null with no reason

I've contacted support, but no ...]]></description>
            <link>https://community.xano.com/discussion-and-questions-1kv6mqqm/post/missing-data-on-user-s-table-4WBkTrKaDXHbN5N</link>
            <guid isPermaLink="true">https://community.xano.com/discussion-and-questions-1kv6mqqm/post/missing-data-on-user-s-table-4WBkTrKaDXHbN5N</guid>
            <category><![CDATA[error]]></category>
            <dc:creator><![CDATA[André Ferreira]]></dc:creator>
            <pubDate>Fri, 23 Oct 2026 09:25:25 GMT</pubDate>
            <content:encoded><![CDATA[<p>Hi there,</p><p>is there anyone having issues on user's table, in this case, missing the email and sometimes other info? i mean, the email field is going to null with no reason</p><p>I've contacted support, but no feedback yet. This is impactating my application, and i wonder if someone has the same problem</p><p>Thanks</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Separate record information from table definitions]]></title>
            <description><![CDATA[Hi there - I'm just getting into AI development and set my environment up with git to track changes and collaborate with the team before pushing using the CLI.

A couple of times already I have nearly ...]]></description>
            <link>https://community.xano.com/product-feedback-xjjbnyli/post/separate-record-information-from-table-definitions-tkLrZRESRzDDy6I</link>
            <guid isPermaLink="true">https://community.xano.com/product-feedback-xjjbnyli/post/separate-record-information-from-table-definitions-tkLrZRESRzDDy6I</guid>
            <dc:creator><![CDATA[Ryan Heath]]></dc:creator>
            <pubDate>Wed, 21 Oct 2026 10:25:57 GMT</pubDate>
            <content:encoded><![CDATA[<p>Hi there - I'm just getting into AI development and set my environment up with git to track changes and collaborate with the team before pushing using the CLI. </p><p>A couple of times already I have nearly committed a table definition that includes pulled records in the items[] array. </p><p>Is there a recommended approach for avoiding this? Or can we have data in separate files so it can be included in gitignore?</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Support Branch-specific and DataSource-specific connections in Realtime V2]]></title>
            <description><![CDATA[Realtime V2 introduces support for managing Realtime servers, channels, messages, and triggers. However, websocket clients can only connect to the live branch, which creates a significant limitation ...]]></description>
            <link>https://community.xano.com/product-feedback-xjjbnyli/post/support-branch-specific-and-datasource-specific-connections-in-realtime-v2-mjBuBf9wukChR9j</link>
            <guid isPermaLink="true">https://community.xano.com/product-feedback-xjjbnyli/post/support-branch-specific-and-datasource-specific-connections-in-realtime-v2-mjBuBf9wukChR9j</guid>
            <category><![CDATA[Engineering]]></category>
            <category><![CDATA[Product & Design]]></category>
            <dc:creator><![CDATA[Francisco Azevedo]]></dc:creator>
            <pubDate>Fri, 16 Oct 2026 11:00:08 GMT</pubDate>
            <content:encoded><![CDATA[<p>Realtime V2 introduces support for managing Realtime servers, channels, messages, and triggers. However, websocket clients can only connect to the live branch, which creates a significant limitation when developing and testing Realtime functionality without affecting production.</p><p>Although creating a separate Realtime server has been suggested as a workaround, this does not fully solve the problem, since the server still executes against the live branch. Its underlying functions and handlers must therefore also exist in production, breaking branch isolation and forcing developers to maintain duplicated servers, functions, and handlers just to test changes safely.</p><p>Ideally, Realtime V2 should allow clients to connect directly to a specific branch, following the same principle already available for API requests. For example, if an API request can target a specific branch (eg: "branch2") using <code>https://host/api:can:branch2/endpoint</code>, a similar mechanism could be supported for websocket connections, such as <code>wss://host/ws/can:branch2</code>.</p><p>In addition to specifying the branch, it should also be possible to specify the Data Source for the connection using an <code>x-data-source</code> parameter, allowing developers to select both the branch and the Data Source independently. For example: <code>wss://host/ws/can:branch2?x-data-source=test</code>.</p><p>This would provide full control over the execution environment, allowing developers to test Realtime functionality against the appropriate branch and Data Source without affecting production data or logic.</p><p>This capability would make Realtime V2 more consistent with the existing Xano development workflow, eliminate the need for production-based workarounds, and significantly improve the safety and efficiency of Realtime development.</p><p>FA</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[State of Xano Q3 2026: Building AI Software for Production]]></title>
            <description><![CDATA[Hello Xano Developers!

At the end of Q2, we talked about how quickly AI is changing software development. Three months later, that shift is only accelerating.

It has never been easier to build software....]]></description>
            <link>https://community.xano.com/release-announcements-mv6qq2wj/post/state-of-xano-q3-2026-HlIqxzOqS5Uvlx4</link>
            <guid isPermaLink="true">https://community.xano.com/release-announcements-mv6qq2wj/post/state-of-xano-q3-2026-HlIqxzOqS5Uvlx4</guid>
            <dc:creator><![CDATA[Prakash Chandran]]></dc:creator>
            <pubDate>Tue, 06 Oct 2026 14:55:47 GMT</pubDate>
            <content:encoded><![CDATA[<p>Hello Xano Developers!</p><p>At the end of Q2, we talked about how quickly AI is changing software development. Three months later, that shift is only accelerating.</p><p>It has never been easier to build software. AI can generate an application, write an API, and connect a database in minutes. Building is quickly becoming a commodity. Soon there will be more code than anyone can review line by line.</p><p>But building the first version is only the beginning.</p><p>The harder questions come as the software starts to matter and more people work on it. How do you understand what AI built? How do several people and agents work on it under the same rules? And how do you move it into production, next to the systems you already run?</p><p>Most platforms answer with parts. A database here, a runtime there, and the assembly is left to you.</p><p>Xano takes the other path. It is <strong>one platform to build, run and govern AI-built software</strong>, and our job is to make the hard decisions for you: how changes get reviewed, and how they reach production. You keep building fast. Your whole team can understand what was built and trust it.</p><p>That is where we're putting our focus: getting what you build into production, and keeping it trusted once it's there.</p><p>In Q3, we made some of our biggest progress yet toward that vision.</p><h2 id="c7b1dc8b-84d3-4cba-9b90-bb5557910c68" data-toc-id="c7b1dc8b-84d3-4cba-9b90-bb5557910c68" class="text-xl"><strong>From AI-assisted building to a shared way of building</strong></h2><p>AI agents are becoming part of the development team. But giving everyone an AI coding tool doesn't automatically mean they're building the same way.</p><p>With<a href="https://community.xano.com/product-updates/post/xano-2-5-update-waH0V59WCAGgcpD" rel="noopener noreferrer nofollow" class="text-interactive hover:text-interactive-hovered"> <strong><u>Xano Knowledge</u></strong></a>, teams can now define the rules, documentation, and repeatable skills they want agents to follow once, and ensure that context is used by everyone.</p><p>Your workspace can carry persistent instructions through <a href="http://AGENTS.md" rel="noopener noreferrer nofollow" class="text-interactive hover:text-interactive-hovered"><strong>AGENTS.md</strong></a>, refer to documentation that agents can pull in when needed, and <strong>Skills</strong> that define how your team performs specific tasks. That same context works with the Xano Agent and with external coding agents through the CLI and Developer MCP.</p><p>More importantly, that knowledge belongs to the workspace, not an individual developer's laptop or AI session. It can be reviewed, versioned, and controlled by admins just like the rest of your application.</p><p>As more software is built by agents, we think this becomes increasingly important: <strong>the way your team builds should belong to your team.</strong></p><h2 id="9439fd48-2425-45c8-a50e-f88db4b39c47" data-toc-id="9439fd48-2425-45c8-a50e-f88db4b39c47" class="text-xl"><strong>A more complete development lifecycle</strong></h2><p>We also continued expanding where and how developers can work with Xano.</p><p>In Q2, the CLI and Developer MCP opened Xano to external development workflows. In Q3, we extended that workflow to more of the application.</p><p>With<a href="https://community.xano.com/product-updates/post/xano-2-5-update-waH0V59WCAGgcpD" rel="noopener noreferrer nofollow" class="text-interactive hover:text-interactive-hovered"> <strong><u>Static Frontend Hosting through the CLI and MCP</u></strong></a>, developers and agents can pull, push, and deploy static frontends alongside their backend, making it possible to work across more of an application from tools like Claude Code and Cursor without breaking the Xano development and deployment flow.</p><p>We also expanded<a href="https://community.xano.com/product-updates/post/xano-2-6-build-more-in-xano-ship-with-confidence-8wEIkEQnczNIXID" rel="noopener noreferrer nofollow" class="text-interactive hover:text-interactive-hovered"> <strong><u>Sandbox environments</u></strong></a> so developers and AI agents can create temporary environments across multiple branches and work in parallel without interfering with each other. Changes can be built and tested in isolation before they move forward.</p><p>The direction here is simple: the faster software gets created, the more important it becomes to give every change a safe place to exist before it reaches production.</p><h2 id="b7ac8502-be82-4822-9d39-7f18b1b89e6a" data-toc-id="b7ac8502-be82-4822-9d39-7f18b1b89e6a" class="text-xl"><strong>Modernize without starting over</strong></h2><p>Not every application starts from scratch.</p><p>Some of the most important software our customers run today has been built over years, across different languages, services, vendors, and architectures. Replacing all of it rarely makes sense.</p><p>With<a href="https://community.xano.com/product-updates/post/xano-2-6-build-more-in-xano-ship-with-confidence-8wEIkEQnczNIXID" rel="noopener noreferrer nofollow" class="text-interactive hover:text-interactive-hovered"> <strong><u>Microservices</u></strong></a>, teams can now bring existing Docker containers and Helm charts into Xano and call them directly from the Xano function stack. Those services can be monitored from the workspace and included in releases alongside the rest of the Xano application.</p><p>That means adopting Xano doesn't have to start with a rewrite.</p><p>A team can keep the services that already work, build new APIs and business logic around them, and modernize incrementally. Existing and new software can move through the same release process instead of creating another disconnected stack to operate.</p><p>That matters because a platform for AI-built software can't only work for what AI creates tomorrow. It also has to work with the systems your business depends on today.</p><h2 id="109d0770-eb54-4f35-9741-a82e53c107e5" data-toc-id="109d0770-eb54-4f35-9741-a82e53c107e5" class="text-xl"><strong>More control over what reaches production</strong></h2><p>We made significant progress this quarter on the other side of building: running software in production.</p><p><a href="https://community.xano.com/product-updates/post/xano-2-6-build-more-in-xano-ship-with-confidence-8wEIkEQnczNIXID" rel="noopener noreferrer nofollow" class="text-interactive hover:text-interactive-hovered"><strong><u>Realtime v2</u></strong></a> brings more of the Xano development lifecycle to realtime applications, including authentication and authorization logic, payload validation, branches, Sandbox review, version history, RBAC, Request History, debugging, and rollback.</p><p>Teams can now treat realtime logic much more like the rest of their backend instead of operating it as a separate system.</p><p><a href="https://community.xano.com/product-updates/post/xano-2-6-build-more-in-xano-ship-with-confidence-8wEIkEQnczNIXID" rel="noopener noreferrer nofollow" class="text-interactive hover:text-interactive-hovered"><strong><u>Testing</u></strong></a> also became easier to understand and act on. Test results now persist, run states are clearer, failures explain more about what went wrong, and the Agent can help create and debug tests.</p><p>And underneath all of this, we<a href="https://community.xano.com/product-updates/post/xano-2-6-build-more-in-xano-ship-with-confidence-8wEIkEQnczNIXID" rel="noopener noreferrer nofollow" class="text-interactive hover:text-interactive-hovered"> <strong><u>re-platformed Xano's request execution engine</u></strong></a> to deliver lower latency, more throughput per instance, and steadier performance under load without requiring customers to change their applications.</p><p>These aren't isolated improvements. They're part of the same idea: <strong>building quickly only matters if teams can build together, and confidently run what they build.</strong></p><h2 id="b8f96765-c160-4e3f-b3c2-3626d9bcdd8d" data-toc-id="b8f96765-c160-4e3f-b3c2-3626d9bcdd8d" class="text-xl"><strong>Build with the AI infrastructure your team chooses</strong></h2><p>The AI ecosystem is moving too quickly for teams to be locked into a single model or provider.</p><p>In Q3, we<a href="https://community.xano.com/product-updates/post/xano-2-6-build-more-in-xano-ship-with-confidence-8wEIkEQnczNIXID" rel="noopener noreferrer nofollow" class="text-interactive hover:text-interactive-hovered"> <strong><u>expanded AI provider support</u></strong></a> to include <strong>OpenRouter, AWS Bedrock, LiteLLM, and Azure Foundry</strong>, giving teams more flexibility to use approved models and existing AI infrastructure with Xano Agent and Agents.</p><p>For individual developers, model choice is often a preference. For teams, it can also be a question of security, cost, infrastructure, and organizational policy.</p><p>Xano should fit into those decisions rather than force teams around them.</p><h2 id="aba27c5b-0f5d-48bc-b502-06e68c7fa967" data-toc-id="aba27c5b-0f5d-48bc-b502-06e68c7fa967" class="text-xl"><strong>The bigger picture</strong></h2><p>Stepping back, the most important thing about Q3 isn't any single feature.</p><p>It's how the pieces work together.</p><p>A developer or AI agent can build in the tools they prefer. The team's knowledge and standards can follow them. Multiple builders can work safely in isolated environments. Existing services can become part of the application instead of being rewritten. Tests help validate what changed. Releases create a deliberate path into production. And once software is running, Xano gives the team a shared place to understand and operate it.</p><p>That is increasingly what we believe teams need from a backend platform in an AI-first development world.</p><p>The ability to generate software will continue getting cheaper and faster. The difficult part will be turning what gets generated into software a team can understand, operate, and confidently put in front of customers.</p><p>That's the problem we're building Xano to solve.</p><p>Thank you to everyone who built with us, tested these releases, reported issues, and pushed us throughout Q3. Your feedback continues to shape where the platform goes next.</p><p>We're excited about what these pieces make possible.</p><p>More soon. 🚀</p><p>Prakash</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Screening a signup with one HTTP call before you create the user]]></title>
            <description><![CDATA[If your signup endpoint lives in Xano, you can check the contact details before you add the user record. Orisift takes one POST to /v1/signup with a bearer key and any of email, phone and IP, and ...]]></description>
            <link>https://community.xano.com/discussion-and-questions-1kv6mqqm/post/screening-a-signup-with-one-http-call-before-you-create-the-user-UqWLN1XudNzA1Mb</link>
            <guid isPermaLink="true">https://community.xano.com/discussion-and-questions-1kv6mqqm/post/screening-a-signup-with-one-http-call-before-you-create-the-user-UqWLN1XudNzA1Mb</guid>
            <dc:creator><![CDATA[Elijah Brown]]></dc:creator>
            <pubDate>Tue, 06 Oct 2026 12:15:32 GMT</pubDate>
            <content:encoded><![CDATA[<p>If your signup endpoint lives in Xano, you can check the contact details before you add the user record. Orisift takes one POST to /v1/signup with a bearer key and any of email, phone and IP, and returns findings plus a suggested next step: allow, challenge, review queue, block or fix request. You decide what your endpoint does with each.</p><p>It catches things a format check passes, for example 020 7946 0958, a valid-looking UK number from Ofcom's range set aside for drama, or NANPA's 555-0100 to 555-0199 fictitious numbers.</p><p>You can try three checks a day on the homepage with no account, and signing up gives you 500 credits. A lookup that establishes no evidence costs nothing; a partial one can be charged.</p><p>API docs: https://orisift.com/x?m=post&amp;c=xano-showcase&amp;to=%2Fdocs</p><p>I built Orisift. Feedback from anyone running signups in Xano would help.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[check password randomly returns false for old password hashes]]></title>
            <description><![CDATA[Hi all,

check password sometimes returns false for users with the correct password, for a few minutes up to an hour, then works again on its own.

- Only accounts with old hashes (created years ago and ...]]></description>
            <link>https://community.xano.com/discussion-and-questions-1kv6mqqm/post/check-password-randomly-returns-false-for-old-password-hashes-0TLWVFnIHYyBLYy</link>
            <guid isPermaLink="true">https://community.xano.com/discussion-and-questions-1kv6mqqm/post/check-password-randomly-returns-false-for-old-password-hashes-0TLWVFnIHYyBLYy</guid>
            <category><![CDATA[authentication]]></category>
            <category><![CDATA[login]]></category>
            <category><![CDATA[password]]></category>
            <category><![CDATA[security]]></category>
            <dc:creator><![CDATA[Seok Young Hwang]]></dc:creator>
            <pubDate>Sat, 03 Oct 2026 14:08:21 GMT</pubDate>
            <content:encoded><![CDATA[<p>Hi all,</p><p>check password sometimes returns false for users with the correct password, for a few minutes up to an hour, then works again on its own.</p><p>- Only accounts with old hashes (created years ago and carried over to our current workspace) are affected.<br>- Once the password is saved again (new hash), we've never seen it fail.<br>- Not a code or connection issue. Upgrading the instance didn't help.</p><p>About 99% of our users still have old hashes, so this hits almost everyone.</p><p>Has anyone seen this? Is there a way to re-hash existing passwords without asking every user to reset?</p><p>This has been a headache for us for weeks now, so any pointers would be really appreciated. Thanks!</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Secure Google + LinkedIn OAuth reference implementation for Xano]]></title>
            <description><![CDATA[I put together a small open-source reference implementation for Google and LinkedIn OAuth in Xano.

The main goal was to harden the usual OAuth flow against login-CSRF by adding:

 * a 256-bit browser nonce ...]]></description>
            <link>https://community.xano.com/discussion-and-questions-1kv6mqqm/post/secure-google-linkedin-oauth-reference-implementation-for-xano-OLOG7jWW35gTeCh</link>
            <guid isPermaLink="true">https://community.xano.com/discussion-and-questions-1kv6mqqm/post/secure-google-linkedin-oauth-reference-implementation-for-xano-OLOG7jWW35gTeCh</guid>
            <category><![CDATA[Google OAuth]]></category>
            <category><![CDATA[LinkedIn OAuth]]></category>
            <category><![CDATA[OAuth]]></category>
            <dc:creator><![CDATA[Jesús Perales Elizondo]]></dc:creator>
            <pubDate>Fri, 02 Oct 2026 11:09:04 GMT</pubDate>
            <content:encoded><![CDATA[<p>I put together a small open-source reference implementation for Google and LinkedIn OAuth in Xano.</p><p>The main goal was to harden the usual OAuth flow against login-CSRF by adding:</p><ul><li><p>a 256-bit browser nonce stored in <code>sessionStorage</code></p></li><li><p>signed OAuth <code>state</code> generated by Xano</p></li><li><p>provider binding</p></li><li><p>10-minute expiry</p></li><li><p>nonce hashing</p></li><li><p>verification before the authorization code is exchanged</p></li></ul><p>I tested the flow end to end against both Google and LinkedIn, including:</p><ul><li><p>wrong nonce</p></li><li><p>tampered state</p></li><li><p>missing state / nonce</p></li><li><p>cross-provider state</p></li><li><p>expired state</p></li><li><p>replayed authorization codes</p></li></ul><p>The repo includes:</p><ul><li><p>Xano functions and endpoints</p></li><li><p>frontend JavaScript examples</p></li><li><p>setup instructions</p></li><li><p>architecture diagrams</p></li><li><p>threat model</p></li><li><p>runtime test cases</p></li></ul><p>GitHub:<br><a href="https://github.com/jperaleselizondo-hash/secure-xano-oauth" rel="noopener noreferrer nofollow" class="text-interactive hover:text-interactive-hovered">https://github.com/jperaleselizondo-hash/secure-xano-oauth</a></p><p>It’s intended as a reference implementation, not an official Xano solution. If anyone here is building custom OAuth flows in Xano, I’d be interested in feedback, edge cases, or improvements.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Preflight (OPTIONS) requests never cached with the default CORS settings?]]></title>
            <description><![CDATA[Hi everyone,

I'm building a WeWeb front-end on top of Xano, and I'm still fairly new to this side of things, so apologies if I'm missing something obvious.

While profiling our page loads, I noticed that...]]></description>
            <link>https://community.xano.com/discussion-and-questions-1kv6mqqm/post/preflight-options-requests-never-cached-with-the-default-cors-settings-4Q3T2oekZAfx6Wy</link>
            <guid isPermaLink="true">https://community.xano.com/discussion-and-questions-1kv6mqqm/post/preflight-options-requests-never-cached-with-the-default-cors-settings-4Q3T2oekZAfx6Wy</guid>
            <dc:creator><![CDATA[Romain Nicolle-Malpas]]></dc:creator>
            <pubDate>Tue, 29 Sep 2026 13:41:39 GMT</pubDate>
            <content:encoded><![CDATA[<p>Hi everyone,</p><p>I'm building a WeWeb front-end on top of Xano, and I'm still fairly new to this side of things, so apologies if I'm missing something obvious.</p><p>While profiling our page loads, I noticed that every authenticated API call is preceded by a CORS preflight (OPTIONS request), even for URLs that were just called. To make sure, I ran a clean test: browser cache enabled, navigating page A → page B → page A within 20 seconds. On the second visit to page A, every call was preflighted again for the exact same URL. One endpoint was preflighted three times in 15 seconds. It also happens for a direct XHR POST that doesn't go through WeWeb's service worker.</p><p>Each preflight adds roughly 40–80 ms before the actual request (more when the server is busy), and since our calls run one after another, it adds up on every page.</p><p>The default preflight response we get looks like this:</p><p>Access-Control-Allow-Origin: &lt;echoed origin&gt;</p><p>Access-Control-Allow-Headers: *</p><p>Access-Control-Max-Age: 86400</p><p>Access-Control-Allow-Credentials: true</p><p>From what I've read, "*" in Access-Control-Allow-Headers doesn't cover the Authorization header, so browsers accept the preflight but don't reuse it from cache (<a href="https://github.com/whatwg/fetch/issues/1278" rel="noopener noreferrer nofollow" class="text-interactive hover:text-interactive-hovered">https://github.com/whatwg/fetch/issues/1278</a>). That would explain what we see, but I may be wrong about the cause.</p><p>I tried Custom mode on one API group (Allow-Headers set to "Authorization" and "*"), and ran into two things:</p><p>- an origin of "*" seems to be matched literally, so our real origins were rejected (I reverted right away);</p><p>- the preflight seems to be answered by the live branch, since OPTIONS requests don't carry the X-Branch header, so changing the setting on a dev branch has no effect on preflights.</p><p>So my questions:</p><p>1. Has anyone else noticed this? Is it expected with the default CORS configuration?</p><p>2. Is there a recommended way to get preflights cached for authenticated requests, without listing every origin on every API group and branch? For example, could Authorization be added to the default Allow-Headers, or could Custom mode reflect the request origin the way Default does?</p><p>Thanks a lot for any pointers!</p>]]></content:encoded>
        </item>
    </channel>
</rss>