I built my fair share of software businesses in the past. Bootstrapped products that I thought were cool idea, or something that scratched my own itch, or perhaps my own version of something I was using but didn’t 100% like.
I remember building a task manager, an elearning website, an ecommerce software repurposed for different platforms/CMS, desktop apps for macOS, mobile apps, mobile games, software you could install on your site to add more functionality like maps and providing users support, and more.
And I don’t mean demos, I mean actual software that I was selling to actual people.
Some of those went better than others. Some paid rent money, some for a period were my full-time income. But due to one reason or another no one of those became “the business”. Bad timing, wrong niche or choosing the wrong market were some of the reasons for this.
And building a software business is inherently hard, there is a lot of competition and while you hear lots of success stories, it’s hard to hear from the failures and all those projects that launch into nothing.
Just go any day on Product Hunt and see what I mean. Beside the shiny “top 10” kind of thing, there’s a graveyard of projects no one upvoted.
Before I started blogging back in 2017 I was working on a GitHub App that I thought was very cool. I still think it was. Some sort of stats visualization for repositories. I worked on this for some time, then I decided to invite people to try it. I sent out a few emails but I didn’t get a lot of enthusiasm. It was cool, but it wasn’t solving any problem. I didn’t have a channel or way I could promote it and perhaps people didn’t even need it. I couldn’t convince people to try if for free, imagine paying for it? Plus working on another company API to do something as fragile as retrieving data for stats made me uncomfortable and soon I moved on to something else.
In other words I made a huge error.
I learned a ton, both technically and also on things not to repeat the next time.
Building all those projects without a real success burned me and I said “I don’t want to create a product any more”. So I started a new chapter, going from wannabe bootstrapped software company solopreneur to other things.
Fast forward: I identified a problem
3 years passed by and I got never even mildly interested in any product idea. I simply didn’t think about doing such a thing any more, and I focused instead of creating material that could help fellow developers build their own software.
Until I was creating a project for one of my courses and I realized that I was doing for the 10th or 20th time the same exact thing I had done previously.
Authentication. Login. Signup. Forgot password? Email confirmation. Secure passwords. OAuth. Login with Google. Testing everything.
I did some research, and if you look on places where the discussions between experts happen, like Hacker News, on this particular subject, there are threads that take entire days to read and digest.
It’s a field where there are a set of best practices, but not documented anywhere. You are expected to implement your own workflows and there isn’t anywhere you can tune in to discuss, ask, or get someone that you know is an expert and figure out the pros and cons of each approach. Except those general places where you ask and hope someone will reply.
And most of the time you must ask in locations where you discuss a specific kind of application stack or technology.
But this thing is technology agnostic. It does not change anything if your authentication workflow is built upon React or Vue or it’s a server-side Node or Elixir application.
It’s always the same, but every time you need to reinvent it.
Figuring out if it’s a problem worth solving
So my initial idea was to fix this.
This is a huge undertaking and it all starts from a concept. This is why I brainstormed a name and a logo, I built the https://prototyped.dev/ website, I made a video and started getting my idea into words.
And I put up an email signup form.
I guess that before moving on, I have to convince people to give me their email. If I can’t even do this, the idea is just plain bad. I put a link on my blog to drive some traffic to it.
This was 2 weeks ago. 1935 people visited the website and I have 130 people signed up to the waiting list.
This is a good first step.
Someone is interested. I made a compelling video, maybe. Or maybe they just want to see what I’ll do.
So yesterday I sent this email to those people:
Hi, I want to take a moment to thank you for signing up to the Prototyped login/signup/authentication "idea" waiting list! In addition to you, I got other 123 people signup ~in 2 weeks~ and it seems the thing has legs.. but I want to dive a little more into it. (I'm sharing this information because I plan to also publicly document my journey to bring this thing to life. From zero to being a real product in the wild. I enjoy reading or listening to such stories in podcasts and I think it might be cool. The behind the scenes of a software business bootstrapped startup. Interesting?) I built many apps and software projects in the past. Most of the times I started with an idea and kept coding until the launch. Sometimes in the end it was a failure because I didn't work on the right idea. Or I didn't solve the right problem. This time, however, I want to make sure I solve a problem you are experiencing. What is the thing that resonated with you the most with the Prototyped concept I presented you? In other words, what's the value you see in it? I got this idea while working on an app and getting authentication right and "done" once and for all was really key. I wasn't central to the "core business" I wanted to focus on, it was just a distraction, a chore I had to do. And I couldn't find anything that could help me in the way I wanted. I want to make sure you or your team got this frustration too, please let me know if not and if I'm working on something that you think is useless. Your opinion and contribution will be key to move this thing forward. Just hit reply and let me know what you think!
What people said
I got 12 responses.
Here are some of the (anonymized) replies I got:
I’m a DIY guy, thus if there is some paid service, I always try to figure out a way to do the same thing for free.. but I think you had a great idea with your product because one thing I don’t want to deal with is storing personal data, security problems, legal problems.
The idea of what I want to build is compelling enough, solves a problem so painful that it’s worth paying for. Good news.
I watched your promo video with explanation why you started Prototyped and realized that every new project takes month(s) of development for this particular section (login/signUp/restorePassword). I decided that it might save us a lot of time to use your service / library => that is why I subscribed
Good feedback. The product would save them a lot of time, and time is money.
I’m learning to code (mostly Python and JS) and have an app I’m building and I’m coming up to the registration / login / session stage and I’m finding it pretty daunting. I feel like this is a process that nearly every single app on the planet has, coding it all from scratch feels a little needless (though a point could be made a beginner should do it at least once). So anything that could make this process easier to implement and understand would be extremely welcome!
The auth process is “daunting”. This term makes me think about pain. coding it all from scratch feels a little needless: it’s like reinventing the wheel every time.
I think you’re going on the right direction. It sounds interesting to have access to an authentication tool and that we as developers do not have to worry about, since the tool will take care of that.
I want to make your life easier.
I am a newcomer to authentication but from my research it takes a bit of set up to get things moving. It would be great to have something with less set up almost like a module you can add to your project
Drag and drop.
We basically have the same frustration. […] I’d probably mess with some CSS related to the auth pages, but that’d be prebuilt so that I could focus on the actual app.
Flexibility, yet convenience.
In the past few weeks, I’ve spun up like 3 - 4 web apps using Next.js, and dealing with auth is a pain.
Pain. This word is recurring.
[…] After all this, I realized that I had spent days setting up authentication but had not implemented any valuable feature. In fact, I lost interest in my initial idea.
Oh man this is terrible!
[…] I think the idea behind Prototyped is solid
I like solid.
Sometimes I use Firebase, but is like having a huge gorilla to take care of who use the website
Open source is the ultimate freedom. Own your code. customize anything, easily change to something else.
I don’t want an authentication that works as long as I use Node. I want one that I can take with me and works or makes itself work on many platforms. This way, I have a consistent behavior I can expect rather than having to remember things like “on app xxxx, the login does _____ and on app yyyy it does _____“.
This is spot on. The thing I want to build will work regardless of the technology, because it’s a blueprint with an implementation.
It’s like an application architecture. React developers will remember about “flux”. You can change platform, but this can stay with you.
I also often have the same problem of authentication. For one of my current projects I am looking into Firebase, because that makes it really easy. But I am not happy to be bound to Google.
Repeating pattern of lack of flexibility and uncomfortable feeling of being tied to a corporation.
Our biggest concern is security for users and knowing that the system is doing things according to the best security practices that are known.
This topic is really delicate and security is a key aspect, a fundamental one.
Flexibility is another key. Not all signup/login/auth flows are quite the same, so having the ability to control this is important.
Flexibility, freedom, is one of my core principles and it must be reflected.
Having a solution to turn to that can confidently help solve them is absolutely a need.
Being a trusted and rock solid solution one can turn to when in need.
What did I learn from those replies?
I got very positive feedback. There is a need for a solution to this problem.
Now I will keep waiting for new replies, and also I send the same email to every new signup to the waiting list, so I’m curious to hear more.
Meanwhile I’m organizing an online bootcamp, but I want to get the ball rolling.
That’s it for this post. I will write an update soon.
More lab tutorials:
- The stack I use to run this blog
- 8 good reasons to become a software developer
- SEO for developers writing blogs
- Review of the book The 4-Hour Work Week
- Build a lifestyle business
- Build your own platform
- As an indie maker, what kind of product should you build?
- Create your own job security
- Developers, learn marketing
- The freedom of a product business
- Generating value
- Have a purpose for your business
- The idea is nothing
- The niche
- Remote working for software developers
- Product / market fit
- The best podcasts for frontend developers
- Why should I create an email list?
- Disconnect time from money
- The scarcity principle applied to software products
- The social proof principle
- How I added Dark Mode to my website
- My notes on the Deep Work book
- The pros of using a boring stack
- How to estimate programming time
- On going independent as a developer
- How to learn how to learn
- Why interview questions for programming jobs are so difficult?
- Do I need a degree to be a programmer?
- Everyone can learn programming
- How to be productive
- How to get the real number of pageviews of a static site
- Have you filled a developer bucket today?
- How I record my videos
- All the software projects I made in the past
- Tutorial purgatory from the perspective of a tutorial maker
- Every developer should have a blog. Here’s why, and how to stick with it
- Having a business mindset for developers
- How to write Unmaintainable Code
- What is Imposter Syndrome
- How to work from home without going crazy
- How I prototype a Web Page
- You should be the worst developer in your team
- How to start a blog using Hugo
- Write what you don't know
- How to block distractions using uBlock Origin
- Coding is an art
- I wrote 1 blog post every day for 2 years. Here's 5 things I learned about SEO
- Dealing with the fire
- On being a generalist
- The Developer’s Dilemma
- My plan for being hired as a Go developer. In 2017
- Productivity gains of using a Mac and an iOS device
- How to go from tutorials to your own project
- This is my little Digital Garden
- How to start freelancing as a developer
- Sharing the Journey Towards Building a Software Product Business
- Subfolder vs subdomain
- How I use text expanding to save time
- Software is a superpower
- I love books