- Alexandro Martinez
July's goal was to build in public an actual SaaS for 2 reasons:
- Validate SaasRock as a production-ready SaaS starter
- Launch my own SaaS
In Mexico, there are already a lot of invoicing platforms (QuickBooks, CONTPAQi, Aspel…), but none are simple and robust at the same time, and there's not a single platform that offers taxpayers the service to generate invoices for their receipts.
I called it Factura.so, like Notion.so, but with Factura (Invoice in Spanish). It has 2 main features:
- Forward all your invoices to email@example.com
- Submit your receipts and we'll generate the invoice for you
With these 2 features, the headline became:
Factura.so - The only platform you need to request and receive invoices.
How I built it
I documented my journey in a youtube series called "Building a SaaS with SaasRock". Here's the summary of each video, or click here to view them all.
- Day 1 - Setup and Taxpayer Model
- Day 2 - Postmark, Supabase, and ngrok
- Day 3 - Custom routes for List view and New form
- Day 4 - Custom Workflow Logic & Custom Overview Route
- Day 5 - Email Attachments to XML rows & Retry Webhook Attempts
- Day 6 - Receipts entity with related Taxpayer and XML entities
- Day 7 - Plan Limits, ZIP file extractions & Landing Page
- Day 8 & 9 - Final touches and Upcoming Features
- Day 10 - Launch Day!
Up to day 7, the code is available for SaasRock Enterprise subscribers.
The end result
I need to communicate that with this platform, you could Request and Receive invoices, hence the emphasis:
3 blocks here:
- Summary: All my XMLs, Receipts, and Invoices (from 30 days to date).
- Receipts: Stats by workflow state (Pending, Invalid, or Processed).
- XMLs: The SaaS is around XMLs, so it makes sense to show the last 10.
Using SaasRock's Entity Builder I created 3 views:
- Pending: A table of pending receipts
- All: A table of all receipts
- Photos: A grid of all receipt photos
XMLs can be created:
- Manually: User uploads an .xml file
- Email: Send or forward emails with .xml files to firstname.lastname@example.org
- Sync: By adding a Taxpayer Credential (see My Invoices).
If a user uploaded their Taxpayer Credential, I sync their invoices with the SAT.WS API:
SaasRock comes with an out-of-the-box inbound emails feature, I use it to create XML Entity Rows if there are attachments of type .xml and .pdf.
My Subscription (prices in MXN)
The business model is simple:
- Test: A freemium plan to test all the main features
- Essential: For small companies
- Business: For medium/large companies
What's Next for SaasRock?
Right now I have post-launch depression, where I don't know what I'm going to do next 🤣. But I have written down some ideas: