Table of contents
Introduction
In this article, I will talk about my experience in building our first SaaS product, FileQA, the obstacles we have gone through, and what I learned from this experience.
What is SaaS?
SaaS stands for 'Software as a Service', which means a service that you can put online and accessible, such as making a website where people can generate an image based on a description.
This business model typically involves subscriptions to monetize the service.
Famous SaaS examples:
Dropbox: Cloud-based file storage and collaboration tool.
Microsoft 365: Suite of productivity tools including Word, Excel, and PowerPoint, delivered as a service over the internet.
What is FileQA?
FileQA platform where users can ask questions about their documents or books and immediately receive precise and reliable answers.
It's still online at fileqa.com.
Check out this Quick Demo.
History behind FileQA
the problem is that PhD researchers need to look through a lot of research papers to find some specific information, so the initial idea was to make a website where users can upload multiple research papers, ask anything, and get instant answers.
My data scientist friends, Moad and Abderrazzak, were already working on it when I joined them as a web developer. Together, we created a small Proof of Concept (POC) and presented it to some PhD researchers, who liked it. We decided to extend the scope of FileQA beyond researchers, making it accessible to everyone.
Making the product online
To make it Online, all we needed was the following:
Online payment & Subscription plans
Authentication
Improve SEO
Contact form (for customer support and custom payment plan)
Online Payment & Subscription plans
Seems Easy Right? We just have to integrate Stripe and create the subscription plans and you will have a fully functional payment.
well, it wasn't. Stripe payment isn't allowed in Morocco and if you want to integrate it, you must go through a complex path to do it, and it will take time. So we decided to use PayPal. Paypal is good but you have to make the UI from scratch, unlike Stripe.
Authentication
I made the authentication from scratch, it was a bad decision since we could have used Supabase or Clerk.js (which comes with UI).
Improve SEO
I integrated SSR (Server site generation) to boost the visibility of our landing page on Google Search. We were using Vue, but the experience wasn't the best due to poor documentation. Planning it from the start and using Nuxt.js could have made SSR integration easier, saving us a lot of time.
PS: Using SSR (Static Site Generation) would have been a better choice for the landing page.
Contact form
Once again, I built it from scratch when we could have simply used a mailing service.
Product Launch
We finished making the app, shared it with some friends to try it out, fixed things based on their feedback, and then launched it.
After this, we started marketing the app and sharing it on social media. We got almost 80 users after the launch.
We had tough competition, and then ChatGPT launched a store with a PDF plugin, which does the same job. To market our app, we'd need a big budget. We thought about it and decided it wasn't worth it. So, we decided to let it go.
4 Major Mistakes I Made
1. Neglected Self-Care for Quick Product Launch
During the rush to launch our product, I dedicated every free moment to work, neglecting exercise and breaks. The constant work affected my well-being, leaving me tired and impacting my productivity.
2. Over-Engineering, Under-Marketing
Marketing is as important as Engineering, and we leaned more towards the technical side because, well, we're all techies. Even if you build the next Facebook, without people knowing and trusting it, it will eventually fail.
We could have spent less time on the development phase, by cutting all the edges and not trying to make it look "perfect" and "scalable".
What's the point of making a "backend" if only five people will use our app monthly...
Additionally, We had no idea about the 'marketing' part.
We could have built the application publicly, so we can:
Validate our idea
Get constant feedback & Get guidance
Build audience
Met new people
The only drawbacks:
copycat
investing time in making posts and responding to people
3. Working on different projects
When I began this project, I juggled it with several small freelancing gigs while maintaining a full-time job.
The constant switching between projects became unproductive and frustrating. Therefore, I decided to stop all other commitments and focus only on my job and FileQA.
4. Not staying updated about the latest tech
The tech stack I used for the web part was Vue, Nest.js, and Typeform. Looking back, I could've gone with Next.js and Supabase, potentially saving me a lot of time.
Was it worth it?
Hell, yeah! While working on the product:
I learned more about how startups work.
A nice portfolio project.
Got better at managing stress.
I learned how to make a product from brainstorming to production
Learned how to switch from tech to product vision
Become better at choosing the tech stack
Had the chance to work and learn from smart and inspiring colleagues.
If you have any thoughts or questions, feel free to reach out to me on Twitter or LinkedIn.