The official website for Tenkei Aikidojo, built with Next.js 16+, React 19, and TypeScript. This project serves as a modern, high-performance platform for students and practitioners to connect with the dojo.
- Multi-language Support (i18n): Full support for English, Indonesian, and Japanese using
i18next. - Modern Tech Stack: Built with Next.js 16 (App Router) and React 19.
- Performance Optimized: High Lighthouse scores, optimized images, and Vercel Speed Insights.
- SEO Ready: Localized metadata, Open Graph tags, and structured data (JSON-LD).
- Responsive Design: Mobile-first approach using Tailwind CSS.
- Security Focused: Custom security headers and Turnstile spam protection.
- Framework: Next.js 16+ (App Router)
- UI Library: React 19
- Language: TypeScript
- Internationalization:
i18next,react-i18next,next-i18n-router - Styling: Tailwind CSS
- Package Manager: Yarn (Classic)
- Version Management: Volta (Node.js 22+, Yarn 1.22.22)
- Monitoring: Vercel Analytics & Speed Insights
yarn installRun the development server:
yarn devThe application will be available at http://localhost:3000.
yarn build
yarn startThis project uses a localized routing strategy (/[lang]/...).
- Adding Translations: Edit JSON files in
public/locales/[lang]/common.json. - Adding a Language: Update
i18n.config.tsandapp/i18n/settings.ts. - Usage:
- Server Components: Use
getT(lang, 'common'). - Client Components: Use
useTranslation(lang, 'common').
- Server Components: Use
app/[lang]/: Localized routes and layouts.app/i18n/: Internationalization configuration and hooks.components/: Reusable React components.public/locales/: Translation resource files.lib/: Shared utilities and constants.GEMINI.md: Crucial - Detailed technical standards and development mandates.
yarn lint # Run ESLint
yarn format # Auto-format with Prettier
yarn check-format # Verify formattingPlease refer to GEMINI.md for comprehensive coding standards, architectural patterns, and AI agent guidelines before making any changes.
- Ensure all code passes
yarn lint. - All user-facing strings must be localized.
- Follow the Conventional Commits specification.
License: MIT