Skip to content

Conversation

@danangekal
Copy link
Owner

🚀 Upgrade Tech Stack to Latest Versions

Summary

Major upgrade of the entire tech stack to modern
versions with improved tooling, performance, and
developer experience.

📦 Core Dependencies Upgraded

Runtime & Framework:

  • React: 18.2.0 → 19.2.0
  • Next.js: 13.5.4 → 15.5.4 (with Turbopack support)
  • Node.js: >=16.14 → >=22.0.0
  • TypeScript: 5.2.2 → 5.7.3

Package Manager Migration:

  • ✅ Migrated from Yarn to pnpm
  • ✅ Added packageManager field for version locking
    ([email protected])
  • ✅ Added pnpm engine requirement (>=9.0.0)
  • ✅ Removed yarn.lock, added pnpm-lock.yaml

Code Quality Tools:

  • ❌ Removed: ESLint + Prettier
  • ✅ Added: Biome (single tool for linting &
    formatting)
    • Faster performance
    • Better consistency
    • Simpler configuration
  • Updated Husky: 8.0.3 → 9.1.7
  • Updated lint-staged: 14.0.1 → 16.2.3

🔧 Configuration Changes

New Files:

  • biome.json - Biome configuration with strict
    linting rules
  • CLAUDE.md - AI assistant guidance for working with
    this codebase
  • pnpm-lock.yaml - pnpm lockfile

Removed Files:

  • .eslintrc.json - Replaced by Biome
  • .prettierrc.json - Replaced by Biome
  • .husky/prepare-commit-msg - Removed commitizen
    dependency
  • yarn.lock - Replaced by pnpm-lock.yaml

Updated Configurations:

  • package.json - Updated all scripts to use pnpm and
    Biome
  • next.config.js - Removed deprecated swcMinify
    option
  • .lintstagedrc.json - Updated to use Biome
  • .husky/pre-commit - Simplified for Husky v9
  • Dockerfile - Updated to Node 22 and pnpm
  • .github/workflows/main.yml - Updated CI/CD
    pipeline
  • .gitignore - Added pnpm-debug.log, yarn.lock
  • .dockerignore - Enhanced with more ignores

📚 Documentation Updates

README.md:

  • ✅ Updated features list with new tech stack
  • ✅ Added prerequisites section
  • ✅ Reorganized into clear sections (Installation,
    Development, Code Quality)
  • ✅ Added complete pnpm command documentation
  • ✅ Added project structure diagram
  • ✅ Added Git hooks and code style sections
  • ✅ Improved Docker instructions

CLAUDE.md (New):

  • Complete development setup guide
  • Project architecture documentation
  • Code quality tool configurations
  • Important notes for future development
  • Migration history

🎨 Biome Configuration Highlights

{
"linter": {
"rules": {
"noConsole": "error",
"noUnusedVariables": "error",
"noUnusedImports": "error",
"useImportType": "error"
}
},
"formatter": {
"indentStyle": "space",
"indentWidth": 2,
"lineWidth": 80,
"quoteStyle": "single"
}
}

🐳 Docker Improvements

  • Updated base image to node:22-alpine
  • Added pnpm via Corepack
  • Optimized layer caching (copy package files first)
  • Updated .dockerignore for smaller images

🔄 CI/CD Updates

  • Updated GitHub Actions to latest versions (v4, v5)
  • Added Node.js 22 setup
  • Added pnpm installation via Corepack
  • Added Biome check and type-check steps
  • Removed outdated action versions

✅ Testing

  • ✅ Build successful (pnpm build)
  • ✅ Type checking passed (pnpm type-check)
  • ✅ Biome linting passed (pnpm check)
  • ✅ Git hooks working correctly
  • ✅ Docker build tested

🎯 Benefits

  1. Performance: Turbopack in dev mode, pnpm faster
    installs
  2. Modern Features: React 19, Next.js 15
    improvements
  3. Better DX: Single tool (Biome) for linting &
    formatting
  4. Consistency: Locked package manager version
  5. Maintainability: Simpler tooling, better
    documentation

📝 Breaking Changes

  • Node.js: Requires Node.js >= 22.0.0
  • Package Manager: Must use pnpm (not npm or yarn)
  • Scripts: All commands changed from yarn to pnpm
  • Linting: ESLint removed, must use Biome (pnpm
    check)
  • Formatting: Prettier removed, must use Biome (pnpm
    format)

🔗 Related Issues

Closes #[issue-number]


Migration Guide for Developers:

1. Ensure Node.js >= 22.0.0

node --version

2. Install pnpm (if not installed)

npm install -g pnpm

3. Remove old dependencies

rm -rf node_modules yarn.lock

4. Install with pnpm

pnpm install

5. New commands

pnpm dev # Start dev server with Turbopack
pnpm build # Build for production
pnpm check # Lint & format (replaces yarn
lint + yarn format)
pnpm type-check # Type checking

@danangekal danangekal self-assigned this Oct 3, 2025
@danangekal danangekal added documentation Improvements or additions to documentation enhancement New feature or request dependencies Pull requests that update a dependency file hacktoberfest-accepted For event hacktoberfest hacktoberfest For event hacktoberfest labels Oct 3, 2025
@vercel
Copy link

vercel bot commented Oct 3, 2025

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Preview Comments Updated (UTC)
next-typescript-starter-k8gv Ready Ready Preview Comment Oct 3, 2025 10:14am

@danangekal danangekal merged commit bbd8a34 into main Oct 3, 2025
3 checks passed
@danangekal danangekal deleted the feature/update-tech-stacks branch October 3, 2025 10:16
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file documentation Improvements or additions to documentation enhancement New feature or request hacktoberfest For event hacktoberfest hacktoberfest-accepted For event hacktoberfest

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants