
You can build an application whose frontend is TypeScript and ReactJS, and whose backend is a Power BI semantic model — meaning you get a fully interactive, visualized report inside your application without it being a Power BI report at all.
Project Rayfin makes this possible. And it is going to change the way we share Power BI reports with our audience — the way we distribute our reports altogether.
In this article, I walk through a live demo of exactly what this looks like, how to build it, and — most importantly — the cost story that makes this a genuinely significant shift for anyone who distributes Power BI content at scale.
Published by Reza Rad | RADACAD
📺 Watch the full video on YouTube: Rayfin Data App — TypeScript + Semantic Model + GitHub Copilot
🌐 RADACAD Blog: radacad.com
What You Are Looking At (Video: 0:52)
Take a look at the demo I show in the video. There is a frontend that looks like a Power BI report — but it is not a Power BI report. It is a TypeScript frontend. It has multiple pages, it is loaded inside a Fabric/Power BI environment, and it looks like a polished, professional report.
But the data comes from a Power BI semantic model, while the frontend itself is TypeScript. This is built using Project Rayfin.
Rayfin — also called Fabric App — was announced recently at Microsoft Build. It is a way to build end-to-end applications that work with the rest of your Fabric objects. You can build an application that writes data into a database. You can also build an application that reads data from a Power BI semantic model and visualizes it. That second scenario is a specific template inside Rayfin — we call it the Data App template.
For a full introduction to what Rayfin is and how the different templates work, I have a dedicated article here: What Is Fabric App or Rayfin and Why You Should Care.
Building the Data App From Scratch (Video: 2:01)
To show the full process, I started completely from scratch in VS Code.
Step 1: Create the Rayfin project
Open a terminal in VS Code and run:
npm create microsoft/rayfin@latest
This gives you the latest version of the Rayfin project. You get the option to use a template or start blank. At the time of recording, four templates were already available, with more coming. In another video, I covered the To-Do App template in detail. Here, I am using the Data App template — specifically designed for when you want to visualize something from a Power BI semantic model.
You will be asked what to call the project. I named mine my-first-data-app-one.
💡 Note: This step assumes you already have Rayfin installed and configured — VS Code plus the required libraries. I covered that full setup process in a separate video and article on getting started with Rayfin.
Step 2: Review the project structure
Once created, this is a fully-fledged web application project. It includes all the standard project files of a web application — a Rayfin YAML file, a source folder with different sections, apps, and projects. This is the basic template you build on top of.
Step 3: Navigate into the project and start prompting
cd my-first-data-app-one
At this point, no AI has been used yet — this is all standard project scaffolding. From here, the workflow shifts to AI-assisted development.
Using AI to Build the Report (Video: 5:34)
Here is the exact prompt I used:
“In my application, which is a Data App template of Rayfin, I want a frontend with three report pages connecting to this semantic model in my workspace.”
That’s it. A fabric workspace name, a semantic model, and a request for three report pages — nothing more specific than that.
This takes a little time to process, because the AI has to:
- Connect to the Power BI semantic model
- Analyse the model — tables, fields, relationships
- Determine the best ways to visualize the data
- Combine multiple tools and capabilities to build the actual application
Once it finishes, you can continue refining it conversationally. Don’t like the theme? Ask for a different one. Want a different layout? Ask for it. You can iterate exactly the way you want, entirely through prompts.
⚠️ Important security note: During this process, the AI may ask permission to run commands. Be careful to only do this in a development workspace — never give AI access to make modifications directly in a production workspace. This is critical to get right before you start experimenting.
The quality of the output depends on what you give it
I gave the AI almost no requirements — I did not specify which fields I wanted in the report. I just threw a prompt at it and got a result. You can absolutely provide more — business requirements, field definitions, metadata documentation — and the outcome will be significantly better tailored to what you actually need. The AI is combining the semantic model’s structure with the reasoning power of the LLM to decide what makes sense to visualize.
Publishing the App to Fabric (Video: 8:57)
Once the app is built, you can run it locally with npm run dev to preview it in a development environment. But to make it available in the actual Fabric environment, publish it:
npx rayfin up
This asks which Fabric workspace you want to deploy to. I chose my test workspace — fab-test-radacad. Once confirmed, Rayfin handles all the publishing: it creates a web app, and gives you the URL of that web app directly in the terminal output.
Going into the Fabric environment and searching for the app by name, you will find exactly what was just published — the very first draft of whatever the AI created. In my demo, it was a fairly simple report with sections for Products and Customers — not perfectly designed, but functional. The important thing to notice: this frontend is not a Power BI report. It is a TypeScript frontend, which is completely normal for a web application. Behind the scenes, it is powered by a Power BI semantic model.
I also showed a second, more refined version I had built earlier through continued prompting — a nicer UI, charts, three distinct report pages. Nothing in that version is PBIR or a Power BI report either. It is a standard TypeScript web application frontend, built entirely through AI agent prompts.
The Cost Story — Why This Actually Matters (Video: 11:33)
This is the part of the video I consider most significant — because it is not just a technical demo, it directly changes how organisations think about distributing Power BI content.
If you want to share a Power BI report with your users, those users need Power BI licenses — either Power BI Pro licenses, or a Fabric capacity considered premium, meaning F64 or higher. F64 costs roughly $5,000 USD a month.
Anything below F64 means paying for Pro accounts per user — $14 USD per user, per month. If you have 20 Power BI users, that is $280 a month just to let non-self-service users browse content.
With Rayfin’s Data App template, once the app is built, you can share it throughout your workspace instead. Right now (at the time of recording, in preview), sharing happens by adding a user to the workspace with Viewer access — with a URL-sharing option planned for later.
The demo that proves the point
I demonstrated this live. I created a test user — nopowerbi@radacad.com — and confirmed via the user management panel that this user has no Power BI license at all. Only a Microsoft Fabric free license. That means this user can be part of a Fabric workspace, but cannot consume standard Power BI content.
I gave this user Viewer access to the workspace, and separately gave them permission to the underlying semantic model (Manage Permissions → add the user directly). Then, logged in as that user in an incognito browser — free account, no trial, nothing paid — the user could open the workspace, find the app, navigate through its pages, and see live data.
The actual numbers
The workspace in my demo runs on F2 capacity — roughly $250 USD a month, or as low as $156 a month on a yearly contract.
Compare that to the $280/month Pro licensing cost for just 20 users. With Rayfin’s Data App approach — whether you have 20 users or 100 users, the cost stays the same, because you are paying for capacity, not per-user licenses. (Load does matter — F2 might not be sufficient for very heavy usage, in which case you would move up a tier — but the fundamental economics remain far more favourable than per-user Pro licensing.)
For the deeper technical breakdown of this pricing model and Rayfin more broadly, see: What Is Fabric App or Rayfin and Why You Should Care.
Two Things That Are Genuinely Changing
1. Cost-effective distribution. This approach lets you share reports with your audience in a dramatically more cost-effective way than traditional Power BI Pro licensing — especially for large audiences of report consumers who are not self-service users.
2. AI-built visual frontends. I am no longer building Power BI reports in the traditional sense. I am building visual frontends in TypeScript, using AI agents and LLMs — something that, in the past, would have taken significant development time. Now, LLMs are genuinely good at producing HTML and TypeScript code. Rayfin hosts and shares it. All of it combined is going to change how Power BI distribution and reporting works going forward.
Will This Kill the Power BI Report?
I don’t think so.
There will still be a need for Power BI reports. Self-service users — people who want the full flexibility of building and modifying their own analysis — will continue to use Power BI reporting, because that is exactly what gives them that flexibility.
But for the majority of users who are simply report consumers — not builders — a platform like the Data App template works better, and is significantly more cost-effective.
The future of Power BI visualization is heading in this direction.
Key Takeaways
- Rayfin’s Data App template lets you build a TypeScript frontend powered by a Power BI semantic model backend — a fully visualized report that is not a Power BI report
- Setup is four commands:
npm create microsoft/rayfin@latest→cd project-name→ prompt-based AI development →npx rayfin up - AI builds the report from a simple prompt — the more context and business requirements you provide, the better the result
- Always develop against test/dev workspaces, not production, when giving AI agents the ability to run commands
- The cost story is real and significant: F2 capacity (~$156–250/month) can replace Pro licensing costs that scale per user — the same F2 cost applies whether you have 20 or 100 viewers
- This does not replace Power BI reports — it changes how report consumers (not self-service builders) access content
Related Resources
- 📝 What Is Fabric App or Rayfin and Why You Should Care
- 📝 What Is Data Factory in Microsoft Fabric
- 📝 Microsoft Fabric Notebook: What and Why?
- 📝 Enabling Microsoft Fabric in Your Tenant
- 📝 Fabric Insider Ep. 11 — Fabric Apps & Rayfin Deep Dive with Sachin Patney
- 📝 No-Code Power BI: How to Use Claude and the Power BI Modeling MCP Server
- 🛠️ Rayfin on GitHub
Reza Rad is a Microsoft Regional Director, Data Platform MVP (16 consecutive years), 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.




