# Placebo.mk - Project Structure ## Monorepo Structure ``` placeboMk/ ├── backend/ # NestJS API server │ ├── src/ │ │ ├── modules/ # Feature modules │ │ ├── main.ts # Application entry point │ │ └── app.module.ts # Root module │ ├── .env.example │ └── package.json ├── frontend/ # TanStack React application │ ├── src/ │ │ ├── routes/ # TanStack Router routes │ │ ├── components/ # React components │ │ ├── queries/ # TanStack Query hooks │ │ ├── lib/ # Utilities and API client │ │ ├── types/ # TypeScript types │ │ └── main.tsx # Application entry point │ ├── .env.example │ └── package.json ├── cms/ # Strapi CMS (to be initialized) └── AGENTS.md # Agent guidelines ``` ## Getting Started ### Backend (NestJS) ```bash cd backend npm install cp .env.example .env npm run start:dev ``` ### Frontend (TanStack) ```bash cd frontend npm install cp .env.example .env npm run dev ``` ### CMS (Strapi) To be initialized with `npm create strapi-app@latest cms` ## API Endpoints - `GET /api/v1/articles` - List articles with filters - `GET /api/v1/articles/:id` - Get article by ID - `GET /api/v1/articles/slug/:slug` - Get article by slug - `POST /api/v1/articles` - Create article - `PUT /api/v1/articles/:id` - Update article - `DELETE /api/v1/articles/:id` - Delete article ## Database SQLite database with entities: - Articles (title, content, status, tags, etc.) - Authors (name, bio, avatar, etc.) - Categories (name, description, parent-child relations) ## Tech Stack - **Frontend**: TanStack (React, Query, Router) + Vite - **Backend**: NestJS + TypeORM + SQLite - **CMS**: Strapi - **Language**: TypeScript