Introducing Reflect
Take a look back at your year
"An unexamined life is not worth living" - Socrates
Evident from my activity over the past few days, I was quite busy every day of this December doing Advent of Code. It was a good habit to wake up and code every morning, except it ended on Christmas Day. I was upset since I wanted to keep this momentum going, and I am anyway on vacation with an unsatiated itch to code. I wanted something to occupy my time and challenge me.
With this thought at the back of my mind, I sat down for one of my end-of-the-year rituals—answering a fixed set of questions that make me think and reflect on the year that has passed. By comparing what I answered last year to my answers now, I am able to gauge how well I have done to grow myself in every aspect. I have been doing it for the past two years, and it has been working out extremely well.
You are welcome to Reflect.
The Idea
Now, this idea of reflecting on the past is not a novel one. Specifically, I found out about answering same set of question every year from this post by Steph Ango (@kepano on Twitter). Back then, I answered the question set by them. However, I felt that a few questions were really a misfit for the kind of life I am living. For example, no one in my close circle is getting married or giving birth to a baby, so question related to such events do not apply to me. At that point, I modified the questions for my own self.
While I was answering, I got a thought: was there an easy way to track my progress over the years deduced from my answers? I tried ChatGPT, but the results were underwhelming and kind of eh. Copy-pasting answers to an LLM works, but I thought, what if there was a place to do al this in one place. So, why not try to make a web app out of this? I wanted to make something, had a problem at hand, and it was a good idea for a quick execution.
Building and Execution
So I began building it. Two days, all of my free time went into formalizing the features and writing the web app. The site had to be a simple inlet for answers to the questions it asks you. Something that doesn’t distract you while you are busy with your thoughts. So I decided for it to be just that, a simple form.
The site will greet you with a simple welcome screen and ask if you want to start the process of answering the questions. After you click the start button, questions start appearing one by one so that it doesn’t overwhelm the user and lets them think about each answer. Once all questions are answered, you get an option to save answers as a PDF and an option to generate an AI-based overview of the answers.
Features
As I was making it, I kept getting more ideas for features to add. But I settled on it being a simple form and optionally adding some AI flair to make it easy to grasp how one had answered. I reckoned this might also help with people finding the whole process a bit like a game they were playing and the generated content as a bit of a payoff for the process.
The AI content contains three things: a determination of your personality type, a summary of how your year has been, and some predictive stuff about how your future will be.
My intended payoff is, of course, positive life change. To make users go through an internal, personal process of answering questions. This makes you think about your thinking. And thinking about your thinking changes your thinking, which ultimately leads to positive life change.
Tech Stack
The web app is built with a focus on simplicity and seamless user experience. The frontend is written using React and uses Next.js, with animations handled using Framer Motion to create smooth transitions between questions. For styling, it relies on Tailwind CSS since I find it the best for prototyping and hyper-quick project releases.
When I was thinking about the design, I wanted it to be focused on simplicity. There are enough things online to overload your senses; I didn't want to make one more. Hence, it follows a minimal design that is an extension of brutalism with sharp corners and a monotone color scheme.
The design of Reflect
There is no backend. Everything from PDF generation to AI overview to saving progress is done on the client side. This makes it everything you answer private. No servers can see what you answer except (only if explicitly allowed by you) the Groq servers.
The progress is saved in-browser, and AI-based insights are generated using an integration with the Groq API. Groq provides a very easy experience with respect to interfacing with various large language models. I chose Llama 2 70B because it is a good balance of being fast and useful (and it is open-source too!). The language model analyzes user responses to provide summaries and personality insights.
There is a good chance the site might run into API rate limits as it uses a free plan from Groq.
The app is hosted on Vercel for fast and reliable performance, and the entire system is optimized for scalability to handle a growing user base. Every decision in the tech stack was guided by the need for responsiveness, simplicity, and ease of use.
I decided to work on this app on the evening of 26 December and the prime goal was to ship it as fast as possible before the new year. Shipping software fast comes at a cost; the cost of quality of the code. All of the code for this site will be open sourced at some point after my new year's break. The quality of code at the time of writing this post is not up to the mark where it might be useful for anybody. Hence, the codebase will be cleaned up and released for public in due time.
Closing Thoughts
Try it out here: Reflect
I’ve always believed that small rituals and habits can have profound impact on personal growth. Building this web app felt like an extension of that philosophy—not just for myself but for anyone who wants to do it.
Will you use the app? What features would make you want to share it with others? I’d love to hear your thoughts because your feedback will inspire the versions to come. Tweet at me @mayurbhoii if you use the app or have any feedback to share.
Whether you use the app or not, I hope you sit down to answer these questions for yourself as it has proven helpful as an year-in-review exercise. Many questions persist in our lives and I hope you find some answers by answering.