Last week, we have passed the 1 million user mark. I’d like to take a moment to thank all JotForm users for helping us grow. Your feedback, your love and your trust has brought us today.

Today, I’d like to share what I have learned growing a site to 1 million users. Most of JotForm users have web sites. These lessons can help you with your projects.

It Takes Time

I started JotForm in 2006. It took us 7 years to reach 1 million users. Getting users for a B2B app is a tough nut to crack. Unlike consumer or social apps, you don’t have viral loop and all the glory. What you have is people having a pain and searching for a solution for it. People use your product, solve their problem and get on with their lives.

Our main growth driver has always been word of mouth. One happy user telling a friend or colleague about JotForm. This is usually happening offline. It is a slow process.

The best marketing you can do is to have a great product. When you have a great product people will tell each other about it. This brings us to my next topic.

Always Improve Your Product

Product comes first. Listen to your users and re-invent yourself continuously. Most of the features in JotForm has been re-written over and over again. I don’t think there is a single line of code left from the first version of JotForm I wrote in 2006. And, I am glad for it. It was terrible. 🙂

How do you create a great product? By building a terrible product first.

You have to start somewhere. You cannot plan for months or years and sit down to create great product. That’s a recipe for disaster. You should build the smallest possible solution you can think of. Get some users. Get some feedback. Keep working on it. It is a cycle. You get more and more momentum with time. As long as, you are close to your users and you are listening them every day, you cannot mess up. Keep building!

Great products need time, patience and hard work. The first time you try it you almost always build the wrong thing. You then watch your users use your product, listen them complain about it. Redo it. Watch them again. Rinse and repeat.

The first form builder I made was not JotForm. From 2000 to 2005 I worked for an internet media company. I built tools for our editors and writers. I made a form builder, a survey builder and a poll builder. These tools did the job but they were nothing like JotForm. They sucked! When I worked on these products I researched all similar products available in the market. They all sucked! That’s how I was able to come up with JotForm, the first drag and drop WYSIWYG online form builder.

A good way to make sure you always improve your product is to do continuous integration and deployment. In simple terms, you release every single change, be it a fix or small enhancement, as soon as you complete it to your users. We release new versions of our product 50 times a day. We use Github for source control, Jenkins for Continuous Integration, our own scripts for Continuous Deployment and Sauce Labs for Continuous Testing.

Some of these releases are not visible to all users. If we are releasing a brand new feature they are only visible to developers, support team or selected beta users. If we need to do a big release, all we do is to make the feature available to all users.

Continuous Integration and Deployment is the single biggest motivational ammo you have in your arsenal. That tells your developers you trust them and you give them authority to execute freely. They can mess up, but they also know they can fix the mess within minutes. They have control and a quick feedback loop.

Make sure you get notified about problems on your site. We use Pingdom, ServerDensity and our own scripts to get notified about problems on our site.

We have very large panic button in the site that is only visible to the support team. Since our support team work remotely and they work from all kinds of different time zones there is always a support team member in the site. When there is a major problem they push the panic button and our developers receive emails and text messages. When there is a problem we can usually fix it and release a new version of the JotForm site within minutes.

Keep Barriers of Entry Low

Most sites are optimized to get signups. Landing pages and large buttons. We are not optimized for signups. You don’t have to signup to create a form, add it to your site or receive the responses. You can do pretty much everything without signing up on JotForm.

We optimized our product to get people start using our product right away. Would you buy a car without test driving it first? Most sites do not need signups. When you force them to signup most people will simply leave your site without experiencing your product.

Most web startups either do not have a free version or they limit it too much. That’s premature optimization. Don’t push new users out by pushing them to a paid version. Give them a chance to fully experience your product.

We have a great flexible free version. In fact, most JotForm users do not have to pay us. And, we are fine with it. Their usage is low so the free plan has everything they need. And, that’s a good thing. We’d like to keep them as active users. When their needs increase they can always upgrade to a paid plan. No need to prematurely push them to make a decision.

Seek Feedback

I love getting feedback from our users. Good or bad. It is a chance to improve. It is a chance to get motivated. I send a personal email to users a week after they sign-up. I ask for their feedback. The replies are gold mine. They both motivate me to improve our service and they help me to see problems and patterns.

We take feedback whenever possible. For example, our user guide and this blog have comments section at the bottom. We don’t require sign-in to comment. We let anybody comment their thoughts. We don’t approve them. We let people say what they need to say. If there is a question on a comment, we answer them immediately. We take these comments seriously and act on them.

UserTesting.com is a great service if you want to understand your users and see how they behave with your site. You provide step by step instructions, send it to your users or to their testers who are ready to take the tests. They use the UserTesting software to record the screen for 15 minutes and speak their thoughts during this time to the microphone.

