Download the PHP package muzorix/ai-blog-engine without Composer

On this page you can find all versions of the php package muzorix/ai-blog-engine. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.

FAQ

After the download, you have to make one include require_once('vendor/autoload.php');. After that you have to import the classes with use statements.

Example:
If you use only one package a project is not needed. But if you use more then one package, without a project it is not possible to import the classes with use statements.

In general, it is recommended to use always a project to download your libraries. In an application normally there is more than one library needed.
Some PHP packages are not free to download and because of that hosted in private repositories. In this case some credentials are needed to access such packages. Please use the auth.json textarea to insert credentials, if a package is coming from a private repository. You can look here for more information.

  • Some hosting areas are not accessible by a terminal or SSH. Then it is not possible to use Composer.
  • To use Composer is sometimes complicated. Especially for beginners.
  • Composer needs much resources. Sometimes they are not available on a simple webspace.
  • If you are using private repositories you don't need to share your credentials. You can set up everything on our site and then you provide a simple download link to your team member.
  • Simplify your Composer build process. Use our own command line tool to download the vendor folder as binary. This makes your build process faster and you don't need to expose your credentials for private repositories.
Please rate this library. Is it a good library?

Informations about the package ai-blog-engine

muzorix/ai-blog-engine

Fully automated, backend-only AI blog/article system for Laravel.

Discover topics, write full articles, humanize them, run fact-checking and SEO/AEO/GEO optimization, generate images and FAQs, manage internal linking and duplicate detection, and control the full lifecycle through a Filament admin panel. You bring your own frontend (Blade, Livewire, Inertia, or headless).

MIT licensed. Multi-provider throughout: Groq, Gemini, OpenAI, Claude.


Table of Contents


What This Package Does

Most AI writing tools generate text and stop. This package treats article creation as a full lifecycle:

  1. Discover and score topics from RSS, News API, or manual entry
  2. Generate structured articles section-by-section
  3. Humanize, fact-check, and optimize for SEO, AEO, and GEO
  4. Generate FAQs, images, and internal links
  5. Flag duplicates and route to review (or auto-publish)
  6. Monitor freshness and refresh aging content

Everything is self-hosted. Your data, your pipeline, your providers.


Feature List

Module Description
Topic Discovery Pluggable sources: Manual, RSS, News API — each topic scored for relevance & opportunity
Article Generation Outline-first, section-by-section writing with configurable length, tone, and reading level
Humanization Pass Second AI pass to reduce robotic phrasing; optional voice profile file
Fact Verification Extracts claims, cross-checks against source material, flags unverified claims
SEO Layer Meta title/description, slug, readability score, JSON-LD schema
AEO Layer Featured-snippet answers, definition callouts, FAQPage schema
GEO Layer Citation-friendly structure for AI answer engines (ChatGPT, Perplexity, etc.)
FAQ Generation 4–6 auto-generated Q&A pairs per article
Image Generation Featured + optional inline images; Pollinations (free) default
Internal Linking Semantic similarity finds related articles; AI inserts contextual links
Duplicate Detection Embedding similarity check before publish
Review Workflow Human approve / reject from admin; or self-writing auto-publish mode
Freshness Engine Flags old or declining-traffic articles for refresh
Content Calendar AI proposes weekly topics based on content gaps
Analytics Loop Weights topic sources by historical article performance
Filament Admin Dashboard, Topics, Articles, Sources, Freshness Queue, AI Settings

Requirements


Installation

1. Install the package

For local path development (monorepo):

2. Run the install command

This will:

3. Publish Filament assets (if admin looks unstyled)

If the admin login page has no styling, run:

