init project structer

This commit is contained in:
2025-10-08 14:12:48 +07:00
commit 9c177abda0
22 changed files with 6737 additions and 0 deletions

99
README.md Normal file
View File

@@ -0,0 +1,99 @@
# 🐱 CatSave - Go + Next.js Monorepo
Single binary application with Go backend + Next.js frontend.
## 📦 Structure
```
catsave/
├── apps/
│ ├── web/ # Next.js frontend (static export)
│ └── server-go/ # Go backend + static file server
├── scripts/ # Build scripts
└── dist/ # Build output
```
## 🚀 Development
### Quick Start
```bash
# 1. Install dependencies
npm install
# 2. Option A: Dev Next.js only
npm run dev:web # http://localhost:3000
# 3. Option B: Dev with Go
npm run build:dev # Build Next.js + sync to Go
npm run dev:go # Run Go server
```
### Workflow
**Frontend Development (Next.js):**
```bash
npm run dev:web # Hot reload on :3000
```
**Full Stack Development (Next.js + Go):**
```bash
# Terminal 1: Build & sync on changes
npm run build:dev
# Terminal 2: Run Go server
npm run dev:go # http://localhost:8080
```
**After changing Next.js code:**
```bash
npm run build:dev # Re-build and sync
# Go server will auto-serve new files
```
## 🔨 Build
### Development Build (Quick)
```bash
npm run build:dev
# → Builds Next.js + syncs to Go static folder
```
### Production Binary
```bash
npm run build
# → Builds Next.js + Go binary
# → Output: dist/catsave (single binary)
```
### Available Commands
| Command | Description |
|---------|-------------|
| `npm run dev:web` | Dev Next.js only (port 3000) |
| `npm run dev:go` | Run Go server (port 8080) |
| `npm run build:web` | Build Next.js static export |
| `npm run sync:static` | Copy Next.js → Go static |
| `npm run build:dev` | Build + sync (development) |
| `npm run build` | Full production build |
## 🎯 Deploy
```bash
# Just copy the binary
./dist/catsave
# Runs on http://localhost:8080
```
## 🏗️ Architecture
- **Go**: API + serve static files (embedded)
- **Next.js**: Static export (HTML/CSS/JS)
- **Result**: One binary file (~10-30MB)
## 📝 Tech Stack
- Go 1.21+
- Next.js 14
- TypeScript
- Tailwind CSS