Overview

Openings.dev is a static Next.js application for discovering technology opportunities published in GitHub community repositories. It is the front-end for a global jobs index built from public GitHub issue data.

The app does not keep local job data, mocks, fixtures, or JSON snapshots. Opportunity, facet, repository, community, user, and job-detail data is loaded through remote raw URLs.

Architecture

The application is separated into route-level screens, shared UI, and remote data services.

app/
  _components/ shared route-level components
  _hooks/ route-level React hooks
  community/ community directory and repository routes
  docs/ rendered project documentation pages
  jobs/ static job detail routes
  opportunities/ opportunities screen and feature UI
  users/ author directory and profile routes
components/
  footer/ global footer components
  header/ global header components
  icons/ shared icon components
  providers/ app providers
  ui/ low-level UI primitives
lib/
  constants/ locale constants
  content/ markdown document loading
  opportunities/ remote data services, routing helpers, and domain types
  translations/ UI copy by locale
  utils/ framework-agnostic utilities
docs/
  localized markdown rendered by the app

Key Boundaries

  • app/**/page.tsx files define App Router routes and static params.
  • app/opportunities/_components/** owns the opportunities feature UI and UI-only controller hooks.
  • lib/opportunities/api.ts reads the remote static API files.
  • lib/opportunities/snapshot.ts reads the remote segmented snapshot index for static community and user route generation.
  • lib/opportunities/static-api.ts centralizes raw data base URLs.
  • lib/opportunities/types.ts owns shared opportunity domain types.

Data Source

The default remote data endpoints are:

  • https://raw.githubusercontent.com/openings-dev/data/main/snapshots/opportunities
  • https://raw.githubusercontent.com/openings-dev/data/main

The app consumes manifest files, ordered opportunity IDs, paginated list data, job detail files, community shards, user static params, and repository metadata.

There is no local API route for opportunities and no local JSON import in the front-end.