For long-form interviews, news, and commentary about the WordPress ecosystem. This is the companion show to The WP Minute, your favorite 5-minutes of WordPress news every week.
AI Built the Plugin. Now What?
===
Matt: ~We get in this recording. ~[00:00:00] Eric Karakovack, welcome to the W- welcome to your show, the WP Minute
Eric: Hey, it's, it's good to be a guest on my own show, which is really your show to begin with,
Matt: It's our show. It's our show. ~Um, ~e-excited to talk to you today. We're gonna dive into a new,~ uh,~ experience that,~ uh,~ that you're going through with developing WordPress plugin, putting it out on the repo. ~Uh, ~this is the first time you've done this, right? Just real quickly, yes, this is the first time you've, ~you know, ~developed a plugin, put it out on the repo.
~Uh, ~it's called Karks CRM. We're gonna talk about that in a second. ~Uh, ~but before we get to the fun stuff, which is your CRM tool that you're open sourcing and building,~ um,~ let's just talk about WordPress agency freelance life in general. ~Uh, ~obviously, it's a hot topic. It's one that we cover a lot. A lot of instability in the space,~ uh,~ as it goes with technology and,~ uh,~ competitors and,~ uh,~ fragility at the top,~ um,~ as it were.
~Uh, ~what's your temperature going into the fall, which is usually when we start gathering all the [00:01:00] nuts,~ uh,~ to use another phrase, before the holidays and winter hits us? What's your temperature in freelance agency life these days?
Eric: Personally, it has been extremely busy. I have,~ um,~ barely had time for a bathroom break, Matt. ~Um, ~but I, I'm, I'm doing it anyway. ~Uh, ~but it, it has been, ~um... ~it feels like this summer has been, and f- and early fall here, has been kind of a renaissance in business for me,~ uh,~ which is good and, and but challenging.
~Um, ~as far as the wider WordPress landscape, that's, that seems to be a bit tumultuous again. ~Um, you know, ~we've got the news that,~ uh,~ Matt Mullenweg was,~ uh,~ put on paid leave by Automattic and,~ uh,~ replaced with an interim CEO, at least for the, for the near term. Don't know what the long term,~ uh,~ looks like.
But,~ um,~ that certainly was a shock, and I think it... I don't know if it should affect the everyday freelancer or agency so much, but it's definitely something to think about, ~you know, ~wondering what the future holds[00:02:00]
Matt: It certainly impacts,~ uh,~ the freelancer who has been on the fence about WordPress. There's just a lot of negativity, right? And we, you and I talk about this off air a lot,~ um,~ and on air in,~ like,~ the, the WP Minute community groups that we, that we host. ~Um, ~there's just a lot of negativity, and it's just so hard to, what I'll say, combat that.
~Uh, ~alongside, like, when is this software going to, ~you know, ~really start to innovate again and, and, and be competitive? ~Um, you know, ~there's definitely ~like, ~I do err on the side of, hey,~ like,~ there's something about a stable piece of software that's not always pumping out new features. ~Like, ~I can appreciate that as a fundamental tool in our toolkit, it's just been far too long since WordPress has really shocked us with something,~ like,~ really great.
~Um, ~and I, I, I think we don't have time for this optics,~ uh,~ this drain in optics [00:03:00] and optimism around WordPress. ~Uh, ~and I think that's the biggest,~ uh,~ damaging piece,~ uh,~ to freelancers right now, is a lot of them just saying, "Nah, I don't even use this anymore."
Eric: I, I will push back a little bit because I think 7.1 came out recently and there have been some nice features that people have been asking for for a long time. They aren't sexy, and I don't know,~ like,~ if there's, if there's an example that you can give that maybe somebody else is doing. ~Um, ~but I, I think, ~you know, ~the responsive controls have been helpful.
~Um, ~server s- or client-side image processing, media processing has been nice for performance, and there are all kinds of little tweaks inside the, in, under the hood kind of that are helping. I don't know. I don't know that I want WordPress right now to be revolutionary,~ um,~ necessarily because I've got over 100 client sites on it, and I don't wanna have to deal with some sort of major,~ uh,~ earthquake in terms of [00:04:00] functionality that might,~ uh,~ lead me to be f- fixing sites,~ uh,~ turning to, ~you know, ~educating everybody on the, on what's changed.
~Um, you know, ~so I'm okay with stability,~ um,~ but, ~you know, ~the leadership stability right now is probably my biggest concern.
Matt: Yeah. There's definitely,~ um, you know, ~I've been just witnessing a lot... I've said this to you before on air, which is,~ like,~ I gotta stay out of Facebook groups.
Eric: Yes, please do
Matt: ~uh, um, ~but I, I use it as just,~ like,~ a barometer to see where, ~you know, ~what I'll call,~ like,~ the beginner to amateur WordPress developer, folks who are, like, still early in business, and I try to hold that, I try to hold that as the constant when I evaluate,~ like,~ the stuff that, that they're talking about, is that they just haven't experienced enough yet.
~Like, ~they haven't gone through enough clients and, and different edge cases and support and goods and bads of projects. ~You know, ~they just haven't done it all yet. ~Um, ~and I feel like I'm seeing a lot of folks now [00:05:00] just running down the hill with AI, ~you know, ~developing stuff with AI, with code and frameworks that they just have no idea what is being implemented.
~Uh, ~they don't know the, the ingredients of their own product that they're selling,~ uh,~ I guess is, is what I'm trying to say. And that is, for me as a business owner who has seen a lot of things,~ uh,~ with web projects, I chose WordPress, and I would continue to choose WordPress if I were running an agency because I can unders- I know the ingredients that are in there, and there is still enough stability in the market where if all of a sudden I hire a developer to build a website for me using WordPress and that developer leaves, just from a, a, a continuity standpoint, I can knock on Eric's door and say, "Hey, Eric, listen, I got this big project.
Person left me. Can you pick up the pieces?" And sure, that person might have coded stuff differently than you, but that framework is [00:06:00] there. And even if they used AI, it still has to be forced into a plug-in system, right? ~You know, ~on, on the WordPress site. So there's,~ like,~ stability there, and I just see people running in all directions with their AI,~ uh,~ builds.
And there, there's no community for that, I, I feel like. There's no, there's no community for... Other than just, "Hey, go chat with your chatbot." ~Like, ~"I got a problem with my agentically built site that I built static with all these different technologies. It's not working. What do I do?" "I don't know. Just go talk to your chatbot."
It's not ~like, ~go to the WP Minute and ask, ~you know, ~other community people how, how it's built. And I think that's something that we, we can't lose. At least that's what's going on in my head. I, I don't know how you feel about that.
Eric: Well, community's a big deal to me. That's why I'm still with WordPress after all these years. If there was no community around it, it probably would be more tempting to go,~ uh,~ play with Astro or whatever else is out there at the moment. But I always tell people that, ~you know, ~there's some great things about WordPress being [00:07:00] older.
It means that it's stable. It means I know where it's going to be in five years in terms of it's still going to exist in five years. These other tools come and go, and you could put all your eggs in that basket, but do you know what's gonna happen in a year? ~Um, ~if there's no community around it, if there's no,~ uh,~ developer ecosystem for it, if the founder decides, "Eh, this didn't work for me."
Like even with, with MDash, I s- I kind of wonder if there's going to be a point where Cloudflare just sees that this is probably not,~ uh,~ the best strategy for them. ~Uh, ~what if there's,~ uh, you know, ~a different,~ uh,~ leadership that comes in and says, "Well, this was nice, but it's not making us money. We're gonna scrap it."
So th- th- the community part of this i- is bigger than almost the software, I think, because you, you need, really need both in open source at least to, ~you know, ~to continue,~ um,~ surviving and keeping your business steady
Matt: ~Yeah. Yeah, I mean, this is, uh, uh, uh, again, a- another milestone challenging time for, for WordPress, like just like when all the fireworks went off, if I can use that as the lightest phrase possible, with WP Engine a couple of years ago. This moment, unless this is some kind of, you know... I have to go through all the, all the thoughts in my head like when I see stuff like this happen.~
~Unless this is some kind of like rogue, reverse engineered play, like, "Oh, I'm getting kicked off the board," and it's some kind of like optics thing for the lawsuit that's happening. Like, uh, is this all just theatrics? I don't know. Just to see like how people react. Um, if it's not that and it's simply just right in front of us, like lack of innovation, a- and when I say this, I mean like Automattic, like lack of innovation at Automattic.~
~I mean, 'cause there hasn't been massive innovation except for maybe WP Cloud, um, as an infrastructure play. Uh, Jetpack is a product that, you know, still exists, uh, and I, and I think some of the branding has turned around. Other than that, it's been just a lot of acquisitions of random products and companies, and it was just like stretched too thin and, and one year out from this lawsuit, I think now it's just, "Hey, we gotta make a change."~
~We go one year out, we saw Ray report on the valuation from Bro- BlackRock, great, but we saw the valuation of BlackRock drop 80%. So if I just take it at face value, it's a corporation going, "This guy ain't it right now for this, uh, commercial entity that is Automattic. Get him out of here, uh, at least in the short term, and, uh, let's f- you know, find a new way to right the ship."~
~Um, the interesting thing now will be, how does the open source side of WordPress continue? I see 7.2, Mullenweg is the, uh, uh, the project lead. Um, but, but I'm, like, that's a curious, uh, chemistry, uh, experiment right there for me because it's like, okay, he's, he's always been the, the head of, uh, the, uh, uh, well, almost I think only what, one that he wasn't or something like that?~
~Or maybe two. Um, how do people react with him if he's not leading Automattic, which was sort of like the pass-through for so many contributors? Like he was basically writing the paycheck for all of the Automattic contributors, therefore people are like, "Oh, I guess you're the lead again." I gue- I mean, you are funding this.~
~So this is gonna be an interes- interesting experiment. What are your thoughts on this, on this dynamic?~
Eric: ~Well, first of all, I don't know if we've ever seen a scenario like this before. Like, I can think of other companies where, you know, the founder, um, the face of a company gets replaced. Um, I'm just thinking of Papa John's Pizza here in the US, years ago that happened, right? And, and, um, but Papa John didn't have an open source project basically funded by his, by his pizza, you know?~
~Um, so that, that's kind of the interesting part to me is like, okay, s- yeah, what is... or is there gonna be a butting of heads? Um, I don't know. I mean, what did-- would Automattic have any disincentive to not contribute as much, if not more? I don't think so. Um, not when so much of their business is currently tied into WordPress.~
~I don't see them being bad stewards or not wanting to participate. But I also wonder like, okay, so Matt is on the, a different side of this now, and he's talked o- online about trying to move th- some, some of his properties off of Automattic, and I, I don't know how that goes. I mean, the, you know, is-- what kind of friction is there when he wants a feature that someone from Automattic normally handles, and they don't wanna handle it?~
~I mean, is there gonna be some headbutting there? It's a mess, Matt. I don't know what to say about that. I'm-- we've never seen anything. It's, it's kind of like, you know, we're just, we're experimenting with this right now~
Matt: ~Yeah, it's definitely an experiment. And then of course, we don't know what's going to happen with, you know, WordPress.org because theoretically he still controls it. I mean, that came all... That's stuff that we sort of, we, and I say we collectively as a community for a, a couple of decades were just like, "Oh yeah, we kind of know it's his, but sur- sure, it's certainly protected by, uh, the, the foundation."~
~We never thought until, like, there were, you know, legal, uh, uh, inner workings that happened that, uh, uncovered, oh no, this is just his website. In fact, this is just his. Um, and you know, I don't know how that plays out, you know, in this scenario because that's another ball that he can, he can take, take with him, uh, in the event where this is a done deal with him and he doesn't return to Automattic as, you know, leading Automattic.~
~Um, does he just take his WordPress.org ball and go home and, and go somewhere else? What does that mean? I mean, dot com has their own mirrors and stuff like that for sure. Um, and is this what everybody always wanted? Is, are we witnessing that right now? I'm just trying to play out scenarios. Like, we saw Fair, we've seen Classic Press, we've seen so many different things come and go with some mild success and others just fading away.~
~Ah, this, uh, you know, is this what people have always wanted? If he's gone and not head of Automattic, but they continue to contribute and, and innovate, I mean... And if he takes .org with him, does that mean dot com comes in? I don't, you know, I, I don't know. I don't know. I'm just trying to play out different scenarios really.~
Eric: ~This is, this is a head spinner and I, again, we've, we've not seen this before. And so it's going to be quite interesting to see, you know, who does what and what this all means in terms of the rest of us who are just trying to, um, maintain our businesses, uh, download plugins safely, um, and, you know, run updates and all that stuff.~
~So I, you know, this, this is going to be the, the next few months should be quite the ride.~
Matt: ~Yeah. Um,~ so you, yeah, you and [00:08:00] I have been covering and talking to folks who've been doing a lot of stuff with AI. ~Um, ~again, I'm, I'm more on the urgent side,~ uh,~ the urgency side for WordPress. Like WordPress has gotta do more in this agentic space, but at the same time, half of my brain goes, "I don't want everything to be agentic," because all we're doing is saying, "Hey, agent, go do this thing," and I don't know anything you're doing.
~Uh, ~and at whatever cost that comes at in the future, whether that is,~ uh,~ I- IP knowledge or literal f- I have to swipe my credit card again to get this thing to do this thing, like I'm not down with that either. But we've been talking to a lot of people who have been building with AI around WordPress. I want WordPress to go a little bit more agentic myself.
You took it upon yourself to start going down the avenue of building your own CRM plugin. ~Uh, ~AI-assisted is what I'll say. You can fill in the lines. ~Um, ~when did the idea kick in, and what was your first thoughts ago to say, "Do I use AI?" Or did you look at this, did you question like, "Do I use AI or write it [00:09:00] myself?"
Or do you say, "You know what? Now's the time, baby. I'm gonna, I'm gonna try to take advantage of this AI stuff"?
Eric: And so it really started, ~um ~With my workflow. I've used QuickBooks Desktop for many, many years. It's a discontinued product right now. ~Uh, ~the only desktop version of QuickBooks you can still buy, I believe, is for enterprise organizations, which is gonna cost a lot of money and contain things I have no need for.
~Um, ~here on Windows 11, it, it's breaking. A lot of features are not working the way,~ uh,~ they're supposed to. ~Um, ~and so it got to me. I started thinking, "Well, I could move to QuickBooks Online," but that is another cost, and I'm a type of person who is so anti-subscription at this point in my life that if I have to pay for one more thing on a monthly basis,~ um,~ I, I'm going to explode.
So I started thinking about different possibilities and I said, "Well, I'm using Claude now. I could probably get myself something close to my current workflow and not disrupt [00:10:00] things and maybe even make it better." So I decided that I was going to s- try to make a, a CRM plugin that mainly handled client,~ uh,~ contact information and invoicing because that's mainly what I use QuickBooks for.
And so I didn't put any expectation on myself that this was going to be perfect or that it was ever going to be in the repo or anything like that. I just wanted to see what I could do, 'cause I've al- I, I've al- ~you know ~Matt, I'm always someone who's, who tries to warn people, "Don't build that unless you know what you're doing, and don't think that you're not gonna have to maintain it afterward, 'cause it's not gonna work."
And so that was in my head too, so I'm, ~you know, ~kind of a cynic with all that stuff. But I still did it anyway, right? ~Um, ~so maybe I'm a hypocrite too. But I, I, I started building it and within, ~you know, ~an hour or two, I had a working prototype. I could create an invoice, I could make it into a PDF, 'cause that's usually how I work.
I, I would go into QuickBooks,~ uh,~ create the [00:11:00] invoice, print it out as a PDF, and email it to my client every month or whenever. And so that's what I did and, and so I started on that journey with Claude, and I will say Claude has done most of the heavy lifting. I've done most of the direction and, ~you know, ~revision of, "Okay, I need this feature now.
~Um, ~the demo works great, but oh, I really need this." And I'm comparing it side by side with QuickBooks the entire way, and I'm running them in tandem r- basically through the end of this year just to see how everything goes and, ~you know, ~kind of judge is the plugin there? Is there something else I need to add?
So it's kind of a long story, but basically I had a need for this and I also have a plan to acquire an agency that I've worked with for over 25 years, owner's retiring next year, and I wanted a way to, to manage multiple companies as well. ~Um, ~which again, with QuickBooks, I'd have to go up the ladder- ~um, ~to a different tier and pay even [00:12:00] more money and I'm not sure that it was gonna be everything I needed anyway
Matt: Yeah. Did you look at the market and say, "Maybe I pick another plugin. Maybe I switch to,~ like,~ Wave or Mercury," or,~ like,~ do you look- did you look at anything else and say, "I see it. Still not for me. I just wanna build my own way 'cause I do things a certain way"?
Eric: I actually did not consider any other tool. I, I-- It's funny, I mean, I, I've looked at... I know there's, there's other tools out there for freelancers, like FreshBooks has been around a while,~ um,~ things like that. But I wanted to build it myself. I really just wanted to challenge myself to, to do this and see where I could get.
So no, there wasn't,~ like,~ any other service that I looked to as a possibility. I probably would've gotten there had this completely flopped. ~Um, you know, ~I, I probably would've decided either to go to QuickBooks Online or,~ um, you know, ~try something else. But didn't h- didn't really hit my brain until [00:13:00] you just asked
Matt: ~Uh, ~yeah, I mean, I've been looking,~ uh,~ what you and I are, are recording on right now is,~ uh,~ a podcast recording tool that I've been working on for a couple of weeks. And,~ um, you know, like ~as I always do, it started, and it may just remain,~ uh,~ a, a tool for you and I to use at the WP Minute, 'cause I'm building in some specifics,~ uh,~ specific things for the WP Minute.
And,~ uh,~ but then as it goes, I was just like, "Eh, maybe I'll make this available for everyone." ~Like, ~let's just, ~you know, ~put the finger in the wind and see, ~you know, ~what, what we get out of this. Do you remember what that was like when you made that decision, where you were like, "Okay, I can kind of see other people wanting to use this," and what was that moment for you to go, "Okay, I'm gonna put this on the repo and, and see if other people would be interested in this"?
Eric: So I, I would say that came probably about a month into building it, because as I said, the, the initial demo was really raw.
Matt: it? How long has, has it been?
Eric: I want to say I started in, in like late June, and it's now September when we're recording this, [00:14:00] so it's been a few months. Like it... I, I know a lot of people think, "Well, you just build it in five minutes and there it goes."
And you can do that with one-off little niche, ~you know, ~things. But for this, I, I've just kept testing and iterating new features, and testing it against my current workflow and seeing where,~ um,~ it needs to improve. And so probably about a month in, I said, ~"You know, ~I, I..." And I think it, it really,~ uh,~ started with when I first...
you started sending invoices, and Matt, I sent you the very first invoice with this plugin, so congratulations
Matt: I was the champagne bottle on the side of the boat
Eric: Yeah, and I, I, I, 'cause I built email functionality into it that could automatically create a form letter for me, attach the PDF invoice, and personal- allow you to personalize it and all that stuff.
And when I realized how much time it had saved me, it took me from,~ like,~ I don't know, five to 10 minutes per invoice,~ uh,~ during billing time every month to,~ like,~ a minute. I started to think, "Man, I bet other people out there, small businesses especially, [00:15:00] could use something like this." It's just, ~you know, ~it's not for...
~uh, ~it's not Salesforce. It's not gonna do that for you. But if you want something easy for, for just creating invoices and tracking them, my gosh, ~you know, ~I think this could be a, a pretty simple solution. So it just hit me that, ~you know, ~that was something I wanted to share. And plus, I, I've benefited from so many free plugins in my life and so much cool stuff thanks to the WordPress community that it just seemed like the right thing to do too,~ um,~ and to make the data open source and make the code open source.
~You know, ~you own your, your invoicing data. Intuit doesn't own it. ~Uh, ~they can't spy on it. All that, all that good stuff. That, that's kinda just convinced me to do something I never thought I'd do. I never thought I'd release a plugin for other people to use, 'cause I just didn't know about the commitment it would take to do it.
But it just seemed like the right thing at the right time for me
Matt: I'm looking at the re- at the,~ uh,~ plugin page on the r- on [00:16:00] wordpress.org, the repo. ~Uh, ~if you just search for Karks CRM, K-A-R-K-S CRM, you can find it. ~Uh, ~my,~ uh,~ podcast recording tool does not have desktop sharing yet, so we're just going to, to verbalize all this stuff. But I'm looking at the screenshots that you have up, and it has all of,~ uh,~ what I would say the standard sort of like navigation of customer services that you offer, invoices, reports, tools.
~Um, ~and then once you drill down into, say, I'm looking at the invoices screenshot right now, I can add a new invoice, import invoices, import payments,~ um,~ import invoice types, and export all this stuff to CSV, filter search. I can do all the stuff,~ um,~ that you're hoping to do with,~ uh,~ a tool like this, and it looks nice, clean, and easy to use.
~Um, ~and clean and easy to use is one thing that I find difficult to do, uh with, with AI. The coding part, the plumbing, okay, fantastic. It's pattern matching. It's done things before. It's stolen code. ~Uh, you know, uh, ~but it can write the code. But when it gets to the UI interface [00:17:00] and all this other stuff, I find that part challenging personally.
How about you? ~Uh, ~and I do want you to explain what your stack is for building all this stuff. But,~ um,~ how is UI and getting this stuff to look good, how, how has that been for you?
Eric: Yeah, so the first iterations of the plugin were ugly. I'll, I'll say that. ~Um, ~they were... Each of the pages were basically just long lists. ~Um, ~they were not,~ uh,~ user-friendly at all. And so that was something I spent a lot of time iterating on. ~Um, ~I wanted to make it so that you could easily find a, a client, find an invoice,~ um,~ and see its status or, or to record a payment.
All those types of things,~ um,~ excuse me. All those types of things are,~ uh,~ not necessarily AI's strong point in the beginning. But that's why I think I, I've said it before, I, like I feel more like an orchestra conductor with this stuff than I am necessarily a hardcore developer and maybe even a little more of a product designer now.
Because you have to look at it and [00:18:00] say, "Okay, is this easy to use? ~Um, ~could this be better? How does this work on a phone compared to what it does on my desktop?" ~Um, ~all those things that, ~you know, ~you have to think about, I mean, because just consider like WooCommerce, all the, all the little UI things that they have to get right in order to,~ um, you know, ~keep users happy and, and, and make it so that you can actually, ~you know, ~successfully do what you want to do with, with the plugin.
So I went, I spent a lot of time with that. ~Um, ~I even tried to make it customizable so that, ~you know, ~that you can change colors in the back end,~ um,~ you can add an accent color to your invoice. You can,~ um,~ upload a, a custom logo,~ um,~ for each company that you're,~ uh,~ that you're,~ uh,~ managing with it. So those type of little things, it just took time to, to hammer out.
And I, I just spent a lot of time testing and looking and,~ um, you know, ~iterating. Now, as far as my stack goes, I'm really not using anything too fancy. I'm using Claude Code,~ uh,~ via VS Code. [00:19:00] I have,~ uh,~ a local development site here that I'm building with,~ um,~ and testing everything with. ~Um, ~I've, ~you know, um, ~I'm running unit tests and things like that, and to be honest, those were things that I wasn't, ~you know, ~super knowledgeable about, but Claude has helped me set up.
~Um, ~all the version control stuff, Claude has helped me with, 'cause I know a little bit about that, but I don't know how to... I didn't necessarily know going into this how to version control a plugin that's going to be used by other people. So now that, ~you know, ~Claude has kind of helped me along with that and I kind of understand the process a bit more
Matt: Yeah. One of the things you mentioned ~uh, ~before you,~ uh,~ before we hit record was sort of the, a little bit of the back and forth with,~ um,~ the plugin team at, at the repo with some things that you were saying, "Hey, I was testing these things out on Claude Code locally, running some tests against it.
Everything was fine." ~Uh, ~some sanitization checks,~ uh,~ I believe it was, and,~ uh,~ the repo team, or the, excuse me, the plugin team said,~ uh,~ "No, in [00:20:00] fact, there, there are some changes you have to make here,~ uh,~ to make it WordPress right," with air quotes. ~Um, ~these are things that,~ uh,~ as ~you know, ~I have a podcast plugin that I started to make,~ uh,~ about a year ago, which, fun fact,~ uh,~ I installed on a new WordPress site that I was working on,~ uh,~ to test some things, and the plugin still worked.
And I was like, "Wow, I have, I haven't made any changes to this plugin in a few months." I haven't had to because everything's been working on, on the WP Minute. But I've run tests locally myself for the, for maybe one day submitting it to, to .org, and I see all these things. Claude runs through all of the tests,~ um,~ both for,~ uh,~ like PHP tests and things that are specific to WordPress and using the WP CLI, and it's always said, "Okay, we see a bug.
We fixed it. It's all set. You're good to go." And in my brain, I go, "Okay, great. Whenever I report this to .org, it's gonna be good to go." ~Uh, ~maybe you felt the same. What was that like and, and how did you sort of ping-pong that with your agent and the humans?
Eric: Yeah, so it was, it, it was interesting because I, I, I had run this through,~ um,~ [00:21:00] all the tests that Claude does, and I also run it through Plugin Check, which if you don't know, is a plugin you can download to your site and,~ um,~ it will check against the plugin repository guidelines for security,~ um,~ and just all the semantic stuff like the README file and all that good stuff that you need to have to get into the repo.
So even if you're not going into the repo with your plugin, it's still a nice way to check and make sure that you're doing things the right way. It always passed. ~Um, you know, ~and, a-a-and I would, ~you know, ~fix a few little things here and there, but it, it would pass. And so when I submitted it, I figured, "Oh, this'll be piece of cake."
~Um, ~it wasn't. ~Uh, ~it, it turned out they... And the, and the plugin team is great. ~Um, ~they, they send you examples of things that you need to fix and also documentation for it. So if you're dumb like me, you can feed that into Claude and say, "Well, this is what I need." And, and it's funny, in some instances, Claude actually argued against it , which was interesting.
~Um, ~now some things that are,~ uh,~ workflow related and not actually included in the final [00:22:00] plugin,~ um,~ that you download from the repo, I could see the argument there 'cause some of the things were needed for testing. But,~ um,~ what I found was that,~ like,~ for example, you can import a bunch of different stuff,~ um,~ into the CRM plugin.
So you can invo- import your invoices,~ uh,~ your clients,~ um,~ your service list, like things like that from QuickBooks. You can take a CSV and do that. And so what the biggest,~ uh,~ issue I found was that, okay, so the import process is not sanitizing that CSV file. The output is actually okay, but that import process wasn't, and it took me a couple of tries to get that figured out.
Once I got that figured out and told Claude, "Hey, you really need to look here and do exactly what they're saying," and you really have to specifically tell it to do that, or else it's probably gonna try to take a shortcut. ~Um, ~it, it, it was fine, and then it was, ~you know, uh, ~it w- it was accepted. So I s- I, I had three back and forths with [00:23:00] the plugin team over,~ like,~ a month.
So not, not a huge deal. ~Um, ~but it, it did teach me that, ~you know, ~Claude, as good as it is at writing code, there, there are gonna be certain things that you're gonna have to tell it specifically or else it's not gonna, it's not gonna know to do it
Matt: Were you able to,~ like,~ turn that into-- turn that experience into a,~ uh,~ relatable skill so that whatever, ~you know, ~i- if it happens again, it's already solving it in your, in your own local agentic workflow? ~Um, ~was it as easy as that to be like, "Okay, I found the fix and now I'll,~ um,~ make sure I make-- don't make that mistake again"?
Eric: Yeah, it, it, ~you know, ~Claude, of course, and then these, all these tools have a memory. ~Um, ~and you could,~ uh,~ ask it to memorize,~ uh,~ this issue that, that, and the, and the fix for future use, you know. You can... And now there's different kinds of memory, and you probably know more about this than I do, but, ~you know, ~there's a project memory.
So if I have my plugin's project file, it's gonna remember it there. But I also wanted Claude to remember it for everything I do 'cause I'm, 'cause I do [00:24:00] create plugins for clients and things like that as well. So I want to always remember that, ~you know, ~that is a big deal. So I've asked it to remember and, and so it should hopefully,~ uh, you know, ~know that the next time I'm in a similar situation
Matt: And the timeline for interacting, I mean, you've kind of hinted at it already, but a little bit of back and forth, about a month for this, this one issue. But overall, how, how has it been communicating with the team? I, I, ~you know, ~I... We've talked about and talked to other people, and we've reported on,~ like, you know, ~a waiting line, ~you know, ~as long as,~ uh,~ a few months,~ uh,~ just to get reviewed.
How has this process been for you overall?
Eric: I think they're doing a great job because,~ um,~ when I first submitted the plugin, there were over 300 people in line ahead of me, and it, it'll tell you that. ~Um, ~and it said it would be about a week, and it was about a week,~ uh,~ till I got my first feedback. ~Um, ~and they don't send personalized emails. They send general stuff, but they do in-include code snippets that, "This is kind [00:25:00] of what you need to fix, and here's where you find it."
~Um, ~so it's... You submit a new version of the plugin with that fix, about another week. It'll also tell you where you are in the queue, and I was,~ um,~ the second time, I think, second and third times, I was in the 400s as far as the queue, but still within a week. So I think they're doing a fantastic job.
They've got a very difficult job. ~Um, ~I know AI is helping, but, ~you know, ~human eyes still need to go on, go into every one of these plugins. So, ~um, ~kudos to them. I, ~you know, ~I, I couldn't have been more pleased with the process.
Matt: ~Um, ~and how you've built Kark's CRM, ~like ~have you... How do you think about it as a product as it relates to WordPress? In other words, do you look at this and go, "Hey, you don't actually need..." ~Like, ~you can run WordPress, like WordPress is just the foundation to run this CRM. ~Uh, ~is that how you see it? Like, where people go, "Hey, if I need a CRM, I can just run this WordPress site privately," I guess, ~uh, ~for lack of a better phrase.
Like no [00:26:00] website,~ uh,~ no front-end pages, no blog posts. It's just something I lock down and is run as a CRM. Is that how you envision this, or do you envision like, no, this is f- you have a front-end workflow, like customers visit it, they do other things. Perhaps it should be attached to your agency's site.
Like how, how do you see that?
Eric: Well, I will start by you can run this on any WordPress site. It automatically creates a front-end page,~ um,~ that only admins or people with a certain,~ uh,~ user,~ uh,~ role called the CRM manager can access. So, ~uh, ~the CRM manager user can only access the front end of your site. They cannot do anything more than a subscriber could in the back end.
So if you had,~ uh,~ an accountant you wanted to give access or, or whatever,~ uh,~ to export reports or things like that, you could do that. ~Um, ~it could be run on your agency's site. That's no problem. ~Um, ~it's private. ~Um, ~but You could also run it on a local install is what,~ uh,~ and that's what I'm doing. I'm just using the [00:27:00] 2025 block theme, and I'm, ~you know, ~basically I've got this site that's all that's on it is the CRM with all my data.
~Um, ~now you can import and export your company profile with all your invoices, all your services, and all that stuff, and easily,~ um,~ import it into another install of the plugin somewhere else. So that's also possible. ~Um, you know, ~the things that I would recommend though,~ um,~ this does send email if you wanna use that functionality.
You can email these,~ uh,~ invoices to clients and,~ um,~ and also CC yourself if you want to so that you can keep an email record of it. ~Um, ~I would recommend using like an SMTP service,~ um,~ which you can use like,~ uh,~ there are a lot of plugins, like Gravity Forms has one now, right? Gravity SMTP, but there's, there's a bunch of them.
Or something like Mailgun, which is what I'm using on my local site to make sure that the email actually gets to where it needs to go. And then the other thing too is you gotta remember that there is client data in this. It does not accept payment data. ~Um, ~that was an intentional choice I made that I did not want to,~ um,~ hook in with Stripe [00:28:00] or PayPal or any of these things.
~Um, ~I did not want to be,~ uh,~ beholden to their API changes and all the security stuff that goes with that. Instead, what you can do,~ um,~ and what I have on my invoices, as Matt well knows,~ um,~ y- I have payment buttons on my,~ uh,~ PDF invoice, which if you get it on your computer, you can click that and go right to my payment form.
~Um, ~so that's one way to do it too. ~Um, ~so but there is client data on there, ~you know, ~their, their phone numbers, email addresses, all that stuff. So I would recommend, ~you know, ~you have a, a, a good hosting setup that's secure,~ um,~ that you have,~ uh,~ everything's up to date, that you have m- ~uh, ~a CDN like Cloudflare behind it and, and daily backups and all that good stuff just to make sure that you're running this safe.
Think of it as any other site where you would have client data. Even if you have a forms plugin that collects all that stuff from people, it's their private information, right? So you wanna make sure you're, you're protecting it. So that, that's what I would recommend. This could run anywhere typically. I mean, you could even run it as, as a subdomain off of your [00:29:00] normal,~ uh,~ website.
You could have a, ~you know, ~separate install for, ~you know, ~billing.youragency.com. So lots of different possibilities, but it's flexible, and it's not resource of- resource intensive, so it shouldn't,~ uh,~ bog down your site too much.
Matt: Yeah. So it sounds like it's a very streamlined,~ uh,~ simple approach to something that is more complex, which is like QuickBooks Online or, ~you know, ~the,~ uh,~ the retired,~ uh,~ g- ~uh, ~QuickBooks,~ uh,~ app that you run locally on Windows that is not supported anymore. ~Um, ~inevitably, you will get that person knocking on the door who is using it going, "Oh, but can you just build me that Stripe integration so that, ~you know, ~customers can have a landing page to pay," or, "I want recurring payments, ~you know, ~to be had, ~you know, ~for my invoices or my service work." Where do you see yourself, ~you know, ~contemplating those decisions? And I guess,~ uh,~ through that answer is, like, where do you see the future of,~ like,~ what's next? ~Like, ~y- you, you wait for people to, to try the plugin? Are you gonna do a marketing campaign? ~Like, ~what is the [00:30:00] future for all of this, and, and how do you see it scaling up?
Eric: It's a very underground thing right now, Matt. That's why you're, you're the one pro- promoting this, so it's gonna, it's gonna go viral any moment, I know. But,~ um,~ yeah. So I... One of the, one of my strategies is I, I, I'm a person who likes add-on plugins. And,~ um,~ so I've already developed a couple of them here privately,~ uh,~ one for d- doing daily backups for each company that you're managing, one that,~ uh,~ actually works with maintenance packages, hourly maintenance packages.
Say I sell 10 hours of maintenance to my client, I can,~ uh,~ mark, ~you know, ~however many hours I did today and how much... I can see easily how many hours I have left. I can create a PDF report, send it to my client,~ uh,~ when it's time to renew and all those things. ~Um, ~as far as,~ like,~ the payment stuff, yeah, that is a complicated one.
Because, again, I don't wanna get involved with these APIs and all the... It opens up a whole can of worms on my side, and I don't know that I'm necessarily,~ um,~ let's say, qualified for it, but also just [00:31:00] the commitment it would take to do that when there are so many other ways to do it. ~Um, ~now, it could be that I create some sort of WooCommerce add-on that allows somebody to go in and create a pr- it, it creates the product for them and then they pay it that way.
Or even ~like, uh, ~something with,~ like,~ Gravity Forms where, ~you know, ~you can make a payment form there. ~Um, ~maybe you can,~ uh,~ select your payment form and have that, ~you know, ~easily,~ uh,~ embedded into things. ~Um, ~there will probably be some other little things too. ~Like, um, ~I just did a re- a release today where I really cleaned up how some of the bigger,~ uh,~ customer tables and invoice tables look on mobile.
~Um, ~got rid of some of the stuff that doesn't need to be there and kind of rearranged things so that they're easier to read. Also, maybe looking at,~ um,~ invo- add-ons for,~ like,~ client notes. And I'm, I'm open to suggestions with that stuff too. If,~ like,~ there's something that would really make someone's life easier and I could see other people needing it, ~you know, ~I'd be happy to, to, to explore that.
But right now, I think it's just little improvements and, [00:32:00] and just waiting to see what the, the community feedback is before I, I go too wild on
Matt: Yeah. No, I mean, it's, it's something that,~ um, you know, ~Brian Casel, friend of the show, Brian Casel,~ um,~ has come up with a good term. I don't know if he came up with it,~ uh,~ 'cause I don't wanna give him too much credit. ~Uh, ~but he,~ uh, you know, ~he has this thing about the unbundling with AI, right? ~Um, ~where we can now build tooling, our own tools, right?
Like I'm doing here with this podcast recording tool, what you're doing with your CRM, where we can say, "Hey, look, there's, there's that up there," which is this big monolithic app, QuickBooks, in my case,~ uh,~ Riverside. And we say,~ like,~ we don't... We use,~ like,~ 30% of what Riverside gives us. You might use 30% of what QuickBooks Online gives you, but you're paying for 100% of it, right?
~Like, ~a- again, I don't use QuickBooks,~ uh,~ so I don't know, but I know on,~ like,~ the Riverside stuff, it's ~like, ~okay, we record, we edit, we export, we're done. [00:33:00] But Riverside keeps feeding more stuff like websites and email lists, and they can host podcasts, which I'm strictly against. ~Um, you know, ~now I, I logged in the other day, Eric, I don't know if you saw this, if you did an interview with somebody, but now you can,~ like,~ clone yourself.
And I don't
Eric: I saw that. I don't wanna try that. I'm
Matt: Yeah. And, and I'm, and I'm just like, all this is going to do is raise the, the base price of things that I don't need, and it's not even about the base price, it's just about the complexity of it. ~Um, ~and I think folks like you and I, and others, are who want to put a piece of software out in the world, it needs to be very opinionated to create a, an audience, albeit probably a small audience,~ um,~ 'cause we just don't have the same marketing power as a QuickBooks or a, or a Riverside.
~Um, ~but we can certainly cultivate something that is valuable that with-- through AI, we're able [00:34:00] to build and maintain that. I think at least now in the subsidized AI world,~ um,~ we're able, we're able to do that. ~Uh, ~and then maybe that means we build up some cash around that, and then eventually we-- okay, we can maybe hire somebody who can help, ~you know, ~develop this the rest of the way or, ~you know, ~you start to get a little bit more support from that.
But,~ um,~ yeah, it's interesting times to be able to build stuff like this, and I, and I think you're right. ~Like, ~if you don't integrate,~ uh,~ payments, then that means Kark CRM isn't compared to Fluent CRM, right? Or,~ uh,~ Gravity CRM when that comes out. ~Um, ~there's-- it puts you away from,~ like,~ the, that competition, so you can say clearly the easiest CRM for simple workflows or, ~you know, ~whatever the tagline is, and that separates you, and that person who's looking at the two don't go, "I definitely, I definitely need payment, so I have to go in this direction."
Or the other person goes, "Yeah, I like w- I like Eric's style. Link to my Stripe checkout or my PayPal [00:35:00] or my checking routing info, and I'm just gonna roll with this." And then you get that person who has less stress in their life, which means there's less stress for you supporting that product.
Eric: Exactly. Exactly. I, I think,~ uh,~ that this, and I've said this before, my, my hope for all of this with, with the, all the vibe coded stuff, yes, there's going to be a lot of junk and there already has been, but I also think it could be kind of like the '90s shareware revolution that we kind of had in Windows where, ~you know, ~there was so many different little niche apps that came out of that time, and a few of them grew up to be pretty big.
But I, I, I think, ~you know, ~there are going to be some hits out of this. I don't know if mine's going to be one or not, but I, I, I think there is a possibility for someone with a good idea and,~ um,~ the knowledge to execute it that there, ~you know, ~there, there's something there. There, there is a market there.
It doesn't all... A- and as people turn against proprietary platforms, I, I... That's why I still think WordPress can, can be a winner because,~ um,~ one of the things I'm, I'm pushing with this [00:36:00] plugin is that you own your data. This is all yours. You don't have to rely on, ~you know, ~Intuit or Microsoft or anyone else.
You can run this yourself, and if you're a plumber and you don't want to pay the, that big corporation a ton of money, come use a free plugin that'll do what you need, the basics of what you need, and forget all the other fluff you don't
Matt: Yeah. Yeah, that's great. ~Uh, ~real quick, that, that just made me think of one last question here. H- how is the data saved and structured in the database? ~Uh, ~do you write your own-- Do you have your own tables in there for, Karks CRM? Like, how did you think
Eric: Yeah. Yeah, so, ~um, ~so that was my initial idea Claude talked me out of, 'cause it was, ~you know, ~posts and taxonomies, right? 'Cause that's what WordPress is, where it's all, ~you know, ~a tag, a, a category. And it actually talked me out of that, and,~ uh,~ because of the difficulty in even things like,~ um,~ invoice numbering.
~You know, ~most of the things,~ uh,~ like even WooCommerce product numbers for years have been based on a post ID, not necessarily on... or the [00:37:00] order ID,~ um,~ would be,~ uh,~ based on the, the product's post ID and not on the, ~you know, ~on something you made any sense. So i- it talked me into we'll say,~ uh,~ custom tables, which should be way more performant.
It won't mess with any of your other data. ~Um, ~if, ~you know, ~if you decide that you don't want the plugin anymore, it's not going to weigh down the rest of your stuff. ~Um, ~the export file,~ um,~ you can export,~ uh,~ invoices and payments and things like that as a CSV, which is nice 'cause you can use that anywhere.
~Um, ~your company export is a JSON file, and I've exported and imported my own company stuff, which is about 100 clients and hundreds and hundreds of invoices, 'cause I've, I've, I've only done two years' worth of my QuickBooks invoices and imported them into here,~ um,~ 'cause I didn't wanna go back,~ like,~ 10 years, 'cause what was the point?
~Uh, ~but that, I mean, that process went super quick. I was, like, thrilled with how [00:38:00] quickly that happened. ~Um, ~even now,~ like,~ my backups are, like, 300K for, for my entire company. So it's not ~like ~when you close down,~ uh,~ Quick- Quick- QuickBooks Desktop and it, it goes through all this crap to back up your file.
It's just super quick, and my gosh, on a local WordPress install,~ like,~ no time at all . So, ~um, ~it's, it's all custom database tables and open formats so that, ~you know, ~again, you own your data. You don't have to beg, ~you know, ~customer service to get you something.
Matt: Yeah, that, that just reminded me of something else too. ~Uh, ~what was the, I think we covered it,~ um,~ the My WordPress, like the single, single page. Have you tested against that? Would that be a, a use case for somebody? I forget what the persistence is on that though, like the data persistence.
Eric: It's, it's by browser. So, ~um, ~you might be able to do something on Playground with it. But,~ um,~ that was one of the add-ons that they had,~ uh,~ with MyWordPress.net,~ um,~ was a CRM,[00:39:00]
Matt: Oh,
Eric: a personal CRM. That is one of the things you can install. So I, I assume, like if you were gonna use, like I use Firefox, so if I open up Firefox every day, I could do that.
~Um, ~I don't know if it's the best for data stability just because it's, ~you know, ~it could be deleted or it could,~ um, you know, ~it, so it doesn't live on its own like that. So, ~um, ~I probably wouldn't wanna do it that way, but you could certainly test it that way and play with it
Matt: Yeah. Yeah, for sure. Very cool. Karks CRM, search for it on wordpress.org. It'll be on the link in this show as well. We'll have a little display,~ uh,~ demo of it on the YouTube channel,~ uh,~ soon enough. Eric, thanks for hanging out today
Eric: Hey, thanks for having me, Matt