Testing your applications is important, but we often hear that end-to-end tests are expensive, slow and flaky. In this post, I’ll show how Cypress makes testing a Vue CLI or Laravel project a breeze.Read more
As developers we need to keep track what is new and what is worth learning, while acknowledging we can’t learn everything because it is just too much.
At the start of a new project, we have to decide which tech stack to use. In this post I’ll discuss our current choices.Read more
Setting up cron jobs is easy in Laravel, since it has a build-in task scheduler. One of the main advantages of this task scheduler is that you only have to set one cron job on your server. Once this is done, everything will be handled by Laravel. In this blog we describe how to handle cron jobs in Laravel.Read more
We love to build web applications using the Laravel framework and deploying those applications is obviously a necessary step. Although we have some knowledge about server management, we aren’t fond of maintaining and configuring servers. Luckily, Laravel Forge and Envoyer exist to help us. With Laravel Forge, it’s easy to manage servers. A new website is online in no time, cron jobs and queues are easily set up and even a more advanced setup using a network of servers and load balancers can be configured. With Envoyer, we manage deployments. In this post, we will describe the setup and tools we use.Read more
Nowadays, websites should be fast, otherwise visitors will leave your website before they have seen the most important content of your website. It’s obvious, but it can be quite a challenge with all the interesting (frontend) assets that make your website so great once it’s fully loaded. In this post, I’ll describe some quick wins to improve the performance of your website.Read more
This is the second post on building progressive web apps using the new Vue CLI 3. Push notifications will be introduced to create a native app experience. Push notifications require quite some work compared to using the Browser’s Notification API as we did so far. We need to setup a backend and add functionality to subscribe for push notifications. In addition, we also need to create a listener in the service worker to be able to show push notifications. Ready? Let’s go!Read more
This is the last part of a blog series on building a basic admin panel. Although there are many admin packages available, including Laravel’s own Spark package, we experienced that it’s also very easy to an admin panel yourself. We defined three major topics that are found in all admin panels that we have build. We started with the authentication of users (part 1) and continued with basic CRUD operation (part 2). In this third part the focus is on authorization: in an admin panel there are often users with different roles. Each user role may have access to different parts of the admin panel and is allowed to perform specific actions.Read more
Admin panels are an essential part of many web apps and online platforms. Although there are many admin packages available, including Laravel’s own Spark package, we experienced that it’s also very easy to create an admin panel from scratch. The main advantages: you know every detail of the admin panel and once the project is growing and more functionality is required, it can be easily extended. In the second part of the series on building your own basic admin panel we focus on CRUD operations.Read more
Many web apps and online platforms need some kind of administration panel to manage the their public parts. Only a limited number of users with a specific role or privileges have access to this admin panel. Examples include a webshop, hour registration tool, cooking website or a blog.
To build such an admin panel you have several options. We have build a lot of administration panels and the PHP framework Laravel came out as our favorite. For Laravel, several admin packages are already available, including the offical Spark package. However, we experienced that Laravel itself already has so much features to quickly build a basic admin panel yourself that a package isn’t always needed. In this blog series, we like to share our approach.Read more