Launch your #eecms add-on in 5 weeks!

ExpressionEngine developers, what if I paid you $1200 a year to sleep? Or watch TV? Or play video games? Would you take it?


Charles here just made $20

I’m pretty sure I know the answer ūüėČ

What if I told you right now you’ve got code sitting on your computer that could earn you at least that much per year?

You don’t have to build a big software-as-a-service platform with thousands of subscribers and VC investors to “make it.” ExpressionEngine is a great place to start selling products to fellow developers.

You may be thinking, “What about support? How will I take payment on my site? What about refunds? Should I start a list of beta users? How much should I charge?”

I had those questions and more when I started PDF Press. I was releasing it with two competitors already on the market with great reviews & rates (one of which was a free add-on). I thought for sure no one was going to buy it.

I sold twenty-one copies the first day.

I did it by taking some systematic steps anyone can do.

Now here’s the pitch, tell me about yourself and your add-on idea here, in the last week of Dec I’ll pick three developers from the submissions. If you’re selected I’ll coach you for free over five weeks.

You’ll get:

  • Weekly one-on-one Skype sessions with me while we work out preparing your add-on for launch
  • Help with sales copy, pricing, documentation, landing pages
  • A free account on Unbounce to help you with a/b testing your landing pages
  • Promotion of your add-on through my newsletter and social media as I release case studies as we go through the process

You won’t learn how to use generic crappy stock photos in your blog posts, sorry trade secret.

The only requirements I must ask are that you’re willing to sell your add-on for a price and you give me permission to publish data such as conversion numbers and sales data up to launch and a month afterwards.

Why am I offering all of this for free? A few reasons:

  • I love our community and I want to give back to it
  • I am passionate about developers getting paid their value
  • To start a community around developers launching “small products”

Start 2014 off right, signup for the contest today and let’s get started selling some add-ons!

We live in a post-excuses world

Probably the most disruptive thing the Internet has done, and is continuing to do is to obliterate the typical excuses that have prevented people from creating something.

It used to be if you wanted to build a product, write a book, build a company, make a movie, make a comedy series, etc you had several barriers that prevented you from making and selling your work. Gatekeepers keeping you from your potential audience.

Authors needed to find a publisher which involved finding an agent, movie authors needed equipment which required studio backing, if you wanted to build a product you’d need to dump millions of dollars in R&D and prototypes . . . roadblock after roadblock. It was amazing that anything was created at all!

That’s not the case anymore. Now the cost of creating something is trending towards zero, whether you use Garage Band or iMovie to create an album, video or podcast, MakerBot to R&D prototypes for physical products, or a wide variety of development frameworks and cheap hosting to great software products, the only cost to make something is time.

“Sure I’d do <blank> if I just had the time,” is the excuse you’ll hear from people who don’t create. The fact is, they do have the time, they’re just using the time excuse to hide their fear of failure. So they fill their time with other things, Facebook, Reddit, MasterChef. Are you honestly telling me watching a cooking competition show is more important than your dream?

BTW, the hilarious thing about MasterChef is that every competitor on the show probably spends at least 4 hours a day cooking, not watching other people cook on TV.

I know for a fact Christine doesn’t watch TV . . . btw how good was that season?

The world is different, there will be people who through some random dumb chance will get “discovered” and do the hard work of introducing them to the world. The rest of us however will have to learn how to discover an audience by building it for ourselves. Need proof? One word: Macklemore

The Heist¬†is the debut studio album by American rapper¬†Macklemore¬†and producer¬†Ryan Lewis. Independently produced, recorded and released by the duo,¬†The Heist¬†reached number 1 on¬†iTunes¬†within hours of being released on October 9, 2012 with no mainstream promotion or support.[1]¬†The album was recorded in¬†Seattle¬†between 2009 and 2012 and was released on Macklemore LLC. A series of singles were released before the album release from 2010 onwards, with the fifth and final single “Thrift Shop” being the most commercially successful ‚Äď peaking on the¬†Billboard¬†Hot 100¬†at number 1 and charted within the top 40 overseas, peaking at number 1 in¬†New Zealand¬†and¬†Australia¬†and the¬†United Kingdom. The album’s third single “Can’t Hold Us” was also largely commercially successful ‚Äď peaking at number 1 in the United States, Australia, and Sweden.

