@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...

X AI KOLs Timeline Products

Summary

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.

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. This 2.0 upgrade, I believe, is a key version where GEOFlow transitions from an "open-source content production system" to a "GEO content engineering infrastructure". Several core changes: 1. Systematic refactoring based on the Laravel framework The underlying architecture is clearer, with modules like backend, tasks, queues, distribution, and data analysis better suited for long-term iteration and real deployment. 2. Moving from single-site to multi-site and multi-Agent Previously, it was more about managing content production for a single site. Now, you can manage content distribution, remote synchronization, and operational status for multiple channel sites from one backend, while preserving ports for multi-channel API integration. 3. Further enhancement of AI knowledge base capabilities Continuous optimization around knowledge bases, material libraries, vectorized retrieval, AI generation, and content calling, making the system more suitable for enterprises to accumulate internal knowledge assets and for content production and continuous updates in GEO scenarios. 4. Multi-site distribution enters a runnable closed loop Support for distribution channel management, Agent keys, test connections, target site package downloads, distribution queues, distribution logs, and remote article editing and deletion. This means GEOFlow now has the capability for "central backend + multiple target sites" content distribution. 5. Target channel site packages go live Each channel can generate preconfigured target site packages, with built-in PHP Agent, homepage, article detail page, static resources, sitemap, TXT map, and Schema structured data. For GEO, this step is critical because AI not only needs content but also more stable, structured, and easily crawlable source expressions. 6. New data analysis page Data such as system overview, single-site operations, multi-site distribution, access logs, top articles, top channel sites, and AI crawler identification begin to be unified into the backend. GEO operations should not only look at "how much content was published" but also at whether content is accessed, crawled, distributed, and continuously maintained. 7. Continued enhancement of deployment, security, and test coverage Including Docker production deployment optimization, default admin initialization improvements, multi-language completion, and more tests related to distribution management, data analysis, and access logs. Over this past period, many friends have also given me feedback: Some friends have done secondary development based on GEOFlow and started exploring commercial services; Some friends use it to manage enterprise internal AI knowledge bases and content assets, significantly improving content production and collaboration efficiency; Some friends use it as the base system for GEO projects to carry knowledge bases, content generation, multi-site publishing, and effect tracking. I believe a key core of GEO is "continuously building trustworthy content assets". In the GEOFlow system, many such concepts and designs are integrated. How to turn real, trustworthy, and verifiable materials into GEO content assets that can be managed, generated, published, tracked, and synced to multiple endpoints. Welcome to try it out, and welcome to Star, Fork, and build together. 2.0 GitHub link: https://github.com/yaojingang/GEOFlow...
Original Article
View Cached Full Text

Cached at: 05/23/26, 08:06 AM

After a month of continuous iteration, the first GEO system “GEOFlow 2.0” has officially launched. The GitHub link is at the end of this article.

A month ago, GEOFlow 1.0 went live. Now, exactly one month later, the star count has exceeded 1.6k. During this month, I have received a lot of feedback and real-world implementation cases from friends.

This 2.0 upgrade marks a key version for GEOFlow to evolve from an “open-source content production system” to a “GEO content engineering infrastructure.”

Here are several core changes:

  1. Systematic refactoring based on the Laravel framework
    The underlying architecture is clearer. Modules such as the backend, tasks, queues, distribution, and data analysis are now better suited for long-term iteration and real-world deployment.

  2. From single-site to multi-site and multi-Agent
    Previously, it mainly managed content production for a single site. Now, you can use one backend to manage content distribution, remote synchronization, and operational status across multiple channel sites, while retaining ports for multi-channel API access.

  3. Further enhanced AI knowledge base capabilities
    Continuous optimization has been made around knowledge bases, material libraries, vectorized retrieval, AI generation, and content invocation, making the system more suitable for enterprises to internalize knowledge assets and more suitable for GEO content production and ongoing updates.

  4. Multi-site distribution has entered a closed-loop operational state
    Supports distribution channel management, Agent keys, test connections, target site package downloads, distribution queues, distribution logs, and remote article editing/deletion. This means GEOFlow now has the capability for “central backend + multiple target sites” content distribution.

  5. Target channel site packages are online
    Each channel can generate pre-configured target site packages, including a built-in PHP Agent, homepage, article detail page, static resources, sitemap, TXT map, and Schema structured data. This step is crucial for GEO because AI not only needs content but also more stable, structured, and easily crawlable source expressions.

  6. New data analysis page added
    System overview, single-site operations, multi-site distribution, access logs, top articles, top channel sites, AI crawler identification, and other data are now unified in the backend. GEO operations should not only look at “how much content was published,” but also whether the content has been accessed, crawled, distributed, and continuously maintained.

  7. Deployment, security, and test coverage continue to improve
    Includes Docker production deployment optimization, default admin initialization improvements, multilingual completion, and more tests related to distribution management, data analysis, and access logs.

