Skip to content

feat: Migrate from CRA/Vite to Next.js - #18

Merged
AntonNiklasson merged 5 commits into
mainfrom
feature/nextjs-migration
Jan 16, 2026
Merged

feat: Migrate from CRA/Vite to Next.js#18
AntonNiklasson merged 5 commits into
mainfrom
feature/nextjs-migration

Conversation

@AntonNiklasson

@AntonNiklasson AntonNiklasson commented Jan 15, 2026

Copy link
Copy Markdown
Owner

Summary

Migrates the project from CRA/Vite to Next.js 15 with Vercel deployment.

  • Remove all Create React App legacy files (webpack configs, babel, jest setup, old pages/views)
  • Remove Vite configuration and switch to Next.js 15 with App Router
  • Migrate pages to Next.js app directory structure with proper client/server components
  • Add legacy route redirects (/challenge/:id/learn/:id, /theend/complete)
  • Clean up 50+ unused dependencies, reducing bundle from ~190 packages to ~50
  • Configure MDX support for lesson content
  • Add vercel.json for Vercel deployment configuration

Deployment

This project is now configured for Vercel deployment as a Next.js application. Vercel will automatically detect the Next.js framework and deploy accordingly.

Breaking Changes

None - all existing routes are preserved via redirects.

Manual Follow-up Required

The CI workflow (.github/workflows/ci.yml) needs to be updated manually:

  • Change branches from main to master
  • Update biome check to include app folder
  • Replace tsgo with tsc for type checking
  • Remove --frozen-lockfile from install step

Test plan

  • pnpm install completes successfully
  • pnpm run build passes
  • pnpm exec biome check src app passes
  • Run pnpm dev and verify landing page loads
  • Navigate through tutorial lessons
  • Test legacy routes redirect correctly
  • Verify Vercel deployment works

🤖 Generated with Claude Code

- Remove all CRA legacy files (webpack configs, babel, jest setup)
- Remove Vite configuration and related files
- Set up Next.js 15 with App Router
- Migrate pages to Next.js app directory structure
- Add legacy route redirects for backwards compatibility
- Clean up unused dependencies and reduce package size
- Add 'use client' directives for client components
- Configure MDX support for lesson content

Note: CI workflow update needs to be done manually due to token scope

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
@vercel

vercel Bot commented Jan 15, 2026

Copy link
Copy Markdown

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

Project Deployment Review Updated (UTC)
cssgrid-pro Ready Ready Preview, Comment Jan 16, 2026 9:07am

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Accidentally removed @typescript/native-preview during cleanup.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Make sidebar a slide-out drawer on mobile (hidden by default)
- Add hamburger menu button to open sidebar
- Stack content vertically on mobile instead of 2-column grid
- Add bottom navigation bar on mobile for easier access
- Make header responsive with smaller text/buttons
- Make lesson content padding responsive
- Add overlay when sidebar is open on mobile

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
@AntonNiklasson
AntonNiklasson merged commit f089557 into main Jan 16, 2026
3 checks passed
@AntonNiklasson
AntonNiklasson deleted the feature/nextjs-migration branch January 16, 2026 15:21
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant