The Idea
Since running a team and having to use off the shelf Retrospective products I’ve dreamt of building my own. Not only because I thought it would be interesting to do, but because everything on the market, at least in my mind, wasn’t great.
What I wanted was something simple, easy setup, easy sharing with just a link and a simple User Interface with none of the bells and whistles other solutions have. Just a board, adjustable columns and cards and nothing else.
So that’s where we start, a simple premise, but the development took some unexpected turns
Choosing the Technology
I wanted to build something in Rust. Not exactly sure why, but after reading a bunch about Rust in the Linux kernel I was intrigued and started looking at web frameworks for the hell of it. That gave me the products first name Rusty Retro. Using Rust with Rocket as the framework.
For a DB, I’ve built almost everything in the past 6 years with MongoDB, so I wanted to do something different there. PostgreSQL was going to be the way, that is until i found one critical issue for me and my side projects. There was no free hosts for a PostgreSQL instance, unlike MongoDB where you can run a M0 instance free of charge.
Front-end, it was always going to be Angular. I write everything with Angular and now there is Standalone Components and the control-flow syntax which is just better than what existed before.
So the decision for Phase 1 was made. Rust with a MongoDB database and Angular on the front-end
Phase 1 Technology Results
I had issues with Rust.
These were 100% issues with me, not the language. But they were still annoying, the main one was around Authentication, where getting things correctly authenticated with social accounts was needlessly difficult.
I had dependency issues that surrounded packages that I chose and a few other small issues that was just enough for me to pull back and think about how I was going to maintain this once it became a “real product”
I’ll 100% go to build something else in rust, I think it is a super cool language. But building a app like mine, it was totally overkill
Backend goes to NestJS (node)
Once I had issues that were going to take too long to debug I made the call to re-write the backend in NestJS which has been my go-to backend framework for a number of years. Things were “Easier” for me. But that just comes with comfort.
I’ll end up writing some information of what I use for my current stack and my go to’s in terms of technology soon and that post will give some ideas of why I use what I use. But at the end of the day it is something I’m familiar with, rather than the best technological solution.
Final Results
I think I ended up building the exact product I set out to. You can see it here:
https://retro.codewordalpha.com/
The features talked about above all got implemented, the quick sharing, ease of setup etc etc.
The UI/UX probably isn’t for everyone and will require some work. But that is something to look at in the future when I have the budget to get a designer to help me with a few of these side projects
Marketing and Sales
TL/DR Non Existent - At least for now.
Marketing and sales has been my downfall for a number of years. Building tech that I think has some market fit is quite easy, but communicating and talking to that market fit is something that never came naturally to me, so it’s going to have to be forced.
The strategy going forward is almost 100% based on LinkedIn. I will begin to reach out to Engineering Manager, Tech Leads and anyone else that will ft the category, allow for some free trials (you can set up some boards for free as it is) and solicit feedback and engagement in order to onboard.
At the moment, setting up email and message templates has been high on the list of things to get done and is slowly being worked through.
The Future
At the moment the future all depends on engagement. The more engagement the more features will be rolled out. Either that will be things like saved templates, one time password login and drag and drop re-ordering or they might be other features requested by users. Only time will tell what gets done, but for now. Retro is a passable product that fills the gap I was aiming for. A simple retrospective solution for business.