What Is Fabric App or Rayfin and Why You Should Care

Imagine an application built entirely inside the Microsoft Fabric environment.

Not an application that connects to Fabric. Not an application that reads from a Fabric data source. An application where the database is a Fabric SQL database, the semantic model is a Power BI semantic model, and the frontend is hosted and managed inside Fabric — all in one place.

That is what Rayfin is. And in this article, I am going to explain what it is, why it matters, and show you exactly how to get started with your first Fabric App project.

Published by Reza Rad | RADACAD


📺 Watch the full video on YouTube: What is Fabric App or Rayfin and Why You Should Care

🌐 RADACAD Blog: radacad.com



The Problem That Rayfin Solves (Video: 0:50)

If you want to build a web application today, you can build it in VS Code or any development tool you prefer. Nothing stops you. But here is the reality of what that process looks like in practice.

Almost every application works with data. You want to build a to-do list — data needs to be saved somewhere. You want to build a form for data entry — that data needs a database. You want to build an application that displays analytics — the data needs to come from somewhere.

So when you build a web application outside of Fabric, here is what you are managing:

  • Your web app — probably hosted in Azure Web App or some cloud service
  • Your database — maybe Azure SQL Database, maybe a Fabric SQL database, maybe something else
  • Your semantic model — built separately in Power BI Desktop and published to the Fabric service
  • Your frontend — built separately and connected to all of the above

The result: your application objects are scattered across multiple places. Your database is in Fabric. Your web app is in Azure. Your semantic model is in a Fabric workspace. Your frontend is somewhere else. Everything works — but everything is fragmented. Every component has its own lifecycle, its own deployment process, its own governance, and its own management overhead.

Rayfin — also called Fabric App — integrates all of this into one place.

You are still building a data-related application. You are still using your favourite development tools — VS Code, GitHub Copilot, or whatever you prefer. But now, instead of managing scattered components across multiple services, you have one project inside your Fabric environment that manages everything: the database, the semantic model, the frontend — all under one roof.


What Is Rayfin? The Technical Picture (Video: 3:01)

Rayfin is an open-source SDK and CLI published by Microsoft that lets you create, run, and deploy a Fabric App project. It is available at github.com/microsoft/rayfin and documented at aka.ms/rayfin.

Here is the technical architecture of a Fabric App:

Frontend: TypeScript — the modern, strongly-typed superset of JavaScript used by professional web developers worldwide. This is a standard web frontend, not a Power BI report. It is not PBIR. It is a real web application frontend — which means all standard web development tools, frameworks, and AI coding assistants (GitHub Copilot, Claude Code, Cursor) work with it natively.

Backend options:

  • A Fabric SQL database — for applications that need to store and manage operational data (to-do lists, forms, user data, transactions)
  • A Power BI semantic model — for applications that need to display analytics and business intelligence on top of existing data

Hosting: The entire application — frontend, backend, authentication — is hosted and managed inside your Microsoft Fabric workspace.

Authentication: Microsoft Entra ID (Azure AD) is the authentication layer. Your organisation’s single sign-on applies automatically. You do not need to build an authentication system from scratch.

When you create a Fabric App, it appears as a new item type in your Fabric workspace alongside your lakehouses, warehouses, notebooks, and semantic models. The database shows up in the workspace. The SQL analytics endpoint is auto-provisioned. Everything is managed as part of the same Fabric environment you already use.

💡 Why TypeScript and not Power BI reports? This is a question I get a lot. Power BI reports are extraordinary for analytics and business intelligence — but they are not general-purpose web applications. You cannot build a to-do list, a form, a data entry experience, or a custom interactive app in a Power BI report. TypeScript gives you the full flexibility of a web application while connecting to the same trusted semantic model or database that lives inside Fabric. This is the best of both worlds — BI-grade data governance with full application flexibility.


The Main Templates (Video: 12:02)

When you create a new Rayfin project, you have the option to start from a template. Templates are pre-configured project structures that give you a working starting point — database schema, frontend pages, API configuration — all set up and ready to customise.

At the time of writing, there are four templates:

Template 1: Blank Application

A minimal starting point with a React frontend and the Fabric authentication setup already configured. Use this when you want to build something completely custom from scratch.

Template 2: Data App

This is the template I personally find most exciting. It creates a TypeScript frontend connected to a Power BI semantic model as the backend. The frontend reads from the semantic model and visualises the data in a fully custom web experience.

