Ian Landsman

Founder & Dev. HelpSpot / Larajobs

With the recent release of sneak peek video’s for Laravel 4 there’s been a lot of talk about it lately. It’s still pre-beta and as such there’s very little documentation, but I know a lot of people are excited and would at least like to kick the tires. I’m not an expert myself, but I’ve put together a little quick start guide so you can at least get it installed and be aware of a few important changes from Laravel 3 which should let you build a basic application in just a few minutes.

Note that any and all of this may change! This is written on November 12th, 2012 based on a pre-beta version. Laravel 4 is not currently supported by Taylor or on the forums. Use this at your own risk.

Installing Laravel 4

Laravel 4 now leverages PHP Composer in order to make keeping your application up to date and adding in new functionality a breeze. However, this does change the way we install Laravel. This processes should get you to a working base install.

https://gist.github.com/4059572.js?file=setup.sh

You now have a basic Laravel 4 app in place.

Laravel 4 Gotcha’s and Changes

There’s a few changes in 4 that might trip up someone coming from V3. Let’s check out a few of the most important ones out.

Routing wildcards

You no longer use the routing wildcards like (:any). Instead, in your routes name your wildcards and they’ll be processed.

https://gist.github.com/4059572.js?file=route.php

Registering Controllers

Laravel 4 uses Composer’s auto loading to load up classes you need. It’s setup to statically build a map of class names to file locations for performance. Issues come up when you create a new controller that the auto loader doesn’t know about. To fix that simply run the following command after creating a controller.

https://gist.github.com/4059572.js?file=autoload.sh

Adding functionality via Composer

One of the really great things about Laravel 4 is you can leverage Composer to include new functionality in your application effortlessly. Let’s say we want to add the powerful HTTP client Guzzle to our application. In composer.json, in the root folder, simply add it to the required section:

https://gist.github.com/4059572.js?file=require.json

Then update composer to pull in the library and rebuild your auto load mappings.

https://gist.github.com/4059572.js?file=update.sh

You can now use Guzzle directly via its namespace or shortcut it by including the namespace at the top of the files that need it with the ‘use’ keyword.

https://gist.github.com/4059572.js?file=guzzle.php

You can find more great libraries over on Packagist.

Core File Location

The working name of Laravel 4 is Illuminate. I’m honestly not sure if that will remain in place when Laravel 4 is released, but for now you’ll find all the core framework files in

/vendor/illuminate  

You’ll likely need to do some digging in there from time to time until the docs are ready.

Wrap

I’m really excited about Laravel 4. Taylor has done a ridiculous job putting this together in such a short time. Laravel 4 isn’t only going to let us PHP developers do things faster, but also make us better programmers. The future is bright for PHP and especially for Laravel.

Get future posts via email

Stay updated with our latest content.

We won't send you spam. Unsubscribe at any time.

*[This image was lost to time in my blog transition]*

Help desk software is ugly utilitarian stuff. It’s designed to collect data, to manage, to organize, to control. Formal help desks have a lot of demands placed on them as they sit at the center of the organization, between the customers and management. In turn, help desk software tends to be sophisticated and complicated. Designed to perform the functions of what should really be done by 4, 5 or 6 separate applications.

While this creates a complex application, within the structure of a formal help desk it can and does work. Especially with applications that find the right balance (see HelpSpot).

Help desk apps are some of the oldest B2B software applications and have in many ways remained unchanged in concept. But what has changed is the world business is conducted in. Customer service is no longer the job of just a chosen few in the organization. The rise of email and social media as primary contact points means it (should be) easier to include the people with the proper knowledge in the support loop.

Beyond traditional corporate scenarios, the ability of customers to email you or post a private message to your Facebook page has forced customer service upon all types of organizations and the people in them. These accidental agents are often left either unequipped for the task or over equipped with the large heavy tools mentioned above.

This next generation of customer service worker can’t be weighed down by the customer service legacy driving most help desk applications. They don’t need infinite custom fields, complex self service portals, layers and layers of IT type tools such as password resetting for your Active Directory server.

Rather they need a tool that does exactly what they need it to do and nothing more. That connects to other tools and systems seamlessly to extend functionality when needed. One that empowers them to work faster and get back to the other work that inspires them.

Years of creating and supporting a more traditional help desk application has given us a lot of insight into the needs of this new wave of workers. We see the pain they go through in trying to squish themselves into the old model. So we decided to build something new, just for them. That meets their needs and the needs of any organization that wants a simpler, more flexible, more efficient, more affordable help desk experience without a lot of overhead.

Introducing Snappy

Our solution is a tool designed from the ground up to exclusively support email and Facebook Pages. It doesn’t do the other “stuff". it doesn’t have loads of settings, it doesn’t need any configuration at all. Sign up and 30 seconds later you’re answering customer support email faster than ever.

The unique design allows you to see many different tickets at the same time so it’s easy to stay on top of everything without any digging. Nothing falls through the cracks. And since we put the emphasis on waiting tickets, it’s always clear what needs responding to. No more overwhelming lists of tickets or uncertainty about what’s been answered and what hasn’t.

An area all but ignored by other tools is team communication. Snappy’s one-of-a-kind Team Wall provides a unified location to discuss problems, information and even just brag about that customer who sent in an over the top thank you email.

There’s a lot more to share over the coming months, but here’s a few screenshots to give you some idea where we’re headed.

*[This image was lost to time in my blog transition]*

I know so many of you have followed the path of UserScape for the past 7 years with HelpSpot and I’m really excited to have you along on this journey. Snappy is a huge new challenge, but we believe it’s going to empower thousands of people in ways simply not possible with the current generation of tools and raise the bar for the next generation of help desk applications.

If you’re interested in seeing where we go, please sign up for our mailing list at http://www.besnappy.com.

Have a question/comment? Catch us on Twitter: http://www.twitter.com/ianlandsman and http://www.twitter.com/besnappy

Get future posts via email

Stay updated with our latest content.

We won't send you spam. Unsubscribe at any time.

Jeff Atwood has an interesting piece today about PHP and it's horribleness while acknowledging it's greatness :)

Unfortunately Jeff seems to fall into the same trap as many programmers these days. Sure PHP is ugly, it's got some inconsistencies that make it hard to work with, etc. All of this is very well known and documented.

However, those are all minor issues in the big picture. If you're trying to build a commercial product or an open source product with major legs PHP is still usually your best choice. Here's why:

Ubiquitous

Jeff addresses this, but it cannot be understated. It is literally installed on every hosting platform in the world. There are essentially no mainstream hosting companies where you can't use PHP.

Ease of Installation

In the very rare cases where PHP isn't provided for you, getting it up and running is usually about 2 minutes of work. apt-get install php5 and you're done. Done! No messing with 7 different systems, trying to get x to connect to y. 1 command and you're done. Even in crazy cases where you need to setup Apache or if you want to go way out there and do Nginx you're still talking just minutes until you're ready to go.

Great Performance

In addition to being easy to setup, the default setup is most times very performant with no messing around at all. PHP is designed to be fast out of the box by it's very nature. No special techniques required. And when you get big enough to need even greater performance those problems have already been solved. A quick search finds you thousands of answers to your performance questions and finding a consultant to help is also easily done if required.

Great Tools

This I think is an area that Jeff really missed the boat on. It's obvious he hasn't actually been working with PHP much lately as the tools have gotten so much better. Sure, when I built HelpSpot 7 years ago the tools sucked. You had to do everything the long way.

Now though there are a lot of great tools. We contribute a lot to the open source framework Laravel which is my favorite, but if you like more structure there's Symfony and Zend Framework. Want something super light? Try Slim. No matter your need there's a high quality framework that fits it and in most of these cases great documentation and tutorials as well.

Easy for the Newb

"Real" programmers hate this more than running out of Mountain Dew at 4am but PHP is easy for non-programmers. You can get in there and hack around. You can make shit work on your own without asking for a lot of help. That's simply impossible in most languages. My 60 year old father hacks around Wordpress all the time. If it was Python and he had to get all his tabs right it'd never happen, but in PHP you can just go in and "do stuff".

I know you're all cringing out there right now, but this is good! So what, maybe once in a while something breaks or his Wordpress install becomes slightly less secure. It's empowering and enabling people that other languages cast aside.

