ShipDesk
Task Manager
ShipDesk
Progress
01

Project Configuration

next.config, Tailwind, shadcn init, environment variables, folder structure

Week 12–3 daysEstimated: 8h total
Why this phase matters
Configuration mistakes cascade into every subsequent phase. A wrong content path in Tailwind means no styles. A missing env variable means API calls silently fail. Get this right once and never think about it again.
Configuration Files
Create next.config.jsadd S3 image domains, API proxy rewrites
30 min
Copy tailwind.config.jsidentical, just update content paths from ./src/** to ./**
5 min
Create .env.localrename all VITE_ vars to NEXT_PUBLIC_
10 min
Install all shadcn componentsusing the batch command below
10 min
Folder Structure — Copy These Exactly
Copy src/components/→ components/ — works as-is
2 min
Copy src/store/→ store/ — add 'use client' as line 1
10 min
Copy src/utils/→ utils/ — unchanged
2 min
Copy src/assets/→ public/assets/
2 min
next.config.js
/** @type {import('next').NextConfig} */
const nextConfig = {
  images: {
    remotePatterns: [
      { protocol: 'https', hostname: '*.amazonaws.com' },
    ],
  },
  async rewrites() {
    return [
      { source: '/api/:path*', destination: `${process.env.NEXT_PUBLIC_API_URL}/api/:path*` },
    ]
  },
}
module.exports = nextConfig
terminal — batch install shadcn components
# Install all 21 components at once
npx shadcn@latest add \
  button input label card dialog sheet \
  table select textarea checkbox \
  avatar badge separator skeleton \
  toast popover command dropdown-menu \
  form tabs tooltip
.env.local — template
# API
NEXT_PUBLIC_API_URL=http://localhost:5000

# Auth
NEXT_PUBLIC_JWT_SECRET=your-jwt-secret

# AWS S3
NEXT_PUBLIC_S3_BUCKET=your-bucket-name
NEXT_PUBLIC_S3_REGION=ap-south-1

# Socket.io
NEXT_PUBLIC_SOCKET_URL=http://localhost:5000

# App
NEXT_PUBLIC_APP_NAME=Medicare
NEXT_PUBLIC_APP_URL=http://localhost:3000
tailwind.config.js — content paths
// BEFORE (Vite — src directory)
content: ['./src/**/*.{js,jsx}']

// AFTER (Next.js — root directory)
content: [
  './app/**/*.{js,jsx}',
  './components/**/*.{js,jsx}',
  './lib/**/*.{js,jsx}',
]
Previous
Phase 00Preparation & Audit
Next
Phase 02Public Pages — SEO Critical