Authorjonklem

Why I’m Trying Direct Sales Instead of Amazon KDP This Time

W

I published my first freelancing guide the traditional way—through Amazon KDP. It worked fine, but I kept thinking there had to be a better approach. Then I came across how Pieter Levels handles his product sales, and it got me thinking differently about the whole process. What I Learned from Round One Publishing on Amazon feels like the obvious choice. Everyone knows it, people trust it, and the...

Why SaaS Beats “Rolling Your Own” Almost Every Time

W

I had a meeting recently with someone who was hesitant to sign up for my SaaS. He needed all the features my platform offers, but he was tossing around the idea of building a stripped-down standalone version instead. That’s when I laid out the reality check. Even if he went standalone, he’d still be on the hook for monthly hosting fees. Anything connected to the internet costs something to keep...

World Class Service Means Ensuring Customer Success

W

Most people think world-class service is about fast response times, flawless communication, or throwing in extra perks to “wow” customers. While those things are nice, they aren’t the heart of true service. World-class service is about ensuring your customer’s success—even when it means telling them no. I’ve been a self-employed software developer for over a decade, writing LAMP stack...

New Layout

N

I’ve decided to switch it up both visually and from a tech perspective. I’m back to using WordPress from using Gatsby. No real reason other than I’ve started offering more WordPress hosting and want to eat my own dog food.

How I Actually Use AI to Code Faster

H

There’s still a lot of talk about vibe coding. I’ve written about it before, but after watching the Cursor and Claude drama on Twitter, I realized my approach might not match the noise. Programming languages are like spoken languages. There are infinite ways to say or build something, but only a handful of those ways are worth using long-term. Anyone can hack together a feature, but there’s a big...

What I’ve Learned Building My SaaS Since September

W

When I started building this SaaS in September, I didn’t even want to launch a SaaS. I was working with a local client who had a tight budget and was using a mess of disconnected services that refused to talk to each other. None of them offered a usable API. I realized the only way to get them what they needed was to build something myself. That was the spark. Writing Code Was Less Than 40% of...

Deep State vs Client State: Who’s Really in Control

D

Who’s running your app — your server, your client, or a silent third party you forgot you even wired in? As I’ve been revamping the API layer for ManageMemberships, I’ve started seeing how layered and political “state” really is. You’ve got tokens, hashes, cookies, headers, and sometimes ghosts from past refactors — all arguing over who gets to say what’s true. This post breaks down some of...

It Works for Me. That Doesn’t Matter.

I

Yesterday I had one of those moments that every developer dreads. A client using ManageMemberships said a customer couldn’t sign up through the form. I checked the logs—nothing weird. I signed up myself on my phone using a real card—worked perfectly. The client followed up, saying it still wasn’t working. The member got an error message that said “contact info updated.” That exact...

Vibe Coding: When AI Helps You Build Fast — and When It Slows You Down

V

“Vibe coding” is becoming the default for a lot of developers — and for good reason. When the right tools are in place, you can hit the ground running and move fast. Frameworks like Laravel and Filament paired with AI tools like GitHub Copilot let you focus on building features instead of boilerplate. Code almost writes itself. Development accelerates. And surprisingly often, maintainability...

Weekend Destroyed with PHP Streams

W

I was going to give this a different name but that would violate the terms of service of the inspiration of this post. IYKYK. This weekend I was taken deep into the darkness that is serialization attacks, gadgets, and rce via iconv. This was part of a puzzle of sorts. It boiled down to a challenge to try to exploit the following: <?php $data = file_get_contents($_POST['file']); if (...

Other Links

Check out some of these other links