During this period, many friends have given me feedback:

  • Some have done secondary development based on GEOFlow and started exploring commercial services.
  • Some use it to manage enterprise internal AI knowledge bases and content assets, significantly improving content production and collaboration efficiency.
  • Some use it as the foundational system for GEO projects to support knowledge bases, content generation, multi-site publishing, and effect tracking.

I believe a key core of GEO is “continuously building trustworthy content assets.” In GEOFlow, many such concepts and designs are incorporated. How to turn real, trustworthy, and verifiable materials into manageable, generable, publishable, traceable, and multi-terminal-syncable GEO content assets.

Welcome to try it out, and also welcome Star, Fork, and co-build together.

2.0 GitHub address: https://github.com/yaojingang/GEOFlow


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 knowledge bases, material libraries, prompts, AI generation tasks, review and publishing, data analysis, target channel site packages, and remote static page distribution into a sustainable operational workflow. The goal is to help teams turn trustworthy materials into manageable, publishable, traceable, and multi-terminal-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 the copyright notice and license text, and comply with the patent authorization, trademark, and disclaimer terms of Apache-2.0.


✨ What can you do with it

FeatureDescription
🤖 Multi-model content generationCompatible with OpenAI-style APIs, supports chat / embedding models, Provider URL auto-adaptation, intelligent model switching, failure retry, and call statistics
🧠 Knowledge base & RAGKnowledge base uploads are automatically chunked; after configuring an embedding model, vectors are written, and relevant materials are recalled during article generation
🗂 Material and prompt systemCentralized management of title libraries, keyword libraries, image libraries, author libraries, knowledge bases, body prompts, and special prompts
📦 Task automationSupports task creation, generation quantity, draft pool, review toggle, publishing rhythm, queue execution, failure retry, and task article filtering
📋 Review and article managementUnified management of drafts, reviews, published, recycling bin, authors, categories, SEO fields, and task source
📡 Multi-site distribution managementSupports distribution channels, Agent keys, target site packages, static mode, pseudo-static rules, remote article editing/deletion, and queue logs
🧾 Target site packagesGenerates pre-configured PHP Agent packages for each channel, including homepage, detail page, static resources, sitemap, llms.txt / TXT map, and Schema
📊 Data analysisCentrally displays system overview, single-site content operations, multi-site distribution, access logs, top content, AI crawler identification, and trend charts
🔍 SEO & LLM crawl-friendly outputArticle SEO meta information, Open Graph, Schema, GFM Markdown, standalone CSS, image sync, sitemap, and TXT map
🎨 Frontend & ThemesDefault theme, theme packages, preview path, backend theme switching; remote channels can sync site title, copyright, theme, and category settings
🌍 Backend multilingualBackend supports Chinese, English, Japanese, Spanish, Russian, Portuguese (Brazil) switching, covering new 2.0 modules
🔔 Version reminderBackend can check for new versions on GitHub via version.json and notify admins when a new version is available
🐳 Direct deploymentDocker Compose with one-click startup of PostgreSQL (pgvector), Redis, application, queue, scheduler, Reverb, and production Nginx/php-fpm

🖼 Preview screenshots

The above pages cover the main workflow such as site homepage, task scheduling, article flow, and model configuration. For more backend documentation, see docs/ (if no screenshots are present in the directory, add or replace with your own screenshot paths).


🆕 New version highlights

Key changes in GEOFlow 2.0 include:

  • Backend homepage changed to operations navigation: Retains the three-step getting-started guide, and organizes entrances by single-site operations, multi-site distribution, and supporting skill resources.
  • Data analysis as a separate page: System overview, content operations, task health, material health, distribution status, access logs, and AI crawler trends are centralized at /admin/analytics.
  • Distribution management enters closed-loop operation: Supports channel creation, key management, test connection, target site package download, static/pseudo-static mode, remote settings sync, queues, logs, remote article editing/deletion.
  • Target channel sites support static pages: After article distribution, generates remote homepage, detail page, sitemap, TXT map, and llms.txt, and syncs images and standalone CSS.
  • Materials & RAG more complete: Knowledge base chunking, vectorization status, title library, keyword library, image library, author, and prompt system form task production input.
  • Deployment & security enhancements: Production Docker uses Nginx + PHP-FPM, default admin seed does not overwrite existing accounts, Docker images and Composer mirrors can be configured.
  • Multilingual coverage completed: Backend language packs cover new 2.0 modules, reducing bare translation keys or English fallbacks in the interface.

🏗 Operation structure

Backend management page
↓
AI configuration / Material 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 page, sitemap, TXT map & llms.txt

🧱 System architecture

LayerDescription
Web / AdminLaravel routes and controllers; frontend article site, Blade backend, data analysis, distribution management, material and task entry points
API / AgentLocal API and target site PHP Agent; handles distribution health checks, article reception, remote settings sync, and static file generation
Scheduler / Queue / ReverbLaravel Scheduler scans and enqueues; queue:work / Horizon consumes generation and distribution tasks; Reverb enabled as needed
Domain & Jobsapp/Services, app/Jobs, app/Http/Controllers, etc., carry out AI generation, RAG, publishing, distribution, and log analysis rules
PersistencePostgreSQL (recommended pgvector image for consistency with online instance) + Redis (queue/cache, etc.) + target site local JSON/static files

Core workflow:

  1. Configure models, prompts, and material libraries in the backend
  2. Prepare knowledge bases, title libraries, keyword libraries, image libraries, and author libraries
  3. Create tasks and enter scheduling and queues
  4. Worker (queue process) calls the model to generate body and metadata
  5. Articles enter draft, review, and publish pipeline
  6. Local frontend outputs articles and SEO pages
  7. If a distribution channel is selected, articles enter the distribution queue and sync to target sites
  8. Data analysis page continuously views content production, distribution status, access logs, and AI crawler trends

⚡ Three-step backend getting started

After logging into the backend, it is recommended to follow the “Quick Start” in the dashboard to complete the first round of verification:

  1. Configure API: Add at least one available chat model; if you need knowledge base RAG recall, also add an embedding model.
  2. Configure material library: Prepare knowledge base, title library, keyword library, image library, and author. It is recommended to use real, verifiable business materials for the knowledge base first.
  3. Create a new task: Select title library, materials, model, generation quantity, and publishing frequency. First let articles enter draft or review workflow, then gradually enable automatic publishing.

🎯 Applicable scenarios and target benefits

GEOFlow is suitable for these real, implementable scenarios:

  • Independent GEO website: Organize the official website content, product materials, FAQs, case studies, and brand knowledge into a continuously updatable content system. The goal is to improve AI search visibility, brand source coverage, and content operation efficiency, not to pile up low-quality pages.
  • GEO sub-channel within a website: Build an independent news, knowledge, or solution channel under an existing official website. The goal is to make brand content more structured and easier for search engines to reference, and also convenient for different teams to collaborate on updates.
  • Independent GEO source site: Continuously accumulate high-quality articles, rankings, interpretations, guides, and materials for a specific industry, topic, or problem domain. The goal is to build stable and trustworthy external content assets, not to pollute information.
  • GEO content management system: As an internal content production backend, manage models, materials, titles, images, knowledge bases, reviews, and publishing from a central point. The goal is to improve team efficiency, reduce repetitive work, and minimize context switching between scattered tools.
  • GEO multi-site / multi-column deployment: Use the same system to manage multiple sites, multiple columns, or multiple theme templates. The goal is to standardize content production, template switching, distribution, and maintenance.
  • Automated source management and content distribution: Engineer the management of knowledge bases, thematic content, news updates, and content distribution workflows. The goal is to make truly valuable information more stably understood, referenced, and retrieved by users and AI.

The benefits of this system should be based on a real, high-quality, and continuously maintained knowledge base.

We do not encourage using the system to create information noise, bulk-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 operational efficiency, not to replace facts, judgment, or content quality itself.


🧭 Scenario-based deployment and usage

Different scenarios suggest the following ways to use GEOFlow:

  • Run as an independent GEO website: Deploy the complete frontend and backend, and operate around the official website columns, product page extensions, FAQs, case studies, and topics. Suitable for teams that want to turn their website into AI-search-friendly content assets.
  • Run as a GEO sub-channel within a website: Deploy GEOFlow as a relatively independent content channel, then connect 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 separate content site focused on a specific topic, prioritizing knowledge base and material development, then use the task system for stable updates. Suitable for teams that want to build industry-specific, thematic, or problem-oriented content assets.
  • Run as an internal GEO content management backend: Weaken the frontend, focus on the backend’s model configuration, material library, task scheduling, review/publishing, and API capabilities. Suitable for content teams, growth teams, or brand teams to use as an internal production system.
  • Run as a multi-site / multi-channel system: Use different templates, columns, domains, or deployment instances to manage multiple content outputs. Suitable for teams that need to maintain multiple brand channels, multiple topic sites, or multiple experimental sites simultaneously.
  • Run as an automated source management system: Focus on building knowledge bases, title libraries, image libraries, and prompt systems, treating the system as a content engineering and distribution console. Suitable for teams that want to accumulate trustworthy knowledge assets over the long term, then gradually expand automation capabilities.

Recommended order of use:

  1. First, determine real business goals and target readers.
  2. First, build the knowledge base, then build automation processes.
  3. First, ensure content is real, verifiable, and maintainable.
  4. Then use model, task, and template capabilities to improve efficiency.

If the knowledge base itself is not real, complete, or stable, stronger automation will only amplify noise.

Therefore, in GEOFlow, knowledge base construction should always come first.


🚀 Quick start

Method 1: Docker (development / demo)

# 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 variable APP_PORT, default 18080)
  • Backend login: http://localhost:18080/geo_admin/login (prefix controlled by ADMIN_BASE_PATH, default geo_admin)

Upon first startup, the init container will run: after 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 automatic environment checks, Docker detection, .env.prod generation, container deployment, and post-deployment health checks on a common cloud server, you can use the reference deployment script:

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.

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 accessed via web (Nginx).
  • PHP is handled by app (php-fpm).
  • Default admin: The production init service executes db:seed once after migration, only writing the default admin account if the target username does not exist; repeated execution does not overwrite existing accounts or passwords.
  • Detailed instructions are 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.

# 1. Clone the repository
git clone https://github.com/yaojingang/GEOFlow.git
cd GEOFlow

# 2. Environment & dependencies
cp .env.example .env
# Edit .env: set DB_HOST/DB_* to your local Postgres, REDIS_* to your local Redis, QUEUE_CONNECTION=redis, etc.
composer install --no-interaction --prefer-dist
php artisan key:generate

# 3. Database & storage
php artisan migrate --force
php artisan db:seed --force   # Optional: write default admin, etc.
php artisan storage:link

# 4. HTTP for development (local debugging only; use Nginx + PHP-FPM for production, web 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):

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 (replace path if ADMIN_BASE_PATH is modified)
  • In production, you can use php artisan horizon instead of queue:work (require process management configured per project).

Environment requirements (deployment checklist)

ComponentDescription
PHP8.2+ (Docker image can be 8.4)
ExtensionsLaravel standard extensions; PostgreSQL requires pdo_pgsql; Redis queue requires redis
Composer2.x
DatabasePostgreSQL (recommend pgvector, matching the image in docker-compose.yml)
RedisQueue, cache, etc. (for local minimal debugging, you can change QUEUE_CONNECTION to sync, not recommended for production)

Source deployment supplementary notes

Directory permissions (Linux / macOS common):

chmod -R ug+rwx storage bootstrap/cache

Default admin (after running php artisan db:seed, based on Database\Seeders\AdminUserSeeder):

FieldValue
UsernameGEOFLOW_ADMIN_USERNAME, default admin
PasswordDefault password for local development; 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 initialization log.

Additional rule: AdminUserSeeder only creates an account if the target username does not exist; repeated execution does 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 lockout and manual unlock

  • The admin account will automatically lock after 5 consecutive login failures (status=locked).
  • A locked account cannot log in further; an admin must manually unlock it.
  • Unlock command:
php artisan geoflow:admin-unlock

Example:

php artisan geoflow:admin-unlock admin

Production environment Web: Use Nginx / Apache + PHP-FPM, with the website root directory pointing to the project’s public/ directory. Do not expose the repository root as the document root.


Docker deployment supplementary notes

Development Compose services overview

ServicePurpose
postgresPostgreSQL 16 + pgvector
redisRedis 7
initOne-time initialization (restart: "no")
appphp artisan serve, mapped to ${APP_PORT:-18080}:8080
queuequeue:work redis
schedulerschedule:work
reverbWebSocket, mapped to ${REVERB_EXPOSE_PORT:-18081}:8080

When the host only binds 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

VariableDefaultMeaning
COMPOSER_ON_STARTtrueExecute composer install at container startup
AUTO_MIGRATEtrueExecute php artisan migrate --force on every startup
AUTO_INIT_ONCEOnly init is trueExecute migrate + db:seed once on a fresh database
AUTO_GENERATE_APP_KEYtrue within initAutomatically generate if no valid APP_KEY exists
AUTO_SEEDfalseIf true, run db:seed every startup (use with caution)

Compose mounts ./storage and ./.env into the container; application code is inside the image. For formal production, use the repository’s new 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 & testing

composer test
./vendor/bin/pint

🌍 Multilingual documentation


📄 Open-source license

This project is licensed under the Apache License 2.0. This license allows individuals and enterprises to use, modify, distribute, and commercialize GEOFlow, subject to the license statement, copyright retention, modification notes, patent authorization, and disclaimer clauses.


⭐ Star trend

Star History Chart (https://star-history.com/#yaojingang/GEOFlow&Date)

Similar Articles

@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…

X AI KOLs Timeline

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.

@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...

X AI KOLs Timeline

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.

@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...

X AI KOLs Timeline

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.