Miguel Piedrafita is an indie hacker already making profits from his bootstrapped business. Sitesauce generates static sites for developers. I chatted to Miguel about his approach to learning to code, becoming an indie hackersand his tips for getting good at programming.
Hey, so can you tell us about yourself?
👋 Hi! I’m Miguel Piedrafita, an 18-year-old maker from Oviedo, Spain. Since I started coding eight years ago, I’ve been building cool projects, like UnMarkDocs, a service that generates beautiful documentation from GitHub using an improved version of Markdown, or Blogcast, a service that uses state-of-art text-to-speech technology to transform your articles into audio. Last summer I sold both of these projects to focus exclusively on Sitesauce, which I finally launched a week ago. I (try to) balance these projects with graduating from the IB Diploma (an international high school program).
Congrats on $1K MRR for Sitesauce! Can you tell us about how and why you made it?
As a developer, I can’t help but redesign my website every few months. In the last iteration of this process, I moved from a complex static site generator setup I had hacked together a year ago to simply using Ghost. The issue was, I wanted to keep all the benefits I had come to expect from static sites but refused to go back to maintaining two separate codebases for my personal site.
I searched for tools that could automate the process for me, and after finding none set out to create my own. The initial prototype was ready after a month or so, but after announcing it and seeing it could help many others not only make their sites faster and more scalable but also save money on servers I decided to continue working on it and spent the next seven months perfecting a one-click experience for any kind of website. If you want to learn more about this journey, I published an article with more details on my blog.
What sparked your interest in programming?
Since I remember I’ve always been curious about pressing buttons and seeing what they do. When I got access to my first computer, an old HP from my parents with Windows XP I tried to figure out what everything did and how it worked (corrupting the OS way too many times). It’s only natural that as soon as I knew what “programming” was, I tried to learn how it worked and how I could make my own programs.
How did you learn to code?
As I mentioned above, I’ve always liked to play around with computers, click buttons to see what they did, but my coding journey really started at 10 when our teacher got bored with teaching us Word and PowerPoint and decided to go a bit outside of the curriculum and teach us the basics of HTML (he was fired mid-term, not sure if related). After that, I got into the habit of playing around with “Inspect Element” and trying to understand how my school’s internal sites were built. Around one day later, I decided I wanted to go further and took Codecademy’s free PHP course (which I think has been removed since?), which I completed in a day and started building small apps by mostly copying code from StackOverflow, as one does.
After reaching the bottom of spaghetti coding, I found out about Laravel and started learning about object-oriented PHP and how to use a framework. From then, my learning process consisted of source-diving open-source projects (including the framework itself) and figuring out how to get my code to do what I wanted.
I started by building open-source projects (like OrgManager, which ended up getting used by big open-source organizations) and slowly transitioned into making bigger applications I tried to earn some money from. I started with UnMarkDocs, which took a year to build, and while it was never profitable it did teach me a lot about building and selling products.
Applying what I learned, I built the first prototype of Blogcast in a week and continued iterating on it for six months, when I got an offer to sell it and decided to focus exclusively on Sitesauce, a new thing I had started on summer.
Not only did I learn a lot about the entrepreneurial side of building apps on the process, but I also got really good at Laravel and learned my way around the frontend, using Vue and Tailwind to create beautiful interactive experiences.
What does a typical day as a software developer look like for you?
It’s a little different now that we’re all quarantined, but it goes roughly like this: I wake up at around 9 and have a rushed breakfast while I connect to my first class (I’m finishing high school). I have class until around 2 PM (although now that we’re almost finished I can skip some). I then have lunch and go back to my mac to work on Sitesauce, be it coding, designing, writing, or answering support messages. At eight, I go for a two-hour walk (we’re on national lockdown but we have a small window of time when we can go outside). I then have dinner and either watch something on TV or go back to work some more, sometimes until two or three in the morning.
Who are some of your coding inspirations?
Aside from my friends from the Laravel Youngbloods Telegram channel (a private community for teenagers working with Laravel), I really admire Taylor Otwell, for creating Laravel and for his focus on writing beautiful code, Adam Wathan for creating Tailwind and all his previous courses and applications, Steve Schoger for his design skills and for sharing them with everyone on Twitter, Justin Jackson, from whom I learned a lot about marketing and Jack McDade for his unique approach to design and for building Statamic.
What advice do you have for someone who wants to learn to code?
Find a course that can teach you the very basic skills you need to understand what you’re doing, then figure out what you want to build and just try to get it working. If you can’t get something working, google it! I’d also recommend you open-source your code so that others can review it and help you figure out how to improve. You can also check others’ code and see how their thing works. Learn by doing!
What are your future plans for Sitesauce? Do you have other projects you are working on?
Right now I’m focusing on reducing the build time of really big sites and allowing partial builds, where only the pages that have changed are modified. I also want to implement some asset and image optimization on the build to get faster sites with no additional work on the user’s part.
On the long term, I want to make sure all the complex dynamic pieces of sites (like e-commerce stores or comment systems) work out of the box with the Jamstack model, either by proxying them to the backend or by automatically swapping them out with alternatives that do work on static sites, so that everything “just works”.
I’m focusing most of my time on Sitesauce now, and don’t plan to start any new projects on the near future, but I’m planning on redesigning my personal website (again) soon and creating more video content this summer, both by live streaming development and by editing YouTube videos.