Skip to main content

Project Directory Structure

A brief overview of the top-level directories in the Abair website project.


/app

Next.js App Router pages and API routes. Each folder represents a URL route with a page.tsx file. The api/ subfolder contains server-side API endpoints. Includes root layout.tsx, homepage, and global styles.


/components

Reusable React components organized by feature (e.g., home/, recognition/, speech-to-speech/) or shared functionality (common/, layout/, modals/).


/data

Static TypeScript data files for content like applications, publications, navigation menus, job postings, and sponsors. Separates content from component logic.


/hooks

Custom React hooks for speech synthesis, speech recognition (WebSocket and synchronous), and other reusable stateful logic.


/lib

Utility functions, API clients, and business logic. Includes synthesis, recognition, clipboard, mailing list, Reddit integration, Supabase client, i18n setup, and general utilities.


/locales

Internationalization resources for English/Irish bilingual support. Contains translation strings.


/public

Static assets served directly (images, logos, icons, audio processor). Organized in subfolders by feature (app_images/, meall_an_oige/, neartu/, profiles/, sponsor_images/).


/node_modules

Third-party dependencies installed via npm. Auto-generated and excluded from version control.


/.github

GitHub workflows, CI/CD configurations, and repository templates.


/.next

Next.js build output. Auto-generated and excluded from version control.


Root Configuration Files

  • package.json / package-lock.json - Dependencies and scripts
  • tsconfig.json - TypeScript configuration
  • next.config.js - Next.js configuration
  • tailwind.config.js - Tailwind CSS configuration
  • postcss.config.js - PostCSS configuration
  • Dockerfile / .dockerignore - Docker deployment
  • .env.local - Environment variables (not in git)
  • .gitignore - Version control exclusions
  • README.md - Project documentation