Skip to content
Back to skills

Powerbi Fabric App Templates

ASecurity

Choose, scaffold and author Rayfin templates for Microsoft Fabric Apps — the bundled dataapp and blankapp templates, the awesome-rayfin community gallery, and how to publish a reusable template with rayfin-template.yml so a delivery team scaffolds a governed starting point instead of a blank page. Use when the user mentions: rayfin template, Fabric app template, awesome-rayfin, dataapp template, blankapp, --list-templates, app starter, app scaffold, reusable Fabric app, template gallery, publ...

  • 3 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added October 6, 2026
datarustgobashsqlreactangulargitapidatabasefrontend

Works with

  • cli
  • api

Security analysis

A100/100

Scanned October 6, 2026

npx -y skills add santoshkanthety/powerbi-agent --skill powerbi-fabric-app-templates --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Powerbi Fabric App Templates?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Powerbi Fabric App Templates
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/santoshkanthety-powerbi-fabric-app-templates/badge)](https://www.skillsdirectory.com/skills/santoshkanthety-powerbi-fabric-app-templates)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: powerbi-fabric-app-templates
description: Choose, scaffold and author Rayfin templates for Microsoft Fabric Apps — the bundled dataapp and blankapp templates, the awesome-rayfin community gallery, and how to publish a reusable template with rayfin-template.yml so a delivery team scaffolds a governed starting point instead of a blank page. Use when the user mentions: rayfin template, Fabric app template, awesome-rayfin, dataapp template, blankapp, --list-templates, app starter, app scaffold, reusable Fabric app, template gallery, publish a template, rayfin-template.yml.
license: MIT
---

# Rayfin templates for Fabric Apps

A Rayfin template is a repo (or a path in one) carrying `rayfin-template.yml` at its root,
which `rayfin init` and `create-rayfin` can scaffold from. Templates are where a delivery
team's conventions live: the auth flow, the data-access layer, the chart primitives, the
theme, the validation harness. Getting the template right once is worth more than reviewing
twenty hand-rolled apps.

Read `powerbi-fabric-apps` first for the CLI, the SDK and rule zero (never write Rayfin API
code from memory). This skill covers only template selection and authoring.

## Always list before choosing

The bundled template set moves with the CLI version. Enumerate it rather than trusting any
list — including this one:

```bash
npx rayfin init --list-templates
```

## Which template

| Situation | Template | Why |
|---|---|---|
| Analytical app over a Power BI semantic model | `dataapp` | Ships DAX-generation guidance, chart primitives with cross-highlighting, a formatted data grid, centralised theming, format-string reuse and a Playwright validation workflow. Currently the CLI is the only supported way to use it. |
| Anything else, or a build you want to own end to end | `blankapp` | Auth and nothing else. No framework opinions to unpick. |
| A team standard exists | your own template | See *Authoring* below. |
| User explicitly asks for a gallery app | an `awesome-rayfin` entry | Read it before scaffolding; see the caveat below. |

For a Power BI–adjacent app, default to `dataapp`:

```bash
npm create @microsoft/rayfin@latest -- "<app-name>" --template dataapp --workspace "<workspace-name>"
```

Everything the `dataapp` template provides is work an agent would otherwise redo — badly —
in every session: authentication, DAX quality, and visual coherence. Without it the usual
failures are broken or empty visuals, inconsistent chart behaviour, and far more model
queries than the app needs.

### What `dataapp` gives you

- **Visuals**: bar (vertical, horizontal, grouped, stacked), line with optional markers,
  area, scatter, pie and donut, heatmap, bubble, waterfall, KPI cards, and layered
  composites such as bars with data labels or dual-axis lines — with cross-highlighting.
- **Data grid**: headers from semantic model metadata, per-column number and date formatting
  from format strings, sorting, overflow handling, light/dark themes, and cell renderers for
  data bars, boolean indicators, clickable URLs, image cells with a lightbox, and multi-field
  cells.
- **Theming**: shared styles in one place, so a palette or font change flows to cards,
  buttons, charts, grids and tooltips instead of drifting per component.
- **Format strings**: define once per result column; reused across axes, tooltips, labels,
  cards and grid cells.
- **Browser validation**: a Playwright workflow that opens the real app and checks rendering,
  clipping, readability, grid overflow, loading/empty/error states, cross-highlighting and
  the console — at desktop and mobile widths.

Use the template's primitives. A visual with no primitive is possible but costs iterations
and validation, so say that out loud before promising it.

## The community gallery

[`microsoft/awesome-rayfin`](https://github.com/microsoft/awesome-rayfin) is a
community-curated gallery. Scaffold from it by URL:

```bash
npm create @microsoft/rayfin -- --template https://github.com/microsoft/awesome-rayfin
```

Entries most relevant to a Power BI / Fabric practice:

| Template | What it is |
|---|---|
| **Power BI Fixer** | Workspace that inspects, documents and fixes Power BI semantic models and reports |
| **Semantic Directory** | Searchable directory of Power BI / Fabric semantic models with lineage and relationship tracing |
| **Fabric Atlas** | Workspace catalog, lineage, governance and access review for Fabric |
| **Finance Analytics** | Config-driven FP&A app — variance, trend and aging tables with native Excel copy |
| **Helsinki Public Transport** | Live transit visualisation on Fabric Real-Time Intelligence with DirectQuery |
| **Universal App** | Lean React + Vite starter with capability routing, meant to grow |
| **Angular Blank / Angular Dashboard** | Fabric-authenticated Angular + Material starters |

Caveat, and state it to the user: gallery templates are community contributions, not
Microsoft-supported product surface. Before building on one, check what it actually does
with your data — connectors declared in `rayfin.yml`, entities under `rayfin/data/`, and
anything it persists. A domain template that copies a governed semantic model's output into
its own SQL database has created a second copy of that data; that is a governance decision,
not an implementation detail.

Gallery templates are also where to look for a *pattern* even when you scaffold `dataapp` —
reading how Semantic Directory traces lineage is cheaper than inventing it.

## Authoring a template

Make a template when the same decisions keep getting re-made: tenant-specific auth wiring,
a house theme, a standard connector set, an approved chart vocabulary, a validation gate.

Requirements:

1. **`rayfin-template.yml` at the repo root.** This is what makes the repo scaffoldable.
2. **A working Rayfin project.** The template is a project; if `npx rayfin dev` and
   `npx rayfin up --dry-run` don't pass in it, they won't pass for anyone scaffolding it.
3. **No tenant-specific identifiers committed.** Workspace IDs, item IDs, app URLs and
   publishable keys belong in `rayfin/.env` or `rayfin.yml` values the scaffolding step
   fills in — never hardcoded in source.
4. **No secrets.** Including in frontend assets, regardless of `assetAccess`.
5. **Agent context files.** Ship `AGENTS.md` and let
   `npx rayfin init ai-files install` manage `.agents/skills/rayfin/SKILL.md` so whoever
   scaffolds it gets the version-locked skill, not your snapshot of it.

A house template worth maintaining usually carries:

```
rayfin-template.yml          # required at root
AGENTS.md                    # capability router: what exists, what to read first
rayfin/
  rayfin.yml                 # services + auth + static hosting defaults
  data/                      # shared entities (audit columns, user profile, …)
  connectors/                # connector shape, no tenant IDs
src/
  lib/client.ts              # one data-access path
  theme/                     # the house palette, tokens, type scale
  components/charts/         # the approved chart vocabulary
tests/                       # the validation gate the team agreed on
```

Verify the scaffold from a clean directory before publishing — `--list-templates` then
scaffold, install, `rayfin dev`, `rayfin up --dry-run`. A template that only works in the
directory it was authored in is the most common defect.

To contribute to the gallery, follow `CONTRIBUTING.md` in `microsoft/awesome-rayfin`.

## Template hygiene after scaffolding

The scaffold is a starting point, not a verdict:

- Read `AGENTS.md` and `.agents/skills/rayfin/SKILL.md` before editing anything.
- Run `npx rayfin init ai-files status` — a `user-modified` or stale in-project skill is the
  usual cause of code written against the wrong Rayfin version.
- Delete the template's demo entities and sample data you are not using. Shipped sample
  entities become real tables in a real SQL database on `rayfin up`.
- If the scaffold includes its own semantic model client *and* you added a
  `fabric-semanticmodel` connector, replace the scaffold's calls rather than maintaining two
  data-access paths.

## Related skills

| Need | Skill |
|---|---|
| CLI, SDK, connectors, deployment, security | `powerbi-fabric-apps` |
| CU cost of what the template stands up | `powerbi-fabric-capacity` |
| Chart choice and layout in the frontend | `powerbi-report-design` |
| DAX the template's queries will run | `powerbi-dax-mastery`, `powerbi-dax-performance` |
| Theme tokens shared with reports on the same model | `powerbi-modifying-theme-json` |

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…