This is a fundamentally different way of thinking about analytics delivery. Instead of sharing a Power BI report with users, you deliver a branded, custom web application experience — powered by the same trusted semantic model that powers your Power BI reports.

I have covered the cost story for this in my dedicated video: Rayfin Data App — The Future of Power BI Report Distribution. The short version: host on F2 capacity, share with free Fabric users — no Power BI Pro license required per viewer, no F64 needed.

Template 3: To-Do App (Full)

A complete to-do list management application with a TypeScript frontend and a Fabric SQL database as the backend. Includes user management, task creation, task completion tracking, and full database schema. A real working application out of the box.

Template 4: To-Do App (Simplified)

A stripped-down version of Template 3 — the same concept but with less complexity. Good for learning the Rayfin project structure before diving into a full implementation.

💡 You can also create your own templates. Anyone can publish a Rayfin template to the GitHub ecosystem. As the platform matures, expect a growing library of community-contributed templates for different use cases.


How to Enable Fabric Apps in Your Tenant (Video: 7:05)

Before you can create a Fabric App, you need to enable the feature in your Fabric admin portal. At the time of recording this video, Fabric Apps is still in Preview — and Preview features are disabled by default.

Here is how to enable it:

  1. Go to your Fabric or Power BI service
  2. Navigate to the Admin Portal
  3. Go to Tenant Settings
  4. Search for App
  5. Find Enable Fabric App items
  6. Enable it — either for the entire organisation or for a specific security group

Once enabled, you will see a new App item type available when you create new items in a Fabric capacity workspace. Note that Fabric Apps require a Fabric capacity workspace — they do not work in shared capacity or Power BI Pro workspaces.


Step-by-Step: Creating Your First Fabric App (Video: 9:53)

There are two ways to create a Fabric App: from the Fabric portal, or entirely from VS Code using the Rayfin CLI. The CLI approach is the one I recommend and demonstrate in the video — it gives you the full experience and keeps everything in your development environment.

What You Need

  • VS Code — the development environment. Download free from code.visualstudio.com
  • Node.js — required to run the Rayfin CLI commands. Download from nodejs.org
  • GitHub Copilot (optional but highly recommended) — to enhance and customise your app with AI prompts
  • A Fabric capacity workspace — where your app will be deployed

Step 1: Create the Project

Open a terminal in VS Code and run:

npm create-microsoft/rayfin@latest

This command initialises a new Rayfin project. It will ask you two questions:

  1. Would you like to use a template? → Yes (recommended)
  2. Which template? → Choose from the four options (1–4)

Then it will ask for your project name — this should match the name of the Fabric App item you created (or want to create) in your Fabric workspace.

Once you confirm, Rayfin downloads the template, installs all dependencies, and sets up the full project structure for you. Inside the project you will find:

  • A /rayfin folder — containing your database schema definitions and app configuration
  • A /src or /pages folder — your TypeScript frontend pages
  • Configuration files — JSON settings for Fabric workspace connection, authentication, and deployment

Step 2: Navigate Into the Project Folder

cd your-project-name

Step 3: Run the App Locally

npm run dev

This starts the app in local development mode. It also asks you to specify which Fabric workspace to connect to — paste your workspace name or workspace ID. Rayfin then creates the Fabric SQL database in your workspace (or connects to your semantic model if you chose the Data App template), authenticates via your Microsoft account, and starts the local development server.

You will get a local URL to open in your browser. The app runs against the real Fabric backend — your Fabric SQL database is live, your semantic model is live — but the frontend is running locally. This is your development and testing environment.

Step 4: Deploy the App to Fabric

When you are happy with the app, deploy it:

npx rayfin up

This command deploys the frontend to Fabric, provisions all the required infrastructure, and gives you a live URL — no longer local — where users can access the app. Authentication is handled automatically via Microsoft Entra ID.

That live URL is your production Fabric App.


The Data App Template — A Custom Analytics Experience (Video: 26:07)

Let me show you what the Data App template produces — because this is where I think the most significant opportunity for Power BI developers lies.

In my demo, I created a Data App connected to an Adventure Works semantic model — with sales, customer, and product data. Using GitHub Copilot prompts, I enhanced the frontend to create:

  • A Sales Overview tab — showing sales trends, top products, and customer segments
  • A Customer and Regional Insights tab — regional breakdowns and customer analysis
  • A Product and Date Insights tab — product performance over time