We sit down, turn on the projector and watch these videos. At the first tests it is very hard to watch them. We turn back on the lights and fix the issues right away. We then order new tests. Rinse and repeat. Usually we repeat this cycle for 3-4 times. When there are no more obvious issues, the tests become dull and boring, we stop ordering them. The product or feature is now ready for release.

Social Media is another great way to communicate with our users. We post news about our product and listen/respond to all feedback we receive in Twitter, Facebook and Google+.

Grow Your Team Organically

I don’t like too much structure. But, over the years I had to create 3 divisions to keep our momentum going.

The first year, I was doing all development, design and support all by myself. And, I was doing all these things as a side job to the consulting projects I was taking on.

When I decided to release the second version of JotForm, I knew that I needed to hire a developer so that at least one of us can completely focus on development. It was going to take me too long to finish it while I wore 100 different hats. So, I went ahead and hired employee number 1.

Development Team. A good product needs to continuously evolve. Every day we learn new lessons from our users. We then put this knowledge back into our product. Product development is the single most important thing that matters in a startup. We have a small product team: 5 developers and 2 designers. We work on projects in small agile batches of few weeks. We have a lot of fun doing it.

In the early days, when it was only me and two developers, I realized I was spending all of my time with support. I was not doing my job as a founder. That’s when we hired our first support person.

Support Team. Most startups try to avoid support. They setup knowledge bases and they try to automate it. We do the opposite. We encourage our users to contact us. We email them the day after they sign up and we ask them if there is anything we can help them with. Support is a great way to learn from your users. How do they use your product? How successful are they? What is their biggest pain? You learn and you improve your product.

Our first support guy was actually one of our users. He was helping our users on the forum without expecting anything in return. One day, I told him I will pay him. Then, I slowly grew our remote support team on oDesk. We currently have 15 part time supporters who work on their own hours from wherever they are.

Recently, I made another discovery. As our user base grew, we were getting more requests for small enhancements and minor bugs. Our development team was having trouble focusing on new development. We either have to ignore these requests or we slow to a crawl at new development. The context switch between projects is a productivity killer. That’s why I very recently created a new team.

Maintenance Team. This is very new. We have two remote developers in this position. They work on enhancements and minor bugs. They write tests and make small improvements wherever they see. These small improvements make our users happy. Our development team can now focus completely on grand new projects without looking back.

It is a Roller Coaster, Enjoy It

Since we are in the forms business we have had a lot of problems with phishers and scammers.

In the early days, we have been kicked out from ServerBeach for hosting phishing forms. We have been threaten to be kicked out from a provider because of massive DDoS attacks we received. When a hard disk broke down during a ski trip, I had to work day and night while I watch my family wake up and go to the slopes. They would come back and I’d still be in front of the screen working. Our domain was temporarily suspended by Godaddy and Secret Service last year. We were never given an explanation or apology but our best guess is that it was because of a Nigerian banking scam that used one of our forms. Hey, why not burn the house, there is an insect on the wall?

The downs can be really emotionally draining. One of my favorite books is “Man’s Search for Meaning” by Victor Frankl. It is a book about the psychology of people in concentration camps waiting for a certain death. There was this idea that really struck me: The moment you recognize suffering, it ends being a suffering. A switch happens in your brain instead of seeing yourself as a victim, you start taking charge of your thoughts. This is very powerful. When you find yourself in a tough spot, look at it as an outside observer. Accept things as they are. The worry, regret or anger you might feel loses its power.

There are also great moments. Reaching 1 million users is one of these moments. Getting featured on Lifehacker was another great moment. Watching Facebook Live show with Obama answering questions asked on one of our forms while our servers getting pounded by tide of form submissions was also a great moment.

But, tiny great moments we live every single day when we read one of the emails from our users is the best! Here is one I received last week:

“I love your product and it makes my life so much easier. I have been volunteering for the Rescue for over a year, and used my own account for a recent fundraiser. Thanks to your product it helped us raise over $1200 ($900 through an online order form alone) to help pay for the treatment of some dogs with heart worms and kennel bills we had incurred over the year. The rescue loved it so much that now I’ve been showing them your product and using it to integrate into our tabs on Facebook, and the hope is to eventually integrate into the group’s website. Now the rescue has it’s own account.

I really love the product, and played around with some other companies, and prefer yours the most. Our not so tech-savvy members are now able to help me with tasks so I’m delegate some the tech/internet stuff to other members for help.

Your product is helping us accept completely online applications to for fostering and adopting dogs, something that amazes some of our older members.

You’re helping us save more lives!”