PHPackages                             devcreative/socialfeed - 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. devcreative/socialfeed

ActiveSilverstripe-module[Utility &amp; Helpers](/categories/utility)

devcreative/socialfeed
======================

Allows you to display an aggregated feed of posts originated from various social media sites.

0151PHP

Since Jun 21Pushed 9y ago1 watchersCompare

[ Source](https://github.com/david-ny/silverstripe-socialfeed)[ Packagist](https://packagist.org/packages/devcreative/socialfeed)[ RSS](/packages/devcreative-socialfeed/feed)WikiDiscussions master Synced 3w ago

READMEChangelogDependenciesVersions (1)Used By (0)

Socialfeed for SilverStripe
===========================

[](#socialfeed-for-silverstripe)

Introduction
------------

[](#introduction)

This module allows you to display an aggregated feed of posts originated from various social media sites.

Goals
-----

[](#goals)

- allows you to seamlessly integrate posts from multiple social media sites into a news or blog page.
- helps to stay within API access limits.
- speeds up page load by caching the posts in the local database.

Features
--------

[](#features)

- Facebook, Instagram, Twitter and YouTube type feeds are implemented.
- multiple feeds of the same type can be used.

My intention was to make it easier to adapt the module to other frameworks. The core functionality is not relying on Silverstripe.

Screenshots
-----------

[](#screenshots)

### SocialFeed Page

[](#socialfeed-page)

[![SocialFeed Page](docs/01-posts-frontend.png)](docs/01-posts-frontend.png)

### Synced posts in the cms

[](#synced-posts-in-the-cms)

[![Synced posts in the cms](docs/02-posts-backend.png)](docs/02-posts-backend.png)

[![Synced posts in the cms](docs/03-post-backend.png)](docs/03-post-backend.png)

### Response of the sync action called by js on page load

[](#response-of-the-sync-action-called-by-js-on-page-load)

(You have to be logged in as administrator.)

[![Response of the sync action called by js on page load](docs/04-sync-response.png)](docs/04-sync-response.png)

installation
------------

[](#installation)

```
composer require "devcreative/socialfeed"

```

Usage
-----

[](#usage)

- edit the config file: Socialfeed.yaml
    (Multiple feeds of the same type can be added.)
- create a new SocialFeedPage.

### Example of combining posts with news

[](#example-of-combining-posts-with-news)

```
//news source
class News extends DataObject {

    private static $db = array(
        ,"Date" => "Date"
        ,"Title" => "Varchar(255)"
        ,"Content" => "HTMLText"
    );

    public function date() {
        return $this->Date;
    }

	//...
}

class SocialFeedPage_Controller extends Page_Controller {

	//...

	public function getPosts() {

		 //get news and posts
         $allNews = News::get();
         $allPosts = $this->feeds->getAllPosts();

		 //merge into one array
         foreach ($allNews as $news) {
             array_push($allPosts, $news);
         }

		 //sort by date
         usort($allPosts, function($a, $b) {
             return ($a->date() < $b->date())?true:false;
         });

         //create ArrayList for template
         $list = ArrayList::create(array());

		 //add the sorted news and posts
         foreach ($allPosts as $post) {
              $list->push(
                 (get_class($post) == "News")?$post:ArrayData::create($post->data())
              );
         }

         return new ArrayData(array("Posts" => $list));
     }

	 //...
 }

 //templates may need to be modified to display news
```

### Todo

[](#todo)

- Every API has different access limits. Currently there is only one default available: 10 minutes has to pass between two syncs. canSync() functions should be implemented for every feed class.
- Create an admin area in the cms for the feed settings, instead of using the yaml file
- The queried and processed fields are hardcoded into the feed classes. They should be editable in the cms, or in the config file.

###  Health Score

21

—

LowBetter than 18% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity7

Limited adoption so far

Community8

Small or concentrated contributor base

Maturity41

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% 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.

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/7448452?v=4)[david-ny](/maintainers/david-ny)[@david-ny](https://github.com/david-ny)

---

Top Contributors

[![david-ny](https://avatars.githubusercontent.com/u/7448452?v=4)](https://github.com/david-ny "david-ny (1 commits)")

### Embed Badge

![Health badge](/badges/devcreative-socialfeed/health.svg)

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

PHPackages © 2026

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