PHPackages                             talvbansal/easel - 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. [Framework](/categories/framework)
4. /
5. talvbansal/easel

ActiveLibrary[Framework](/categories/framework)

talvbansal/easel
================

A minimal blogging package for laravel

11477

Since Aug 22Compare

[ Source](https://github.com/talvbansal/easel)[ Packagist](https://packagist.org/packages/talvbansal/easel)[ RSS](/packages/talvbansal-easel/feed)WikiDiscussions Synced today

READMEChangelogDependenciesVersions (6)Used By (0)

Easel
=====

[](#easel)

A minimal blogging package for Laravel

 [![Editor](https://raw.githubusercontent.com/talvbansal/easel/gh-pages/images/Editor.png)](https://raw.githubusercontent.com/talvbansal/easel/gh-pages/images/Editor.png)

```

```

### Requirements

[](#requirements)

- [PHP](https://php.net) &gt;= 5.6
- [Composer](https://getcomposer.org)
- An existing [Laravel 5.3 ](https://laravel.com/docs/master/installation) project

### Installation

[](#installation)

1. You can download Easel using composer

    ```
    composer require talvbansal/easel

    ```
2. To register the `easel:install` and `easel:update` artisan commands as well as the new routes for Easel to work, you will need to add the Easel service provider to your `config/app.php` file

    ```
    \Easel\Providers\EaselServiceProvider::class,

    ```
3. To install Easel into your project run the following command, this will publish all the application assets and database migrations / factories / seeds required, the migrations will automatically be run from this command

    ```
    php artisan easel:install

    ```
4. Finally you'll need to seed your database to create the default admin user and initial post

    ```
    php artisan db:seed

    ```
5. Update your `config/auth.php` file to use Easel's built in User Model (`Easel\Models\User`)

    ```
     'providers' => [
         'users' => [
             'driver' => 'eloquent',
             'model' => Easel\Models\User::class,
         ],
     ],

    ```

    Or alternatively configure Easel to use your own [Custom User Model](#Custom-Model)
6. Sign into Easel using the default credentials:

    - Email `admin@easel.com`
    - Password `password`
7. Head over to the profile page and update your details and password!
8. Start blogging!

### Updates

[](#updates)

- Whenever an update to Easel is made internal files will automatically be updated when a composer update is run, however new views and assets will only be published / republished with the following command

    ```
      php artisan easel:update

    ```
- You could also add the above command to your post-update-cmd in your projects `composer.json` file

    ```
      "post-update-cmd": [
          "Illuminate\\Foundation\\ComposerScripts::postUpdate",
          "php artisan easel:update",
          "php artisan optimize"
      ]

    ```

### Customisation

[](#customisation)

Every app is different and Easel has been designed to be customisable. Be sure to check out the `config/easel.php` for a complete list of configurable options.

#### User Models

[](#user-models)

- Since Easel is designed to be the starting point for a new project or added into an existing one, you can decide to use the built in `User` model (`Easel\Models\User`) or use an existing `User` model with a few alterations.
- ##### Built In Model

    [](#built-in-model)
- If you want to use the build in User model (`Easel\Models\User`) you'll need to set it in the `config/auth.php` file

    ```
      'providers' => [
          'users' => [
              'driver' => 'eloquent',
              'model' => Easel\Models\User::class,
          ],
      ],

    ```
- ##### Custom Model

    [](#custom-model)

If you want to use an existing model you'll need to make the following changes to it:

1. Your User model will need implement the `Easel\Models\BlogUserInterface` and also use the `Easel\Models\EaselUserTrait`
2. You will also need to add the key `birthday` to the `$dates` property of your user model

    ```
     class User extends Model implements \Easel\Models\BlogUserInterface{

         use Easel\Models\EaselUserTrait;

         protected $dates = ['birthday'];

     }

    ```
3. Then finally update the `config/easel.php` config file use your User model

    ```
    'user_model' => \My\Custom\User::class,

    ```

#### Customising the url prefix for the blog

[](#customising-the-url-prefix-for-the-blog)

By default you can access the blog list and posts at the following routes:

```
    /blog
    /blog/{blog-post-slug}

```

However you might want the blog to accessed from a different URI, Easel lets you configure that by adding the following key `BLOG_BASE_URL` to your `.env` file, for example:

```
    BLOG_BASE_URL=/myblog

```

The above changes will make your blog respond at

```
    /myblog
    /myblog/{blog-post-slug}

```

If you want the blog to respond at the `'/'` route you will need to add a new route to your `routes.php` file as follows:

```
    Route::get('/', '\Easel\Http\Controllers\Frontend\BlogController@index');

```

#### Customising views for your blog posts and list

[](#customising-views-for-your-blog-posts-and-list)

When creating a blog post you can use the `default` layout for Easel, however it is likely that you'll want to amend the views to suit your application. You may also need different views for different blog posts - Easel has you covered! just add the `BLOG_POST_LAYOUTS` key to your `.env` file and give it the path to a folder within your `resources/views` folder

For example

```
    BLOG_POST_LAYOUTS=layouts.blog.posts

```

Will point to the following folder

```
    {project}/resources/views/layouts/blog/posts

```

- Every blade template within that folder will then be listed on the post creation page as a potential layout for that post.
- Sub-folders within the `BLOG_POST_LAYOUTS` folder will **not** be listed allowing you to store partials for your templates within that single folder structure.

You can also set the blog post list layout using the `BLOG_POST_LIST` key, which again points to a corresponding view within your `resources/views` folder

```
    BLOG_POST_LIST=layouts.blog.list

```

###  Health Score

26

—

LowBetter than 41% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity19

Limited adoption so far

Community8

Small or concentrated contributor base

Maturity47

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 98.9% 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://www.gravatar.com/avatar/9c829c7a19b9512381047a8b028a97e8b1a8ed57423005a48d899ae138203ea1?d=identicon)[talvbansal](/maintainers/talvbansal)

---

Top Contributors

[![talvbansal](https://avatars.githubusercontent.com/u/7305131?v=4)](https://github.com/talvbansal "talvbansal (268 commits)")[![austintoddj](https://avatars.githubusercontent.com/u/8037011?v=4)](https://github.com/austintoddj "austintoddj (3 commits)")

### Embed Badge

![Health badge](/badges/talvbansal-easel/health.svg)

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

###  Alternatives

[laravel/socialite

Laravel wrapper around OAuth 1 &amp; OAuth 2 libraries.

5.7k104.3M844](/packages/laravel-socialite)[laravel/dusk

Laravel Dusk provides simple end-to-end testing and browser automation.

1.9k38.6M289](/packages/laravel-dusk)[nineinchnick/edatatables

Grid widget for the Yii Framework, wrapper for the DataTables jQuery plugin

173.2k](/packages/nineinchnick-edatatables)[link-cloud/fast-hyperf

LinkCloud Fast Hyperf

241.2k1](/packages/link-cloud-fast-hyperf)

PHPackages © 2026

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