Rebuilding Linear.app with Next JS 13, Tailwind CSS, TypeScript, ESLint, Prettier, Husky, Lint-Staged, Commitlint, PostCSS, Tailwind CSS.
- Next.js for Static Site Generator
- Type checking TypeScript
- Integrate with Tailwind CSS
- Linter with ESLint (default NextJS, NextJS Core Web Vitals, Tailwind CSS and Airbnb configuration)
- Easily construct component variants with CVA
- Utility for constructing
classname
strings conditionally with clsx - Code Formatter with Prettier
- Husky for Git Hooks
- Lint-staged for running linters on Git staged files
- Lint git commit with Commitlint
- Write standard compliant commit messages with Commitizen
- Absolute Imports using
@
prefix
- Node.js 14+ and npm
Run the following command on your local environment:
git clone https://github.com/thenameiswiiwin/linear-clone.git.git
cd linear-clone
yarn
Then, you can run locally in development mode with live reload:
yarn dev
Open http://localhost:3000 with your favorite browser to see your project.
.
├── README.md # README file
├── .husky # Husky configuration
├── public # Public assets folder
├── src
│ ├── app # Layouts components, error components, and loading components
│ ├── assets # Images and fonts
│ └── components # React components
│ └── lib # Utility functions
│ ├── pages # Next JS Pages
│ ├── styles # Styles folder
├── tailwind.config.js # Tailwind CSS configuration
└── tsconfig.json # TypeScript configuration
The project enforces Conventional Commits specification. This means that all your commit messages must be formatted according to the specification. To help you write commit messages, the project uses Commitizen, an interactive CLI that guides you through the commit process. To use it, run the following command:
yarn commit
One of the benefits of using Conventional Commits is that it allows us to automatically generate a CHANGELOG
file. It also allows us to automatically determine the next version number based on the types of commits that are included in a release.
You can see the results locally in production mode with:
yarn build
yarn start
The generated HTML and CSS files are minified (built-in feature from Next js). It will also removed unused CSS from Tailwind CSS.