How I designed, built, and scaled a mainstream software application from scratch.

Hi! 👋 I’m Nikk. I’m a 25 y/o self taught JS/python developer who’s turned my side projects into—well, something that resembles a career.

At the age of 18, my life became consumed with an obsession of starting a software company. It’s hard for me to say why software specifically was important. In retrospect, it was probably my new found understanding of software’s impact on the world paired with some coming-of-age idealism and a desire to create meaningful work.

I held the idealistic principles, but, well, no technical/design skills or anything else of the like. Going from that initial ‘know-nothing’ stage to getting my first users was a sub-decade long journey which involved a lot of pain, sweat, and hard work. I haven’t ‘made it’ yet—so to speak—but the light at the end of the tunnel may be beginning to shine, and these recent milestones encourage me to share what I have.

My story is similar to other IndieHackers: I ran into an issue while working on a project of mine and didn’t like the solutions the market had to offer, so I built my own. In a short 6 months I was able to create a full fledged SaaS solution used by companies around the world. This is how I started Asq (pronounced ask) and what I learned!

// Another blog post on conversions.

Scratching your own itch.

January 2016. After two years of production issues and delays, Fractals—my Kickstarter project-turned-business was finally picking up steam. Fractals had one product—the Fractal Filter—a tool that allows photographers to augment their photos with special reflective effects. Fractals was finally generating revenue like a real company—customers were enthusiastic about the product, I was getting some press, etc.

This is a beautiful time in the business lifecycle. I no longer had to prove product-market fit and now could instead focus on dealing with retailers, recurring customers, inbounds, etc. Psychologically this was a very big deal as well—I had proven all the naysayers wrong and tucked a little bit of street credibility under my belt, allowing me to continue to pursue the things I was most interested in instead of relinquishing my freedom to the job market.

Founders don’t sleep. And now that business was picking up, attention had to be shifted towards improving the numbers. Looking at the web analytics painted an interesting picture: I had no problem getting people to the site, but conversions were pretty low. They weren’t terribly low—they were actually pretty normal for e-commerce—but a visual representation of my conversion ratio made me feel like I was missing out on a lot:

Sales (red) vs Sessions (blue).

Let’s take a minute to digest this graph—the blue bars represent # of new sessions (AKA daily visitor count) whilst the red denotes # of sales. Like I said earlier, as far as e-commerce goes, this conversion rate (# of sales / visitor count) is fairly standard, if not quite good. But ambitious founders should always be looking to increase their conversion ratio, and that’s where conversion rate optimization (CRO)—or, turning visitors into customers—comes in to play.

A mental model may help us imagine how businesses think about CRO. Imagine a hypothetical photographer—John Doe—who discovered Fractals via search engines, ads, social, etc. John was interested enough to take the time to visit the website—which is not a trivial action, given all the other things on the web which are constantly grabbing for his attention. Unfortunately, after some time spent on the website, John had some sort of “this-is-not-for-me” thought, and decided to leave. On a macro scale, out of 1,000 visitors, 900-and-something had that this-is-not-for-me experience and did not complete a purchase.

I became obsessed with figuring out what the this-is-not-for-me thought actually was. Did people think my product was too gimmicky? Or did it look cheap? Was our messaging unclear? Or… was it something completely orthogonal—like the colors on the website, or the mobile experience? Who knows, maybe the website was breaking on some mobile devices.

These 900-something people know about the experience they’re having and I’m not aware of/capturing it. Their experiences could change our perspective on how I market—or change our perspective/ideas completely! And if I don’t figure it out, my competitors will.


There are companies that try to improve your CRO for you, and a lot of them do a really great job. But as I went through these solutions, none seemed to be exactly what I was looking for. A lot of them analyze your web traffic and maybe some A/B testing so they can tell you how to improve—move this image left, or, change your site’s text to this, etc. These techniques can improve your CRO, but I wasn’t sure if they’d work well for a small business like Fractals. Our daily traffic is in the thousands—not millions—so I was more interested in direct user feedback than aggregated usage patterns.

But direct user feedback integrations were for the most part not very good either. They often didn’t integrate with our website well, suffered from bad UX, or just didn’t feel personal. Several companies had some flavor of the following web based widget, which didn’t resonate with me much:

An example of a survey tool for websites. Why would your users care?

I was more interested in something that users would have a general interest in interacting with, so they’d be incentivized to provide me with the mission critical feedback I was looking for. Since none of the solutions fit, I decided to roll my own—and thus Asq was born.


The first iteration of Asq was an integrated chat widget in a style similar to that of Intercom, one of my favorite software companies. But, unlike Intercom, the direction of the chat would be defined before hand and the visitor would just interact with the conversation step by step. It’s like a chat bot—for surveying. Chat bots have gotten a bad rap overall, but the conversational interface felt perfect for surveys. It was intimate, engaging, and had a clearly defined purpose.


A lot of software companies forget that the web is simply a tool that people use to communicate with other people. Technical folks tend to focus on the hard tangibles when designing digital products—click through rates, session duration, conversion ratios, etc—and this obsession causes us to lose focus on the people we’re designing for. We have to remember that less technical individuals don’t experience the web the way we do. Digital non-natives have a much harder time using computers than you’d imagine. I believe that when we design our interfaces to feel extremely natural and lifelike, people respond better. I held these assumptions very close when designing Asq’s first iteration:

The Fractals homepage with Asq version 0.

I put the first widget I hacked together on the Fractals website for a week, and was pretty surprised when I started reading people’s responses. A lot of my visitors were confused about what the filters even did for their photography. AKA, they came to our site and had a “wtf is this” moment. That was a bit of a slap in the face.

The most interesting thing I learned was that most visitors from outside the US didn’t want to order because they’d been burned previously when importing goods into their country. I was aware that some countries had unfavorable customs laws—what I was unaware of though was how these laws were in some cases so prohibitive that it could discourage a purchasing decision. Equipped with this insight, I tried to appease visitors by adding some information about how we deal with INTL shipments to our website. Sales from this demographic increased pretty much overnight. I would have never been able to deduce this had I not asked.

Founders know they need to be talking to their customers, but they don’t always do a good job at it. They rely on SaaS products that aren’t user experience focused (cough, Qualroo, cough), which degrades the quality of the feedback received. Other companies rely on flawed methods like focus groups, which don’t work. And uh, some companies just don’t talk to their customers at all, relying on best-guesses and instinct. Which is… well, beyond me.

Another very interesting thing happened when I installed the widget I created on Fractals’ website. Fractals is a photography gear company, so, our customers are photographers. Photographers are typically business people with their own clientele, and most also just so happen to be very serious about their web presence. A lot of these photographers started to inquire around what tool I was using for my ‘web questionnaires’. At this point, Asq was just some JS I hacked together exclusively on the Fractals homepage. But, as the inbounds continued I started to dream of making it so everyone could use the widget I created, sort of as a web service.

Scratching other peoples’ itch.

With a few dozen people interested I started to build something more robust. I spent a lot of time designing the homepage, and working on UI flows, and, in March of 2017 I put something on the web:

My ProductHunt launch was sort of lukewarm—but we did receive around 1,000 signups which I started to onboard slowly. I kept a close tab on our most excited users, and, for the most part spent several weeks just fixing bugs.

I also became Asq’s biggest advocate and used it on the Asq homepage and in Asq’s web application as well. We had several brick and mortar businesses interested in using it in their libraries, coffee shops, schools, and the like. So for that, I created a Facebook Messenger integration, so customers of these business’s could provide their feedback to the business directly on Messenger:

The Asq homepage.

A nice thing about SaaS is that you have a lot of flexibility in how you use and deliver your product. I think companies that decide to forego a freemium option end up losing a lot. Marginal user growth and computing expenses typically don’t grow in a linear fashion, so I always balk at web companies who don’t give freemium a shot. A lot of times, users on your free plans become your biggest advocates.

For Asq, freemium is ideal because our freemium plan is not a white-label solution—we get tons of inbounds from traffic originating from our freemium users which allows us to spend little on outbound. It’s one of those ideal situations where the model works out perfectly for everyone.

A few months in we had a few hundred users and I quit my job. Now, I work a lot more but work has been a lot more rewarding, and I’m much happier.


I have always been interested in starting a software company, but I never sat down, took an idea and tried to start building off that. Founders who do that always seem to fail. In my opinion the best way to start a company is by being open and receptive to the world around you. Try to notice the small inefficiencies in your day to day life, and eventually you’ll spot an opportunity. Try to focus on the things you understand better than anyone else—even if you think it is a tiny niche. It may take a few months, or a few decades. But it will come.

I also tend to think that one personality trait that all founders have in common is a heightened sense of curiosity. Founders have a natural tendency to question the world around them, and that leads them into mental explorations and insights that other people typically don’t have. Stay curious.

As for me, I’m still working on Asq and Fractals. If you want to chat drop me an email at Also, check out the website if you have a chance at—would love to get your feedback. 😉