| name | project-scaffold |
| description | Generate complete fullstack project structure with all boilerplate
|
| shortcut | ps |
| category | devops |
| difficulty | beginner |
| estimated_time | 5-10 minutes |
Project Scaffold
Generates a complete fullstack project structure with frontend, backend, database, authentication, testing, and deployment configuration.
What This Command Does
Generated Project:
- Frontend (React + TypeScript + Vite)
- Backend (Express or FastAPI)
- Database (PostgreSQL + Prisma/SQLAlchemy)
- Authentication (JWT + OAuth)
- Testing (Jest/Pytest + E2E)
- CI/CD (GitHub Actions)
- Docker setup
- Documentation
Output: Production-ready fullstack application
Time: 5-10 minutes
Usage
/project-scaffold "Task Management App"
/ps "E-commerce Platform" --stack react,express,postgresql
/ps "Blog Platform" --features auth,admin,payments,analytics
Generated Structure
my-app/
├── client/ # Frontend (React + TypeScript + Vite)
│ ├── src/
│ │ ├── components/ # React components
│ │ ├── pages/ # Page components
│ │ ├── hooks/ # Custom hooks
│ │ ├── services/ # API services
│ │ ├── context/ # Context providers
│ │ ├── utils/ # Utilities
│ │ ├── types/ # TypeScript types
│ │ ├── App.tsx
│ │ └── main.tsx
│ ├── public/
│ ├── index.html
│ ├── package.json
│ ├── vite.config.ts
│ ├── tsconfig.json
│ └── tailwind.config.js
│
├── server/ # Backend (Express + TypeScript)
│ ├── src/
│ │ ├── controllers/ # Request handlers
│ │ ├── services/ # Business logic
│ │ ├── models/ # Database models
│ │ ├── routes/ # API routes
│ │ ├── middleware/ # Express middleware
│ │ ├── utils/ # Utilities
│ │ ├── config/ # Configuration
│ │ ├── app.ts
│ │ └── server.ts
│ ├── tests/
│ ├── prisma/
│ │ └── schema.prisma
│ ├── package.json
│ ├── tsconfig.json
│ └── jest.config.js
│
├── .github/
│ └── workflows/
│ ├── ci.yml # Continuous Integration
│ └── deploy.yml # Deployment
│
├── docker-compose.yml # Development environment
├── Dockerfile # Production container
├── .env.example # Environment template
├── .gitignore
├── README.md
└── package.json # Root workspace
Example: Task Management App
Frontend (client/src/pages/Dashboard.tsx):
import { useState, useEffect } from 'react'
import { TaskList } from '../components/TaskList'
import { CreateTaskForm } from '../components/CreateTaskForm'
import { useAuth } from '../context/AuthContext'
import { taskService } from '../services/api'
export function Dashboard() {
const { user } = useAuth()
const [tasks, setTasks] = useState([])
const [loading, setLoading] = useState(true)
useEffect(() => {
loadTasks()
}, [])
async function loadTasks() {
try {
const data = await taskService.getAll()
setTasks(data)
} catch (error) {
console.error('Failed to load tasks:', error)
} finally {
setLoading(false)
}
}
async function handleCreateTask() {
newTask = taskService.(task)
([newTask, ...tasks])
}
() {
updated = taskService.(id)
(tasks.( t. === id ? updated : t))
}
(loading)
(
)
}
Backend (server/src/controllers/task.controller.ts):
import { Request, Response } from 'express'
import { TaskService } from '../services/task.service'
const taskService = new TaskService()
export class TaskController {
async getAll(req: Request, res: Response) {
const tasks = await taskService.findAll(req.user!.userId)
res.json({ data: tasks })
}
async create(req: Request, res: Response) {
const task = await taskService.create(req.user!.userId, req.body)
res.status(201).json({ data: task })
}
async toggle(req: Request, res: Response) {
const task = taskService.(req.., req.!.)
res.({ : task })
}
() {
taskService.(req.., req.!.)
res.().()
}
}
Quick Start
1. Install dependencies:
npm install
cd client && npm install
cd server && npm install
2. Setup environment:
cp .env.example .env
3. Setup database:
cd server
npx prisma migrate dev
npx prisma generate
4. Start development:
docker-compose up
npm run dev:client
npm run dev:server
5. Run tests:
npm run test
npm run test:client
npm run test:server
Stack Options
Frontend:
- React + TypeScript + Vite (default)
- Next.js 14 (App Router)
- Vue 3 + TypeScript
Backend:
- Express + TypeScript (default)
- FastAPI + Python
- NestJS
Database:
- PostgreSQL + Prisma (default)
- MongoDB + Mongoose
- MySQL + TypeORM
Styling:
- Tailwind CSS (default)
- CSS Modules
- Styled Components
Included Features
Authentication:
- JWT authentication
- OAuth (Google, GitHub)
- Email verification
- Password reset
Testing:
- Frontend: Jest + React Testing Library + Cypress
- Backend: Jest + Supertest
- E2E: Playwright
CI/CD:
- GitHub Actions workflows
- Automated testing
- Docker build and push
- Deployment to cloud platforms
Development:
- Hot reload (frontend + backend)
- Docker development environment
- Database migrations
- Seed data
Production:
- Optimized Docker images
- Health checks
- Logging and monitoring
- Environment-based config
Customization
Add Features:
/ps --add-feature payments --provider stripe
/ps --add-feature uploads --storage s3
/ps --add-feature email --provider sendgrid
/ps --add-feature admin
Change Stack:
/ps --frontend nextjs
/ps --backend fastapi
/ps --database mongodb
Deployment
Vercel (Frontend):
cd client
vercel
Railway (Backend):
cd server
railway up
Docker (Full Stack):
docker-compose -f docker-compose.prod.yml up -d
Related Commands
/express-api-scaffold - Generate Express API
/fastapi-scaffold - Generate FastAPI
/auth-setup - Authentication boilerplate
/env-config-setup - Environment configuration
Start building immediately. Ship faster. Scale effortlessly.