Rembiti: Building a Birthday Reminder App (And Learning Go the Hard Way)
I'm building Rembiti, a birthday reminder app with contact notes and message templates. Also using it as an excuse to learn Go by building the backend from scratch.
I forget birthdays.
Not because I don't care about people. I just don't remember dates. My brain doesn't work that way. Every year, I miss someone important and feel terrible about it for a week.
So I'm building Rembiti. A birthday reminder app that actually works the way I need it to.
But here's the twist. I'm using this project to learn Go. And I mean really learn it. No AI assistance. No Copilot. No Cursor tab completions. Just me, the Go documentation, and a lot of Stack Overflow.
Welcome to software development like it's 2015.
- Rembiti is a birthday reminder app with contact notes and message templates
- Building the backend in Go to force myself to learn the language properly
- No AI coding assistance. Learning the old-fashioned way
- Currently in mock UI stage. Real progress coming in future updates
- Screenshots and videos coming in Update 2
What Rembiti Actually Does
The core idea is simple. Remember birthdays and make it easy to send thoughtful messages.
Contact storage with notes.
Not just names and birthdays. You can add notes about each person. What they're into. What's going on in their life. Topics to ask about.
When someone's birthday comes up, you see their notes. "Oh right, Sarah just started that new job. I should mention that when I reach out."
This is the feature that makes Rembiti different from just using your phone's calendar. Context about the person, not just the date.
Searchable notes.
Over time, you accumulate a lot of information about the people in your life. Rembiti makes it searchable. Want to find everyone who mentioned they're into photography? Search for it. Want to remember who was having that health issue last year? It's there.
Think of it as a personal CRM for your actual relationships.
Message templates.
Here's the thing about birthday messages. We all send some version of the same text. "Happy birthday! Hope you have an amazing day!"
Rembiti lets you create templates. Professional ones for work contacts. Casual ones for friends. Funny ones for close friends who get your humor.
When a birthday comes up, pick a template, personalize it quickly, and send. Saves time while still feeling thoughtful.
Smart reminders.
Not just "it's their birthday today." You get reminded a few days before so you can plan. Different reminder timing for different people. Your mom probably deserves more advance notice than your college roommate you haven't talked to in three years.
Why I'm Building the Backend in Go
I could have used Node. I could have used Python or Django. I know those tools. They'd be faster.
But I've wanted to learn Go for years. I keep reading about how it's great for backend services. Fast, simple, good concurrency. Every startup seems to be using it for their APIs.
The problem with learning a new language is finding a real project to build. Tutorials only get you so far. You need to hit actual problems, make actual mistakes, debug actual issues.
Rembiti is my real project for Go.
Here's my rule..
No AI coding assistance for the backend. Zero.
No ChatGPT writing my functions. No Copilot suggesting completions. No Cursor doing its magic autocomplete thing. Just me typing every character, looking up every syntax question, and debugging every error manually.
This sounds masochistic, and honestly, it kind of is.
But there's a reason for it.
Why No AI Assistance?
I've been thinking about this a lot lately.
AI coding tools are incredible. I use them for most of my work. They make me significantly faster. I genuinely believe they're one of the biggest productivity boosts in software development history.
But they also let you get away with not really understanding what you're writing.
When Copilot suggests a function and you accept it, do you actually know what it does? Could you have written it yourself? Do you understand why it works?
Sometimes yes. Sometimes no.
For languages I already know well, that's fine. The AI is just saving keystrokes. But for learning a new language? I want to struggle.
The struggle is the learning.
When I have to look up how Go handles errors (spoiler: it's verbose), I remember it. When I have to figure out Go's package system myself, I understand it. When I debug a nil pointer issue for an hour, I never make that mistake again.
AI would shortcut all of that. And then I'd "know" Go but not really know it.
So for Rembiti's backend, I'm coding like it's the stone ages. Like a madman typing every character. And honestly? It's kind of fun. In a frustrating way.
Current Status: Mock UI Phase
Real talk. This project is early.
I've got mock UIs designed. The screens are laid out. The user flows make sense. But the actual implementation is still in progress.
The backend is coming along. Basic endpoints work. Authentication is functional. The data models are defined. But there's a lot more to build before this thing is usable.
Why I'm not showing anything yet..
Same reason as my travel tracker project. I want the first reveal to be something real, not mock designs and half-working prototypes.
In Update 2, I'll have actual screenshots. Maybe a video showing the app running on a real device. Something you can look at and think "okay, this might actually become a thing."
For now, just know that work is happening.
What I've Learned About Go So Far
A few weeks into this experiment, here are my impressions of Go as someone coming from Python and JavaScript.
The error handling is verbose but sensible.
Every function that can fail returns an error. You have to handle it explicitly. No exceptions bubbling up unexpectedly. It's annoying to write if err != nil a hundred times, but it forces you to think about failure cases.
I actually kind of like it now. My Python code would be better if I handled errors this explicitly.
The simplicity is real.
Go doesn't have a lot of features. No generics until recently (and even now, they're limited). No fancy metaprogramming. No decorators or magic methods.
At first this felt limiting. Now it feels liberating. There's usually one obvious way to do things. Less mental overhead deciding between approaches.
Concurrency is as good as advertised.
Goroutines and channels are genuinely elegant. Spinning up concurrent operations is trivial. I haven't done anything super complex yet, but the basic patterns are easy to grasp.
For an API backend serving mobile clients, this matters. Go should handle concurrent requests effortlessly.
The tooling is excellent.
go fmt for formatting. go test for testing. go build for building. Everything is built in and works without configuration. No wrestling with ESLint configs or pytest plugins.
Coming from the JavaScript ecosystem, the simplicity is refreshing.
The Bigger Picture: 2026 Plans
Rembiti is one of several projects I'm working on for 2026.
There's the Life OS with its privacy-first approach. The travel tracker for couples. Various smaller experiments.
2026 is when I want to ship all of this. Actually release apps. Put them in stores. See if real people want to use the things I'm building.
I wrote about the mindset in my post on why you should start solo. Building alone is slow but you control everything. No meetings, no coordination, no compromise. Just you and the code.
Rembiti might be the slowest of my projects because I'm deliberately not using AI assistance for the backend. But that's okay. The learning is the point.
What's Coming in Update 2
Next update on Rembiti will include..
Real screenshots. The actual app UI, not just mockups. What it looks like on a phone.
Backend progress. More details on the Go implementation. What I've built, what's working, what's still rough.
Demo video. A walkthrough of adding a contact, setting up reminders, and using message templates.
Go learnings. Deeper dive into what I've learned about the language after more months of using it.
The timeline is longer than my other projects since I'm learning as I go. But it's happening.
FAQ
Why "Rembiti"?
It's a play on "remember" and "birthday." Plus "remind" and "bit." I was messing around with name generators and it stuck. Still might change it before launch.
Why not just use the Contacts app birthday feature?
Because it just adds birthdays to your calendar. No notes about the person. No message templates. No smart reminders before the day. No searchable context about your relationship with them.
What platforms?
iOS and Android initially. Possibly a simple web version later.
Will there be a free tier?
Yes. Basic birthday reminders and contact storage will be free. Premium features like advanced templates, unlimited notes, and extra customization will be paid.
When will it launch?
Sometime in 2026. It's the longest-horizon project I'm working on since I'm deliberately slowing down to learn Go properly.
Why Go for a mobile app backend?
Fast, simple, good for APIs, compiles to a single binary, excellent concurrency. It's probably overkill for a birthday reminder app, but learning it will pay dividends on future projects.
Will you eventually use AI assistance?
Probably, once I feel like I actually know Go well enough that the AI is speeding me up rather than doing my thinking. Maybe after 6 months of manual coding. We'll see.
Closing Thoughts
Building software the old way is humbling.
When you can't just accept AI suggestions, you realize how much you don't know. How many syntax details you've forgotten. How many error messages you've never actually read carefully.
It's slower. It's more frustrating. Some days I wonder why I'm doing this to myself when I could just let Copilot carry me.
But when something works, when I've actually written and understood every line, that feels different. It feels earned.
Rembiti is a simple app with a simple purpose. Remember birthdays and help you be thoughtful about the people in your life. But building it is teaching me more than any tutorial or course ever could.
More updates to come. 2026 is going to be interesting.
Related Articles
Building a Travel Tracker App for Couples (Because We Needed One)
My girlfriend and I love traveling together. We wanted an app to track everywhere we've been - not just countries, but cities too. So I'm building it myself.
I'm Building a Life OS That Actually Respects Your Privacy
Most productivity apps sell your data. I'm building a local-first Life OS with encryption, offline AI, and zero cloud dependency. Here's why and how.