diff options
| author | nsfisis <54318333+nsfisis@users.noreply.github.com> | 2026-02-09 19:59:10 +0900 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2026-02-09 19:59:10 +0900 |
| commit | c863e64c0521926e785f4aa7ecf4cf15bb9defa7 (patch) | |
| tree | 70f28c90d13345ddfecf46273f2dc8bbeca3964b | |
| parent | bb938893e7bbfba7b6913ba1daa1a5996dfdf2f8 (diff) | |
| parent | 480ad4288709fb203e92f6542c678315941bdf60 (diff) | |
| download | feedaka-c863e64c0521926e785f4aa7ecf4cf15bb9defa7.tar.gz feedaka-c863e64c0521926e785f4aa7ecf4cf15bb9defa7.tar.zst feedaka-c863e64c0521926e785f4aa7ecf4cf15bb9defa7.zip | |
Merge pull request #3 from nsfisis/claude/create-claude-md-HcQ4U
Add CLAUDE.md documentation for project setup and structure
| -rw-r--r-- | CLAUDE.md | 82 |
1 files changed, 82 insertions, 0 deletions
diff --git a/CLAUDE.md b/CLAUDE.md new file mode 100644 index 0000000..4c14a58 --- /dev/null +++ b/CLAUDE.md @@ -0,0 +1,82 @@ +# CLAUDE.md + +## Project Overview + +Feedaka is a personal RSS/Atom feed reader. Monorepo with a Go backend and React/TypeScript frontend, communicating via GraphQL. + +## Tech Stack + +- **Backend:** Go 1.24+, Echo v4, gqlgen (GraphQL), SQLite with sqlc +- **Frontend:** React 19, TypeScript, Vite, Tailwind CSS, urql (GraphQL client), wouter (routing) +- **Task Runner:** [just](https://github.com/casey/just) (justfiles at root and `backend/`) +- **Linting/Formatting:** Biome (frontend), go fmt (backend) +- **Code Generation:** gqlgen + sqlc (backend), graphql-codegen (frontend) + +## Common Commands + +### Build & Dev + +```sh +just build # Build both frontend and backend +just dev # Start dev servers (frontend + backend) +just fmt # Format all code +just check # Type-check all code +just generate # Regenerate GraphQL and DB code +``` + +### Frontend (run from `frontend/`) + +```sh +npm run build # Build with TypeScript + Vite +npm run dev # Start Vite dev server +npm run check # Run Biome checks +npm run fix # Auto-fix with Biome +npm run generate # Generate GraphQL types +``` + +### Backend (run from `backend/`) + +```sh +just build # Compile Go binary +just fmt # go fmt +just check # Verify build compiles +just generate # Run go generate (gqlgen + sqlc) +``` + +## Code Generation + +Generated files — do not edit by hand: + +- `backend/graphql/generated.go` — gqlgen output +- `backend/graphql/model/generated.go` — gqlgen models +- `backend/db/users.sql.go`, `backend/db/articles.sql.go`, `backend/db/feeds.sql.go` — sqlc output +- `frontend/src/graphql/generated/` — graphql-codegen output + +Regenerate with `just generate` from the repo root. + +## Project Structure + +``` +graphql/schema.graphql # Shared GraphQL schema (source of truth) +backend/ + cmd/ # CLI commands (serve, migrate, create-user) + db/ # Database layer, migrations, sqlc queries + graphql/resolver/ # GraphQL resolvers (edit these for backend logic) + feed/ # Feed fetching logic + auth/ # Authentication + config/ # Configuration + gqlgen.yml # gqlgen config + sqlc.yaml # sqlc config +frontend/ + src/ + components/ # React components + pages/ # Page components + contexts/ # React contexts (auth) + graphql/ # GraphQL queries/mutations + services/ # GraphQL client setup + biome.json # Biome config +``` + +## CI + +CI (`just check`, `just build`, `just fmt`) runs on pushes and PRs to main. Formatting changes must be committed before pushing — CI fails if `just fmt` produces uncommitted changes. |