It's Not About You!

Obviously in recent years certain frameworks and languages that we all know have gotten a lot of props for being programmer friendly. That's great, but the reason PHP is so successful is because in the big scheme of things that doesn't matter. PHP is about the above. It's about being powerful enough for pro's and simple enough for newb's.

The reason it hasn't been supplanted yet is because no languages have attempted to do the above. In fact, most seem focused on becoming programmer friendly while ignoring the above completely.

So Jeff, I hope your new project is going to highlight a lesser known language that accomplishes the above as that's the kind of language we need to replace PHP. Not one only for the Mountain Dew crowd, but one for the people.

Get future posts via email

Stay updated with our latest content.

We won't send you spam. Unsubscribe at any time.

One of the challenges programmers face when making the transition to entrepreneur is controlling the urges that come 4-6-8 months into the process. You see, the start is fun. The start is exciting, a jump into the unknown.

The start is when you get to do what you love to do best which is code. How are we going to architect it? How will it scale? Should I use Laravel, RoR, Django? Postgres or MySQL? Memcache, Varnish, Less, Coffescript, BackBone. As a programmer these are the ideas that get us excited. The opportunity to play with new toys, to design and build new things.

That's all good and an important part of the process, but after those decisions are made, after a big chunk of the code is written you'll usually hit a wall. Your mind wanders and you'll get excited about something new.

Maybe you heard about a new technology that peaked your interest, it could be you thought of a cool domain name and it was actually available. It'll be something small usually, but before you know it you've spent a week thinking and working on this new thing.

That's OK. It happens. I think it's just the way we're wired. Our minds need the break after a period of time of working on only one thing.

This is also the time of greatest danger. The joy of a new start is in your grasp and if you're serious about being an entrepreneur you need to recognize what this is. That you need to put this idea aside and stay focused. It's really really hard. Every bone in your body will say to do the new fun thing, you're sure it's a better idea, you've spent several minutes hours researching it and are absolutely sure!

Chances are though that it's not. Hold strong, because finishing is what's rewarding. Finishing is where the glory is. Finishing is how you build a career. Everything that happens after you code it up is where a business is made.

Get future posts via email

Stay updated with our latest content.

We won't send you spam. Unsubscribe at any time.

Laravel

*[This image was lost to time in my blog transition]*

The Search

Last November ('11), I ran across a relatively new PHP framework called Laravel. At the time I was researching the various PHP frameworks in order to get a clear picture on the current state of things. I've always used CodeIgniter in the past and was generally very happy with it so I hadn't bothered to keep pace with frameworks over the last few years.

I've used CodeIgniter in several back office systems, but HelpSpot (our main product) doesn't use a framework at all. It was created before any of the major PHP frameworks (crazy!).

However, I was researching what's out there because I wanted to move us onto a framework if it made sense to do so. For HelpSpot, but also for other products we may create in the future (as all entrepreneurs do, I have a mighty list of ideas close at hand).

I went through the usual suspects: CodeIgniter, Zend, Symfony 2, Fuel, Slim, Silex, etc etc. All have their pluses and minuses, none really captured my imagination. Only a few make really great use of PHP 5.3+'s capabilities and those are the ones I liked the least both aesthetically and conceptually for our particular use cases.

Then one day I ran across Laravel. Instantly I was hooked. It had just the right combination of simplicity, power and elegance that I was hoping for. It was young for sure and missing some key elements, but still the core was there. More impressively, there was already a budding and enthusiastic community around it.

Fortunate Circumstances

Now, at the time I was researching frameworks I was also in the process of trying to find and hire our first full time developers at UserScape (besides me). As I researched further, I found out that Laravel was the work of just one person, Taylor Otwell. He was working on it nights and weekends after his day job.

I've come to since find out that Taylor wasn't really a PHP guy, working primarily in .NET before deciding to pickup PHP a few years back. I think a great deal of why Laravel is so unique is due to that fact. He learned PHP at 5.3+. Most people you see working on PHP frameworks have been around since 4 and before.

That rather unique trait (along with those other useful traits like ingenuity, hard work, a knack for making complex things simple) to me is the key. It's why he was able to come at the problem from a new direction with a clean slate. Not just the simple thing of not supporting PHP < 5.3, but not knowing PHP < 5.3 means he was unencumbered by all that mental debt :)

Now even though I'm not that bright, I can put two and two together. What if I tried contacting this fellow and see if he might be interested in joining UserScape where we could continue to develop Laravel and flesh it out for enterprise level development while also working on all the new hotness we have planned for the coming few years. And so he did!

Laravel at UserScape

So for the past few months we've let Taylor have at it working full time on Laravel to add all sorts of nifty new things that you'll be finding in Laravel 3. Our other new dev, Eric Barnes has also been working on Laravel, building out the Laravel Bundles application for sharing all your cool bundles and doing the design implementation for the new Laravel.com website.

It's been an amazing experience working with these two extremely talented guys for the last few months. I'm really proud of all they've accomplished in such a short time.

Our work on Laravel and in building on top of Laravel is also going to provide a mechanism for us to give back to the software development community in a much larger way than we've ever been able to do in the past. I personally find this aspect the most satisfying and am really looking forward to what I consider a whole new chapter in UserScape's evolution.

Laravel 3 is only the beginning.....

Laravel Version 3

I'm sure many of you have checked out Laravel 3 already, but if you haven't here's some of the highlights:

  • Bundles
    • Create compartmentalized bits of functionality for your own applications and when appropriate even share them on the bundle site
  • Migrations
  • Database Schema Builder
  • Command Line Interface
  • IoC container
  • Integrated Unit Testing
  • Events

Laravel's resources have also been improved with the addition of:

  • An amazing new website design by Fixel
  • Completely re-written documentation
  • The bundle sharing application

This is on top of the already great resources in the forums and IRC (#laravel).

Check it out

This is just the tip of the iceberg. There's tons of awesome new features in Laravel 3 and more will be added in the coming months. If you're a PHP dev (or even if you're not!) have a look.

Get future posts via email

Stay updated with our latest content.

We won't send you spam. Unsubscribe at any time.

Recently CodeIgniter changed it's license to a relatively obscure open source license, OSL3. As I'm in the process of researching frameworks for a new project of sorts (more on that someday) and given that CI is my preferred framework I decided to research this a bit and compare the license with some other popular frameworks. In doing so we can see the additional complexity the new CI license introduces. While it may or may not be a problem for actual commercial development the sheer additional complexity is a big negative for CI, which is unfortunate as I believe it's the best framework out there with the best community.

When comparing the licenses the additional complexity is easily apparent. The Symfony and Zend FW licenses are short and eminetely clear. The CI one is far more complex and leaves IMHO many open questions as to it's actual usability for a commercially distributed product. Of course I can and should contact my lawyer before choosing an open source framework to build on, but again the first two options here are extremely clear (and hence less expensive to analyze).

Symfony

Copyright (c) 2004-2011 Fabien Potencier

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

Zend Framework

Copyright (c) 2005-2011, Zend Technologies USA, Inc. All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

  • Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.

  • Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.

  • Neither the name of Zend Technologies USA, Inc. nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

New CodeIgniter License

Open Software License (“OSL”) v. 3.0 This Open Software License (the "License") applies to any original work of authorship (the "Original Work") whose owner (the "Licensor") has placed the following licensing notice adjacent to the copyright notice for the Original Work:

Licensed under the Open Software License version 3.0

1) Grant of Copyright License. Licensor grants You a worldwide, royalty-free, non-exclusive, sublicensable license, for the duration of the copyright, to do the following: a) to reproduce the Original Work in copies, either alone or as part of a collective work; b) to translate, adapt, alter, transform, modify, or arrange the Original Work, thereby creating derivative works ("Derivative Works") based upon the Original Work; c) to distribute or communicate copies of the Original Work and Derivative Works to the public, with the proviso that copies of Original Work or Derivative Works that You distribute or communicate shall be licensed under this Open Software License; d) to perform the Original Work publicly; and e) to display the Original Work publicly.

