{"id":32403592,"url":"https://github.com/dracudev/cg-aesthetics-wp","last_synced_at":"2026-07-01T21:31:59.377Z","repository":{"id":318868093,"uuid":"1076779086","full_name":"dracudev/cg-aesthetics-wp","owner":"dracudev","description":"Modern luxury spa website with headless WordPress CMS, Astro frontend, and integrated booking system.","archived":false,"fork":false,"pushed_at":"2025-11-12T18:36:56.000Z","size":537,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-11-12T19:13:36.444Z","etag":null,"topics":["apollo-client","astro","docker-compose","graphql","headless-wordpress","reactjs","tailwindcss","typescript"],"latest_commit_sha":null,"homepage":"","language":"Astro","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dracudev.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-10-15T10:32:28.000Z","updated_at":"2025-11-12T18:37:00.000Z","dependencies_parsed_at":"2025-10-16T23:03:12.169Z","dependency_job_id":"5815fe73-e81b-44de-a777-e80a6a315c0c","html_url":"https://github.com/dracudev/cg-aesthetics-wp","commit_stats":null,"previous_names":["dracudev/serenity-spa-wp"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/dracudev/cg-aesthetics-wp","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dracudev%2Fcg-aesthetics-wp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dracudev%2Fcg-aesthetics-wp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dracudev%2Fcg-aesthetics-wp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dracudev%2Fcg-aesthetics-wp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dracudev","download_url":"https://codeload.github.com/dracudev/cg-aesthetics-wp/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dracudev%2Fcg-aesthetics-wp/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":35024359,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-07-01T02:00:05.325Z","response_time":130,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["apollo-client","astro","docker-compose","graphql","headless-wordpress","reactjs","tailwindcss","typescript"],"created_at":"2025-10-25T10:51:14.672Z","updated_at":"2026-07-01T21:31:59.372Z","avatar_url":"https://github.com/dracudev.png","language":"Astro","funding_links":[],"categories":[],"sub_categories":[],"readme":"# CG Aesthetics Website\n\nModern luxury spa website built with Headless WordPress (GraphQL API) and Astro for optimal performance, SEO, and user experience.\n\n## Project Structure\n\n```\ncg-aesthetics-wp/\n├── docker-compose.yml          # Docker setup for WordPress + MySQL\n├── dev-guide.md                # Complete development guide \u0026 progress tracking\n├── wordpress/                  # WordPress backend (Headless CMS)\n│   ├── wp-content/\n│   │   ├── themes/\n│   │   │   └── cg-aesthetics-headless/  # Custom headless theme\n│   │   ├── plugins/            # WPGraphQL, ACF Pro, Amelia, Yoast SEO\n│   │   └── uploads/            # Media uploads\n│   └── README.md               # WordPress setup instructions\n├── frontend/                   # Astro 4.x frontend application\n│   ├── src/\n│   │   ├── components/         # shadcn/ui adapted components + custom\n│   │   ├── layouts/            # Layout.astro with SEO\n│   │   ├── pages/              # 5 core pages (index, services, about, contact, booking)\n│   │   ├── lib/                # Apollo Client, queries, utils, SEO helpers\n│   │   ├── styles/             # Tailwind CSS with custom design tokens\n│   │   └── types/              # TypeScript definitions\n│   ├── public/                 # robots.txt, sitemap, manifest\n│   └── package.json\n└── agent-docs/                 # Implementation guides \u0026 SEO documentation\n```\n\n## Prerequisites\n\n- **Docker + Docker Compose**\n- **Node.js** 18+ and **pnpm**\n- **Git**\n\n## Quick Start\n\n### 1. Clone and Setup\n\n```bash\ngit clone https://github.com/dracudev/cg-aesthetics-wp.git\ncd cg-aesthetics-wp\n```\n\n### 2. Start WordPress with Docker\n\n```bash\n# Start all services (WordPress, MySQL, phpMyAdmin)\ndocker-compose up -d\n\n# Check if containers are running\ndocker-compose ps\n```\n\nServices will be available at:\n\n- **WordPress:** \u003chttp://localhost:8000\u003e\n- **phpMyAdmin:** \u003chttp://localhost:8080\u003e\n- **GraphQL Endpoint:** \u003chttp://localhost:8000/graphql\u003e (after plugin installation)\n\n### 3. Install WordPress\n\nVisit \u003chttp://localhost:8000\u003e and complete the installation:\n\n- **Site Title:** CG Aesthetics\n- **Username:** admin\n- **Password:** (choose a secure password)\n- **Email:** \u003cyour-email@example.com\u003e\n\nOr use WP-CLI:\n\n```bash\n# Run WordPress installation via WP-CLI\ndocker-compose exec wpcli wp core install \\\n  --url=\"http://localhost:8000\" \\\n  --title=\"CG Aesthetics\" \\\n  --admin_user=\"admin\" \\\n  --admin_password=\"SecurePass123!\" \\\n  --admin_email=\"admin@cg-aesthetics.local\" \\\n  --skip-email\n```\n\n### 4. Install Required Plugins\n\n```bash\n# Install WPGraphQL\ndocker-compose exec wpcli wp plugin install wp-graphql --activate\n\n# Install ACF (free version - Pro requires license)\ndocker-compose exec wpcli wp plugin install advanced-custom-fields --activate\n\n# Activate custom theme\ndocker-compose exec wpcli wp theme activate cg-aesthetics-headless\n\n# Flush permalinks\ndocker-compose exec wpcli wp rewrite structure '/%postname%/' --hard\ndocker-compose exec wpcli wp rewrite flush\n```\n\n**Note:**\n\n- **ACF fields are manually registered to GraphQL** in `functions.php` (no WPGraphQL for ACF plugin needed due to compatibility issues)\n- If you have ACF Pro license, you can install it from \u003chttps://www.advancedcustomfields.com/my-account/\u003e\n\n### 5. Create Service Categories\n\n```bash\ndocker-compose exec wpcli wp term create service_category \"Facials\" --description=\"Facial treatments and skincare\"\ndocker-compose exec wpcli wp term create service_category \"Massages\" --description=\"Relaxing massage therapies\"\ndocker-compose exec wpcli wp term create service_category \"Body Treatments\" --description=\"Full body wellness treatments\"\ndocker-compose exec wpcli wp term create service_category \"Wellness Packages\" --description=\"Complete spa experiences\"\n```\n\n### 6. Test GraphQL Endpoint\n\nVisit \u003chttp://localhost:8000/graphql\u003e and run this test query:\n\n```graphql\nquery GetServices {\n  services {\n    nodes {\n      id\n      title\n      slug\n      serviceDetails {\n        serviceDuration\n        servicePrice\n        featuredService\n      }\n    }\n  }\n}\n```\n\n### 7. Setup Astro Frontend\n\n```bash\ncd frontend\n\n# Install dependencies with pnpm\npnpm install\n\n# Start development server\npnpm dev\n```\n\nThe frontend will be available at: \u003chttp://localhost:4321\u003e\n\n## Docker Commands\n\n```bash\n# Start services\ndocker-compose up -d\n\n# Stop services\ndocker-compose down\n\n# View logs\ndocker-compose logs -f wordpress\n\n# Restart services\ndocker-compose restart\n\n# Run WP-CLI commands\ndocker-compose exec wpcli wp --info\n\n# Access WordPress container shell\ndocker-compose exec wordpress bash\n\n# Backup database\ndocker-compose exec wpcli wp db export - \u003e backup.sql\n\n# Import database\ndocker-compose exec -T wpcli wp db import - \u003c backup.sql\n\n# Remove all containers and volumes (CAUTION: Deletes all data)\ndocker-compose down -v\n```\n\n## Frontend Development (pnpm)\n\n```bash\ncd frontend\n\n# Install dependencies\npnpm install\n\n# Development server\npnpm dev\n\n# Build for production\npnpm build\n\n# Preview production build\npnpm preview\n\n# Add Astro integrations\npnpm astro add tailwind\npnpm astro add react\n\n# Type checking\npnpm check\n```\n\n## Configuration\n\n### WordPress Configuration\n\nWordPress environment variables are set in `docker-compose.yml`. To modify:\n\n```yaml\nenvironment:\n  WORDPRESS_DB_HOST: db:3306\n  WORDPRESS_DB_NAME: cg_aesthetics\n  WORDPRESS_DB_USER: wordpress\n  WORDPRESS_DB_PASSWORD: wordpress\n  FRONTEND_URL: 'http://localhost:4321'\n```\n\n### Frontend Configuration\n\nCreate `frontend/.env`:\n\n```env\nPUBLIC_WORDPRESS_URL=http://localhost:8000\nPUBLIC_GRAPHQL_ENDPOINT=http://localhost:8000/graphql\n```\n\n## Content Model\n\n### Custom Post Types\n\n1. **Services** (`spa_service`)\n\n   - Title, Description, Duration, Price\n   - Categories, Gallery, Booking options\n\n2. **Team Members** (`team_member`)\n\n   - Name, Position, Bio, Photo\n   - Specialties, Certifications\n\n3. **Testimonials** (`testimonial`)\n   - Client Name, Review Text, Rating\n   - Related Service, Featured status\n\n### Taxonomies\n\n- **Service Categories** (`service_category`)\n  - Hierarchical taxonomy for organizing services\n\n## WordPress Plugins\n\n| Plugin                      | Purpose                      | Version | Status    | Notes                          |\n| --------------------------- | ---------------------------- | ------- | --------- | ------------------------------ |\n| WPGraphQL                   | GraphQL API                  | 2.3.8+  | Installed | Core headless functionality    |\n| Advanced Custom Fields Pro  | Custom field management      | 6.6.0+  | Installed | Manual GraphQL registration    |\n| Yoast SEO Premium           | SEO optimization             | Latest  | Installed | Schema.org, XML sitemaps       |\n| Amelia Booking              | Appointment booking system   | 1.2.34+ | Installed | Integrated with services       |\n| ~~WPGraphQL for ACF~~       | Expose ACF fields to GraphQL | N/A     | Not used  | Fields registered in functions |\n| WPGraphQL CORS _(optional)_ | Enhanced CORS control        | Latest  | Optional  | For production deployment      |\n\n## Tech Stack\n\n**Backend:**\n\n- WordPress 6.4+ (Headless CMS)\n- MySQL 8.0\n- PHP 8.0+\n- WPGraphQL 2.3.8+\n- ACF Pro 6.6.0+\n- Yoast SEO Premium\n- Amelia Booking v1.2.34+\n\n**Frontend:**\n\n- Astro 4.x (Static Site Generation)\n- TypeScript (Strict mode)\n- Tailwind CSS 4.x with OKLCH color space\n- shadcn/ui components (adapted for Astro)\n- Apollo Client (GraphQL)\n- React 18+ (for interactive components)\n- Lucide React (icons)\n\n**Design System:**\n\n- Typography: Cormorant Garamond (headings) + Montserrat (body)\n- Colors: Rose gold (#d4af8e), Mauve (#a67c7c), Blush pink (#f4d7d7)\n- Responsive: Mobile-first with Tailwind breakpoints\n- Components: Button, Card, Input, Label, Textarea, Sheet, Separator\n\n**DevOps:**\n\n- Docker \u0026 Docker Compose\n- pnpm (Package manager)\n- Git (version control)\n\n## Development Workflow\n\n1. **Backend Development:**\n\n   - Modify theme files in `wordpress/wp-content/themes/cg-aesthetics-headless/`\n   - Update ACF fields, custom post types, taxonomies\n   - Changes are automatically reflected (Docker volume mounted)\n   - Test GraphQL queries at \u003chttp://localhost:8000/graphql\u003e\n   - Configure Yoast SEO settings and Schema.org\n\n2. **Frontend Development:**\n\n   - Work in `frontend/src/` (components, pages, layouts)\n   - Hot reload enabled with `pnpm dev` at \u003chttp://localhost:4321\u003e\n   - Component development with shadcn/ui patterns\n   - Type-safe GraphQL queries with TypeScript\n   - Build and preview before deployment: `pnpm build \u0026\u0026 pnpm preview`\n\n3. **Content Management:**\n\n   - WordPress admin: \u003chttp://localhost:8000/wp-admin\u003e\n   - Create/edit services with ACF custom fields\n   - Manage Amelia booking appointments\n   - Optimize SEO with Yoast (meta titles, descriptions, Schema.org)\n   - Content is immediately available via GraphQL API\n\n4. **Documentation:**\n   - See `dev-guide.md` for complete implementation details\n   - Review `frontend/README.md` for Astro-specific documentation\n\n## License\n\nPrivate project for CG Aesthetics\n\n---\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdracudev%2Fcg-aesthetics-wp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdracudev%2Fcg-aesthetics-wp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdracudev%2Fcg-aesthetics-wp/lists"}