A modern, enterprise-grade Next.js application built with TypeScript and Tailwind CSS.
- Framework: Next.js 16
- Language: TypeScript 5
- Styling: Tailwind CSS 4
- Package Manager: pnpm 9
- Runtime: Node.js 20
- Container: Docker
- Node.js 20.x or higher
- pnpm 9.x (recommended)
- Docker (optional, for containerized development)
- Clone the repository
git clone https://github.com/YOUR-USERNAME/website.git
cd website- Install dependencies
pnpm install- Set up environment variables
cp .env.example .env.local
# Edit .env.local with your configuration- Start the development server
pnpm devOpen http://localhost:3000 in your browser.
Start the development environment:
docker-compose -f docker-compose.dev.yml upOr using the npm script:
pnpm docker:devpnpm dev- Start development serverpnpm build- Build for productionpnpm start- Start production serverpnpm lint- Run ESLintpnpm lint:fix- Fix linting issuespnpm format- Format code with Prettierpnpm format:check- Check code formattingpnpm type-check- Run TypeScript type checkingpnpm docker:build- Build Docker imagepnpm docker:up- Start Docker containerspnpm docker:down- Stop Docker containerspnpm docker:dev- Start Docker development environment
For convenience, common tasks are available via Makefile:
make help # Show all available commands
make install # Install dependencies
make dev # Start development server
make build # Build for production
make lint # Run linter
make format # Format code
make clean # Clean build artifacts
make docker-build # Build Docker image
make docker-up # Start Docker containers
make docker-down # Stop Docker containers.
├── .github/ # GitHub configuration
│ ├── workflows/ # CI/CD workflows
│ ├── ISSUE_TEMPLATE/ # Issue templates
│ └── PULL_REQUEST_TEMPLATE.md
├── .vscode/ # VS Code settings
│ ├── settings.json
│ ├── extensions.json
│ └── launch.json
├── app/ # Next.js app directory
│ ├── api/ # API routes
│ ├── globals.css # Global styles
│ ├── layout.tsx # Root layout
│ └── page.tsx # Home page
├── public/ # Static assets
├── .editorconfig # Editor configuration
├── .env.example # Environment variables template
├── .gitignore # Git ignore rules
├── .nvmrc # Node version
├── .prettierrc # Prettier configuration
├── docker-compose.yml # Docker Compose configuration
├── Dockerfile # Docker image definition
├── LICENSE # MIT License
├── Makefile # Common tasks
├── next.config.ts # Next.js configuration
├── package.json # Dependencies and scripts
├── postcss.config.mjs # PostCSS configuration
├── README.md # This file
├── CONTRIBUTING.md # Contribution guidelines
├── SECURITY.md # Security policy
└── tsconfig.json # TypeScript configuration
docker build -t website .docker-compose up -ddocker-compose -f docker-compose.dev.yml upThe application includes a health check endpoint at /api/health that returns:
{
"uptime": 123.456,
"message": "OK",
"timestamp": 1234567890,
"environment": "production",
"version": "0.1.0"
}The project includes recommended VS Code settings and extensions:
- ESLint
- Prettier
- Tailwind CSS IntelliSense
- Docker
- GitLens
- Error Lens
- Path Intellisense
- Pretty TypeScript Errors
Press F5 to start debugging with the included launch configurations:
- Debug server-side
- Debug client-side
- Debug full stack
- Attach to Docker container
The project uses GitHub Actions for continuous integration and deployment:
-
CI: Runs on every push and PR
- Linting
- Type checking
- Build verification
- Security audit
-
Docker Build: Builds and pushes Docker images
- Multi-platform support (AMD64, ARM64)
- Automated tagging
- GitHub Container Registry integration
-
Dependabot Auto-merge: Automatically merges minor and patch updates
All PRs must:
- Pass all CI checks
- Have at least one approval
- Be up to date with the base branch
- Follow the PR template
Please read CONTRIBUTING.md for details on our code of conduct and the process for submitting pull requests.
For security concerns, please review our SECURITY.md policy.
This project follows strict code style guidelines:
- ESLint: JavaScript/TypeScript linting
- Prettier: Code formatting
- EditorConfig: Consistent coding styles
Format your code before committing:
pnpm formatCopy .env.example to .env.local and configure:
cp .env.example .env.localSee .env.example for available configuration options.
This project is licensed under the MIT License - see the LICENSE file for details.
For questions and support:
- Open an issue on GitHub
- Check existing discussions
- Review the documentation
- Build the image:
docker build -t website .- Run the container:
docker run -p 3000:3000 website- Build the application:
pnpm build- Start the production server:
pnpm start- Server-side rendering (SSR)
- Static site generation (SSG)
- Image optimization (AVIF, WebP)
- Code splitting
- Security headers
- Chrome (latest)
- Firefox (latest)
- Safari (latest)
- Edge (latest)
- Built with Next.js
- Styled with Tailwind CSS
- Hosted on Vercel