2) Grant of Patent License. Licensor grants You a worldwide, royalty-free, non-exclusive, sublicensable license, under patent claims owned or controlled by the Licensor that are embodied in the Original Work as furnished by the Licensor, for the duration of the patents, to make, use, sell, offer for sale, have made, and import the Original Work and Derivative Works.

3) Grant of Source Code License. The term "Source Code" means the preferred form of the Original Work for making modifications to it and all available documentation describing how to modify the Original Work. Licensor agrees to provide a machine-readable copy of the Source Code of the Original Work along with each copy of the Original Work that Licensor distributes. Licensor reserves the right to satisfy this obligation by placing a machine-readable copy of the Source Code in an information repository reasonably calculated to permit inexpensive and convenient access by You for as long as Licensor continues to distribute the Original Work.

4) Exclusions From License Grant. Neither the names of Licensor, nor the names of any contributors to the Original Work, nor any of their trademarks or service marks, may be used to endorse or promote products derived from this Original Work without express prior permission of the Licensor. Except as expressly stated herein, nothing in this License grants any license to Licensor’s trademarks, copyrights, patents, trade secrets or any other intellectual property. No patent license is granted to make, use, sell, offer for sale, have made, or import embodiments of any patent claims other than the licensed claims defined in Section 2. No license is granted to the trademarks of Licensor even if such marks are included in the Original Work. Nothing in this License shall be interpreted to prohibit Licensor from licensing under terms different from this License any Original Work that Licensor otherwise would have a right to license.

5) External Deployment. The term "External Deployment" means the use, distribution, or communication of the Original Work or Derivative Works in any way such that the Original Work or Derivative Works may be used by anyone other than You, whether those works are distributed or communicated to those persons or made available as an application intended for use over a network. As an express condition for the grants of license hereunder, You must treat any External Deployment by You of the Original Work or a Derivative Work as a distribution under section 1(c).

6) Attribution Rights. You must retain, in the Source Code of any Derivative Works that You create, all copyright, patent, or trademark notices from the Source Code of the Original Work, as well as any notices of licensing and any descriptive text identified therein as an "Attribution Notice." You must cause the Source Code for any Derivative Works that You create to carry a prominent Attribution Notice reasonably calculated to inform recipients that You have modified the Original Work.

7) Warranty of Provenance and Disclaimer of Warranty. Licensor warrants that the copyright in and to the Original Work and the patent rights granted herein by Licensor are owned by the Licensor or are sublicensed to You under the terms of this License with the permission of the contributor(s) of those copyrights and patent rights. Except as expressly stated in the immediately preceding sentence, the Original Work is provided under this License on an "AS IS" BASIS and WITHOUT WARRANTY, either express or implied, including, without limitation, the warranties of non-infringement, merchantability or fitness for a particular purpose. THE ENTIRE RISK AS TO THE QUALITY OF THE ORIGINAL WORK IS WITH YOU. This DISCLAIMER OF WARRANTY constitutes an essential part of this License. No license to the Original Work is granted by this License except under this disclaimer.

8) Limitation of Liability. Under no circumstances and under no legal theory, whether in tort (including negligence), contract, or otherwise, shall the Licensor be liable to anyone for any indirect, special, incidental, or consequential damages of any character arising as a result of this License or the use of the Original Work including, without limitation, damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses. This limitation of liability shall not apply to the extent applicable law prohibits such limitation.

9) Acceptance and Termination. If, at any time, You expressly assented to this License, that assent indicates your clear and irrevocable acceptance of this License and all of its terms and conditions. If You distribute or communicate copies of the Original Work or a Derivative Work, You must make a reasonable effort under the circumstances to obtain the express assent of recipients to the terms of this License. This License conditions your rights to undertake the activities listed in Section 1, including your right to create Derivative Works based upon the Original Work, and doing so without honoring these terms and conditions is prohibited by copyright law and international treaty. Nothing in this License is intended to affect copyright exceptions and limitations (including “fair use” or “fair dealing”). This License shall terminate immediately and You may no longer exercise any of the rights granted to You by this License upon your failure to honor the conditions in Section 1(c).

10) Termination for Patent Action. This License shall terminate automatically and You may no longer exercise any of the rights granted to You by this License as of the date You commence an action, including a cross-claim or counterclaim, against Licensor or any licensee alleging that the Original Work infringes a patent. This termination provision shall not apply for an action alleging patent infringement by combinations of the Original Work with other software or hardware.

