This is a Next.js project bootstrapped with create-next-app and using Bun as the JavaScript runtime.
First, run the development server:
bun devOpen http://localhost:3000 with your browser to see the result.
You can start editing the page by modifying app/page.tsx. The page auto-updates as you edit the file.
This project uses next/font to automatically optimize and load Geist, a new font family for Vercel.
To learn more about Next.js, take a look at the following resources:
- Next.js Documentation - learn about Next.js features and API.
- Learn Next.js - an interactive Next.js tutorial.
You can check out the Next.js GitHub repository - your feedback and contributions are welcome!
This project uses the following tools to ensure code quality and consistency:
- ESLint: For code linting
- Prettier: For code formatting
Run the following commands:
# Lint code
bun run lint
# Format code
bun run format
# Check formatting without making changes
bun run format:check
# Type checking
bun run type-checkThis project uses:
- Husky: For Git hooks
- lint-staged: For running linters on staged files
- commitlint: For enforcing commit message conventions
- Commitizen: For standardized commit messages
- Standard Version: For automated versioning and changelog generation
To create a standardized commit, use:
bun run commitThis will launch an interactive prompt to help you create a properly formatted commit message.
Commit messages follow the Conventional Commits format:
<type>[optional scope]: <description>
[optional body]
[optional footer(s)]
Types include:
feat: A new featureimprove: Improvements to existing featuresfix: A bug fixdeploy: Deployment changesdocs: Documentation changesstyle: Code style changes (formatting, etc.)refactor: Code changes that neither fix bugs nor add featuresperf: Performance improvementstest: Adding or fixing testsbuild: Build system or dependency changesci: CI configuration changeschore: Other changes that don't modify src or test filesrevert: Reverting previous changesmerge: Merging branches
Example: feat: add user authentication
This project uses semantic versioning. To create a new version:
# Automatic versioning based on commits
bun run release
# Specific version bumps
bun run release:patch # 0.0.x
bun run release:minor # 0.x.0
bun run release:major # x.0.0This will:
- Update the version in package.json
- Update the VERSION file
- Generate/update the CHANGELOG.md file
- Create a git tag
- Create a version commit
This project includes several documentation files:
Contains build and development instructions, including:
- Prerequisites and dependencies
- Installation steps
- Development workflow
- Production build process
- Testing procedures
- Project structure overview
- Environment variables
- Deployment information
Guidelines for contributing to the project, including:
- Code of conduct
- Contribution process
- Development guidelines and standards
- Pull request process
- Testing requirements
- Bug reporting guidelines
- Feature request guidelines
MIT License for the project, which allows for:
- Free use, modification, and distribution
- Limited liability protection
- Requirements to include the license notice
Security policy for the project, including:
- Supported versions
- Vulnerability reporting process
- Security best practices
- Update procedures
This project includes several configuration files for development and versioning:
Configures Commitizen to use the conventional changelog adapter. This enables the interactive commit prompt.
Configures Standard Version for changelog generation and versioning. It defines:
- Which commit types appear in which changelog sections
- URL formats for commits, comparisons, and issues
- Release commit message format
Defines rules for commit message validation, including:
- Required format and structure
- Allowed types and their descriptions
- Interactive prompt configuration
Contains Git hooks:
pre-commit: Runs linting and formatting on staged files before commitscommit-msg: Validates commit messages against commitlint rules
Configures Bun behavior for the project, including:
- Installation settings
- Cache directory
- Test coverage
- Debug options
Configures npm/Bun package management behavior:
save-exact=true: Saves exact versions of dependenciesengine-strict=true: Enforces Node.js version requirementslegacy-peer-deps=false: Uses modern peer dependency resolutionnode-linker=hoisted: Controls how dependencies are linked
Stores the current project version as a simple text file.
The easiest way to deploy your Next.js app is to use the Vercel Platform from the creators of Next.js.
Check out our Next.js deployment documentation for more details.