How time flies.
It’s been a while I wrote here. Today, I wanted to share some thoughts, tips, tricks, and mistakes in building and running a tech startup as a solo developer.
Anyway, not completely solo because I outsourced the design part of the product to a very good designer and friend.
I also hired two frontend developers for the project initially but because of the tight schedules of these developers, the contracts could not go on further.
So everything was left on my table alone and I made good use of my time and skillset to develop the product.
What am I building?
Firstly, let me give a glimpse of the product for you to have an idea. I’m building a Cloud-Based Content Management Platform for Content Creators.
As a software engineer and a Writer (incoming Author)
I discovered a problem:
Since writers are not developers, it becomes difficult to create beautiful portfolios for their craft.
And since I’m a developer and a writer, I wanted to help writers automate this process:
By allowing writers to choose from thousands of templates, the app automates the process of crafting a portfolio for the writer using their content/article wherever it is published.
Another important feature allows freelance writers/content creators to know how the content they wrote for a particular client (website/blog) is performing over time.
And many other insights and features. I bet you want to check out the other features.
I named it Contentre because it was difficult to purchase the domain name for my initial favorite name Contentr.
As we progress, I will explain the tech stack, ways of building, mistakes, and what I learned building the product.
Deciding on the TechStack 🤔
Choosing the TechStack for the product wasn’t a difficult thing because I already have plans to use TypeScript, GraphQL, Node.js, and Nuxt.js
I decided to go with the tech stack because my present company uses these stacks and I wanted to learn more and deliver faster on my tasks. So I built a complete product to learn and master my company’s stack.
The requirement for the tech stack was the following.
Backend and Operations:
- Quick development and iteration time
- Domain knowledge of Nodejs/TypeScript
- Easy to run locally
- Easy to scale backend and handle heavy loads.
- Easy and free to deploy
- Learning the stack to deliver on tasks
Frontend and Operations
- I have significant experience with Vuejs/Nuxtjs
- Frontend HTML and CSS was already built out by the developers
- The design was outsourced.
The Tech Stack
Backend — Node.js/TypeScript/GraphQL
The language of choice for the backend was Node.js with TypeScript. Well, you can guess the reasons already. But more reasons are because I have domain knowledge and Node.js have good performance and its easy to deploy and scale.
Frontend — Vue/Nuxt
If you’ve been following me for a while, you will already know that Vue is my first choice for any Front-end project. Aside from that, I wanted to learn how to implement Atomic design using Storybook and how to master Apollo GraphQL for frontend with Vue.
Database — PostgresSQL
I have been using MySQL all my coding life and I wanted to try something new plus my company is using it and I wanted to learn how to write complex performant raw queries, so I figured out building a real-life project will be a good start.
Additionally, PostgreSQL has the full-text search extension built-in and many cool extensions that I don’t have to pay for separately.
Cloud — Heroku and Netlify
The app is running completely free without payment during the development phase and beta phase.
The company web page is built in a different repository with Nuxtjs using the SSR advantage for SEO.
Lastly, the app/dashboard is built with Nuxt without SSR which makes it faster to load up for users and it’s deployed as a static page in Netlify for our users.
My total monthly payment for hosting the app is $0, but I’m paying between the range of $5-$6 monthly for the blog because it’s hosted on DigitalOcean.
I’m expecting them to pump up when we launch and start recording real users.
Email — Namecheap Private mail
We have thousands of good options out there, but Namecheap private mail was cheaper and easy to set up with Nodemailer during development. I might consider changing the mail server to either Mailgun or SendGrid during production.
Payments — Stripe 💰
I will be adding subscription support using Stripe once we have launched and completed important features on our roadmap but for now, the beta version is free to use.
Guess what? if you’re an early user, you might never have to pay or pay much.
There are many payment platforms to consider when it comes to collecting payment and managing subscriptions.
Stripe is best at it but I might have to add Paystack depending on where my users are located.
Still thinking 🤔🤔🤔
Code only at nights and holidays
I only code at nights, free times, and holidays. In fact, the planning, designing, hiring, and initial 60% developments were done during the Christmas and new year holidays.
My full-time job has the highest priority so I only code at leisure, of course, it’s my product, and I have the luxury of time and no crazy deadlines.
No Test 😩
I couldn’t cope with developing the backend, frontend, doing QA, and still writing unit tests. I hope this doesn’t turn out to be a mistake in the future but below are the approaches I use to ensure quality.
- I have all tasks listed on the Trello board and a clear description of what each is suppose to do.
- After coding the Frontend and Backend, I will take out time to test the solution manually as a QA engineer will do and also ask my friends to try out the new feature.
No doubt that testing is good and will come in when we have a team.
Monolith instead of microservices 🐻
I choose to go with the monolith pattern because of the workload of managing different codebases, and servers alone.
But I could not escape it with the frontend app because user portfolios, the app/dashboard, and the company homepage are separate. So there is a bit of microservice there 😂😂😂
What have I learned? 🎒
What I have learned is:
It’s not easy to build products alone no matter how small.
It’s also better to try and fail than not try at all.
Also, the most important one is that while developing your own product, you have the luxury of time because of the flexibility but you need to be disciplined enough to get things done.
What would I do differently in the Tech Stack?
I’m overall very happy with the tech stack and I won’t be changing anything at the moment.
Everything is working as planned. I’m a bit concerned that it will be tricky to scale but of course, we will always cross the bridge with joy.
What would I do differently from a product point-of-view?
From a product point of view, I don’t have concerns but I’m thinking of how to develop over 500 templates for our users.
DM if you have something.
In the next story, I will share how I plan to approach the marketing for this product and scaled it to our first $1k MRR.
Follow me on Medium.
This article is to reflect on what I have done, the product I developed, how it started, how it was from where we are and what lessons I have learned, and how I will scale it in the future.
Just a way to remind me that I was doing something.
Remember what I said here:
If you’re an early user, you might never have to pay or pay much.
What are you waiting for? Jump in now Contentre.
If you are thinking about building a product as a solo developer, stop thinking and do it! It’s a lot of fun! 🚀