11) Jurisdiction, Venue and Governing Law. Any action or suit relating to this License may be brought only in the courts of a jurisdiction wherein the Licensor resides or in which Licensor conducts its primary business, and under the laws of that jurisdiction excluding its conflict-of-law provisions. The application of the United Nations Convention on Contracts for the International Sale of Goods is expressly excluded. Any use of the Original Work outside the scope of this License or after its termination shall be subject to the requirements and penalties of copyright or patent law in the appropriate jurisdiction. This section shall survive the termination of this License.

12) Attorneys’ Fees. In any action to enforce the terms of this License or seeking damages relating thereto, the prevailing party shall be entitled to recover its costs and expenses, including, without limitation, reasonable attorneys' fees and costs incurred in connection with such action, including any appeal of such action. This section shall survive the termination of this License.

13) Miscellaneous. If any provision of this License is held to be unenforceable, such provision shall be reformed only to the extent necessary to make it enforceable.

14) Definition of "You" in This License. "You" throughout this License, whether in upper or lower case, means an individual or a legal entity exercising rights under, and complying with all of the terms of, this License. For legal entities, "You" includes any entity that controls, is controlled by, or is under common control with you. For purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity.

15) Right to Use. You may use the Original Work in all ways not otherwise restricted or conditioned by this License or by law, and Licensor promises not to interfere with or be responsible for such uses by You.

16) Modification of This License. This License is Copyright © 2005 Lawrence Rosen. Permission is granted to copy, distribute, or communicate this License without modification. Nothing in this License permits You to modify this License as applied to the Original Work or to Derivative Works. However, You may modify the text of this License and copy, distribute or communicate your modified version (the "Modified License") and apply it to other original works of authorship subject to the following conditions: (i) You may not indicate in any way that your Modified License is the "Open Software License" or "OSL" and you may not use those names in the name of your Modified License; (ii) You must replace the notice specified in the first paragraph above with the notice "Licensed under " or with a notice of your own that is not confusingly similar to the notice in this License; and (iii) You may not claim that your original works are open source software unless your Modified License has been approved by Open Source Initiative (OSI) and You comply with its license review and certification process.

Get future posts via email

Stay updated with our latest content.

We won't send you spam. Unsubscribe at any time.

Hi All,

Sorry for not writing in.... a long time. It's just so busy here that it's hard to find the time, plus the burden of managing the comments makes it all just too much. So I wanted to let you know that I am very active every day over on Twitter. The format and time requirements just fit in better with my life at this point.

I'm not shutting down shop here, but you can expect fairly infrequent posts as it's been for some time.

So if you want to keep the interaction going please follow me at @ianlandsman and you can get HelpSpot related Tweets at @helpspot.

Thanks!

Get future posts via email

Stay updated with our latest content.

We won't send you spam. Unsubscribe at any time.

David over at 37signals had a nice post today about why startups seem to have abandoned charging customers for goods and services: "How did the web lose faith in charging for stuff?.

Of course, I agree with charging people for a quality product. I make my living doing it. However, I think there's a point he's missing in there. It's a point that people often put aside as not the primary reason, but I think it's a much more prominent factor than people think. What's changed in the past few years is that many startups are founded by programmers and programmers are inherently lazy.

In most cases, this is a good trait for a programmer. It leads to wanting to do things more efficiently, maximize speed, and can even lead to better quality IMHO. However, when it comes to running a business this attribute has some negative consequences. In my work the one I most often see is the total disregard for customer service.

Customer service is almost always viewed as a necessary evil. Annoying customers always poking around looking for answers to things which are right in front of them and causing us to take time out of programming to help them.

So this leads into the great cop-out. Make it beta and hey, make it free. Those 2 tags let the programmer get out of so much. Customer has a problem? Screw off, it's free. Can't find a phone number or email address to contact us by? Screw off, it's free.

It's so much easier to think that Google's going to buy you and that's how you'll get paid or that throwing up a Google ad will make you so much money that you can safely ignore the ad clicking drones users.

Things that are outside your comfort zone are always scary and I think that's the case here. Programming focused startups fear customer service. They'd much rather have a half hidden link to a forum they occasionally check (only after a 36 hour Mountain Dew fueled coding session) than a prominent email address which they answer promptly.

In some ways of course they're not wrong. It does take an incredible amount of time to answer all those emails. On the other hand, if you have more emails than you can handle that's probably a good sign. Also, those people who take the time to email in often end up being your best customers and biggest spokespeople. They have more than just time invested, they have hard cash invested and that's a big difference. They want you to succeed, they're loyal and they are in many ways a new companies biggest asset.

David obviously has a business focused mind and 37 started out as a customer focused company, which is why it seems logical to them to charge for things you create. I think this is very much the exception these days so it'll be interesting to see if David is correct and this starts to swing the other way.

On the upside, us profitable money charging companies can just keep tooling along :-)

Get future posts via email

Stay updated with our latest content.

We won't send you spam. Unsubscribe at any time.

Yes, this is the secret to how to sell more software. I'm the first one to break the sacred oath of profitable software companies and reveal the secret of how just 12 characters can make you significantly more money. Are you ready to hear it? Are you sure.....

OK here it is. Put your phone number on your website. Just like this:

*[This image was lost to time in my blog transition]*

It really is that easy, it WILL lead to more sales. If you sell B2B it will lead to bigger sales as generally people making large purchases like to talk to a human.

Now I know all the excuses you people use in not publishing a phone number. It's all BS. I don't care that 37 signals only does email support. I don't care that you only do this part time and you can't be there to answer the phone. I don't care that you hate talking on the phone.

It's time to suck it up, especially in this economy where people are going to be shopping around. Having a phone conversation puts you in a much stronger position with the consumer than just an email. Just having a phone number clearly available improves your product positioning in peoples mind. It implies you're here to stay, you're approachable, if they ever had a problem they could call. The biggest secret of all is that most people don't call. We still only get a call or two a day on average and often no calls at all and we've been in business 4 years, are linked from everywhere and have a sizable customer base at this point.

So let's go through your excuses.

1) 37Signals only does email support, why should I have to do phone support
Of course this one is the easiest. Because you're not them. You will never ever ever ever be them or anything close to them. You're trying to make a solid living. The chance of you hitting the jackpot is slim, don't pretend it isn't. You can't tell customers to go scratch like they can. Every single potential customer is hugely important to you (or should be).

2) I only work on my business part time and am not there to answer the phone
Umm, so what. Get an answering machine or digital voicemail box. You don't have to answer the phone every time it rings. Let it go to voicemail and respond once a day or when you get home from your day job. It's a big myth that if you have a phone number you need to have someone there to answer it every time it rings. Sure that's better, but having a phone number is still way more important than not having one and at this point everyone is comfortable leaving voicemail's as long as you get back to people in a reasonable time (say 1 business day).

3) I'm a programming dork, I don't want to talk on the phone
If you're reading my blog you're likely trying to be in business. In business you have to do stuff you don't like doing, oh... 75% of the time. That's just the way it is. If you want customers you have to understand your customers and the phone is a great way to do that. If you're serious about having a business then working with people is going to be key to your success and the phone is a big part of that.

Listen, the phone is your friend. The phone is the key you making your business approachable to customers. It's also how you're likely to get some of your best customers, so bust out your website code and throw your number up there. The worst case scenario is you get lots of phone calls and if they're not relevant you can always pull it down. On the other hand you may get great calls that lead to sales and happy customers. It's worth a shot.

Get future posts via email

Stay updated with our latest content.

We won't send you spam. Unsubscribe at any time.

Here's a few nice winter pictures from the past few days just to change it up. Actually I didn't spend a lot of time framing the pictures nicely, but still I think they're nice. I could do without that house being there, but I'd need a bulldozer for that.

Ice on the Hudson:

*[This image was lost to time in my blog transition]*

Sunset:

*[This image was lost to time in my blog transition]*

Poughkeepsie at Night:

*[This image was lost to time in my blog transition]*

Get future posts via email

Stay updated with our latest content.

We won't send you spam. Unsubscribe at any time.