How and why I built Fridge?
Fridge - Turn Extra Ingredients into Great Recipes
About me
I am a software engineer who worked for several companies before and now, I am a freelance remote software developer.
I have a passion for turning ideas into applications, solving problems into simple solutions and whatnot. I enjoy the challenge of developing software and most importantly, I am a foodie and I love to cook and experiment. Bottom line is I love food - who doesn't?
The problem I wanted to solve
In the past couple of years that I have been cooking and fending for myself, I have always been bothered by the unused ingredients inside the fridge. They simply go straight to the bin without ever redeeming themselves. Lots and lots of potential food have gone to waste. Why? Because I don't know what to do with most of them. Not to mention the money used in buying these ingredients. It's such a waste both economically and ecologically (think about the impact of food waste in our environment).
What is Fridge?
Originally, Fridge was a mobile application out of college, and legit, it was barely an app.
Initially, Fridge was meant for curating recipes and creating recommendations based on certain user criteria. Fast forward 5 (or more) years later, I managed to find the right tools and technologies to help me create the app, that will help me solve the problem I have at hand (well, inside my fridge).
And voila! Fridge was born.
It's basically an app to help users repurpose extra or unused ingredients (so much for redemption) into sumptuous meals. Fridge suggests delectable recipes based on the ingredients you currently have.
Tech stack
It's an app born out of frustration and urgency, so I chose the lesser evil tech stack that can help me target two major mobile app OS and ship faster.
I also wanted to finally have an application to call my own, after working in the industry for quite some time and not owning any of the codes I created.
I chose React Native over other cross-platform mobile application development framework because it's fast, scalable and not to say, native, and you'll only have to consider one language.
We chose the following technologies for the application:
- React Native - for the reasons stated above
- Expo - this helped us bootstrap our RN development in a jiffy
- Firebase - to store some dynamic data and retrieve them easily, and for authentication also
- 3rd Party API Provider - for our content
The process of building Fridge
We (my partner and I) needed the app yesterday, so we chose to create the MVP for our application and here's what actually happened.
- Conceptualized the idea.
- Created UI mockups.
- Internal battle of choosing a 3rd party API provider or create our own APIs - we ended up using 3rd party provider to make things fast.
- Project setup and requirements.
- Development in React Native.
- Testing - we're just a team of 2, but QA is life.
- Deployment.
These activities happened within a week and we were still full-time employees back then.
Challenges we faced
We faced a lot of challenges during the development of our simple application.
- The technology stack - Man! This was one of the most daunting tasks. We spent so much time thinking about the stack and technologies, and yet we haven't even finalized the idea.
- API provider or build our own - As a developer, we wanted to own
- Time - We were full-time employees back then, we had a hard time finding time for development.
- Spreading the word - It was and is not an easy task for us to do, and with all honesty, we're still working on this one to date. We may have a lot of friends on Facebook and Twitter, but none of them are our target users. We opted to share our product into different platforms without costing us anything.
Key learnings
Even if it was just a small app, we were able to learn a lot of things both technically and empirically. It was on the journey of developing it that we learned the most.
- A lot of things about React Native and mobile development in general
- Deploying into the Google Play Store and App Store
- Marketing an app isn't easy
- Always start with an MVP
Tips and advice
Since this is an app journey, here are the things that we'd like to tell ourselves and hope to share with others as well:
- You do you - You know yourself and your idea best, take off the load of any pressure that you are feeling and deliver what you can deliver. In the end, there is no final product in software development, everything will have to iterate and improve.
- Always begin with the end in mind - Always set goals and milestones for you to achieve. More specifically, set SMART goals directed to achieve your end-goal.
- Accept feedback - Criticism will always be there, learn to appreciate it neutrally and allow for more improvement. This will help you and your application get better and improve.
- If you have an idea, do it fast - Even if it is an existing idea, and you have your own version of it, I suggest you do it fast and work on it to make it happen. This is almost every regret of every great developer.
- Have fun while you're in the journey - While you're at it, while you're in the pre-deployment stages, enjoy and take time to appreciate the things that you are doing so that you won't end up being a slave to your process.
Final thoughts and next steps
Fridge is still a baby, and it will always be our baby. It's still in its early stages and we're still developing ideas and improving it based on the user feedback we gathered.
We definitely won't stop in the deployment stage. We will continuously improve the application even if it'll take us time to do that. As they say, small progress is still progress.
We have a list of milestones (without a date - so as not to pressure us into giving in to the deadlines) set in stone for us. It's just a matter of time to continue and work on what has been started.