If you don’t understand the genius of “Thrift Shop” I can’t help you

It’s harder, we can’t tell ourselves comforting little lies anymore of why we didn’t make it (“because of the fat cats at big companies don’t get it”).

The tools and knowledge is out there, do you have the will to actually make your dream happen?

Or are you going to keep making excuses?

Manage ExpressionEngine Licenses with MarvelShare

At Anecka one of the things we struggle with is properly managing ExpressionEngine license and plugin accounts for our clients. Not surprising considering a standard ExpressionEngine install can have over a dozen add-ons!

Totaling all of this together we spend over 130 hours a year just dealing with client accounts & software licenses. We figure a lot of other EE consultants run into similar problems, that’s why we created MarvelShare.

The easiest way to think of MarvelShare is Google Voice for email. You simply create a email address for your project “” and MarvelShare will intercept emails to that address and forwards the emails to any number of¬†recipients¬†you choose. Think of it as a¬†miniature¬†mailing list for your team and your clients.

To show you how it works, let me take you through using MarvelShare to purchase an ExpressionEngine license for a client.

First create a new project in MarvelShare, let’s call it “Pohler’s Widgets”

Screen Shot 2013-07-01 at 7.55.36 PMNow that we’ve created an email address for the project: Let’s add some recipients, just go an edit the project.

Screen Shot 2013-07-01 at 7.56.08 PMAs you can see, your email address has been added by default. You can click click “New¬†Recipient” to add an additional email address.

Screen Shot 2013-07-01 at 7.56.33 PM


Now that you’ve added your¬†additional¬†recipients, signup and purchase an ExpressionEngine license at

Screen Shot 2013-07-01 at 8.00.42 PM


After purchasing the license for your client, when EllisLab sends the order confirmation everyone on your list will get the email. You can also use the same account to purchase add-ons from Devot-ee, hosting, and domain information.

MarvelShare will also save and group messages so you can easily find them later (no more digging through your inbox for one pesky license number)!

Screen Shot 2013-07-01 at 8.20.23 PM


If you’re interested in changing the way you manage license and account information for your ExpressionEngine clients, you can sign-up for MarvelShare for FREE!

Thanks and feel free to contact us at if you have any questions or concerns!

Building on Sand: Concerns w/ the Craft CMS License

Update: This article was published a year ago, since then Craft has updated their license. For my follow-up article on the new license, go here.

EllisLab made a major announcement on Friday for ExpressionEngine 2.7, mainly that they will be releasing a new field-type called Grid that directly competes with a popular add-ons provided by Pixel and Tonic (who released their own CMS called Craft which competes with ExpressionEngine).

