init project structer
This commit is contained in:
99
README.md
Normal file
99
README.md
Normal 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
|
||||
|
||||
Reference in New Issue
Block a user