The Agentic Artisan
Times are changing. Developers are changing. Artisans are changing. But the core of what makes a great artisan? That stays the same, it just got amplified.
My name is Christoph, and I'm a web developer, teacher, and content creator from Austria. Welcome to my site, where I share my coding and business experiences with you. Let's have a great time together ✌️
Times are changing. Developers are changing. Artisans are changing. But the core of what makes a great artisan? That stays the same, it just got amplified.
Inspired by the AI assistant hype, we built Pixel Agents — a collaborative canvas where AI bots create art together. Like r/place, but for bots.
In December, I asked what the next big leap for AI would be. Two months later, I have my answer — and it's changing how I think about every app on my phone.
A month ago I tweeted that my mind was blown by tech and it wasn't AI. Well... here I am writing about AI. OpenClaw changed everything.
PHP attributes are a great way to add metadata to your classes, methods, and properties. Laravel provides a bunch of them out of the box, you can use in your applications.
Another year has come to an end, and it is time for my traditional coding year blog post. I want to take some minutes to reflect on the last 12 months and how they changed me as a developer and business owner.
PHP, the language driving the web, commands a staggering 77.4% share among websites reporting their server-side programming language. With its remarkable growth in recent years, PHP has solidified its position as a mature and feature-rich language favored by major industry players. But have you ever wondered about the masterminds behind PHP's evolution? Who calls the shots on new features and…
Testing is a critical part of the development process. Here are 3 reasons why developers should make it a priority: confidence, maintainability, and time.
A common challenge in testing is not only HOW to test something, but WHAT you can test. That's why I have made a list of all the things I like to test in my applications.
Another year has come to an end, and it is time for my traditional coding year blog post. I want to take some minutes to reflect on the last 12 months and how they changed me as a developer and business.
Vite is the new front-end tooling for Laravel. Let's see how we can make it work better together with Laravel Livewire.
Vite is the new front-end tooling for Laravel. Let's see how we can move a given Laravel project to Vite together.
Another year has come to an end, and it is time for my traditional coding year blog post. I want to take some minutes to think back about the last 12 months and how they changed me as a developer and business.
For years now, I've been using my MacBook with the lid closed. That's my preferred setup, where I only focus on one external display. Two months ago, my external display stopped working when I closed the lid of my MacBook. Here is how I solved this issue.
On March 17th this year, I released my latest video course Mastering PhpStorm. Now, six months later, it is time for a first recap: How did the launch go? How much money did I make? What was different compared to my previous courses?
Let's be honest. Live coding is terrifying! Everyone is watching every character you type, and they are waiting for you to fail. At least it feels like that. Today I want to share some tips I have collected over the last years while live coding at conferences or live streaming.
After streaming now for a few months, including 12 live streams and over 25 hours of being live, it is time to share my first recap. I will share my current setup, goals, pros and cons, and some tips.
While working with Livewire, I came across a few situations where testing components didn't feel right. I explain today how I solved those issues and what my workflow looks like now.
Another year has come to an end, and it is time for my traditional New Year's Eve blog post. I want to take some minutes to think back about the last 12 months and how they changed me as a developer.
In this post, we will look at how we can send real-time notifications with Laravel, the Laravel WebSockets package, and Laravel Echo.
Every few years, I feel the pressure to redesign my blog. Design trends change fast, and so does my taste. Once I don't like my site anymore, I cannot let go. I need to work on a new redesign. This article is about the latest redesign of my Laravel blog.
I've been programming in PHP now for almost ten years, and if there is one thing I learned over this period, it's that readability and simplicity are the keys for maintainable and sustainable code. Every first attempt to write code should be about making it work. Only after that, you should take some time to refactor. This is when I aim for readability and simplicity. Today I see refactoring as…
One year ago, I released my first stand-alone video course called Laravel Core Adventures. Since the release, I was looking forward to writing about the experience and the numbers. Still, everything turned out differently than expected (again). It is time to reflect on one year of Laravel Core Adventures.
In 2019, I moved to a new place and got my first own office room. This also meant I could finally get a new desk I was desperately looking forward to. Since I couldn't find a wooden top that fits my room, I decided to try to build one myself. Here comes my two left hands! 🤚🤚
Welcome to this new blog-series of mine where I want to invite you to follow my path as one-man-company. I want to share with you how I survive working on my own, freelancing, building products, and how I try to follow my business dreams. This is episode number three, where I talk about my transition from being employed to become self-employed.
Ever wondered what it is like speaking at a big online conference? I have no idea what that's like for others, but this is my story. I want to take you on a rollercoaster ride through my emotions before, in-between, and after my Laracon Online 2020 talk.
Welcome to this new blog-series of mine where I want to invite you to follow my path as one-man-company. I want to share with you how I survive working on my own, freelancing, building products, and how I try to follow my business dreams. This is episode number two, where I talk about motivation.
Welcome to this new blog-series of mine where I want to invite you to follow my path as one-man-company. I want to share with you how I survive working on my own, freelancing, building products, and how I try to follow my business dreams. This is episode number one, where I give you an overview of what I do and what to expect.
Another year has come to an end, and it is time for my traditional New Year's Eve blog post. I want to take some minutes to think back about the last 12 months and how they changed me as a developer.
The service container is a quite complex topic, and I see many struggling to understand what it does. It was the same for me, and the main reason is that many explanations concentrate on "how" to use the container. With this article, I want to give you my introduction to this topic by focusing on the "why" and "when" the container can help us with our dependencies.
Exactly 365 days ago, I released my first ebook. I always wanted to share my experiences about it, but I never felt comfortable enough to do so. The project didn't turn out as expected, and I felt embarrassed. It's time to finally reflect it and to overcome my fears.
The latest Laravel product, Nova, has taken the community by storm. The way you can build a simple backend in like no time is astonishing. But still, every project is different, and we need to tweak Nova here and there to make it fit our needs. With this article, I want to provide some helpful tips on how to customize Laravel Nova.
Most interesting about a new product, except the product itself, are the little details and decisions that shaped it to what it became. This article is my approach to tell you all the problems, ideas, and solutions that created Laravel Core Adventures. It is not rocket science, but it is REAL.
There are two hard things in computer science: cache invalidation, naming things, and deciding which editor theme to choose. I've been lately trying out a light theme and wanted to take the chance also for looking for a new dark one. In this article, I show you where I ended up with my themes.
Another year has come to an end, and it is time for my traditional New Year's Eve blog post. I want to take some minutes to think back about the last 12 months and how they changed me as a developer.
Next to "My Coding Year" articles, I decided to write a separate article about my speaking experiences from 2018 this year as well. It is primarily a recap for myself but may help others to see the pros and cons of speaking as a developer.
Starting with BotMan to create chatbots is easy, but dealing with bugs is not. Since there are many external services like Facebook, Telegram or Slack involved, lots of things can and will go wrong. I have run into so many of these bugs and don't want you to struggle with them as I did. So here is my ultimate debugging guide.
My first and most used Laravel package is the Twitter Channel I made for Laravel Notifications. Today I released a new version of it, and I thought it is an excellent time to share a video about how to use it as well.
Inspired by Freek's article about his current setup, I wanted to share mine as well. In this article, I will list all the soft- and hardware that makes my current setup.
For my book and video-course about building chatbots in PHP I created the Laracon EU conference chatbot. In this article, I will give you all the insights into this project.
After working for agencies for five years, I'm now self-employed since July this year. What were the reasons I created my own company? What do I expect and how is it going so far? These are questions I try to answer in this article.
Getting started with testing JavaScript applications can be overwhelming. Especially when you used to tools like PHPUnit which make it really is easy for you to write your first tests. Today we are taking a look at how Vue CLI can help you get started with your first tests.
Last month I have been through hell while my laptop broke one week before my book release. I had a full backup, but it turned out restoring it is not always as easy as you might think. In this article, I tell you my backup story, why I abandoned Apple Time Machine and how Dotfiles help me now.
I guess you already used quick replies for text buttons, right? But did you know that you can ask the user for email, phone number, and current location? It is time to give you a refresh of Facebook Messenger quick replies and how they work in the BotMan chatbot framework.
Ever wondered how well you know your favorite PHP framework Laravel? Give the LaravelQuiz Chatbot a try, and you will find out. This article is a step by step guide on how I created this chatbot with BotMan and Laravel.
On July 19th 20:00 CEST, I will join a Nomad PHP meeting to talk about `The PHP Developer Stack for Building Chatbots`. I am super excited to present my new talk, and I want to tell you a little bit more about it.
Only one month left until the GDPR will take effect and people are already freaking out. If you haven't made yourself familiar with this topic, you need to do it now! This article will give you a summary of what you need to know and provide you with steps to make your chatbots GDPR compliant.
In part one and two we created a Facebook Messenger chatbot that let your users subscribe to your newsletter. We stored that information in the database and sent out our first newsletter. In the last third part, we integrate this bot to a website and write our first tests.
Due to the integration of CSP to my site, I had to turn off Turbolinks. It just wasn't working together; until now!