Static org chart frontend for Min's Collective, built with Vite, React, TypeScript, Tailwind CSS, and React Flow. The app renders a company structure from a local JSON file and is ready to deploy to GitHub Pages.
- Renders the org chart from
public/data/org-chart.json - Uses separate team nodes between managers and employees
- Opens employee cards on GitHub when a profile link is available
- Supports pan, zoom, fit-to-view, and subtree collapse
- Works as a fully static site with no backend, auth, SSR, or database
- Vite
- React
- TypeScript
- Tailwind CSS
- React Flow (
@xyflow/react) - Dagre for automatic top-down layout
.
├── .github/workflows/deploy.yml
├── public/
│ ├── avatars/
│ └── data/org-chart.json
├── src/
│ ├── components/
│ ├── types/
│ ├── utils/
│ ├── App.tsx
│ ├── index.css
│ └── main.tsx
├── index.html
├── package.json
└── vite.config.ts
npm install
npm run devnpm run build
npm run previewThe app reads a local JSON file at public/data/org-chart.json.
Minimal shape:
{
"departmentTitle": "Min's Collective",
"roots": [
{
"id": "aleksandr-minkin",
"fullName": "Aleksandr Minkin",
"title": "CEO",
"department": "Leadership",
"email": "Not provided",
"phone": "Not provided",
"location": "Remote",
"bio": "CEO of the organization.",
"avatar": "https://github.com/minkinad.png",
"github": "https://github.com/minkinad",
"reports": []
}
]
}Supported employee fields:
idfullNametitledepartmentemailphonelocationbioavatargithubreports
The repository already includes GitHub Pages support:
vite.config.tsresolves the correctbasepath for GitHub Actions builds.github/workflows/deploy.ymlbuilds and deploysdist/
Setup steps:
- Push the repository to GitHub.
- Open
Settings -> Pages. - Set the source to
GitHub Actions. - Push to
mainto trigger deployment.
- Static frontend only
- No backend
- No API routes
- No authentication
- No server-side rendering
- GitHub Pages compatible after build