MAC is the product foundation repository for a no-code data visualization web app inspired by the editing flow and output quality of tools like Flourish.
The repository now includes an executable monorepo scaffold for a refined, placeholder-first product demo shell built with Next.js, TypeScript, and Tailwind CSS.
Use Windows PowerShell with npm.cmd:
npm.cmd install
npm.cmd run dev:webOpen http://localhost:3000.
Helpful verification commands:
npm.cmd run typecheck:web
npm.cmd run build:web- Creative SaaS tone with a refined, minimal UI
- Consistent system across landing, dashboard, and editor
- Fast path from upload to first chart
- Project-based workflow with save and re-entry
- CSV/XLSX-first MVP with 4-6 core chart types
apps/web: Next.js app shell and route placeholderspackages/ui: shared design system primitives and shellspackages/domain: source-of-truth types, defaults, and validation helperspackages/charts: chart catalog and placeholder config factoriespackages/data: upload constants and dataset preview scaffolds
- shared public/app/editor shells
- active navigation inside the app shell
- landing, login, projects, upload, and editor demo pages
- mock project data and editor session data
- design-token-based creative SaaS UI baseline
- reusable
primitives -> compositions -> shellsUI structure
Not implemented yet:
- real auth
- real DB/persistence
- real upload processing
- real chart rendering
- real save behavior
primitives: button, card, inputcompositions: section headers, metric strips, preview tables, chart placeholdersfeedback: badges, empty states, loading statesshells: public, app, editor, inspector
The goal is not to make pages merely decorative. The goal is to make every mocked surface already feel like a credible product state.
- Install dependencies and boot the web app locally.
- Replace placeholder auth with a real magic-link session flow.
- Add dataset upload and parsing contracts in
packages/data. - Implement chart config and renderer boundaries in
packages/charts. - Wire save and editor hydration using
packages/domaincontracts.