I’ve joked about this a few times, that I should go into business telling people if their web idea is a good one or not. The prices would be simple.

  • $25 – A quick yes or no.
  • $100 – I’ll tell you if it’s dangerous or possibly illegal.
  • $500 – Details of everything.

While I doubt anyone would ever actually pay for that, let me tell you some things I think are bad ideas for the web, and why.

Obvious Bad Ideas

Excluding the whole “Facebook but for pets!” and “Uber but for Pizza!” ideas, and dismissing every single ‘disruptive’ concept out there (seriously, no they’re not), some ideas are really easy to point at and say ‘this is a bad idea.’

If you’re thinking about making something new for WordPress, before you start coding, please use google. Because the first kind of bad idea is the idea that’s been done before, ad nasueum. For example, sliders, snowfalls, BMI calculations (actually ANY sort of calculators including loans), ‘simple’ contact forms, and Google Analytics.

These are bad ideas because they are overdone.

If it’s been done more than 10 times, and you’re not introducing something totally new (this includes the fellow who made a ‘login logo slider’ – no, it wasn’t new), then file it away as a good experiment. Write the code, but don’t publish it.

Illegal/Dangerous Ideas

Depending on how often you hear me rant, you may or may not be surprised to find out how often people write code that’s illegal.

Now hold on. Before a single one of you says “But the GPL!” let me remind you. The GPL doesn’t make things magically legal just because it’s open source. You can use GPL code to break laws (like, say, make a child porn website), and while that’s fine for the GPL, it’s still illegal.

On a less creepy but still illegal note, the Yahoo! finance APIs aren’t actually legal for you to use in your code. Yes, I am well aware of the number of people who make packages for it. I’ve actually spoken to Yahoo about this and the way they explained it was this. Their Finance API is for your personal use. You’re not meant to use it to retrieve data for apps (and yes, plugins are apps) or any third-party usage (again, plugins). Also they do make it pretty clear with this comment:

By accessing the Yahoo! site, you agree not to redistribute the information found therein.

A lot of public APIs have these restrictions, including Airbnb and even some Google APIs (finance again). And using them without checking the terms of use and verifying they’re allowed to be used in your situation puts you at risk for breaking the law and that is dangerous because, in the case of a plugin, it’s not just you who pays the price.

Ignorant Code

Really the magic of everything, the answer to all ‘is this a good idea’ questions can be found in this. Did you bother to do the research first? And no, I don’t mean did you do market research (though that’s a good idea too).

Did you check if the idea existed already? Did you check if the tools you want to use permit that kind of use? Did you read the terms of use of any service? Did you listen to your gut or not?

Think first. Look before you leap. And above all, please don’t make yet another snowflake tool. No one actually likes them.

Reader Interactions


  1. Outstanding post! I particularly appreciate “before you start coding, please use google.” I’m amazed at how many people fail to do basic research before launching out on a venture – or asking a question. So many of the questions I get asked on a daily basis could be answered with the simple statement, “Google is your friend.”

    When reading the “illegal” section, I couldn’t help but also think about GPL vs “public domain.” Too many people equate the two without ever bothering to actually read the GPL. Taking an existing plugin, changing two lines of code and a variable or two does not make it new. Fork away, attribute and distribute, but don’t try to build a commercial venture around something you really did not create. Ethical and legal issues aside, it’s nearly impossible to provide support to your potential customers.

%d bloggers like this: