Frank and Karen are looking for the best publishing platform. They find that there are lots of options out there; WordPress, Ghost, Medium, and dozens of other platforms. Each has areas where it shines, and also each has its dark side.
Frank just wants a personal blog that he can easily host on a small DigitalOcean droplet. He likes the simplicity of Medium, but he wants to own his content, and to have 100% control over how it's displayed and distributed. Ghost shines in this area; a beautiful and simple interface with powerful features. You can even host it on your own server. However, to install Ghost you need to be familiar with Node.js.
Everybody is trying to convince Karen that WordPress is the perfect platform for her TechCrunch-like website. However, she has been using Laravel for sometime, and she loves how easy it is to build a complete application in a few days and to deploy it using Forge in just a few minutes.
Both Frank and Karen wish Medium was open-source, or Ghost was written in PHP, and so do I. My name is Mohamed Said, and I work at Laravel. I built Wink because I wanted to re-invent the wheel and make it work exactly like I want.
If you're a PHP/Laravel developer who's searching for a modern PHP-based publishing platform, join me in building one.
How does it work?
Wink is a Laravel package that has its own interface and authentication system. You can install it into any existing project the same way you would install Telescope or Horizon. The interface helps you manage posts, pages, tags, and authors.
The editor is an actual WYSIWYG, just like Medium's. The bubble menu includes options for you to format the content in different ways; you may include links, quotes, headings, lists, and so on...
You can also embed images, dividers, and plain HTML in your post. With HTML embeds you can add a YouTube video, a tweet, Instagram post, or virtually anything. If you wish to add an image, you can upload your own or search Unsplash:
Inside your post editor you can assign tags and configure different aspects of the post:
That's the part Wink takes care of.
Other than that, you have 100% control over how to display this content to your end-user. Wink stores your content in a database that you configure, so you can extract the content from the database and use it with any of the community-built themes or even design your own theme from scratch using Blade and your favorite CSS framework.
To install Wink in your Laravel application, run the following commands:
composer require writingink/wink php artisan wink:install
When both commands run successfully check the new config/wink.php file. Make sure you configure a database connection for Wink to use. Then run:
php artisan wink:migrate
This command will build your database and create the initial user. It will print some credentials that you need to use to log into your Wink account.
Head to "https://yourproject.test/wink" and provide the given credentials.
Wink is still in the early stages, and I think it would be a great experience for you to help build the publishing platform you've been looking for. I've put together a preliminarily road map for you. Check it out and let me know what you think.