A goal reminder web app. Set new goals, receive email reminders, and track your progress!
goalminderapp.online
As someone with a lot of goals, whether professional, personal, or otherwise, I sometimes find it challenging to keep track of everything. In today's world full of distractions, it's never been so easy to lose sight of what really matters. That's why I created Goalminder, to get a few emails from time to time reminding me of my plans and also helping me keep track of the progress made. To focus on the signal, not the noise.
- Set goals in different areas like Finance, Hobbies, Fitness and others.
- Adjust the frequency of the reminders, the tone of the message etc.
- Receive Email reminders of these goals
- Each reminder you can report the progress you made.
- Analyse the reports from each goal with charts.
- Next.js – framework
- TypeScript – language
- Tailwind – CSS
- Firebase – auth and document database
- Resend – emails
- Netlify – deployments
- Figma - ui/ux design
This project is mainly for personal and portfolio use, but feel free to fork it or open a pull request if you find something you'd like to improve. But keep in mind if you run the project locally, you'll need to create your own Firebase project.
git clone https://github.com/gabrielcoffee/goalminder.git
cd goalmindernpm install- Create a new project at console.firebase.google.com, then enable:
- Authentication (Email/Password or whichever provider you prefer)
- Firestore Database
- Storage (if your app uses it)
Get your Firebase config object from Project Settings > General > Web App config, then create a .env.local file at the root of your project with the following variables:
NEXT_PUBLIC_FIREBASE_API_KEY=your_api_key
NEXT_PUBLIC_FIREBASE_AUTH_DOMAIN=your_project.firebaseapp.com
NEXT_PUBLIC_FIREBASE_PROJECT_ID=your_project_id
NEXT_PUBLIC_FIREBASE_STORAGE_BUCKET=your_project.appspot.com
NEXT_PUBLIC_FIREBASE_MESSAGING_SENDER_ID=your_sender_id
NEXT_PUBLIC_FIREBASE_APP_ID=your_app_idnpm run devNow that I'm returning to this project after a few months, I'll spend some time revisiting the README and refreshing my memory on the overall structure. After that, I plan to start working on the features I haven't implemented back then, including AI-generated message and a time zone based email scheduling system. Also, if I implement more of these features, maybe a subscription plan.
I ended up learning a lot of valuable technical skills through this project:
- React: I built dynamic, reusable UI components, making the interface more interactive and responsive.
- Next.js: I explored server-side rendering and static site generation, improving both performance and SEO.
- Firebase: I gained hands-on experience with document databases, authentication, and image storage, learning a lot about cloud-based backend integration.
- Tailwind CSS: I learned how to efficiently style and structure pages using utility-first CSS.
- Figma: I improved my design workflow by creating intuitive interfaces and prototypes.
And just as importantly, I developed a few soft skills along the way:
- Effort: Debugging and building the system took way more time than I expected when I first sketched it out.
- Patience: Probably the most I’ve ever had to practice on a project—countless small things broke, but it was all worth it in the end.
- Searching: Having never used React or Firebase before, I spent a lot of time reading docs, forums, and examples to figure things out.
This project is licensed under the MIT License.