This time we’re going bigger than ever. Fabric, Power BI, SQL, AI and more. We're covering it all. You won't want to miss it.
Learn moreJoin the FabCon + SQLCon recap series. Up next: Power BI, Real-Time Intelligence, IQ and AI, and Data Factory take center stage. All sessions are available on-demand after the live show. Register now
Your file has been submitted successfully. We’re processing it now - please check back in a few minutes to view your report.
04-02-2026 05:55 AM - last edited 04-02-2026 05:57 AM
I built an open-source repo that generates complete, multi-page Power BI dashboards from Python scripts — no dragging fields, no clicking through menus.
How it works: A Python script uses make_* helper functions (one line per visual) to write visual.json files directly into the PBIR folder structure of a .pbip project. Open the project in Power BI Desktop and all pages appear with data-bound visuals ready to polish.
One line of Python:
make_card("sc1_rev", 20, 10, 295, 110, "_Measures", "Total Revenue")...generates the full PBIR JSON for a data-bound KPI card.
Optional: auto-generate everything with a Claude skill
The repo includes a Claude skill file that can generate both the data model spec and the Python script from your raw CSVs + a one-paragraph business brief. You drop your CSVs into Claude Code, describe what you want ("supply chain dashboard tracking fulfillment, inventory, and supplier performance with YoY comparisons"), and it produces both files. You review the DAX measures and relationships before executing anything — the spec file acts as a human-readable checkpoint. You can also use the skill to generate just one of the two files and write the other yourself. The skill is optional — everything works fully manually without it.
Why code-first over the UI?
Pure Python, no dependencies (just stdlib). Requires Power BI Desktop with PBIR preview features enabled.
GitHub: [LINK]
Would love to get your feedback!
eyJrIjoiOTIzZTRiMWUtM2ZiZC00NjJmLWIxODktYWQ3ZGU2MTk2NTMzIiwidCI6ImM1MmVlYWMzLWUwNzctNDMyYy04MWUzLTRiY2JhZjZiOTM1ZSIsImMiOjl9