Skip to content

martinIvovIv/phoenix-org

Repository files navigation


Features · Getting started · Scripts overview ·

🎉 Features

  • 🚀 Next.js 14 (App router)
  • ⚛️ React 18
  • 📘 Typescript
  • 🎨 TailwindCSS - Class sorting, merging and linting
  • 🛠️ Shadcn/ui - Customizable UI components
  • 📋 React-hook-form - Manage your forms easy and efficient
  • 🔍 Zod - Schema validation library
  • 🧪 Jest & React Testing Library - Configured for unit testing
  • 🎭 Playwright - Configured for e2e testing
  • 📈 Absolute Import & Path Alias - Import components using @/ prefix
  • 💅 Prettier - Code formatter
  • 🧹 Eslint - Code linting tool
  • 🐶 Husky & Lint Staged - Run scripts on your staged files before they are committed
  • 🔹 Icons - From Lucide
  • 🌑 Dark mode - With next-themes
  • 🗺️ Sitemap & robots.txt - With next-sitemap
  • 📝 Commitlint - Lint your git commits
  • 🤖 Github actions - Lint your code on PR
  • ⚙️ T3-env - Manage your environment variables
  • 💯 Perfect Lighthouse score
  • 🌐 I18n with Paraglide

🎯 Getting started

1. Clone this project using git clone

git clone https://github.com/martinIvovIv/phoenix-org

2. Install dependencies

npm install

3. Set up environment variables

Create .env file and set env variables from .env.example file.

4. Prepare husky

It is required if you want husky to work

npm run prepare

5. Run the dev server

You can start the server using this command:

npm run dev

and open http://localhost:3000/ to see this app.

📁 Project structure

.
├── .github                         # GitHub folder
├── .husky                          # Husky configuration
├── public                          # Public assets folder
└── src
    ├── __tests__                   # Unit and e2e tests
    ├── actions                     # Server actions
    ├── app                         # Next JS App (App Router)
    ├── components                  # React components
    ├── hooks                       # Custom hooks
    ├── lib                         # Functions and utilities
    ├── styles                      # Styles folder
    ├── types                       # Type definitions
    ├── messages                    # Messages for i18n
    ├── paraglide                   # (generated) compiled i18n messages
    └── env.mjs                     # Env variables config file

⚙️ Scripts overview

The following scripts are available in the package.json:

  • dev: Run development server
  • build: Build the app
  • start: Run production server
  • preview: Run build and start commands together
  • lint: Lint the code using Eslint
  • lint:fix: Fix linting errors
  • format:check: Checks the code for proper formatting
  • format:write: Fix formatting issues
  • typecheck: Type-check TypeScript without emitting files
  • test: Run unit tests
  • test:watch: Run unit tests in watch mode
  • e2e: Run end-to-end tests
  • e2e:ui: Run end-to-end tests with UI
  • postbuild: Generate sitemap
  • prepare: Install Husky for managing Git hooks

Made by Martin Ivanov