How I built a dashboard template and sold it for $90,000+
John Champ on May 27, 2020 · 15 min read
I bought my first PC back in 1998 and started experimenting with web design a few years later. It was amazing how easily you could create web pages with rich content and navigate between them just like in interactive desktop apps. Let's not talk about all those texture backgrounds along with animated gifs that no one could resist using. It was a playground and I loved it.
Microsoft Frontpage and Macromedia Dreamweaver (which was later acquired by Adobe) were the first tools I used to design and code websites just for the fun of it. At first, it was a more "what you see is what you get" (WYSIWYG) approach but soon, I started playing more directly with HTML and CSS through Dreamweaver's code editor.
A passion was born with various fun web projects being built on the side. I loved that aspect and while I was studying for my bachelor's degree in Informatics, I got involved with all the web projects I could find. Those included web development and helped me improve my skills in those areas as well.
The idea that I might be able to work online from my home quickly became an obsession back then. In 2009, demand for web applications was rising, so I started experimenting with dashboard templates and eventually, 3 projects were created and released in the next 3 years.
I built them in my free time while I was working with a tech company on a few web apps and studying for my master's degree at the same time. They did just ok but a whole new world was opened in front of me.
Unfortunately, due to the various responsibilities I had at the time, I kept postponing any further action but I eventually did a dynamic comeback in 2013 when I was ready to put all my energy into designing and coding dashboard templates full-time.
Passionate with UI design
You've heard before that you need to love your work if you would like to be successful but that's only half the story. Loving what you do can motivate you, inspire you and make things a bit easier but that's not necessarily enough in the long run.
I was and I am extremely passionate with UI design and coding. Back then, I used Photoshop to design each project and afterwards, I did my best to code it into HTML/CSS and make sure it works great in each major desktop and mobile browser. I used to spend so many hours testing and making sure that the result would be as perfect as possible based on my skills.
In 2013, I was able to build and release 3 more projects which were built with love and care. That's also when the mottos “Crafted with love” and “Happy coding” came to life and follow pixelcave since then. The templates did good but unfortunately it was nothing sustainable.
I loved what I was doing and felt really good designing and coding but that on its own wasn't enough. I needed to start thinking differently because if the whole plan didn't work out, pixelcave most probably wouldn't exist today.
What people need
I knew that I needed to deliver value to the people using those projects and save them time, so I had to do a far better job researching their needs before even start creating the next project, ProUI. It might seem obvious now but wasn't the case back then.
I went through all the feedback (emails and comments) I had received from the first 3 projects and kept putting together a list of all the things people liked, struggled with, or wish they had. A few things on the list kept coming back, so I knew that those were crucial, and I had to prioritize them.
Next up, I researched public feedback regarding similar projects and got a feeling of what didn't work and the problems most of the people were having when using such products. There were many issues that also kept coming back, so I've already had a good list of features and solutions that I had to work on ProUI.
What kept me researching for a while was the feeling that creating another project in the same way, would give me the same mediocre results. You can't expect to have a different outcome when doing the same things repeatedly. I'm glad I've followed that path before getting my hands dirty and start coding the new template.
Deliver under pressure
This project was everything back then because its success or failure would completely change my life. If it didn't work, it was the end of my working from home career and I had to completely change my approach and start looking for alternatives. There was no money or time to waste and for my mind, it was a matter of survival, I wanted it to succeed so much.
That was the perfect timing and the pressure helped me take it very seriously. I tried to be positive and passionate about the result and kept working day and night towards making a great product. It's funny how pressure can help or harm your work. I have experienced both outcomes in the past but thankfully it was one of the things that pushed me forward, helped me overcome my fears and boosted my creativity. ProUI was live and the pressure had delivered. Sales started coming in, a new world appeared in front of my eyes and I knew that nothing was going to be the same again.
ProUI was designed and coded from scratch by hand. In contrary to the way other products were created by only using readymade layouts, navigation elements and other major building blocks, ProUI foundation was based on a solid structure built exclusively for it. I think that's what gave it an identity in the first place and helped it in the long run.
I did my best to implement many popular features, provide solutions to issues people were experiencing, make a template that is straightforward, easy to use and most importantly that works as advertised. When inspiration hit, personal design touches were applied to make the design original and give it the feeling of a fresh experience.
Test everything like crazy
Testing was one of the main features of ProUI and continue being for all current projects. It might be simpler now with most popular browsers being chromium-based but that wasn't the case back in the days. Internet Explorer 8 was the baseline and the newly introduced popularity of mobile browsers with their own set of issues wasn't making things any better.
Responsive design was in its glory days and started becoming mainstream back in 2013 but testing tools weren't on par yet. I still remembered resizing the browser like 1000 times each day to ensure that all content would appear as supposed to from mobile screens up to desktop monitors.
Testing on devices was also a big issue because I only had access to 2 older smartphones. New devices kept releasing at the time with various browsers popping up, so my solution was to visit stores for testing on their promo devices! I uploaded versions of the work-in-progress template to the demo server and tested it against various devices, from Macbooks to iPhones, iPads, and latest Android devices.
One of the main issues people were experiencing at the time was the poor mobile performance, so I was determined to make ProUI as fast and responsive as possible. During my visits, I kept notes and tried to fix the bugs when I got back home on the fly hoping that they will work. Of course, that wasn't always the case, so visiting the stores became part of my weekly work schedule! I switched stores occasionally, so it doesn't get too awkward...
Thankfully, the effort fulfilled its purpose and ProUI was released in a good stable state. I kept visiting the stores for a few months though (before I was able to get my hands on my own testing devices) to handle any reported bugs. My goal was to always reply in less than 24hrs during business days to support requests (something that I still do), so there were days of me rushing through stores to handle the situation. I tried to keep it cool with my responses despite the store situation (how professional is to test against demo devices in a store?) but in the end, I want to believe that the effort and care I gave, really paid off and helped ProUI be as bug free as possible.
Balance time and delivery
I learned that you must keep a balance between the features you want to implement in your project and the time it takes you to do it. It's far better to integrate less and put your project out there sooner than trying to make it as complete as possible.
While building ProUI, bills kept coming in, which in the end I think helped me because I had to put it out there as quickly as possible. That might not made it the perfect release I might had in my mind but in the end, ProUI provided value and helped people in their projects.
Not knowing stuff
This is important and seems to apply in everything I do. As you learn more about your product's market or about the tech you are using, it gets harder and harder to put something out there. You analyze everything way too much and easily spot the things that might go, or you do wrong.
There was this guy, who started selling WordPress plugins without knowing much about the market but focused on creating great products. After managing to reach 1 million in sales, he stated that if he knew the things he discovered afterwards, he would probably have never started selling WordPress plugins in the first place because it would be too difficult for him.
It was early days, and this is how I felt when I was building ProUI. It was liberating not analyzing what works and what doesn't and focus on the product itself. Since then, I try to keep a balance between the things I discover and the things I want to experiment with when working on something. It's exactly like the designer who redesigns his website and before he even finishes, he already finds the new design awful. Don't be like that, try to fight back!
Being perfect is subjective
I would describe myself as perfectionist, but I try not to. Thankfully, the characterization does not apply, most of the time. When you are aiming for perfection, the only one you satisfy is yourself. You set the bar of perfection based on the level of your skills. You might spend 2 months to create something you would describe as perfect to only have someone with better skills identify all the things you didn't do good enough.
Having said that, it's a better approach to constantly try improving your skills and aiming for something below perfection. This way, you will get a much better outcome in the end. You must keep improving yourself and understand that nothing is going to ever be perfect.
Perfection is subjective and related to your skills and time. Something "perfect" today, won't be perfect in a couple of years. Keep aiming for creating great experiences and products using the most of your current skills and try to keep learning throughout your life.
Keep updating the project
After ProUI release, I kept updating and supporting the project for a long time. Especially in its early days, the new updates, bringing improvements and new features, were released very often in my attempt to make the project as complete as possible.
From my understanding, it seems that the continuous updates provided credibility and made people trust the project. They felt confidence purchasing a license for their project because they knew that ProUI would be supported and updated for a long time.
That's something I kept doing with all projects since then because I strongly believe that updating and supporting a project is one of its strongest features. Usually, most of similar projects are abandoned way too soon even if their creators heavily advertise about lifelong updates.
Why you do not add this and that?
It's always great to implement features or changes people want and I did my best to fulfil most of the suggestions I received. Customers seemed to be pleased and the added features helped bring even more on board. Later, I discovered that you must keep a balance as your user base becomes larger, though.
I understood that I must better evaluate the suggested changes or additions and make sure that all existing customers aren't affected in a big way. For example, let's say you find something that can be easily improved but this improvement would make over 1000 projects a pain to be updated. You would have to consider it twice on how to approach this situation.
Also, let's consider a suggested feature that it's quite easy to implement. That does not necessarily mean that it will because by adding it, you will have to make sure that you are able to Maintain, Update, and Support it afterwards, something that many people don't think about. I call it the MUS and I take it into heavy consideration whenever a new feature is added.
For example, when I added a Laravel Starter Kit to Dashmix, support requests started rising because there were people not knowing about Laravel but wanted to use it for the first time. Or in a similar way for OneUI, when the Vue.js version was included as a free update to the package.
The MUS helps me evaluate what is going to be included, make sure that I'm able to handle the volume of support requests and find a great balance between maintaining multiple existing projects and working in new ones. Regarding ProUI, I believe that if I kept adding anything requested, I might not have been able to keep it in the good state I was aiming for in the long run.
Give your best with support, you have people on the other side
I still remember the first time a customer sent me an email with a screencast attached showcasing the issue he was having. Hearing his voice, explaining the situation put him in front of me. Most of the emails received till then felt so impersonal, but this one helped me improve how I approached support in general.
I always try to do my best and respond to each request just like I would if that person were in front of me. Being friendly, professional, helpful, and kind is all that it takes to provide a great support experience both for you and your customers. Happy customers make you happy and that helps you work better.
I believe that giving great support was an especially important ingredient for ProUI's success. Moreover, providing a detailed, up to the point and constantly updated documentation is helpful both for the customers and me because it brings down the volume of support requests. Standing by your projects and customers can only bring positive outcomes for everyone.
Be grateful, learn, improve your skills, iterate
I'm incredibly grateful for all the support the project has received and that all the hard work put into good use. I also feel so grateful for the constant emotional and motivational support I kept receiving from my spouse who was always there to encourage me in every way she could. I can't imagine how harder could it be to have family or friends question your actions without being supportive, especially when you try to build a business which does not seem to be working at first.
ProUI surpassed $90,000 in total license sales throughout its lifetime but more importantly it helped make the work sustainable and enabled me and my spouse work fulltime on pixelcave. Nowadays, we work together on building and supporting projects that can help people build their products and businesses.
Being thankful and grateful is crucial, helps you appreciate what you already have and provides the foundation you need to keep going. Learning and building new skills comes next. You must keep learning and applying the new knowledge into your work. Things, especially in tech, change so fast that it's vital to do your best to keep offering products that provide value and solutions.
Finally, I find that it's important to iterate by going back to older projects and refactoring them based on the skills you've acquired when it is sustainable. For example, OneUI was completely redesigned and built from scratch after a few years of its release, making all existing customers happy and bringing over new ones.
ProUI started something amazing since it enabled us to work from wherever we want based on our own schedule. We love to travel and work, so that was the first important step towards that goal. Since then, we created five more projects from which three of them are actively supported.
Currently, the main work focus is on two completely new projects which are based on TailwindCSS and Bootstrap 5, respectively. The first one is Tailkit and the second is an unannounced one with more info coming.
I've already shared and will continue to lots of sneak peeks for Tailkit at my personal Twitter account as I work on it (Tailkit is already released!). I've recently decided to start using it to be able to share more insights and tips into the work I do, so feel free to reach out if you have any questions or would like to say hi!
Things for consideration
- Have I figured out what people need from the project I'm working on?
- Have I set a timeline to make sure that the first release won't take that long to happen?
- Have I put enough originality in my project?
- Have I tested the product enough to make sure it's in a good and stable state?
- Do I over analyze everything? Should I stop right now and focus on delivering?
- Is my focus on creating a project which provides value, or my goal is only to sell and profit?
- Do I value and appreciate enough my existing customers?
- Do I provide the best support I can?
- Am I grateful enough or I take everything for granted?
- Did I stop acquiring new skills? Should I focus on lifelong learning?
Would you like to let you know about any new posts? Join us and also get our carefully designed UI resources.