The frontend is entirely TypeScript. The data comes entirely from the Power BI semantic model. The application is hosted in Fabric. The whole thing was built and customised using GitHub Copilot prompts inside VS Code — without writing most of the code manually.

This is a completely different delivery model from a Power BI report. Users get a branded, custom web application experience. No Power BI Desktop required. No report canvas. Just a web app that happens to be powered by your most trusted, governed semantic model.

For the cost comparison — this is covered in depth here: Rayfin Data App — The Future of Power BI Report Distribution. The F2 + free Fabric users model vs Power BI Pro per user is a significant economic argument for large report audiences.


The Bigger Picture (Video: 28:22)

Rayfin and Fabric Apps represent something more than a new feature. They represent a shift in what Microsoft Fabric is.

Fabric started as a data platform — a place to store, process, analyse, and visualise data. With Rayfin, Fabric becomes an application platform. Your organisation’s data does not just sit in a lakehouse or warehouse waiting to be analysed — it becomes the foundation for interactive, governed, production-grade web applications that live inside the same Fabric environment.

The implications are significant:

  • Data governance extends to applications — because the database and semantic model are inside Fabric, they inherit Fabric’s governance, security, and compliance
  • AI-powered development — GitHub Copilot, Claude Code, Cursor, and any other AI coding tool can help you build and extend your Fabric App because it is standard TypeScript code
  • One workspace for everything — your Fabric workspace now contains your data engineering, your analytics, and your applications. One governed environment. No more fragmented architecture.

This is going to be one of the most important developments in the Microsoft Fabric ecosystem over the next two years. And the best time to start learning it is now.


Key Takeaways

  • Rayfin (Fabric Apps) is an open-source SDK and CLI for building full-stack web applications hosted entirely inside Microsoft Fabric
  • The architecture: TypeScript frontend + Fabric SQL database or Power BI semantic model backend + Microsoft Entra ID authentication — all in one Fabric workspace
  • Templates make getting started easy: blank, data app, to-do (full), to-do (simplified). You can also build your own.
  • The four commands: npm create-microsoft/rayfin@latestcd project-namenpm run devnpx rayfin up
  • Enable Fabric Apps in Admin Portal → Tenant Settings → Enable Fabric App items before you start
  • Requires Fabric capacity — does not work in shared capacity or Power BI Pro workspaces
  • AI coding tools (GitHub Copilot, Claude, Cursor) work natively because it is standard TypeScript code
  • This is in Preview at the time of recording — watch the Fabric blog for GA announcement


Reza Rad is a Microsoft Regional Director, Data Platform MVP, Author, and Trainer. He is the co-founder of RADACAD and the author of multiple books on Power BI, Power Query, and Microsoft Fabric. You can follow him on LinkedIn and subscribe to the RADACAD YouTube channel.


Reza Rad on FacebookReza Rad on LinkedinReza Rad on TwitterReza Rad on Youtube
Reza Rad
Trainer, Consultant, Mentor
Reza Rad is a Microsoft Regional Director, an Author, Trainer, Speaker and Consultant. He has a BSc in Computer engineering; he has more than 20 years’ experience in data analysis, BI, databases, programming, and development mostly on Microsoft technologies. He is a Microsoft Data Platform MVP for 12 continuous years (from 2011 till now) for his dedication in Microsoft BI. Reza is an active blogger and co-founder of RADACAD. Reza is also co-founder and co-organizer of Difinity conference in New Zealand, Power BI Summit, and Data Insight Summit.
Reza is author of more than 14 books on Microsoft Business Intelligence, most of these books are published under Power BI category. Among these are books such as Power BI DAX Simplified, Pro Power BI Architecture, Power BI from Rookie to Rock Star, Power Query books series, Row-Level Security in Power BI and etc.
He is an International Speaker in Microsoft Ignite, Microsoft Business Applications Summit, Data Insight Summit, PASS Summit, SQL Saturday and SQL user groups. And He is a Microsoft Certified Trainer.
Reza’s passion is to help you find the best data solution, he is Data enthusiast.
His articles on different aspects of technologies, especially on MS BI, can be found on his blog: https://radacad.com/blog.

Leave a Reply

Your email address will not be published. Required fields are marked *