PHPackages                             contentgecko/magecko - 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. contentgecko/magecko

ActiveMagento2-module

contentgecko/magecko
====================

Magecko blog CMS module for Magento Open Source and Adobe Commerce.

v1.6.0(2d ago)00proprietaryPHP ^8.2 || ^8.3 || ^8.4

Since Jul 6Compare

[ Source](https://github.com/ContentGecko/Magecko)[ Packagist](https://packagist.org/packages/contentgecko/magecko)[ RSS](/packages/contentgecko-magecko/feed)WikiDiscussions Synced today

READMEChangelog (1)Dependencies (6)Versions (9)Used By (0)

Magecko
=======

[](#magecko)

Magecko is a lightweight Magento blog CMS module. It provides admin-managed blog posts, a WYSIWYG HTML editor, featured images, inline article images through Magento media tools, SEO fields, store-view translations, frontend blog pages, and authenticated Magento Web API endpoints.

Features
--------

[](#features)

- Admin create, edit, and delete for blog posts
- Draft and published post statuses
- Paginated admin post list with ID column and title, status, category/topic, and author filters
- Paginated storefront blog landing page
- Store-scoped storefront enable switch, disabled by default for safe installation
- Configurable frontend route for coexistence with existing blog extensions
- Native Magento WYSIWYG HTML editor for default and translated article bodies
- Featured image and featured image alt text
- Metadata fields: slug, category/topic, author, publish date, modified date
- SEO fields: meta title, meta description, and canonical URL override
- Store-view translations for title, slug, category/topic, author, image alt text, body HTML, SEO fields, and canonical URL
- Post-page canonical and hreflang link output
- Storefront blog landing and post pages under the configured route
- REST API CRUD endpoints and base64 media upload endpoint
- Magento full-page-cache identities and cache invalidation on save/delete

Requirements
------------

[](#requirements)

- Magento Open Source or Adobe Commerce 2.4.x
- PHP 8.2, 8.3, or 8.4
- Admin or integration token for REST API access

Manual Installation
-------------------

[](#manual-installation)

Copy this repository into:

```
app/code/Magecko/Blog
```

Then run:

```
bin/magento module:enable Magecko_Blog
bin/magento setup:upgrade
bin/magento cache:flush
```

In production mode, also run:

```
bin/magento setup:di:compile
bin/magento setup:static-content:deploy
bin/magento cache:flush
```

Composer Installation
---------------------

[](#composer-installation)

Configure the public GitHub repository as a Composer VCS source:

```
composer config repositories.magecko vcs https://github.com/ContentGecko/Magecko.git
composer require contentgecko/magecko:^1.6
bin/magento module:enable Magecko_Blog
bin/magento setup:upgrade
bin/magento magecko:compatibility-check
bin/magento setup:di:compile
bin/magento setup:static-content:deploy
bin/magento cache:flush
```

Admin
-----

[](#admin)

In Magento Admin, go to:

```
Content > Elements > Blog Posts

```

Storefront output is disabled after installation. Configure it at:

```
Stores > Configuration > General > Magecko Blog

```

For coexistence testing, choose an unused route such as `magecko-test`, save the configuration, then enable the storefront. Run the compatibility check again after enabling:

```
bin/magento magecko:compatibility-check
```

Testing
-------

[](#testing)

Run the package smoke suite from the Magento root after installing Magecko:

```
php vendor/contentgecko/magecko/Test/Integration/run-smoke.php
vendor/bin/phpunit --no-extensions -c dev/tests/unit/phpunit.xml.dist vendor/contentgecko/magecko/Test/Unit
```

The smoke suite creates temporary posts, verifies repository saves, admin filters, published-only collection behavior, and pagination, then removes its temporary data.

Documentation
-------------

[](#documentation)

- [Installation Guide](docs/INSTALLATION.md)
- [User Guide](docs/USER_GUIDE.md)
- [API Guide](docs/API.md)
- [Security Notes](docs/SECURITY.md)
- [Marketplace Readiness](docs/MARKETPLACE_READINESS.md)

REST API
--------

[](#rest-api)

All endpoints require a Magento admin or integration bearer token with access to `Magecko_Blog::posts`.

Get an admin token locally:

```
curl -X POST https://example.com/rest/V1/integration/admin/token \
  -H 'Content-Type: application/json' \
  -d '{"username":"admin","password":"password"}'
```

Endpoints:

```
GET    /rest/V1/magecko-blog/posts
GET    /rest/V1/magecko-blog/posts/{postId}
GET    /rest/V1/magecko-blog/posts/{postId}/store/{storeId}
GET    /rest/V1/magecko-blog/posts/slug/{slug}
GET    /rest/V1/magecko-blog/posts/store/{storeId}/slug/{slug}
POST   /rest/V1/magecko-blog/posts
PUT    /rest/V1/magecko-blog/posts/{postId}
PUT    /rest/V1/magecko-blog/posts/{postId}/store/{storeId}
DELETE /rest/V1/magecko-blog/posts/{postId}
DELETE /rest/V1/magecko-blog/posts/{postId}/store/{storeId}
POST   /rest/V1/magecko-blog/media

```

Create a post:

```
curl -X POST https://example.com/rest/V1/magecko-blog/posts \
  -H "Authorization: Bearer $TOKEN" \
  -H 'Content-Type: application/json' \
  -d '{
    "post": {
      "title": "Brake Pad Wear: What to Check Before Every Ride",
      "slug": "brake-pad-wear-checklist",
      "status": "published",
      "topic": "Brakes",
      "author": "Magecko",
      "publish_date": "2026-07-06 13:00:00",
      "modified_date": "2026-07-06 13:00:00",
      "meta_title": "Brake Pad Wear Checklist",
      "meta_description": "A practical motorcycle brake pad inspection guide.",
      "body_html": "Brake pad inspectionCheck pad material before long rides."
    }
  }'
```

Save a store-view translation:

```
curl -X PUT https://example.com/rest/V1/magecko-blog/posts/123/store/2 \
  -H "Authorization: Bearer $TOKEN" \
  -H 'Content-Type: application/json' \
  -d '{
    "post": {
      "title": "Piduriklotside kontroll",
      "slug": "piduriklotside-kontroll",
      "topic": "Pidurid",
      "author": "Magecko",
      "meta_title": "Piduriklotside kontroll",
      "meta_description": "Praktiline juhend mootorratta piduriklotside kontrollimiseks.",
      "body_html": "Kontrolli klotsimaterjali enne pikemaid sõite."
    }
  }'
```

Upload media:

```
curl -X POST https://example.com/rest/V1/magecko-blog/media \
  -H "Authorization: Bearer $TOKEN" \
  -H 'Content-Type: application/json' \
  -d '{
    "image": {
      "file_name": "brake-pads.png",
      "content_base64": "BASE64_CONTENT_HERE",
      "mime_type": "image/png"
    }
  }'
```

The media endpoint returns:

```
{
  "path": "magecko/blog/brake-pads.png",
  "url": "https://example.com/media/magecko/blog/brake-pads.png"
}
```

Use `path` as `featured_image`. Inline article images can be inserted in Admin through the WYSIWYG media browser, or through REST by sending image markup in `body_html`.

Production Rollout Checklist
----------------------------

[](#production-rollout-checklist)

- Install on staging first
- Confirm Magento and PHP version compatibility
- Create, edit, delete posts in Admin
- Confirm draft posts are hidden from the configured blog route and direct post URLs
- Verify admin and storefront pagination
- Run `php vendor/contentgecko/magecko/Test/Integration/run-smoke.php`
- Create, update, delete posts through REST API
- Create and verify store-view translations through REST API
- Upload featured and inline images
- Verify the configured landing and post URLs through the client theme
- Verify canonical and hreflang tags on blog post pages
- Verify full-page cache, Varnish/Fastly/CDN purge behavior
- Back up production database and media before installation

Notes
-----

[](#notes)

- Blog content is stored in `magecko_blog_post`.
- Store-view translations are stored in `magecko_blog_post_store`.
- Featured images uploaded through Magecko are stored in `pub/media/magecko/blog`.
- Inline images inserted through the WYSIWYG media browser use Magento's standard CMS media storage.
- The module does not add public anonymous API routes. Use Magento admin/integration authentication.

###  Health Score

42

—

FairBetter than 88% of packages

Maintenance99

Actively maintained with recent releases

Popularity0

Limited adoption so far

Community2

Small or concentrated contributor base

Maturity56

Maturing project, gaining track record

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 ~2 days

Total

8

Last Release

2d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/3236fe8c37130d7b5c218fdb817c22f68daf8de557fb7365b40f3d768fba9ba0?d=identicon)[Mikimouse11](/maintainers/Mikimouse11)

### Embed Badge

![Health badge](/badges/contentgecko-magecko/health.svg)

```
[![Health](https://phpackages.com/badges/contentgecko-magecko/health.svg)](https://phpackages.com/packages/contentgecko-magecko)
```

###  Alternatives

[mollie/magento2

Mollie Payment Module for Magento 2

1131.9M16](/packages/mollie-magento2)[loki/magento2-components

Core module for defining Alpine.js components with advanced AJAX features

1011.8k26](/packages/loki-magento2-components)[run-as-root/magento2-prometheus-exporter

Magento2 Prometheus Exporter

68357.9k](/packages/run-as-root-magento2-prometheus-exporter)[fastly/magento2

Fastly CDN Module for Magento 2.4.x

1564.4M1](/packages/fastly-magento2)[buckaroo/magento2

Buckaroo Magento 2 extension

32420.3k8](/packages/buckaroo-magento2)[angeo/module-llms-txt

Magento 2 module for AI Engine Optimization (AEO). Generates spec-compliant llms.txt and llms-full.txt per llmstxt.org standard, plus streaming JSONL for vector indexing. Multi-store, multi-website, CLI, cron, async admin UI, Page Builder-aware sanitization, customer-group pricing, atomic writes, ETag/Cache-Control, .md mirrors.

111.1k](/packages/angeo-module-llms-txt)

PHPackages © 2026

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