Wink - A (Not So) Comprehensive Review
Mon, Jan 21, 2019 9:00 AM
Wink (by Mohamed Said) is an open source publishing platform built on top of the Laravel PHP framework. One of the primary motivations behind its creation stems from Mohamed's advocacy for self-hosted content. Blogging is a foreign concept to me—this is my first time having a crack at it—but you don't need to be an experienced blogger to recognise the value in having complete control and ownership over your content.
Platforms like Medium generally require you to sacrifice this in favour of convenience and simplicity - and for many people, the idea of building a custom-tailored solution from the ground up is just too much. This is where Wink comes up trumps; it offers a clean and unintrusive interface that is both simple to use and easy to deploy.
Plug and Play
For those that are familiar with Laravel, integrating Wink with both new and existing projects is a breeze. In just three steps, you can be up and away. Aside from configuring a database connection to be used with Wink—which conveniently uses a connection and authentication system that is independent of your project code—there is nothing else you need to worry about.
composer require writingink/wink php artisan wink:install php artisan wink:migrate
If you intend to include images in your blog posts, then you do of course need to ensure that your image directory is set up correctly:
php artisan storage:link
But other than that? You're done.
Wink does not make any decisions about how your content is displayed, it simply offers an interface through which it can be published. This gives you immense flexibility in how you display posts to your readers and as a result of this, you are not bound to any specific implementation. If you're like me, then this will be music to your ears. I like to have complete control over all aspects of my sites and I do not want fundamental UX/UI decisions to be made by a 3rd party.
No Unnecessary Bloat
The beauty of open source software is that you are able to tailor it to your needs and if you are in need of more complex functionality, the foundations are already in place. Wink doesn't try to do more than it needs to and as far as features go, everything is very minimalistic. All bases are covered, but it avoids unnecessary bloat by staying true to its objectives and because of this, the overall user experience is very streamlined.
Whilst I have little experience with other publishing platforms, I get the impression that Wink's user interface is inspired by Medium. This is by no means a bad thing, and its clean and minimal interface makes for a pleasant writing experience. The toolbar is very intuitive and there is support for the keyboard shortcuts you would typically reach for when using a word processor. It feels a little bit clunky when blogging on mobile, but I for one would rather put my head through a wall than type up a big post from my Galaxy S8.
I am a far cry from an expert in user experience, but I do think there are some considerations that could be made. When tinkering with Wink for the first time I completely overlooked the ability to change a post's general settings, featured image and SEO & Social configurations. I understand the desire for a clean and minimalistic user interface but in my opinion, features that are integral to a blog post should be emphasised a bit more in the view.
Like many others, I tend to adopt a utility-first approach to my CSS and as a general rule of thumb - I try to avoid deviating from it. I have not found a way to make utility-first work for me in Wink and I was ultimately forced to write some CSS to style my blog posts. This isn't the end of the world, but it would be nice for some support to be added for those of us that prefer to make use of utility classes (Wink itself uses Tailwind CSS!)
I haven't come up with any perfect solutions, but the ability to set default classes for different elements would go a long way.
If you are already familiar with Laravel and don't mind spending a bit of money to host your own site, then Wink is definitely the blogging solution for you. It is incredibly simple to plug in to both new and existing projects and the immense level of flexibility that is offered makes it very appealing to those that like to retain a high level of control over their content. Its clean and intuitive interface makes it a pleasure to use and when you consider that the project is still in its infancy, it is hard not to be impressed.