A Next.js portfolio and blog with optional Notion CMS integration, i18n (en/fr), and local Markdown articles.
- Next.js 16 – React framework
- React 19
- Tailwind CSS 4 + DaisyUI
- next-i18next – i18n (en/fr)
- Notion API – optional CMS (feature-flagged)
- Framer Motion – animations
- Zod – schema validation
- Jest + Cypress – tests
- Node.js
24.x(see .nvmrc) - Yarn or npm
# Install dependencies
yarn install
# or: npm install
# Run development server
yarn dev
# or: npm run devOpen http://localhost:3000.
| Command | Description |
|---|---|
yarn dev |
Start dev server |
yarn build |
Production build |
yarn start |
Start production server |
yarn lint |
Run ESLint |
yarn lint:fix |
Fix lint issues |
yarn format |
Format with Prettier |
yarn format:check |
Check formatting |
yarn test |
Run Jest tests |
yarn test:watch |
Jest watch mode |
yarn test:coverage |
Jest with coverage |
yarn test:ci |
CI test run |
yarn cypress |
Open Cypress |
yarn cypress:headless |
Cypress headless |
yarn e2e |
E2E (dev + Cypress) |
yarn analyze |
Build with bundle analyzer |
Production is the master branch (prod = master). Everything below assumes that.
| Branch | Role |
|---|---|
| master | Prod. Production-ready releases. Only merged from release/* or hotfixes. Default branch. |
| dev | Integration branch for features. Merge feature branches here first. |
| release/1.0.x | Release preparation. Bump version, fix release-only issues, then merge to master (prod). |
| release/v1.0.0 | Historical release branch. |
-
Base branch for new work:
dev- Create feature branches from
dev, not frommaster.
- Create feature branches from
-
Feature work
- Branch from
dev:
git checkout dev && git pull && git checkout -b feature/your-feature - Commit and push to
feature/your-feature. - Open a PR into
dev. Merge after review/tests.
- Branch from
-
Releases
- Branch from
dev:
git checkout dev && git pull && git checkout -b release/1.0.2 - Bump version in
package.json, update changelog if you have one, fix any release-blocking bugs. - Run tests and build:
yarn test:ci && yarn build - Open a PR into
master(or merge when ready). - Tag after merge:
git checkout master && git pull && git tag v1.0.2 && git push origin v1.0.2
(Do not push if you prefer to tag later.)
- Branch from
-
Hotfixes (production-only fixes)
- Branch from
master:
git checkout master && git pull && git checkout -b hotfix/short-fix - Fix, test, then merge into
master(and optionally intodevso history stays aligned).
- Branch from
-
Do not
- Put platform-specific binaries (e.g.
@next/swc-win32-x64-msvc) independencies; Next.js installs the right SWC via optionalDependencies. - Merge directly to
masterfrom feature branches; usedev→release/*→master. - Force-push to
master.
- Put platform-specific binaries (e.g.
Brahim Abdelli – brahimabdelli
The project can be deployed on Vercel or any Node-friendly host. Ensure NODE_VERSION or .nvmrc is set to 24 if required by the platform.


