- Drop-in capability for any Laravel 5.2+ project with an established User model.
- Image cropping for featured images during upload process.
- Clean, Medium-inspired interface.
- Dynamic RSS feed.
- Dynamic blog sitemap generation.
(More features planned, see
Milestones section below.)
So why create another blog package with so many others out there? After all, blogs (or to-do lists) are the hello world projects of the day. The TLDR summary is that I was not able to find a single package out there that met the following criteria:
- Drop-in install into any Laravel app minimal or no special configuration.
- Have a minimalistic interface, without cumbersome admin panels.
- Function and feel similar to Medium: clean, to the point, putting content first.
- Not a static page generator. (Yes, many see that as a benefit, I haven't seen it as one -- yet.)
There are one or two nice packages out there, but either their code is unnecessarily complex, so buggy that they can't be installed, or require use of tedious admin pages.
I was looking for something simpler, yet just as functional. This project is the evolution of that (granted, somewhat opinionated) desire. I hope others like me will find this package useful.
If you do try it, please send feedback as to how you're using it, where you experience friction, and what features (missing or implemented) are preventing you from using it.
- Bootstrap 4 (currently in alpha 2)
- jQuery 1.8+
- FontAwesome 4.6+
The above-listed libraries should already be included in your layout view, so that they are usable by Laravel Weblog.
- Install the package via composer:
composer require genealabs/laravel-weblog
- Add the service provider to your
// $providers = [ GeneaLabs\LaravelWeblog\Providers\LaravelWeblog::class, // ];
- Run migrations:
php artisan weblog:migrate
- Publish the required assets:
php artisan weblog:publish --assets
By default Laravel Weblog will run with the follow settings:
- Main blog URL:
- RSS Feed URL:
- Blog Sitemap URL
- App's User model: detect if either
config('auth.providers.users.model')exists and use it.
- Layout view:
If any of these don't fit your needs, perform the next two steps:
- Publish the configuration file:
php artisan weblog:publish --config
- Make any desired changes to the paths and layout file options in
Naturally the default layout won't necessarily be completely to your liking. The views can be overriden with your own customized versions. To publish and customize the views, perform the next two steps:
- Publish the view files:
php artisan weblog:publish --views
- Edit the views as desired in
- Create a medium-style editor.
- Add an image uploader and manage deletion.
- Add a featured image to blog post.
- Crop featured image to social network standard sizes.
- Create dynamic RSS feed.
- Create dynamic sitemap.
- Ability to tag posts.
- Ability to assign a post to a category.
- Ability to publish in the future.
- Format and structure codebase -- allow for overriding.
- Implement final design tweaks -- base on Bootstrap 3.x.
- Ensure Laravel 5.1 LTS (and therefore PHP 5.6.x) compatibility.
- Add live-blogging functionality using Laravel Echo (Laravel 5.3 and up).
- Add Bootstrap 4 compatibility.
- Add email subscription functionality (newsletter signup form).
- Add social login options (via socialite) that only get triggered when needed.
- Add social like button (heart) that can share the article on the liker's social networks.
- Post to Twitter on publish (for future dates as well).
- Post to Facebook on publish.
- Post to Apple News on publish.
- Create Facebook Instant Articles feed.
- Publish to Medium as articles (and categories as Publications?)
- Integrate code blocks with GitHub Gist.
- Add ConstantContact integration for newsletter signup form.
- Add MailChimp integration for newsletter signup form.