@@ -18,18 +18,44 @@ Since the project part has ACF custom fields. I use a second [GraphQL extension]
1818
1919## 📦 Stack
2020
21- - ` TypeScript ` : v5
22- - ` NextJS ` : v15.x
23- - ` Node ` : v22+
24- - ` Tailwind CSS ` : v4
25- - ` WordPress ` : v6.7+
26- - ` Framer Motion ` : for animations between page transitions
27- - ` Akismet ` : to check spam in the contact form
28- - ` GraphQL ` : communication with the WordPress API
21+ ### Core Technologies
22+
23+ - ` TypeScript ` : v5.9+
24+ - ` Next.js ` : v16.0 (App Router)
25+ - ` React ` : v19.2
26+ - ` Node.js ` : v24+ (Volta)
27+ - ` pnpm ` : v10.3 (Package manager)
28+
29+ ### Styling & Animations
30+
31+ - ` Tailwind CSS ` : v4.1+ with Typography plugin
32+ - ` Framer Motion ` : v12+ for page transitions and animations
33+ - ` GSAP ` : v3+ for advanced animations
34+
35+ ### Backend & Data
36+
37+ - ` WordPress ` : v6.7+ (Headless CMS)
38+ - ` GraphQL ` : WPGraphQL for WordPress API communication
39+ - ` WPGraphQL ACF ` : For Advanced Custom Fields support
40+ - ` SWR ` : Client-side data fetching
41+
42+ ### Content & Forms
43+
44+ - ` MDX ` : Blog posts with frontmatter support
45+ - ` React Hook Form ` : Form management
46+ - ` Akismet ` : Spam protection for contact form
47+ - ` Mailjet ` : Email service integration
48+
49+ ### DevOps & Monitoring
50+
51+ - ` Sentry ` : Error tracking and performance monitoring
52+ - ` Turbopack ` : Build tool (dev & production)
53+ - ` Jest ` : Testing framework
54+ - ` ESLint ` : Next.js core + TypeScript + Prettier
2955
3056## ⚡️ Installation
3157
32- Make sure to use a recent version of Node.js (>= v22 ).
58+ Make sure to use a recent version of Node.js (>= v24 ).
3359
3460``` bash
3561pnpm install
@@ -38,6 +64,15 @@ pnpm dev
3864
3965You can now access to the project with: http://localhost:3000
4066
67+ ### Available Commands
68+
69+ - ` pnpm dev ` - Start development server with Turbopack (http://localhost:3000 )
70+ - ` pnpm build ` - Build production application with Turbopack
71+ - ` pnpm start ` - Start production server
72+ - ` pnpm lint ` - Run ESLint for code quality
73+ - ` pnpm type-check ` - TypeScript type checking
74+ - ` pnpm test ` - Run Jest tests in watch mode
75+
4176## 🔧 Configuration
4277
4378To correctly run this project, you must create an environment variable named ` .env.local ` .
@@ -50,6 +85,46 @@ To correctly run this project, you must create an environment variable named `.e
5085- ` WORDPRESS_PREVIEW_SECRET ` : The token used by ` /api/preview?secret=XXX `
5186- ` SLACK_WEBHOOK_URL ` : If set, on each contact message, a Slack Webhook will be sent.
5287
88+ ## 🏗️ Architecture
89+
90+ ### Project Structure
91+
92+ ```
93+ app/
94+ ├── (pages)/ # Route groups for main pages
95+ ├── components/ # Reusable React components
96+ ├── types/ # TypeScript type definitions (including GraphQL types)
97+ ├── libs/ # Utility libraries and API functions
98+ ├── utils/ # Helper utilities
99+ ├── hooks/ # Custom React hooks
100+ ├── layouts/ # Layout components
101+ └── graphql/ # GraphQL queries and mutations
102+ ```
103+
104+ ### Path Aliases
105+
106+ The project uses TypeScript path aliases for cleaner imports:
107+
108+ - ` @/* ` → ` app/* `
109+ - ` @component/* ` → ` app/components/* `
110+ - ` @layout/* ` → ` app/layouts/* `
111+ - ` @hook/* ` → ` app/hooks/* `
112+ - ` @type/* ` → ` app/types/* `
113+ - ` @lib/* ` → ` app/libs/* `
114+ - ` @util/* ` → ` app/utils/* `
115+ - ` @image/* ` → ` public/images/* `
116+ - ` @graphql-query/* ` → ` app/graphql/* `
117+
118+ ### Key Features
119+
120+ - ** App Router** : Using Next.js 16 App Router architecture
121+ - ** TypeScript Strict Mode** : Comprehensive type safety
122+ - ** MDX Support** : Blog posts written in MDX with frontmatter
123+ - ** Image Optimization** : Remote WordPress images served via i0.wp.com
124+ - ** Preview Mode** : Draft content preview functionality
125+ - ** Tailwind Custom Theme** : 8px increment spacing system with custom color palette
126+ - ** Authentication** : JWT-based for accessing private WordPress content
127+
53128# 🔒️ WordPress Configuration
54129
55130in this part, we will configure the WordPress part to ensure the communication with Next.js
0 commit comments