Important: Set APP_URL in .env to match how you access the site (http://127.0.0.1:8000 vs http://localhost:8000).

4. Configure environment variables

Copy the block below into .env and fill in your keys:

5. Enable Filament panel access on your User model

Your App\Models\User must implement Filament\Models\Contracts\FilamentUser:

6. Create an admin user

7. Start the queue worker

Article generation runs as queued jobs. Start a worker:

Or use the Laravel composer dev script if your project has it.

8. Start the scheduler (production)

Add to your server crontab:

The package registers these scheduled jobs automatically:

Job Default schedule Purpose
FetchTopicsJob Every 6 hours Pull topics from enabled sources
RunFreshnessScanJob Mondays 3 AM Flag articles needing updates
RunContentCalendarJob Sundays 4 AM Propose new topics for the week
PullAnalyticsJob Daily 5 AM Update source weights & queue topics

9. Open the admin panel

(Path is configurable via ABE_ADMIN_PATH.)


Configuration

Publish or re-publish config anytime:

Key config sections

Section Purpose
mode review or self_writing
site Niche, description, author, organization — fed into AI prompts and schema
text_provider Default provider + per-step overrides (generate, humanize, fact_check, etc.)
image_provider Default image driver
humanization Enable/disable pass; optional voice_profile_path text file
fact_check Enable/disable; block_unverified_claims for hard blocking
seo Min word count, readability target, meta length limits
aeo FAQ count, snippet optimization
geo Citation-friendly restructuring
images Disk, directory, inline_per_h2 toggle
duplicate_check Similarity threshold (0.85 default), compare last N articles
internal_linking Max links per article, related article count
freshness Check interval days, traffic decline threshold
topic_discovery Min scores, RSS feeds, News API query
generation Default length, tone, reading level
frontend blog_path for canonical URLs in schema
schedule Cron expressions for automated jobs

Most settings can also be changed from AI Settings in the admin panel without editing files.


Admin Panel Guide

The Filament panel is at /abe-admin (panel ID: ai-blog-engine).

Dashboard

Topics

Manage the topic pipeline:

Action Description
Create Manually add a topic (auto-queued for generation)
Fetch Topics Pull from RSS / News API and score with AI
Score Re-run AI relevance/opportunity scoring on a topic
Generate Dispatch full article pipeline for a topic

Topic statuses: pending → scored → queued → processing → completed

Articles

Full CRUD for generated articles:

Action Description
Edit Modify title, body, meta tags, status
Approve Publish article (sets published_at)
Reject Mark as rejected

Review panel shows SEO score, readability, AEO score, duplicate flag, and fact-check flags.

Sources

Enable/disable and configure topic sources:

Adjust performance_weight to boost sources that produce high-performing articles.

Freshness Queue

Articles flagged as needs_update appear here:

AI Settings

Configure without touching .env:


The Article Pipeline

When a topic is generated, it passes through these steps in order:

Each step logs to abe_ai_generation_logs with provider, tokens, and cost estimate.


Day-to-Day Usage

Workflow A: Fully automated (with review)

Workflow B: Manual topic → article

  1. Go to Topics → Create
  2. Enter title and summary (paste source content in summary for fact-checking)
  3. Set status to queued
  4. Click Generate on the topic row (or run php artisan ai-blog-engine:generate {id})
  5. Review and approve in Articles

Workflow C: Self-writing (no human step)

Articles publish automatically when fact-check and duplicate checks pass.

Workflow D: Refresh aging content

Then use Freshness Queue in admin to refresh flagged articles.


Artisan Commands

Command Description
php artisan ai-blog-engine:install Publish config, migrations, seed sources, Filament assets
php artisan ai-blog-engine:install --migrate Same + run migrations
php artisan ai-blog-engine:fetch-topics Fetch and AI-score topics from enabled sources
php artisan ai-blog-engine:generate {topic?} Generate article for one topic ID
php artisan ai-blog-engine:generate --queued Generate all queued topics
php artisan ai-blog-engine:freshness-scan Scan published articles for freshness flags
php artisan make:filament-user --panel=ai-blog-engine Create admin login
php artisan filament:assets Re-publish Filament CSS/JS (fix unstyled admin)

Scheduled Jobs

Registered automatically when APP_ENV runs in console. Customize cron in config/ai-blog-engine.php under schedule:

Override via env: ABE_SCHEDULE_FETCH_TOPICS, ABE_SCHEDULE_FRESHNESS, etc.


Publishing Modes

Mode Config Behavior
Review ABE_MODE=review Articles land in pending_review; human approves in admin
Self-writing ABE_MODE=self_writing Auto-publish if no blocking fact-check flags and not duplicate-flagged

Article statuses: draft → humanizing → fact_checking → seo_processing → pending_review → published

Also: scheduled, needs_update, rejected


Topic Discovery

Manual

Create topics in admin. Best practice: paste source article text in summary or store full content in raw_payload so fact-checking can verify claims.

RSS

Or configure feeds per-source in Sources → RSS → config key feeds as JSON array.

News API

Get a free key at newsapi.org.

AI Scoring

Each topic receives:

Topics below ABE_MIN_RELEVANCE (50) or ABE_MIN_OPPORTUNITY (30) are not queued.


AI Providers

Text providers

Driver Env key Notes
groq GROQ_API_KEY or GROQ_API_KEYS Free tier, fast — supports multiple keys with auto-rotation on 429
openai OPENAI_API_KEY GPT-4o mini default
claude ANTHROPIC_API_KEY Claude Sonnet default
gemini GEMINI_API_KEY Gemini 2.0 Flash default

Use one provider for all steps:

Multiple Groq keys (recommended for production / heavy usage):

When one key hits its rate limit, the package automatically switches to the next key — no job failure, no manual intervention.

You can still set GROQ_API_KEY for a single key; GROQ_API_KEYS takes precedence when set (comma-separated, no spaces required).

Keys are rotated round-robin for even load. On HTTP 429, the current key is skipped and the next is tried immediately.

Or override per pipeline step:

Programmatic usage


Image Providers

Driver Env key Cost
pollinations none Free
unsplash UNSPLASH_ACCESS_KEY Free (stock photos)
openai OPENAI_API_KEY Paid (DALL-E 3)
stability STABILITY_API_KEY Paid

Images are stored on the disk configured in ABE_IMAGE_DISK (default: public) under abe-images/.


Frontend Integration

This package is backend-only. Query models from your own routes, controllers, or Livewire components.

Blade example

Livewire

Canonical URLs

Articles expose a url attribute using ABE_SITE_URL + ABE_BLOG_PATH:

Related articles


Models & Querying

Model Table Purpose
Topic abe_topics Discovered/scored topics
TopicSource abe_topic_sources Source configuration
Article abe_articles Generated articles
ArticleFaq abe_article_faqs FAQ pairs
ArticleImage abe_article_images Featured and inline images
ArticleLink abe_article_links Internal links between articles
FactCheckFlag abe_fact_check_flags Claim verification results
AiGenerationLog abe_ai_generation_logs Per-step AI usage logs
ArticleEdit abe_article_edits Human/AI edit audit trail
ArticleAnalytic abe_article_analytics Pageview data for freshness/analytics

Useful scopes

Publish manually


Programmatic Usage

Run the full pipeline

Generate with custom options

Dispatch as background job


Database Tables


Troubleshooting

Admin panel has no CSS / looks like plain HTML

Hard-refresh the browser (Ctrl+Shift+R).

Admin panel CSS loads but from wrong host

Set APP_URL in .env to exactly match your browser URL:

Articles stuck in processing

Ensure a queue worker is running:

Check storage/logs/laravel.log and the abe_ai_generation_logs table.

"API key not configured" errors

Verify the correct env key for your provider (GROQ_API_KEY, etc.) and run:

Images not displaying

Confirm ABE_IMAGE_DISK=public and files exist in storage/app/public/abe-images/.

No topics after fetch

Fact-check flags everything as unverified

Paste the original source content into the topic summary or ensure raw_payload.content is populated when the topic is created.


Package Structure


License

MIT — free for personal and commercial use.


All versions of ai-blog-engine with dependencies

PHP Build Version
Package Version
Requires php Version ^8.2
ext-json Version *
ext-mbstring Version *
filament/filament Version ^4.0
guzzlehttp/guzzle Version ^7.8
illuminate/console Version ^11.0|^12.0|^13.0
illuminate/database Version ^11.0|^12.0|^13.0
illuminate/http Version ^11.0|^12.0|^13.0
illuminate/routing Version ^11.0|^12.0|^13.0
illuminate/support Version ^11.0|^12.0|^13.0
spatie/laravel-package-tools Version ^1.16
Composer command for our command line client (download client) This client runs in each environment. You don't need a specific PHP version etc. The first 20 API calls are free. Standard composer command

The package muzorix/ai-blog-engine contains the following files

Loading the files please wait ...