Naturally the EE community (well, the #eecms hashtag on Twitter) exploded in debate over whether or not Ellislab’s actions would stifle competition in the EE addon space. EE Insider has a great series of reaction posts on Twitter for all you drama llamas. ūüôā TJ Draper has a good post regarding communication & messaging by EllisLab on this issue (and others).

It’s a fair debate and raises issues surrounding competition between platform vendors and the vendors building products that extend those platforms. I might write a post about that issue, but for now I want to talk about something Derek Jones (CEO of EllisLab) said in the post that has been mostly ignored.

Additionally, our third-party development community (including Pixel & Tonic for that matter) does not have to worry that we will attempt to legally prohibit anyone from duplicating, improving, or modifying functionality that we decide to build into ExpressionEngine…

Ironically, the license agreement currently in place for Pixel & Tonic’s CMS explicitly forbids the type of add-ons that enabled Brandon Kelly to build his company within our community. Wygwam, Playa, Matrix, Assets, none of those could have existed if EllisLab took a similar view of third-party development for ExpressionEngine.

That statement took me by surprise, this was the first time I had heard any restrictions to add-on development in Craft so I decided to comb over the license (I encourage you to read it as well:¬† Sure enough, the current Craft’s license forbids:

  • modifying core code or database tables
  • developing or using modules that replicate, duplicates (whole or in part), or replaces features in Craft core or its Packages
  • creating plugins that use undocumented features or APIs in the system

Screen Shot 2013-06-29 at 3.37.18 PM

This makes Craft’s license by far one of the most restrictive CMS licenses I’ve seen. Craft’s closest competitors,¬†Statamic and ExpressionEngine both let you modify core (as long as you don’t redistribute) and neither restrict developers or users from creating/using competing add ons.

Let me repeat that, even if you don’t intend to widely¬†distribute the code and only use it for personal use, you are violating the license. Also if you just USE a plugin that violates the license, by extension YOU are violating the license as well.

So what do you need to do if you (or your client) violates the agreement? Well you’ll have to uninstall your instance of Craft immediately

Screen Shot 2013-06-29 at 11.46.04 PM

But it’s not like they can track if you’ve modified core or are using a forbidden plugin right? Oh wait turns out they can and the license gives them the right to collect this data.

Screen Shot 2013-06-29 at 11.49.46 PM

This raises serious concerns about both using Craft in my consulting business as well as developing plugins on the platform. So far Pixel and Tonic have responded to these issues by saying the language in the agreement is there “to protect themselves.” They promise to elaborate further.

I hope they offer serious thoughtful solutions & clarifications on their license to potential customers & partners. BTW a “you can trust us because we’re nice guys” isn’t a convincing argument. My clients rely on me as a consultant to offer software solutions for their business, if I propose a solution that exposes them to¬†litigation¬†or a TOS violation that effectively shuts down their website, that’s a show stopper. No matter how good the CMS might be or how nice the vendor is (and P&T are nice folks).

Listen, I want Craft to really fix these issues with their license because I love the product. I’m have the greatest amount of respect for Brandon Kelly and the team at Pixel and Tonic. When they build a product they put their hearts and souls into it and do their best to give their customers the best possible experience they can. That’s why it’s so sad to see such a great product limited by such a heavy-handed licensing agreement and on that fundamentally goes against what made Pixel and Tonic a great add-on firm in the beginning.

PS: While in the process of writing this article I had a few exchanges on twitter with the @craftcms account. I think it’s only fair to include the dialog:

Screen Shot 2013-06-29 at 11.23.28 PM


PSS: Just for fun (I have a weird idea of what fun is) I took a word count of the Craft, Statamic, and ExpressionEngine licenses. Statamic was a svelte 506 words, EE clocked in at 779, and Craft was a whopping 1844 words (“Going to the club like ‘Whatup I got a big license…’ “). No real point, I’m just a dork.

Iterating is a Life Skill

My wife and I are trying to sell our condo. It’s been on the market for three weeks and we’ve had three showings so far. On the first two showings we got the following (and only) feedback:

“Client wants something not facing a busy road”

Our condo is facing a fairly active road, it’s well traveled, but I would say it’s only really busy at rush hour and our condo sits far enough away we don’t pick up any significant road noise.

Also, a quick Google Map view of our address shows that we’re on the road, if that’s a problem, then why did we get the showings in the first place?


The solution suddenly occurred to us while we were discussing the feedback

Have the potential buyers come in through the back of the condo rather than the front

It makes perfect sense, by having buyers come in through the front, the road and traffic noise was making the first impression, not our condo. Buyers were being assaulted with road noise before even setting foot inside!

For the third showing, we cleaned up the garage and cleared off the patio and had buyers come into the kitchen (which looks great). The feedback from the buyer didn’t mention the road noise at all.

The art of iterating: making a small change, testing that change, then gathering feedback, is a powerful tool for technical projects but I think that was the first time it really dawned on me how powerful it was for day-to-day life.

The tricky part is of course measuring and recording results from your iterations. This can be especially difficult for life projects, although with the power of mobile devices and better instruments we’re closing in on measuring all kinds of things, especially our own bodies. It’s like having Dr. McCoy’s medical scanner in Star Trek:

Not an expert on Klingons, but I think we know how he died…

I’m curious if anyone has any similar anecdotes of using iteration in your life. Let me know in the comments!

When Testing isn’t Testing

Let me ask you if this sounds familiar. You deploy a feature or a site to your customer’s staging server and send them an email letting them know that they can begin testing. After a day they email back that “Everything looks great!” and you deploy the feature to production. A day after that, your inbox is flooded with frustrated emails from your client how “everything’s broken and nothing works.”

What happened? Didn’t the client just say everything was great?

Yes they did, but unknown to you, their idea of testing was vastly different than your idea of testing.

Here was your customer’s “test”: One person in the office opened up their browser, checked to see if the pages matched the comps from their graphic designer, maybe edited a few fields and clicked “save.” They did that once, and they didn’t check edge cases, different browsers, or go through all the features you discussed in the requirements document. Then they sent you an email, “everything looks great.”

Now they’re getting angry emails from their users about how it won’t let them save in IE 6, or Firefox, or how the print margin on the printer-friendly view are off, and they’re asking “didn’t you even test this stuff.”

See the problem? When you told them that there was a “testing” phase to the project they assumed that you did all the technical testing, all they had to do was do a final sign off that everything was in the right place and looked the way it should.

Testing is an overloaded term, what you consider testing (finding bugs, checking if features work the way they’re supposed to, checking different browsers or operating systems) is different than what your customers consider testing. Your version of testing is Functional, while their idea of testing is Verification. A customer considers testing the same way they see approving a print ad or a piece or a design. If what I see on the screen matches what I expect, then it works.

They have that expectation that because they assume it’s your job (the developer or implementer of the project) to do the functional testing while it’s their job to verify.

As with most things in freelancing, this can be solved by properly setting the expectations with the client in advance. You have to make it clear that the testing phase of the project includes functional testing by the client as well.

Test Plans are great for setting this expectation, you don’t have to make them overly detailed but include the following for each test.

  • A number to identify the test in emails/bug reports
  • Steps on how to perform the test
  • Edge cases for each test (like trying to save blank forms)
  • The expected result of each test

You can work with your client to define the tests, but remember you’ll have to lead the charge on this (after all, you’re the technical expert).

I like using Test Plans for large, complicated projects and big feature releases, especially with new clients. They may seem like a pain to set up at first but believe me, the hour it will take to create a test plan will save you and your client a lot of pain and suffering post-production.

PS – Oh be sure to factor creating the test plan and managing the testing phase in your quote. But you know that ūüėČ

Green Acres

To everyone currently working a 9-5 job, I’m going to say something to you that might surprise you (although I suspect might not surprise other freelancers or startup founders):

I envy you sometimes and there are days were I dream of quitting and going back to a salaried job at a company.

Guys you have it easy. Really! Look around your office, take note of the people you work with and what they do to make your job of writing code easier. Accounting, Janitorial, HR, Project Managers, DevOps, QA, IT, Marketing, Sales, Account Managers, think about how difficult your job would be if all those positions were gone and everyon

Before I quit my corporate gig I took every position that wasn’t engineering for granted. I took vacation time and having coworkers to pick up my slack when I went on vacation for granted. Back then I didn’t realize that knowing how to build something, while difficult, is a lot easier than knowing what to build.

I took health care for granted, which is why I’m a big supporter of the Affordable Care Act. Is it perfect? No, but it’s a start and it brings real reforms to a dysfunctional industry that chokes small business owners and freelancers.

I’ve thought about quitting but as soon as I do I stop and buckle down. Not because I feel there is shame in quitting, but if something isn’t working, you owe it to yourself and everyone else to quite and do something else (see The Dip by Seth Godin). The most dysfunctional thing in startup culture right now is a macho attitude of “just take it and suck it up.” We need more of posts like these to set people straight.

I haven’t quit simply because, at this point in time, running Anecka is the best thing for me. I get up to work everyday with a sense of purpose and I learn things I would never have learned by in my corporate life. The benefit of being forced to do your own sales, marketing, accounting, DevOps, QA, etc is that it broadens your skills and makes you appreciate the big picture, beyond the code editor.

If you’re planning on starting your own business, whether as a freelancer or startup founder, I urge you to talk to people who have done it already. In addition to building your peer group, you’ll go into it with a healthy expectation of what it’s really like to work for yourself.


Warning Signs

There’s a job posting for a developer that I recently ran across that gave me an idea for doing this blog post. I won’t directly link to it, to protect the poster, but I think it serves as a great example of warning signs you need to watch for when taking a project. Here’s how it begins:

I had previously used someone else to start the project 2 weeks ago and they just cancelled today for no reason at all and had given me nothing to work with.

Not a good start, I ask all my clients with existing websites if they’ve worked with another developer and if so, I’ll ask them why the relationship ended. A developer who drops off the planet with no warning tells me the working relationship between the client and the developer was not great. The client seemed to be blindsided by this, so proper communication while the project was in progress was not in place.

The 1st phase of the project was supposed to be completed by Feb. 4. If you can get the 1st phase done between Feb. 4 to Feb11, I will offer a bonus!! I assume work would need to be started this weekend.

Also a bad sign, the project (an ecommerce site) was expected to take a total of two weeks. This is a very tight timeline (this is likely why the developer quit, they realized they signed up for more than they could handle) even for an experienced team. Instead of returning to the customer to establish a more reasonable timeline, the poster is offering a bonus to the next poor soul! Well, at least they realize that because of the timeline and the urgency of the situation they will have to pay a premium . . .

We are a marketing company with many clients so please price out the quote accordingly as we need to mark it up a little. I’m looking for an affordable developer who I can send projects to on a regular basis. My total budget is approx. $3000 so please reply if you are serious about the timeline and budget.

. . . or not

3K for the whole project? Also check out the bait: “if you do a good job with us, we’ll send you more low paying high pressure projects.” Gee! Thanks! I think Paulo Elias said it best

Screen Shot 2013-02-05 at 10.03.34 PM

There’s second phase at the end of the month (Feb 28th), which has a lot of additional requirements and features they want added. I won’t break them down further since at that point I really zoned out.

The thing is, this might be a good project, I’m sure this project is perfect for someone. But after doing this for three years, I’ve developed a kind of gut feeling for projects (or Spidey-sense) that tells me to stay far away

I’ve developed it because I’ve taken projects like this, because when I started I didn’t know any better and because I didn’t have any idea what my time was actually worth.

Your time is the most valuable thing you have, if you commit to a bad project on bad terms, then your time will be spent on a nowhere project when you could have used that time for something else. Remember when you’re meeting with a client for a project, you should be vetting them, watch for the warning signs and run like hell if your spider-sense is tingling!


The Power of Peers

This isn’t my first blog, in fact kids, your old Uncle Pat has been blogging since 2004.

I used to be a private pilot. I’ve always loved aviation and in my early twenties, broke as hell and with way too much time on my hands (graduated college, no girlfriend, very few friends to hang out with) in 2004 I decided to give flying a shot.

From 2004 – 2010 I flew fairly regularly, about once a month. It was a lot of fun, I enjoyed the challenge of getting new ratings, testing my skills, up in the air just me and the airplane. I started blogging not long after I got my private pilot’s license, simply because I felt a single line in a logbook didn’t do what I was experiencing justice.

It was a lot of fun, for a while. Over time though I noticed a pattern, in that, I rarely left the pattern (in aviation, the “pattern” is the space surrounding the airport, usually 1000 feet above the ground reserved for taking off & landing traffic). ¬†I would go on short hops to nearby airports, do some basic landings & takeoffs, and return back to my homefield. Soon, I stopped even making those trips.

I think I “officially” quit flying when I started Anecka, three years ago. But my heart quit on flying months before; I could blame the rising cost of rent, gas, insurance (it’s shocking and sad how expensive flying has become), in reality, I think it came down to just not surrounding myself with a group of people my own age interested in flying.

I’m an introvert, which means, I get energized by ideas, not necessarily meeting new people. It’s something I’m actively working on, and I’ve made a lot of progress, however in my twenties interacting with strangers was a nerve-wracking experience for me. I also didn’t really get how important peers can be.

Keep in mind peers are different from friends (a peer can be a friend, but not all friends are peers). Peers are people you have a mutual respect for who share a common interest or passion. Peers can help kick you out of the rut, they can challenge you to fly outside of the pattern once in a while and tackle something new. The best peers will show you where your blind spots are, help you find things that you might have missed or force you to thinking about details you thought were unimportant.

On the flip side, if you surround yourself with people who don’t understand what you’re trying to do, or who find ways to belittle or marginalize your accomplishments, then it can have a devastating affect on your success. Those people are not your peers and you have to take care to minimize your exposure to them (this is especially hard if they are family or “friends”).

I’m very lucky to have learned this, I have a fantastic wife who understands the struggles of working for yourself, because she does the same thing (peer), and I’ve sought out other entrepreneurs in Columbus at events like Wakeup Startup, Startup Weekend, and VentureCafe.

Finally, I’ve learned to reach out more to strangers and make myself available. Social anxiety is a luxury that I can’t afford anymore. If you find yourself stuck in a rut (or in aviation speak “circling the pattern”) I encourage you to get out of the home office and start to find a solid peer group. Heck shoot me a message on Twitter, or comment on this post, I’d be happy to get to know you!

Clear skies

Freelancing is Deadly, Like a Chainsaw pt. 2

In part 1, I discussed a maxim in the Freelancer’s Manifesto #4, Freelancing is Deadly. Basically the gist is that if you trade hours for money, you’re going release your product later (or not at all) and never escape the vortex of working for an hourly rate. The author, Rob Whalling, even compares freelancing to working for fast food.

That said, for a micropreneur, dollars for hours is death. If you build a business where your earnings directly correlate to your hours worked then you aren’t a micropreneur. You’re working fast food.

Now, one of the reasons why I hate manifestos is that while they are great at inspiring an audience to an idea or ethos, they are just as great at bumming you the hell out if you don’t follow the everything in the manifesto exactly.¬†Every manifesto carries the implication, “if you don’t strictly follow everything in the manifesto, then you can’t call yourself _____” (Micropreneur, Agilist, Craftsman, here).

That wouldn’t be so bad, except manifestos are also extremely weak in instructing the reader in how to actually accomplish the edicts in the manifesto. The Freelancer’s Manifesto also tells the reader that they need to: solve a problem, avoid outside financing, find a real market for their product, become a badass internet marketer, deal with pressure, manage your time, and engage with other people in public. Which is all true, but if you’ve just set out on your own as a developer or graphic designer, how in the hell are you supposed to do all this?

The answer is freelancing, work for other people in the industry / market you want to capture.¬† Don’t write a single line of code, or landing page, or draw a single line in Photoshop until you have hands on experience working on a project for your target customer.

This is VERY different from just taking any and all work that comes your way just to pay the bills. This is a deliberate approach to learning the market, building a public reputation for excellence in that market, building a network of customers for your product, and building up the cash you need to develop the product you want to bring to market.

If you want to feel good about yourself, just call what you’re doing bootstrapping: the act of purposefully solving business problems for a specific market by offering your services on a contractual basis while at the same time developing a product to solve those problems at scale.

Think of your freelancing clients as potential future customers, put them on a mailing list, send them surveys, send them interesting articles or blog posts you write about their business, think about how you can turn a project you’re doing with them into a stand-alone product. Use their cash ¬†to fund your idea.

Listen, the point is, building a business takes time. You have to be in this for the long haul and you have to use all of the tools at your disposal. Don’t throw away a perfectly good chainsaw because some online PDF told you to.