# Building Fabric Apps with Microsoft’s Rayfin

> Source: <https://www.infoworld.com/article/4233317/building-fabric-apps-with-microsofts-rayfin.html>
> Published: 2026-10-15 09:00:00+00:00

Using [vibe coding](https://www.infoworld.com/article/4078884/what-is-vibe-coding-ai-writes-the-code-so-developers-can-think-big.html) to scratch an itch has many of the same issues as using [low-code and no-code development](https://www.infoworld.com/article/2268355/what-is-low-code-development-faster-app-creation.html) tools. That’s not surprising. Putting together something quickly to solve a specific problem lacks the level of discipline of software engineering, introducing inefficiencies that come from not following architectural guidelines and policies.

I recently reviewed the AI-generated code I used to quickly build a PDF archive of some HTML-formatted content. The program used common libraries in unusual ways, often combining three or more libraries when all the necessary calls were in one, with a program flow that was hard to understand in places. The result was at best unmaintainable. The only way it was acceptable was that I’d thrown it together in an hour to solve a specific problem, and once I’d built that local PDF archive I could simply throw the program away.

But what if your sloppy AI-generated code was needed by an entire department, or had become part of an essential business process? The risk is that something, somewhere, would inevitably change, and that essential business process would fail, with no practical way of fixing the code. The risk only compounds when the author has left their role and there is no one left who remembers or understands the initial prompts that produced the code.

Adding AI-powered coding tools to products and platforms is risky. But they are too useful to ignore. Like low-code tools, AI tools put coding in the hands of the people who understand the business problems and helps them automate processes on their own schedule.

What’s needed is a way to improve the harnesses used by the coding agents, taking concepts from [specification-driven development](https://www.infoworld.com/article/4166817/vibe-coding-or-spec-driven-development-how-to-choose.html) and using them to build guardrails and standards into the code they produce, with the aim of building code that’s maintainable.

[Microsoft Fabric](https://www.infoworld.com/article/2335979/what-is-microsoft-fabric-a-big-tech-stack-for-big-data.html) is intended to be where all your businesses operational data lives, offering a way to query and explore data at scale. It builds on a mix of big data and data warehousing concepts, using open formats for storage and data mirroring tools to bring data from existing applications into its [data lakehouses](https://www.infoworld.com/article/2335103/what-is-a-data-lake-massively-scalable-storage-for-big-data-analytics.html), as well as supporting [streamed data](https://www.infoworld.com/article/2334333/what-is-streaming-data-event-stream-processing-explained.html).

Microsoft Fabric allows you [to build and deploy your own agents](https://www.infoworld.com/article/3958847/adding-smarts-to-azure-data-lakes-with-fabric-data-agents.html) inside the platform to work with your data. However, in many cases, you will need a more focused approach to exploring and using defined subsets of data. The recent [addition of Fabric Apps](https://azure.microsoft.com/en-us/blog/microsoft-build-2026-building-agentic-apps-with-microsoft-fabric-and-microsoft-databases/) to the platform allows business analysts to deliver applications that use data in Microsoft Fabric to provide essential business insights.

Fabric Apps are built on top of [Rayfin](https://rayfin.ai/docs), a new TypeScript-based SDK that is designed to work with both humans, via CLI, and AI agents. A [partnership with Replit](https://replit.com/blog/microsoft-fabric) allows Microsoft Fabric users to build apps using Rayfin and AI assistance in Replit and deploy them directly into Microsoft Fabric. Here Replit support is best thought of as a tool for business users, whereas developers can use tools like the [GitHub Copilot CLI](https://www.infoworld.com/article/3609013/github-copilot-everything-you-need-to-know.html) and [Visual Studio Code](https://www.infoworld.com/article/2335960/what-is-visual-studio-code-microsofts-extensible-code-editor.html), which let you mix traditional and AI-supported development processes.

The intent is to provide the tooling that business users need to [create data-powered applications inside Fabric](https://learn.microsoft.com/en-us/fabric/apps/overview), making application development part of the process of exploring data. Rayfin apps can be connected to raw data or [draw on semantic models](https://learn.microsoft.com/en-us/fabric/apps/data-apps-template) built with tools like Power BI, using [DAX](https://learn.microsoft.com/en-us/dax/dax-overview) for analytics rather than SQL or [KQL](https://learn.microsoft.com/en-us/kusto/query/?view=microsoft-fabric) queries.

The key to this approach is [the open-source Rayfin SDK](https://github.com/microsoft/rayfin), which offers a way to build out the necessary definitions for data models that can then be used by agent-based tooling. The SDK allows you to set up access to specific models, along with the necessary permissions, before users begin to build on them. Rayfin turns those models into [GraphQL](https://www.infoworld.com/article/2267992/what-is-graphql-better-apis-by-design.html) endpoints, with TypeScript clients sitting between them and the data stored in Microsoft Fabric — adding an extra layer of protection as the APIs are automatically type safe.

Building a Rayfin-powered Fabric App starts with using Rayfin to define [a data structure with decorators that apply types to the data](https://learn.microsoft.com/en-us/javascript/api/fabric-apps-sdk-javascript/rayfin-overview?view=fabric-apps-sdk-javascript-latest) you want to use in your application and defining each table as a class. For example, a table of employee names and contact details would be exposed as an entity that contains an employee class, with decorators that create ID number, name, and address strings, all using structures held in the [@microsoft/rayfin-core](https://learn.microsoft.com/en-us/javascript/api/fabric-apps-sdk-javascript/rayfin-overview?view=fabric-apps-sdk-javascript-latest) definitions. Other options allow you to begin to define access controls around the data, so that it can be used only by authenticated users with the correct group privileges.

This is the most important part of any Rayfin-based application development, as it’s here that you’re setting up the guardrails for ongoing user-led development. You’re not limited to one basic application scaffold, either, as there are a series of different templates available to help you get started, from a ready-to-use “to-do” application that illustrates the structure of a complete Rayfin application, to applications that use Microsoft Fabric’s authentication framework to control access to data.

Microsoft provides a process for getting Rayfin scaffolding in place, starting with setting up an application template, then logging in to Microsoft Fabric via Entra ID. Once you’ve completed these steps you can run Rayfin’s development loop to create a runtime and configure the Microsoft Fabric back end, before deploying the base application scaffolding. You don’t need to do this manually; Microsoft’s documentation includes a ready-to-run prompt for your coding agents.

You can now define your data entities. These are placed in a specific directory within the application scaffolding, with separate TypeScript definitions for each class. While you can put all your definitions in a single file, having separate files for each entity makes more sense, as it keeps applications maintainable. Once you’ve added the entities you plan to use, you can rebuild the scaffolding and redeploy, ready for testing.

Usefully this technique lets you separate the back end and front end, ensuring that back-end services and entity definitions run in Microsoft Fabric using its authentication and security framework, [with application code running on development hardware](https://rayfin.ai/docs/start/develop-locally) (and eventually on separate servers or as part of a local application). This is where you will develop Rayfin functions, TypeScript applications that access and process the defined entities, with predefined typed connectors to work with data already stored in Microsoft Fabric. Rayfin functions can call any HTTPS API, allowing you to mix Microsoft Fabric data with information from any other line-of-business application or service. They’re also where you put the business logic for any Fabric application.

Building with the Rayfin SDK produces a [predictable application structure with YAML configurations and TypeScript code](https://rayfin.ai/docs/start/project-structure). That code can be tested locally against a Microsoft Fabric back end. When ready to be deployed and shared, [it can be uploaded to Microsoft Fabric](https://rayfin.ai/docs/start/deploy-to-fabric), which hosts both the Rayfin function code and any front-end assets. Apps will require Microsoft Fabric capacity to work, and can be accessed from inside the Microsoft Fabric portal, though users can access apps via published endpoints through their browsers.

Rayfin is one of the first examples of a new generation of SDKs and development tools that support both humans and agents. The [human-readable Rayfin documentation is paired with an identical set of markdown files](https://rayfin.ai/docs/start/develop-locally), ready for use by any agent working on Rayfin code. Microsoft’s partnership with Replit provides a coding agent to build Rayfin applications and a rendering canvas with familiar Power BI features, providing a place for non-coding business users to experiment with Fabric Apps using AI.

The strict structure Rayfin imposes on Fabric Apps aims to bridge the gap between AI-powered coding and traditional enterprise application development. By putting all the components of an application in a rigidly-defined environment, Rayfin helps ensure that AI-generated code remains secure, compliant, human readable, and human maintainable. Business users can quickly put together Fabric Apps with Rayfin and Replit. Then, if a Fabric App proves to have utility outside a narrow group of users, it can be transferred to the enterprise’s development team for further refinement and long-term operations.
