One of the thing that surprises people when I talk to them about building Punchli.st is the fact that I had never written software before. I’ve always had a technical slant to my work, but I always leaned toward design and strategy. So one of my fundamental goals with Punchli.st was to learn the skill of software development. I felt that even if I’m wrong about this core product idea at least I’ll have the skill.
So one of my fundamental goals with Punchli.st was to learn the skill of software development.
The other thing was I wanted to pursue an idea I could be passionate about. I knew there would be moments where I would be banging my head on my desk because I could not figure something out but if I was passionate about the idea I would fight through it.
Pick a framework
In terms of what I needed to learn, from a technical side, it really was everything. On top of core programming concepts, I picked a couple of frameworks I had never used before: Laravel for the backend and Vue for the frontend app. I don’t know that I could have made a better decision than using these two frameworks. Not because they are “the best” or because it does everything for you. The reason I think this was some of my best decision making was because the community and education side of these frameworks are stellar. My #1 reason was https://laracasts.com/, I learn best by watching other people work through a problem and this is all video tutorials. The other key is they are constantly updating their videos. I didn’t realize how important this was until later. All software platforms will change with time, education rarely gets updated but Laracasts update the core videos annually. This means that when you watch something and try to do it on your machine it will actually look the same. This is a massive issue often when watching a software video on youtube because the video was done a few years ago and things usually only stay relevant for a few months. A little bonus feature is both communities have pretty healthy official Slack channels that I have used when I’m in a really specific pinch.
Break up the Project
So now that I had my frameworks the next key for me was chunking up the work. I had a mental idea of the critical path I wanted a user to go through: create an account, create a project, load previous comments, add a new comment, etc. I would break the work up where each night I could go to bed happy that I accomplished something. Previously if I ever wanted to build something I would just try to push a bunch of it forward each time never really chipping away just feeling like I still had so much to do. Simply by saying, tonight all I’m going to work on is making sure I can create a new project. Build the form and does it insert into the database. Once I got that done I stopped.
If I was thinking of leaping into be a solo founder and I did not have a technical background I would really think through how excited you are about your concept. There were plenty of nights where that small chunk of work that I thought would take an hour wasn’t done after four and it just leaves you with this anchor in your soul that is hard to power through. I can’t tell you how many times I said to myself “I’m never going to figure this out.”
Lastly, I would suggest trying to find some truly supportive friends. One you can talk through the issues with but aren’t going to just do it for you. Most of the time people are just going to nod their heads and say “that sounds cool” but try to find the people that still ask about it when you don’t bring it up. @imjameshall was that for me.