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 scriptstsconfig.json- TypeScript configurationnext.config.js- Next.js configurationtailwind.config.js- Tailwind CSS configurationpostcss.config.js- PostCSS configurationDockerfile/.dockerignore- Docker deployment.env.local- Environment variables (not in git).gitignore- Version control exclusionsREADME.md- Project documentation