PHPackages                             rumenx/php-seo - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. rumenx/php-seo

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

rumenx/php-seo
==============

AI-powered, framework-agnostic PHP package for automated SEO optimization. Intelligently generates meta tags, titles, descriptions, and alt texts using configurable AI providers or manual patterns.

v1.1.0(5mo ago)102.0k—6.3%1[2 issues](https://github.com/RumenDamyanov/php-seo/issues)MITPHPPHP ^8.2CI passing

Since Sep 22Pushed 2mo agoCompare

[ Source](https://github.com/RumenDamyanov/php-seo)[ Packagist](https://packagist.org/packages/rumenx/php-seo)[ Docs](https://github.com/RumenDamyanov/php-seo)[ GitHub Sponsors](https://github.com/sponsors/RumenDamyanov)[ RSS](/packages/rumenx-php-seo/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (6)Dependencies (19)Versions (10)Used By (0)

php-seo
=======

[](#php-seo)

[![CI](https://github.com/RumenDamyanov/php-seo/actions/workflows/ci.yml/badge.svg)](https://github.com/RumenDamyanov/php-seo/actions/workflows/ci.yml)[![Analyze](https://github.com/RumenDamyanov/php-seo/actions/workflows/analyze.yml/badge.svg)](https://github.com/RumenDamyanov/php-seo/actions/workflows/analyze.yml)[![Style](https://github.com/RumenDamyanov/php-seo/actions/workflows/style.yml/badge.svg)](https://github.com/RumenDamyanov/php-seo/actions/workflows/style.yml)[![CodeQL](https://github.com/RumenDamyanov/php-seo/actions/workflows/github-code-scanning/codeql/badge.svg)](https://github.com/RumenDamyanov/php-seo/actions/workflows/github-code-scanning/codeql)[![Dependabot](https://github.com/RumenDamyanov/php-seo/actions/workflows/dependabot/dependabot-updates/badge.svg)](https://github.com/RumenDamyanov/php-seo/actions/workflows/dependabot/dependabot-updates)[![codecov](https://camo.githubusercontent.com/d6a29d7b5a7ca0fdffe8a27833bac79bc5136951253758e0d845732c18fbaf5d/68747470733a2f2f636f6465636f762e696f2f67682f52756d656e44616d79616e6f762f7068702d73656f2f6272616e63682f6d61737465722f67726170682f62616467652e737667)](https://codecov.io/gh/RumenDamyanov/php-seo)

**php-seo** is a modern, AI-powered, framework-agnostic PHP package for automated SEO optimization. It intelligently generates meta tags, titles, descriptions, and alt texts using configurable AI providers or manual patterns, seamlessly integrating with Laravel, Symfony, or any PHP project.

✨ Features
----------

[](#-features)

### 🤖 AI-Powered Automation

[](#-ai-powered-automation)

- **Intelligent Content Analysis**: AI reads and analyzes page content to generate optimal titles, descriptions, and meta tags
- **Image Analysis**: Automatically generates alt text and titles for images by analyzing context
- **Social Media Optimization**: Generates platform-specific meta tags (Open Graph, Twitter Cards, etc.)
- **Multi-Provider Support**: Integration with popular AI models (GPT-4o, Claude 3.5, Gemini 1.5, Grok, Ollama)

### 🔧 Manual Configuration Mode

[](#-manual-configuration-mode)

- **Pattern-Based Generation**: Generate titles and descriptions using configurable patterns
- **Manual Override**: Full manual control over all SEO elements
- **Fallback Systems**: Graceful degradation when AI services are unavailable
- **Template-Based**: Use predefined templates for consistent SEO across pages

### 🏗️ Framework Integration

[](#️-framework-integration)

- **Laravel**: Native service provider, facades, config publishing, middleware
- **Symfony**: Bundle integration with services and configuration
- **Generic PHP**: Framework-agnostic core that works with any PHP project

### 🚀 Modern PHP

[](#-modern-php)

- **Type-safe**: Full PHP 8.2+ type declarations and strict types
- **Fluent Interface**: Chainable methods for elegant, readable code
- **Extensible**: Plugin architecture for custom analyzers and generators
- **High Performance**: Optimized for speed with caching and lazy loading
- **100% Test Pass Rate**: Comprehensive test suite with 453+ passing tests using Pest

### 💎 Advanced Features

[](#-advanced-features)

- **PSR-16 Caching**: Built-in caching support for improved performance (80%+ faster)
- **Rate Limiting**: Automatic API throttling with token bucket algorithm
- **Structured Data**: JSON-LD generation for Schema.org (Article, WebPage, Organization, Breadcrumb)
- **Cost Optimization**: 80-90% reduction in AI API costs through intelligent caching
- **Production Ready**: PHPStan level 6, 100% test coverage, strict types

📖 Quick Links
-------------

[](#-quick-links)

- 🚀 [Installation](#installation)
- 💡 [Usage Examples](#usage-examples)
- ⚙️ [Configuration](https://github.com/RumenDamyanov/php-seo/wiki/Configuration)
- 🤖 [AI Providers](https://github.com/RumenDamyanov/php-seo/wiki/AI-Integration)
- 🧪 [Testing &amp; Development](#testing--development)
- 🤝 [Contributing](CONTRIBUTING.md)
- 💬 [Discussions](https://github.com/RumenDamyanov/php-seo/discussions)
- 🔒 [Security Policy](SECURITY.md)
- 💝 [Support &amp; Funding](FUNDING.md)
- 📄 [License](#license)

📦 Installation
--------------

[](#-installation)

Install via Composer:

```
composer require rumenx/php-seo
```

### Requirements

[](#requirements)

- PHP 8.2 or higher
- ext-json
- ext-curl

🚀 Usage Examples
----------------

[](#-usage-examples)

### Laravel Example

[](#laravel-example)

#### Basic Setup

[](#basic-setup)

```
// In your controller
use Rumenx\PhpSeo\SeoManager;

public function show(Post $post, SeoManager $seo)
{
    $content = view('posts.content', compact('post'))->render();

    $seoData = $seo->analyze($content, [
        'title' => $post->title,
        'url' => request()->url(),
        'image' => $post->featured_image,
        'author' => $post->author->name,
        'published_at' => $post->published_at->toISOString(),
    ])->generateAll();

    return view('posts.show', compact('post', 'seoData'));
}
```

#### Blade Template

[](#blade-template)

```
@extends('layouts.app')

@section('head')
    {!! app('seo')->renderMetaTags($seoData) !!}
@endsection

@section('content')

@endsection
```

#### Using Facade

[](#using-facade)

```
use Rumenx\PhpSeo\Facades\Seo;

// Quick generation
$title = Seo::analyze($content)->generateTitle();
$description = Seo::generateDescription();
$metaTags = Seo::generateMetaTags();

// Complete SEO data
$seoData = Seo::analyze($content, $metadata)->generateAll();
```

#### Middleware Integration

[](#middleware-integration)

```
// In app/Http/Kernel.php
protected $routeMiddleware = [
    'seo' => \Rumenx\PhpSeo\Integrations\Laravel\SeoMiddleware::class,
];

// In your routes
Route::get('/posts/{post}', [PostController::class, 'show'])
    ->middleware('seo');
```

### Symfony Example

[](#symfony-example)

#### Controller Usage

[](#controller-usage)

```
use Rumenx\PhpSeo\SeoManager;
use Symfony\Component\HttpFoundation\Response;

class PostController extends AbstractController
{
    public function show(Post $post, SeoManager $seo): Response
    {
        $content = $this->renderView('post/content.html.twig', ['post' => $post]);

        $seoData = $seo->analyze($content, [
            'title' => $post->getTitle(),
            'url' => $this->generateUrl('post_show', ['id' => $post->getId()], UrlGeneratorInterface::ABSOLUTE_URL),
            'image' => $post->getFeaturedImage(),
            'author' => $post->getAuthor()->getName(),
        ])->generateAll();

        return $this->render('post/show.html.twig', [
            'post' => $post,
            'seo_data' => $seoData,
        ]);
    }
}
```

#### Twig Template

[](#twig-template)

```
{% extends 'base.html.twig' %}

{% block head %}
    {{ seo_meta_tags(seo_data)|raw }}
{% endblock %}

{% block body %}

{% endblock %}
```

### Generic PHP Example

[](#generic-php-example)

```
require 'vendor/autoload.php';

use Rumenx\PhpSeo\SeoManager;
use Rumenx\PhpSeo\Config\SeoConfig;

// Basic usage
$seo = new SeoManager();
$content = file_get_contents('page-content.html');

$seoData = $seo->analyze($content, [
    'title' => 'My Page Title',
    'url' => 'https://example.com/page',
])->generateAll();

// Output meta tags
echo $seo->renderMetaTags($seoData);

// With custom configuration
$config = new SeoConfig([
    'title' => [
        'pattern' => '{title} - {site_name}',
        'site_name' => 'My Website',
        'max_length' => 55,
    ],
    'mode' => 'ai',
    'ai' => [
        'provider' => 'openai',
        'api_key' => $_ENV['OPENAI_API_KEY'],
    ],
]);

$seo = new SeoManager($config);
$optimizedTitle = $seo->analyze($content)->generateTitle();
```

### Caching for Performance

[](#caching-for-performance)

Reduce AI costs by 80-90% and improve speed with PSR-16 caching:

```
use Rumenx\PhpSeo\SeoManager;
use Symfony\Component\Cache\Adapter\RedisAdapter;
use Symfony\Component\Cache\Psr16Cache;

// Setup Redis cache (or any PSR-16 implementation)
$redisClient = RedisAdapter::createConnection('redis://localhost');
$cache = new Psr16Cache(new RedisAdapter($redisClient));

// Initialize with caching
$seo = new SeoManager($config, $cache);

// First call: analyzes and caches
$seo->analyze($content)->generateAll();

// Second call: instant retrieval from cache (80%+ faster!)
$seo->analyze($content)->generateAll();
```

See [`examples/caching.php`](examples/caching.php) for complete example.

### Structured Data (JSON-LD)

[](#structured-data-json-ld)

Generate Schema.org structured data for rich snippets:

```
// Configure structured data
$config = new SeoConfig([
    'structured_data' => [
        'enabled' => true,
        'types' => [
            'article' => true,
            'breadcrumb' => true,
        ],
        'publisher' => [
            'name' => 'Your Site Name',
            'logo' => 'https://example.com/logo.png',
        ],
    ],
]);

$seo = new SeoManager($config);
$seo->analyze($content, [
    'title' => 'Article Title',
    'author' => 'John Doe',
    'published_date' => '2024-01-15T10:00:00Z',
]);

// Render in  section
echo $seo->renderStructuredData();
```

See [`examples/structured-data.php`](examples/structured-data.php) for complete example.

### Complete Integration

[](#complete-integration)

For a full example showing all features, see [`examples/complete-integration.php`](examples/complete-integration.php).

⚙️ Configuration
----------------

[](#️-configuration)

### Laravel Configuration

[](#laravel-configuration)

Publish the configuration file:

```
php artisan vendor:publish --provider="Rumenx\PhpSeo\Integrations\Laravel\SeoServiceProvider"
```

Edit `config/seo.php`:

```
return [
    'mode' => 'hybrid', // 'ai', 'manual', 'hybrid'
    'ai' => [
        'provider' => 'openai',
        'api_key' => env('SEO_AI_API_KEY'),
        'model' => 'gpt-4o-mini', // Best cost/performance (Dec 2024)
    ],
    'title' => [
        'pattern' => '{title} | {site_name}',
        'site_name' => env('APP_NAME'),
        'max_length' => 60,
    ],
    // ... more configuration
];
```

### Environment Variables

[](#environment-variables)

```
# Basic settings
SEO_ENABLED=true
SEO_MODE=hybrid
SEO_CACHE_ENABLED=true

# AI Provider
SEO_AI_PROVIDER=openai
SEO_AI_API_KEY=your-api-key-here
SEO_AI_MODEL=gpt-4o-mini

# Title settings
SEO_TITLE_PATTERN="{title} | {site_name}"
SEO_SITE_NAME="My Website"

# Social media
SEO_OG_SITE_NAME="My Website"
SEO_TWITTER_SITE="@mywebsite"
```

🤖 AI Providers
--------------

[](#-ai-providers)

### OpenAI (GPT-4/5)

[](#openai-gpt-45)

```
$config = new SeoConfig([
    'ai' => [
        'provider' => 'openai',
        'api_key' => 'your-openai-api-key',
        'model' => 'gpt-4o-mini', // Best cost/performance (Dec 2024)
    ],
]);
```

### Anthropic (Claude)

[](#anthropic-claude)

```
$config = new SeoConfig([
    'ai' => [
        'provider' => 'anthropic',
        'api_key' => 'your-anthropic-api-key',
        'model' => 'claude-3-5-sonnet-20241022', // Latest Claude 3.5 Sonnet (Oct 2024)
    ],
]);
```

### Google (Gemini)

[](#google-gemini)

```
$config = new SeoConfig([
    'ai' => [
        'provider' => 'google',
        'api_key' => 'your-google-api-key',
        'model' => 'gemini-1.5-flash', // Latest Gemini 1.5 Flash (Dec 2024)
    ],
]);
```

### Local AI (Ollama)

[](#local-ai-ollama)

```
$config = new SeoConfig([
    'ai' => [
        'provider' => 'ollama',
        'api_url' => 'http://localhost:11434',
        'model' => 'llama2',
    ],
]);
```

### Multiple Providers (Fallback)

[](#multiple-providers-fallback)

```
$config = new SeoConfig([
    'ai' => [
        'provider' => 'openai',
        'api_key' => 'primary-key',
        'fallback_providers' => [
            ['provider' => 'anthropic', 'api_key' => 'backup-key'],
            ['provider' => 'ollama', 'api_url' => 'http://localhost:11434'],
        ],
    ],
]);
```

🎯 Advanced Features
-------------------

[](#-advanced-features-1)

### Fluent Interface

[](#fluent-interface)

The package supports method chaining for elegant, readable code:

```
// Chain analyze() with generation methods
$title = $seo->analyze($content, $metadata)->generateTitle();
$description = $seo->analyze($content)->generateDescription();

// Chain all SEO generation
$seoData = $seo
    ->analyze($content, ['title' => 'My Page'])
    ->generateAll();

// Chain configuration methods
$seo = (new SeoManager())
    ->setPageData($customData)
    ->setCache($cacheImplementation);

// Schema classes support fluent interface
$article = (new ArticleSchema())
    ->setHeadline('My Article Title')
    ->setDescription('Article description')
    ->setAuthor('John Doe')
    ->setDatePublished('2024-01-15T10:00:00Z')
    ->setImage('https://example.com/image.jpg');

// All setter methods return $this for chaining
$breadcrumb = (new BreadcrumbListSchema())
    ->addItem('Home', '/', 1)
    ->addItem('Blog', '/blog', 2)
    ->addItem('Article', '/blog/article', 3);
```

**Available Chainable Methods:**

- `analyze(string $content, array $metadata = []): self`
- `setPageData(array $data): self`
- `setCache(CacheInterface $cache): self`
- `withConfig(SeoConfig $config): self`
- All Schema setter methods return `static` for chaining

### Custom Analyzers

[](#custom-analyzers)

```
use Rumenx\PhpSeo\Contracts\AnalyzerInterface;

class CustomContentAnalyzer implements AnalyzerInterface
{
    public function analyze(string $content, array $metadata = []): array
    {
        // Your custom analysis logic
        return [
            'custom_data' => $this->extractCustomData($content),
            // ... other data
        ];
    }

    public function supports(string $contentType): bool
    {
        return $contentType === 'custom/format';
    }
}

// Use your custom analyzer
$seo = new SeoManager(
    config: $config,
    contentAnalyzer: new CustomContentAnalyzer()
);
```

### Custom Generators

[](#custom-generators)

```
use Rumenx\PhpSeo\Contracts\GeneratorInterface;

class CustomTitleGenerator implements GeneratorInterface
{
    public function generate(array $pageData): string
    {
        // Your custom generation logic
        return $this->createCustomTitle($pageData);
    }

    public function generateCustom(mixed $customInput, array $pageData = []): string
    {
        // Handle custom input
        return $this->processCustomTitle($customInput, $pageData);
    }

    public function supports(string $type): bool
    {
        return $type === 'title';
    }
}
```

### Batch Processing

[](#batch-processing)

```
$posts = Post::all();
$seoResults = [];

foreach ($posts as $post) {
    $content = $post->getContent();
    $metadata = [
        'title' => $post->getTitle(),
        'url' => $post->getUrl(),
        'author' => $post->getAuthor(),
    ];

    $seoResults[$post->getId()] = $seo
        ->analyze($content, $metadata)
        ->generateAll();
}
```

🧪 Testing &amp; Development
---------------------------

[](#-testing--development)

### Running Tests

[](#running-tests)

```
# Run all tests (453 tests, 1247 assertions - 100% passing! ✅)
composer test

# Run tests with coverage
composer test-coverage

# Generate HTML coverage report
composer test-coverage-html

# Run specific test
./vendor/bin/pest tests/Unit/SeoManagerTest.php

# Run specific test group
./vendor/bin/pest --filter="OllamaProvider"

# Run with verbose output
./vendor/bin/pest --verbose
```

### Test Coverage

[](#test-coverage)

The package maintains **100% test pass rate** with comprehensive test coverage:

- ✅ **453 passing tests** across all components
- ✅ **1247 assertions** ensuring code quality
- ✅ **Unit tests** for all core functionality
- ✅ **Integration tests** for Laravel and Symfony
- ✅ **AI Provider tests** for OpenAI, Anthropic, Google, xAI, and Ollama
- ✅ **Generator tests** for titles, descriptions, and meta tags
- ✅ **Analyzer tests** for content processing
- ✅ **Validator tests** for response validation

### Code Quality

[](#code-quality)

```
# Check coding standards
composer style

# Fix coding standards
composer style-fix

# Run static analysis
composer analyze

# Run all quality checks
composer quality
```

📚 Documentation
---------------

[](#-documentation)

- [Configuration Reference](https://github.com/RumenDamyanov/php-seo/wiki/Configuration)
- [AI Integration Guide](https://github.com/RumenDamyanov/php-seo/wiki/AI-Integration)
- [Laravel Examples](https://github.com/RumenDamyanov/php-seo/wiki/Laravel-Integration)
- [Symfony Examples](https://github.com/RumenDamyanov/php-seo/wiki/Symfony-Integration)
- [Plain PHP Examples](https://github.com/RumenDamyanov/php-seo/wiki/Plain-PHP-Examples)
- [Basic Examples](https://github.com/RumenDamyanov/php-seo/wiki/Basic-Examples)
- [Home](https://github.com/RumenDamyanov/php-seo/wiki/Home)

🤝 Contributing
--------------

[](#-contributing)

We welcome contributions! Please see our [Contributing Guide](CONTRIBUTING.md) for details.

- 🐛 [Report issues](https://github.com/RumenDamyanov/php-seo/issues)
- 💡 [Request features](https://github.com/RumenDamyanov/php-seo/issues/new?template=feature_request.md)
- 🔧 [Submit pull requests](https://github.com/RumenDamyanov/php-seo/pulls)

🔒 Security
----------

[](#-security)

If you discover a security vulnerability, please review our [Security Policy](SECURITY.md) for responsible disclosure guidelines.

💝 Support
---------

[](#-support)

If you find this package helpful, consider:

- ⭐ [Starring the repository](https://github.com/RumenDamyanov/php-seo)
- 💝 [Supporting development](FUNDING.md)
- 🐛 [Reporting issues](https://github.com/RumenDamyanov/php-seo/issues)
- 🤝 [Contributing improvements](CONTRIBUTING.md)

📄 License
---------

[](#-license)

[MIT License](LICENSE.md). Please see the license file for more information.

🏆 About
-------

[](#-about)

**php-seo** is created and maintained by [Rumen Damyanov](https://github.com/RumenDamyanov). It aims to bring the same level of quality and ease-of-use to SEO optimization.

### SEO Package Family

[](#seo-package-family)

This package is part of a multi-language SEO ecosystem:

- **[@rumenx/seo](https://www.npmjs.com/package/@rumenx/seo)** - JavaScript/TypeScript SEO package for Node.js and browsers

    - 📦 [NPM Package](https://www.npmjs.com/package/@rumenx/seo)
    - 💻 [GitHub Repository](https://github.com/RumenDamyanov/npm-seo)
    - ⚡ Framework-agnostic with React, Vue, Angular integrations
    - 🚀 Works in both Node.js and browser environments
- **php-seo** (this package) - PHP SEO package for Laravel, Symfony, and any PHP project

    - 🐘 PHP 8.2+ with full type safety
    - 🤖 AI-powered content generation
    - 🏗️ Framework-agnostic with Laravel/Symfony integrations
- **go-seo** (planned) - Go SEO package

    - 🚀 High-performance SEO optimization for Go applications
    - Coming soon!

All packages share similar APIs and best practices, making it easy to work across different tech stacks.

### Related Projects

[](#related-projects)

- [php-chatbot](https://github.com/RumenDamyanov/php-chatbot) - AI powered chatbot package
- [php-sitemap](https://github.com/RumenDamyanov/php-sitemap) - Framework-agnostic sitemap generation
- [php-feed](https://github.com/RumenDamyanov/php-feed) - Framework-agnostic rss feed generation
- [php-geolocation](https://github.com/RumenDamyanov/php-geolocation) - Framework-agnostic geolocation detection and handling for PHP
- More projects coming soon!

---

**Framework-agnostic AI-powered SEO optimization for modern PHP applications.**

###  Health Score

45

—

FairBetter than 93% of packages

Maintenance76

Regular maintenance activity

Popularity28

Limited adoption so far

Community9

Small or concentrated contributor base

Maturity54

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 63.2% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~14 days

Recently: every ~20 days

Total

7

Last Release

150d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/48dce3e6200e787e75a4a14e0d31738d112261fe0877f15f74d3fb2c2a626229?d=identicon)[RumenX](/maintainers/RumenX)

---

Top Contributors

[![dependabot[bot]](https://avatars.githubusercontent.com/in/29110?v=4)](https://github.com/dependabot[bot] "dependabot[bot] (36 commits)")[![RumenDamyanov](https://avatars.githubusercontent.com/u/1458253?v=4)](https://github.com/RumenDamyanov "RumenDamyanov (21 commits)")

---

Tags

aicomposer-packagelaravelphpseoseo-optimizationsymfonyphpsymfonylaravelautomationopenaioptimizationseoframework agnosticclaudeAI-poweredmeta-tagsollama

###  Code Quality

TestsPest

Static AnalysisPHPStan

Code StylePHP CS Fixer

Type Coverage Yes

### Embed Badge

![Health badge](/badges/rumenx-php-seo/health.svg)

```
[![Health](https://phpackages.com/badges/rumenx-php-seo/health.svg)](https://phpackages.com/packages/rumenx-php-seo)
```

###  Alternatives

[cognesy/instructor-php

The complete AI toolkit for PHP: unified LLM API, structured outputs, agents, and coding agent control

310107.9k1](/packages/cognesy-instructor-php)[theodo-group/llphant

LLPhant is a library to help you build Generative AI applications.

1.5k311.5k5](/packages/theodo-group-llphant)[aporat/store-receipt-validator

PHP receipt validator for Apple App Store and Amazon Appstore

6503.9M9](/packages/aporat-store-receipt-validator)[civicrm/civicrm-core

Open source constituent relationship management for non-profits, NGOs and advocacy organizations.

728272.9k20](/packages/civicrm-civicrm-core)[llm-agents/agents

LLM Agents PHP SDK - Autonomous Language Model Agents for PHP

16410.9k9](/packages/llm-agents-agents)[aedart/athenaeum

Athenaeum is a mono repository; a collection of various PHP packages

245.2k](/packages/aedart-athenaeum)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
