@yaojingang: Tonight at 8:00 PM, I will hold my first GEO livestream via WaytoAGI, explaining the underlying logic, methods, system principles, and concepts of GEO. The relevant materials and systems are as follows, sharing with everyone: 1. GEOFlow, the system I will be presenting tonight and the GEO principles behind it https://github.co…
Summary
This is a preview of a livestream sharing about GEO (Generative Engine Optimization), also introducing the open-source GEOFlow system and its related materials and toolkits.
View Cached Full Text
Cached at: 05/31/26, 07:04 AM
Tonight at 8 PM, I will host the first GEO live stream via WaytoAGI, covering the underlying logic, methods, system principles, and philosophy of GEO. The relevant materials and systems are shared below:
-
GEOFlow – The system to be presented tonight and the GEO principles behind it
https://github.com/yaojingang/GEOFlow -
Meta Skill – The Skill for creating Skills
https://github.com/yaojingang/yao-meta-skill -
17 GEO Skill Collection
https://github.com/yaojingang/yao-geo-skills -
41 Latest GEO/AI Search Papers
https://github.com/yaojingang/geo-citation-lab/tree/main/02-geo-aeo-ai-search-papers -
Related Articles and Documents
- What Exactly is GEO
https://mp.weixin.qq.com/s/GXuu0Hku-j-8ona5yzQSvA - From SEO to GEO, From Traffic to Agent – The Real Change Has Just Begun
https://mp.weixin.qq.com/s/2P_zSjJkybl-rAyZjMIQAw - GEO White Paper
https://yaojingang.feishu.cn/docx/Jv85dXAeZoKJ7exJi4Yc4Edrnhf - GEO Red Paper
https://yaojingang.feishu.cn/wiki/Otqtw0HFbiNeCMkjKalcFkoJnpf - GEO Blue Paper
https://yaojingang.feishu.cn/wiki/MwkiwPDqCiHGwVk2uOtcNUlrnnf - AI Marketing: From SEO to GEO – Prompt Collection
https://yaojingang.feishu.cn/wiki/YbMLwkChmiktbskRoHZcFixBnxb
- What Exactly is GEO
yaojingang/GEOFlow
Source: https://github.com/yaojingang/GEOFlow
GEOFlow
Languages: 简体中文 | English | 日本語 | Español | Русский | Português (BR)
GEOFlow is an open-source intelligent content engineering and multi-site distribution system specifically designed for GEO (Generative Engine Optimization). It connects the knowledge base, asset library, prompts, AI generation tasks, review & publishing, data analysis, GEOFlow Agent target site packages, WordPress REST channels, universal HTTP API channels, and remote static page distribution into a sustainable operational workflow. The goal is to help teams transform trusted knowledge into manageable, publishable, trackable, and multi-channel syncable GEO content assets.
PHP (https://www.php.net/)
PostgreSQL (https://www.postgresql.org/)
Docker (https://docs.docker.com/compose/)
License
GitHub stars (https://github.com/yaojingang/GEOFlow/stargazers)
GitHub forks (https://github.com/yaojingang/GEOFlow/network/members)
GitHub issues (https://github.com/yaojingang/GEOFlow/issues)
GEOFlow is open-sourced under the Apache License 2.0. You are free to use, copy, modify, and distribute this project, including for commercial use; please retain copyright notices and license text, and comply with the patent grant, trademark, and disclaimer terms of Apache-2.0.
✨ What You Can Do With It
| Feature | Description |
|---|---|
| 🤖 Multi-Model Content Generation | Compatible with OpenAI-style APIs and Gemini native APIs; supports chat / embedding models, automatic Provider URL adaptation, intelligent model switching, failure retry, and call statistics |
| 🧠 Knowledge Base & RAG | After uploading a knowledge base, supports structured rule-based chunking, optional LLM semantic planning with stable fallback; after configuring an embedding model, writes to vectors and recalls relevant materials during article generation |
| 🗂 Asset & Prompt System | Centralized management of title library, keyword library, image library, author library, knowledge base, body prompts, and special prompts |
| 📦 Task Automation | Supports task creation, generation quantity, draft pool, review toggle, publishing rhythm, queue execution, failure retry, publishing scope control, and task article filtering |
| 📋 Review & Article Management | Unified management of drafts, reviews, publishing, trash, authors, categories, SEO fields, and task sources |
| 📡 Multi-Site Distribution Management | Supports GEOFlow Agent, WordPress REST, and generic HTTP API channels; key management, target site packages, static mode, pseudo-static rules, remote article editing/deletion, and queue logs |
| 🧾 Target Site Package | Generates a pre-configured PHP Agent package for each channel, including homepage, detail pages, static assets, sitemap, llms.txt / TXT maps, and Schema |
| 📊 Data Analysis | Centralized display of system overview, single-site content operations, multi-site distribution, access logs, top content, AI crawler identification, and trend charts |
| 🔍 SEO & LLM-Friendly Output | Article SEO meta info, Open Graph, Schema, GFM Markdown, standalone CSS, image sync, sitemap, and TXT maps |
| 🎨 Frontend & Themes | Default theme, theme packages, preview paths, backend theme switching; GEOFlow Agent channels can sync site title, copyright, theme, and category settings |
| 🌍 Backend Multi-Language | Backend supports Chinese, English, Japanese, Spanish, Russian, Portuguese (Brazil), covering all 2.0 new modules |
| 🔔 Version Reminder | Backend can check GitHub for new versions via version.json and notify administrators when a new version is available |
| 🐳 Ready to Deploy | Docker Compose one-click launch for PostgreSQL (pgvector), Redis, application, queue, scheduler, Reverb, and production Nginx/php-fpm |
🖼 Interface Preview
Data Analysis
Site Settings
Backend Homepage
Task Management
AI Model Configuration
Asset Management
The above pages cover the main workflow including backend homepage, data analysis, task scheduling, asset library, model configuration, and site settings; more backend details can be found in docs/.
🆕 Key Changes in the New Version
Key changes in GEOFlow 2.0 include:
- Backend homepage changed to an operations dashboard: Retains three-step getting-started guide, organized by single-site operations, multi-site distribution, and supporting skill resources.
- More complete Gemini and OpenAI-compatible integration: AI model configuration now covers both OpenAI-style Provider and Gemini native chat / embedding paths.
- Knowledge base supports semantic chunk planning: Offers structured rule-based chunking, automatic strategy, and optional LLM semantic planning. The LLM only defines boundaries, while the final chunks are stably reconstructed from the original text.
- Data analysis becomes an independent page: System overview, content operations, task health, asset health, distribution status, access logs, and AI crawler trends are centralized under
/admin/analytics. - Distribution management enters a runnable closed loop: Supports GEOFlow Agent, WordPress REST, and generic HTTP API channels; key management, test connection, target site package download, static/pseudo-static mode, remote settings sync, queue, logs, remote article editing, and deletion.
- Task publishing scope is clearer: Tasks can choose “publish to local and channel sites”, “publish only to channel sites”, or “publish only to this site”. The “local only” mode disables channel selection and avoids entering the remote distribution queue.
- Target channel sites support static pages: After article distribution, generates remote homepage, detail pages, sitemap, TXT maps, and
llms.txt, along with synced images and standalone CSS. - More complete asset & RAG: Knowledge base chunking, vectorization status, title library, keyword library, image library, authors, and prompt system now form task production inputs.
- Deployment & security enhancements: Production Docker uses Nginx + PHP-FPM; default admin seed does not overwrite existing accounts; Docker image and Composer image are configurable.
- Multi-language coverage: Backend language packs cover all 2.0 new modules, reducing occurrences of untranslated keys or English fallback.
🏗 Operational Structure
Backend admin page ↓ AI configuration / Asset library / Prompts / Task configuration ↓ Scheduler / Queue / Worker execute AI generation ↓ Draft / Review / Publish ↓ Local frontend articles & SEO pages ↓ Distribution queue / Target site Agent ↓ Remote static homepage, detail pages, sitemap, TXT maps, and llms.txt
🧱 System Architecture
| Layer | Description |
|---|---|
| Web / Admin | Laravel routing and controllers; frontend article site, Blade backend, data analysis, distribution management, asset & task entry points |
| API / Agent | Local API and target site PHP Agent; responsible for distribution health checks, article reception, remote settings sync, and static file generation |
| Scheduler / Queue / Reverb | Laravel Scheduler scans and enqueues; queue:work / Horizon consumes generation and distribution tasks; Reverb enabled on demand |
| Domain & Jobs | app/Services, app/Jobs, app/Http/Controllers, etc., handle AI generation, RAG, publishing, distribution, and log analysis logic |
| Persistence | PostgreSQL (recommended pgvector image, consistent with online instance) + Redis (queue/cache, etc.) + target site local JSON/static files |
Core workflow:
- Configure models, prompts, and asset library in the backend
- Prepare knowledge base, title library, keyword library, image library, and author library; select appropriate knowledge base chunking strategy
- Create a task and enter the scheduling and queue
- Worker (queue process) calls the model to generate body and metadata
- Article enters draft, review, and publish workflow
- Local frontend outputs article and SEO pages
- If a distribution channel is selected, the article enters the distribution queue and syncs to GEOFlow Agent or WordPress target site
- Data analysis page continuously monitors content production, distribution status, access logs, and AI crawler trends
⚡ Backend Three-Step Getting Started
After logging into the backend, follow the “Quick Start” on the dashboard for initial verification:
- Configure API: Add at least one available chat model; if knowledge base RAG recall is needed, add an embedding model and choose a suitable knowledge base chunking strategy.
- Configure Asset Library: Prepare knowledge base, title library, keyword library, image library, and authors. It is recommended to start with real, verifiable business materials for the knowledge base.
- Create a Task: Select title library, assets, model, generation quantity, publishing frequency, and publishing scope. First, let articles enter draft or review workflow, then gradually enable automatic publishing and multi-site distribution.
🎯 Applicable Scenarios and Target Benefits
GEOFlow is suitable for these real and actionable scenarios:
- Standalone GEO official website: Organize official content, product materials, FAQs, cases, and brand knowledge into a continuously updatable content system. Aim to improve AI search visibility, brand source coverage, and content operations efficiency, rather than piling up low-quality pages.
- GEO sub-channel within an official website: Build an independent news, knowledge, or solution channel within an existing official website. Aim for more structured, search-friendly brand content that is easier for different teams to collaboratively update.
- Standalone GEO source site: Continuously produce high-quality articles, rankings, interpretations, guides, and materials for a specific industry, topic, or problem domain. Aim to build stable and trustworthy external content assets, not information pollution.
- GEO content management system: Serve as an internal content production backend, unified management of models, assets, titles, images, knowledge bases, reviews, and publishing. Aim to improve team efficiency, reduce repetitive work, and minimize tool switching.
- GEO multi-site / multi-section deployment: Use the same system to manage multiple sites, sections, or theme templates. Aim to standardize content production, template switching, distribution, and maintenance.
- Automated source management and content distribution: Engineering management of knowledge bases, topic content, news updates, and content distribution workflows. Aim for truly valuable information to be more consistently understood, cited, and retrieved by users and AI.
The benefits of this system should be built on a real, high-quality, continuously maintained knowledge base.
We do not encourage using the system to create information noise, mass-pollute the internet, or pile up fake content. The essence of GEOFlow is to help teams manage, produce, and distribute trustworthy content more efficiently, improving AI marketing efficiency and GEO operations efficiency, rather than replacing facts, judgment, or content quality itself.
🧭 Scenario-Based Deployment and Usage
Different scenarios suggest the following usage of GEOFlow:
- Run as a standalone GEO official website: Directly deploy the full frontend and backend, operate around official site columns, product page extensions, FAQs, cases, and topics. Suitable for teams that want to turn their official website into an AI-search-friendly content asset.
- Run as a GEO sub-channel within an official website: Deploy GEOFlow as a relatively independent content channel, then connect it to the main site via navigation, subdomain, or directory. Suitable for teams that don’t want to restructure the main site but need to quickly launch a content channel.
- Run as a GEO source site: Maintain a content site dedicated to a specific topic, prioritizing knowledge base and material building, then use the task system for stable updates. Suitable for teams aiming for industry-specific, topic-specific, or problem-driven content assets.
- Run as an internal GEO content management backend: Downplay the frontend, focus on the backend’s model configuration, asset library, task scheduling, review & publishing, and API capabilities. Suitable for content teams, growth teams, and brand teams for internal production systems.
- Run as a multi-site / multi-channel system: Use different templates, sections, domains, or deployment instances to manage multiple content outlets. Suitable for teams that need to maintain multiple brand channels, topic sites, or experimental sites simultaneously.
- Run as an automated source management system: Focus building the knowledge base, title library, image library, and prompt system, using the system as a content engineering and distribution console. Suitable for teams aiming to sustainably accumulate trustworthy knowledge assets and gradually expand automation capabilities.
Recommended order of use:
- First, define real business goals and target audience
- First build the knowledge base, then build automation
- First ensure content is real, verifiable, and maintainable
- Then use models, tasks, and template capabilities to improve efficiency
If the knowledge base itself is not real, complete, or stable, even the strongest automation will only amplify noise.
Therefore, in GEOFlow, knowledge base construction should always come first.
🚀 Quick Start
Method 1: Docker (Development / Demo)
``bash
1. Clone the repository
git clone https://github.com/yaojingang/GEOFlow.git
cd GEOFlow
2. Copy environment variables
cp .env.example .env
3. Edit .env as needed (database, Redis, APP_URL, ADMIN_BASE_PATH, REVERB_*, etc.)
vi .env
4. Build and start (includes postgres, redis, init, app, queue, scheduler, reverb)
docker compose build
docker compose up -d
``
- Frontend default access:
http://localhost:18080(port controlled by environment variableAPP_PORT, default18080) - Backend login:
http://localhost:18080/geo_admin/login(prefix controlled byADMIN_BASE_PATH, defaultgeo_admin)
The first startup will run the init container: once the database is ready, it executes the first migration and seed (default admin see “Default Admin” below).
Method 1 Supplement: Docker (Production)
For production, it is recommended to use docker-compose.prod.yml, switching to Nginx + php-fpm instead of php artisan serve.
If you want to automatically perform environment checks, Docker detection, .env.prod generation, container deployment, and post-deployment health checks on a common cloud server, use the reference deployment script:
bash curl -fsSL https://raw.githubusercontent.com/yaojingang/GEOFlow/main/deploy-scripts/geoflow-docker-deploy.sh -o geoflow-docker-deploy.sh bash geoflow-docker-deploy.sh
Script documentation is in deploy-scripts/README.md.
bash cp .env.prod.example .env.prod vi .env.prod docker compose --env-file .env.prod -f docker-compose.prod.yml build docker compose --env-file .env.prod -f docker-compose.prod.yml up -d postgres redis docker compose --env-file .env.prod -f docker-compose.prod.yml up -d init docker compose --env-file .env.prod -f docker-compose.prod.yml up -d app web queue scheduler reverb
- Frontend / Backend are all accessed via
web(Nginx) - PHP is parsed by
app(php-fpm) - Default Admin: The production
initservice runsdb:seedonce after migration, only writes the default backend account if the target username does not exist; repeated execution will not overwrite existing accounts or passwords - Detailed documentation in
docs/deployment/DEPLOYMENT.md
Method 2: Local PHP Server
Prerequisites: PHP 8.2+ with pdo_pgsql, redis, and other common Laravel extensions enabled; PostgreSQL and Redis installed locally; Composer 2.x installed.
``bash
1. Clone the repository
git clone https://github.com/yaojingang/GEOFlow.git
cd GEOFlow
2. Environment and dependencies
cp .env.example .env
Edit .env: point DB_HOST/DB_* to local Postgres, REDIS_* to local Redis, QUEUE_CONNECTION=redis, etc.
composer install –no-interaction –prefer-dist
php artisan key:generate
3. Database and storage
php artisan migrate –force
php artisan db:seed –force # Optional: write default admin, etc.
php artisan storage:link
4. Development HTTP (local debugging only; for production, use Nginx + PHP-FPM, site root is public/)
php artisan serve –host=127.0.0.1 –port=8080
``
Open another terminal to start persistent processes (corresponding to queue / scheduler / reverb in Docker):
bash php artisan queue:work redis --queue=geoflow,distribution,default --sleep=1 --tries=1 --timeout=300 php artisan schedule:work php artisan reverb:start
- Backend:
http://127.0.0.1:8080/geo_admin/login(ifADMIN_BASE_PATHis changed, adjust the path) - Production can use
php artisan horizoninstead ofqueue:work(requires process management according to project configuration)
Environment Requirements (Deployment Checklist)
| Component | Description |
|---|---|
| PHP | 8.2+ (Docker image can be 8.4) |
| Extensions | Laravel standard extensions; PostgreSQL requires pdo_pgsql; Redis queue requires redis |
| Composer | 2.x |
| Database | PostgreSQL (recommended pgvector, consistent with docker-compose.yml image) |
| Redis | Queue, cache, etc. (for minimal local debugging, set QUEUE_CONNECTION to sync; not recommended for production) |
Source Deployment Additional Notes
Directory permissions (common on Linux / macOS):
bash chmod -R ug+rwx storage bootstrap/cache
Default Admin (after running php artisan db:seed, based on Database\Seeders\AdminUserSeeder):
| Field | Value |
|---|---|
| Username | GEOFLOW_ADMIN_USERNAME, default admin |
| Password | Local development default password; for production, set GEOFLOW_ADMIN_PASSWORD. If left empty in production and the account does not exist, the seed will generate a one-time random password and output it in the init log |
Additional rule: AdminUserSeeder only creates the account if the target username does not exist; repeated execution will not overwrite existing username, email, or password. If the account already exists, even if GEOFLOW_ADMIN_PASSWORD is empty in production, it will not regenerate or print a password.
Admin Login Failure Lock and Manual Unlock
- Backend accounts that fail login 5 consecutive times will be automatically locked (
status=locked). - Locked accounts cannot log in further and require manual unlock by an administrator.
- Unlock command:
bash php artisan geoflow:admin-unlock
Example:
bash php artisan geoflow:admin-unlock admin
Production Web: Use Nginx / Apache + PHP-FPM, point the website root to the project’s public/ directory; do not expose the repository root as the document root.
Docker Deployment Additional Notes
Development Compose Services Overview
| Service | Purpose |
|---|---|
postgres | PostgreSQL 16 + pgvector |
redis | Redis 7 |
init | One-time initialization (restart: "no") |
app | php artisan serve, mapping ${APP_PORT:-18080}:8080 |
queue | queue:work redis |
scheduler | schedule:work |
reverb | WebSocket, mapping ${REVERB_EXPOSE_PORT:-18081}:8080 |
When the host binds only 127.0.0.1 to expose database / Redis ports, see DB_EXPOSE_PORT and REDIS_EXPOSE_PORT in docker-compose.yml.
Entry Script (docker/entrypoint.sh) Common Variables
| Variable | Default | Meaning |
|---|---|---|
COMPOSER_ON_START | true | Run composer install on container start |
AUTO_MIGRATE | true | Run php artisan migrate --force on each start |
AUTO_INIT_ONCE | Only init is true | Run migrate + db:seed once on a fresh DB |
AUTO_GENERATE_APP_KEY | true inside init | Auto-generate APP_KEY if not valid |
AUTO_SEED | false | Run db:seed every startup if true (use with caution) |
Compose mounts ./storage and ./.env into the container; application code is inside the image. For formal production, use the newly added docker-compose.prod.yml (Nginx + php-fpm), and see docs/deployment/DEPLOYMENT.md.
Upgrade suggestion: git pull → docker compose build → docker compose up -d.
Development and Testing
bash composer test ./vendor/bin/pint
🌍 Multi-Language Documentation
📄 Open Source License
This project is open-sourced under the Apache License 2.0. This license allows individuals and enterprises to use, modify, distribute, and commercialize GEOFlow, subject to the terms of license notice, copyright retention, modification statements, patent grant, and disclaimer.
⭐ Star Trend
Star History Chart (https://star-history.com/#yaojingang/GEOFlow&Date)
Similar Articles
@yaojingang: After a month of continuous iteration, the first GEO system "GEOFlow 2.0" is officially launched. GitHub link at the end. A month ago, GEOFlow 1.0 was launched. Now, exactly one month later, the star count has exceeded 1.6k. Over this past month, I've received feedback and real-world implementation cases from many friends...
GEOFlow 2.0 is officially launched, with a systematic refactoring, adding multi-site distribution, AI knowledge base enhancement, data analysis, and other features, aiming to become the infrastructure for GEO content engineering.
@ai_xiaomu: https://x.com/ai_xiaomu/status/2068613828687085699
A detailed tutorial on GEO (Generative Engine Optimization), from concepts and principles to practical methods, explaining how to make AI recommend your product when answering questions, suitable for AI product entrepreneurs to learn.
@yaojingang: Created a free GEO online professional testing system, now live and open, with relevant links in the comments. Test instructions: 1. Simply enter your name to start the test; after completion, a detailed visual test report will be generated, including detailed explanations, principles, and evidence sources for each question; 2. Based on 54 domestic...
The author released a free GEO (Generative Engine Optimization) online professional testing system. Based on 54 papers and a large number of AI platform citation features, 30 questions were designed. The test is completely free and open source, helping users build professional GEO knowledge.
@yaojingang: I downloaded all papers related to GEO, AEO, and AI search from the past two years — 41 in total. Read through them one by one, and gained many new insights and inspirations. All 41 papers have been pushed to the GitHub repository. Feel free to download. The address is at the end of the article. Some key insights to share: 1. GEO is not a replacement for SEO. SEO addresses whether content can be retrieved, indexed, and entered into the candidate set...
The author collected and read 41 papers related to GEO, AEO, and AI search, pushed the collection to GitHub, and shared 10 key insights, including the relationship between GEO and SEO, AI search citation mechanisms, the importance of content structuring, and practical optimization directions.
@CoderDaMing: Instead of scrolling through Netflix for two hours tonight, seriously watch this Stanford lecture. It might be the clearest explanation I've ever seen of how ChatGPT and Claude work. Whether you're a newcomer to AI or a heavy user who's been using AI every day for the past year, this lecture...
Recommends a Stanford lecture on how ChatGPT and Claude work, distilling its core insights into a practical guide to help users effectively use AI tools.