Discover GitHub repositories/issues, manage a local pipeline, and track activity. Deployed on netlify: opensourcescout.netlify.app
- Discover: search repositories/issues + filter controls + infinite scrolling results
- Pipeline: saved repositories/issues with stage/status workflows and bulk actions
- Board: drag-and-drop pipeline stages
- Activity: timeline + daily summaries + quick actions
- Repository detail: key stats, contributors, top open issues, README summary
- Library:
@tanstack/react-router - Why: File-free, strongly typed route tree with query-param driven UX.
- Library:
@tanstack/react-query - Why: Caching, stale-time control, loading/error states, and infinite pagination for search pages.
- Libraries:
shadcn+@base-ui/react - Why: Copy-in component ownership (shadcn style) with accessible low-level primitives.
- Libraries:
tailwindcss,tw-animate-css,class-variance-authority,clsx,tailwind-merge - Why: Utility-first layout + variant-driven component APIs + deterministic class conflict resolution.
- Library:
next-themes - Why: Simple runtime theme switching via the
darkclass while keeping tokenized CSS.
- Approach: Browser
localStoragewith typed helpers and a sync hook. - Why: Keep pipeline/issue workflow fast and offline-friendly without backend auth/storage.
- Libraries:
@dnd-kit/core,@dnd-kit/utilities - Why: Accessible, composable drag/drop with explicit state transitions.
- Library:
react-markdown - Why: Render repository README content safely in the repo detail page.
- Library:
@octokit/openapi-types - Why: Type GitHub REST responses from official OpenAPI definitions.
npm run dev— local dev servernpm run build— type-check + production buildnpm run preview— preview production buildnpm run test— run tests oncenpm run test:coverage— run tests with coveragenpm run lint— lint codebase
- Netlify config:
netlify.toml- Build command:
npm run build - Publish directory:
dist - SPA redirect to
index.htmlfor client-side routes
- Build command: