Problem Description
ManagedFavsGenerator is currently macOS-only. IT admins on Windows or Linux have no access to the tool, and there is no way to share or use it without installing a native app.
Proposed Solution
Build a web app version of ManagedFavsGenerator using React + TypeScript, hosted on Vercel as a static site — no backend required, everything runs in the browser.
Why Vercel over GitHub Pages / Netlify
|
GitHub Pages |
Netlify |
Vercel |
| Auto-deploy on push |
Manual/Actions |
✅ |
✅ |
| PR Preview deployments |
❌ |
✅ |
✅ |
| React/Vite zero-config |
❌ |
✅ |
✅ |
| GitHub integration |
Native |
Good |
Good |
| Free tier |
✅ |
✅ |
✅ |
Vercel is the natural fit for a React app and PR preview deployments are especially valuable for open source contributions — every pull request gets a live preview URL automatically.
Architecture
- React + TypeScript (static, no backend)
- Port core logic from Swift to TypeScript:
FormatGenerator → JSON & Plist output
FormatParser → JSON & Plist import
FavoritesViewModel → React state
- Browser APIs replace native services (Clipboard API, file download/upload, localStorage)
- Favicon loading via existing Google/DuckDuckGo providers
Suggested Phases
Phase 1 — Core Logic
Port FormatGenerator and FormatParser to TypeScript including unit tests
Phase 2 — UI
Rebuild the favorites list, folder management, and output panels in React (with drag & drop)
Phase 3 — Features
Import JSON/Plist, favicon loading, localStorage persistence
Phase 4 — Deployment
Vercel setup, custom domain (optional), GitHub Actions integration
Bonus
The environment/profile feature (see #15) can be built in from the start — localStorage makes per-environment persistence straightforward.
Alternatives Considered
- GitHub Pages: requires manual GitHub Actions configuration for React builds, no PR previews
- Netlify: viable alternative, but Vercel has better React/Vite defaults and is the de-facto standard for React deployments
Additional Context
- No backend needed — the tool is purely client-side logic
- The clean MVVM architecture of the existing Swift code maps well to React
- The only non-trivial port is Plist (Apple XML format) — the
plist npm package handles this
Priority
Medium - Would improve workflow
Problem Description
ManagedFavsGenerator is currently macOS-only. IT admins on Windows or Linux have no access to the tool, and there is no way to share or use it without installing a native app.
Proposed Solution
Build a web app version of ManagedFavsGenerator using React + TypeScript, hosted on Vercel as a static site — no backend required, everything runs in the browser.
Why Vercel over GitHub Pages / Netlify
Vercel is the natural fit for a React app and PR preview deployments are especially valuable for open source contributions — every pull request gets a live preview URL automatically.
Architecture
FormatGenerator→ JSON & Plist outputFormatParser→ JSON & Plist importFavoritesViewModel→ React stateSuggested Phases
Phase 1 — Core Logic
Port
FormatGeneratorandFormatParserto TypeScript including unit testsPhase 2 — UI
Rebuild the favorites list, folder management, and output panels in React (with drag & drop)
Phase 3 — Features
Import JSON/Plist, favicon loading, localStorage persistence
Phase 4 — Deployment
Vercel setup, custom domain (optional), GitHub Actions integration
Bonus
The environment/profile feature (see #15) can be built in from the start — localStorage makes per-environment persistence straightforward.
Alternatives Considered
Additional Context
plistnpm package handles thisPriority
Medium - Would improve workflow