I’m a serial starter. If half-finished projects were dollars, I’d be a millionaire. A little over a year ago I wrote an article about overcoming my issues finishing things that I started, but in the end that lead to a new, unforeseen problem: maintaining what I launch.

What I didn’t realize is that I moved that addiction forward. Where I used to live in the thrill of creating something new, I’m now chasing those same feelings in putting the final touches on a project and getting it out to the world. Unfortunately, that’s still not ideal. …

I know what you’re probably thinking, “Oh boy, another static site generator”. And you’d be right, but I’m hoping that the one I’ve created is a little different than ones you’ve been exposed to.

Instead of trying to be multiple things for multiple people, or instead of trying to be as friendly as possible to everybody, I’ve designed Cleaver to be as open to developers as possible.

Under the hood it’s a pretty simple application, the core of which is just over 700 lines of code.

The main Cleaver program, where it all starts

Where did it come from?

Born out of scratching my own itch, Cleaver was designed to help me rapidly…

A while back, someone pointed out that in my Laravel package tutorial, my use of a singleton method was completely unnecessary. Truth be told, up until this point I really hadn’t looked into or thought about the bind or singleton methods that I’ve seen in the source code of other packages. I decided to do some digging and take time learning how, and when, to use those methods in my own applications.

Feel like watching an explanation instead of reading? Check out the video of this tutorial instead.

If we take a look at the Laravel documentation, binds are registered…

An alternative title for this might be “How I Learned to Stop Worrying About Stiff Competition and Launch Anyway”, and I’ll explain that below.

Want to see the site for yourself? Check it out at larahawk.com.


As with a lot of good side projects, it all started by scratching my own itch. Over the last couple of years I had been developing and launching more than a few Laravel-based projects, but I had no real way of keeping track, or getting notified, of any issues that would pop up from them once they were in production. …

I’ve been working on projects that use both Vue and Laravel for the last two to three years, and during the start of each’s development I have to ask myself “How am I going to pass my data from Laravel to Vue?”. This applies to both applications where the Vue frontend components are tightly coupled to Blade templates, as well as single-page applications running completely separate of the Laravel backend.

Here’s four different ways to get your data from one to the other.

Directly echo-ing into the data object or component prop

  • Pro: Simple and straightforward
  • Con: Has to be used with Vue apps that are embedded in Blade…

Earlier this month I launched listpal.co, a to-do app that included websockets functionality so that each user with the list open would see updates from everyone else. It was definitely a learning experience and my first time really diving into the world of Vue + websockets combined. With the help of the laravel-websockets package, it’s super easy to get a websockets server started in a new (or existing) Laravel application.

Prefer poking through code instead of reading articles? The entirety of listpal.co is open source and hosted on my GitHub if you’d like to pore over the inner workings. …


Want to take the fast track and skip the detailed tutorial below? Install Docker for your OS, clone this repo, add your Laravel app files to the src directory, and from the root project directory you just cloned run:
docker-compose build && docker-compose up -d.

A Brief Intro

Before we get started, it should be known that this article isn’t a full-fledged tutorial into Docker or an explanation on the intricacies of the toolset. It’s more of a streamlined walk-through for getting a local development environment set up fast using Docker and docker-compose, as opposed to installing a LAMP stack directly on your…

Vue.js is arguably one of the most popular front-end JavaScript frameworks today. Its ease of use and robust ecosystem make it great for beginners and advanced front-end engineers alike. Below are a few tricks and general tips that I’ve found while working in Vue for the last two years.

Create dynamic components using v-bind:is

Sometimes you might need to display a different component based on a particular attribute in your data set. Before I learned about this, it would be multiple components crammed together with a lot of v-if's to determine which ones should be rendered at which point.

Then I learned about adding in…

102 local dev instances for various projects
purchased, unused domain names.
8 notebooks filled with site ideas, UI sketches, and database structures.
1 site actually designed, built, and launched.

That was my life between 2012–2017. Going into 2018 I decided that my biggest goal was to try and change that habit. Looking back on this year I can proudly say that I think I’ve accomplished that, or at the very least have taken massive strides in the right direction.

I don’t want this post to seem to preachy, or like I have all the answers. I’m not claiming that…

If you would prefer to watch along as I implement this into an existing app, check out the video here. For this example, I recommend using Laravel 5.2+.

What’s a JWT?

JSON Web Tokens are “an open, industry standard RFC 7519 method for representing claims securely between two parties”. Essentially they are signed, encoded objects (strings) that are used to validate that information sent from one client to another is coming from the specified origin and hasn’t been tampered with along the way.

Using JWTs is a standard way of authenticating users across an API without session variables or cookies. Most would argue…

Andrew Schmelyun

Full-Stack PHP Developer

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store