Game Review & Comparison Platform with a work-in-progress AI feature
PlayTested is a modern, static‑site game review platform built with Astro and Tailwind CSS. It combines traditional markdown content with AI‑driven features, allowing users to:
- Publish detailed game reviews with frontmatter metadata, image galleries, pros/cons, and ratings
- Search for games via the RAWG API
- Select multiple titles and generate AI‑powered recommendations or side‑by‑side comparisons
- Markdown‑based Reviews: Write in familiar markdown with YAML frontmatter for metadata (title, date, tags, gallery, score).
- Content-packed homepage: Complete with a featured post carousel and latest posts card.
- Image Galleries: Embed a gallery in each review.
- Dark Mode: Toggle between light and dark themes seamlessly.
- AI Summary: Instant TL;DR summaries for every review.
- AI Chatbot: Ask questions about specific reviews via the RAG-powered assistant.
- AI Recommender & Comparator: Use the
/api/recommendand/api/compareendpoints to get LLM‑powered insights based on selected games. - RAG Framework: Context-aware AI answers using Cloudflare Vectorize.
- Hybrid Search: Fast keyword search via Minisearch combined with semantic understanding via Vector Search.
- RAWG Integration: Search and fetch cover art and release data from the RAWG API.
- Responsive Design: Mobile‑friendly layout powered by Tailwind CSS.
- Framework: Astro (Static Site Generator)
- Styling: Tailwind CSS
- AI: Cloudflare Workers AI + OpenRouter API
- Vector DB: Cloudflare Vectorize
- CMS: DecapCMS
- Game Data: RAWG API
- Hosting: Cloudflare Pages
- Node.js ≥ 18.x
- npm or yarn
- RAWG API
- OpenRouter API
├── public/ # Static assets (images, favicon)
├── src/
│ ├── components/ # Reusable .Astro & UI components
│ ├── GameSelector.astro # Search & AI selection widget
│ ├── content/ # Markdown review files (frontmatter + body) and images
│ ├── layouts/ # Astro layouts (BlogLayout, Header, Footer)
│ ├── pages/ # Routes (index.astro, article/[slug].astro)
│ └── utils/ # Helper scripts (SendToLLM.js, RAWG search)
│
├── .env # Environment variables
├── astro.config.mjs # Astro configuration
├── tailwind.config.cjs # Tailwind CSS config
└── package.json # Scripts & dependencies
This project is licensed under the MIT License.