This is a submission for the Hacktoberfest Weekend Challenge: Build for a Friend
Meet PingMe 👋
Say it. Forget it. We'll remember.
Have you ever told yourself:
"I need to call Mom tomorrow morning."
Or:
"I have to send that presentation tonight, pay the electricity bill by Thursday, and prepare for my interview on Monday."
And then... completely forgotten about it?
I have. My friends have too.
The funny thing is, we already have calendars, reminder apps, note-taking apps, and to-do lists.
So why do we still forget things?
That question became the starting point for PingMe.
What I Built
I didn't want to build another to-do app.
There are already hundreds of them.
The problem I noticed was much simpler:
Our thoughts don't arrive as perfectly organized to-do lists.
They arrive like this:
"Tomorrow remind me at 10 to send my resume, I need to buy medicine in the evening, and my interview is Monday at 2."
A normal task app expects you to separate all of that yourself.
You create one task.
Choose its date.
Choose its time.
Save it.
Create another task.
Choose another date.
Save it.
Then create an event.
Then maybe create a reminder.
That's a surprising amount of work just to make sure you don't forget something.
So I built PingMe, an AI-powered memory companion where you can simply write what's on your mind.
PingMe figures out the rest.
🧠 Brain Dump
The main feature of PingMe is something I call Brain Dump.
Instead of filling out forms, you just type naturally.
For example:
"Tomorrow remind me at 10 to send my resume, buy medicine in the evening, and my interview is Monday at 2."
Then press:
✨ Sort My Brain
PingMe reads the whole thought and turns it into something useful:
Tomorrow — 10:00 AM
📋 Send resume
Tomorrow — Evening
📋 Buy medicine
Monday — 2:00 PM
📅 Interview
You don't need to tell PingMe which part is a task, which part is an event, or manually separate everything.
The AI handles that.
Why I Built It for a Friend
The theme of this challenge is Build for a Friend, and that shaped the entire idea behind PingMe.
I thought about how people actually remind each other about things.
A friend doesn't normally say:
"Please create a medium-priority task with a due date of October 5 at 10:00 AM."
They say:
"Bro, remind me tomorrow morning to send that email."
😄
And somehow we understand exactly what they mean.
That's the experience I wanted PingMe to have.
I wanted it to feel less like filling out a productivity form and more like telling a dependable friend:
"Hey, don't let me forget this."
That's also where the name came from.
Ping me when I need to remember.
It's Not Just About Creating Tasks
Once PingMe understands something, you remain in control.
You can:
- ✏️ Edit a task
- 🗑️ Delete something you don't need
- ✅ Mark tasks as completed
- 📅 See what's coming up
- 🧠 Add more thoughts using Brain Dump
- 🎙️ Listen to a spoken summary of your day
I intentionally kept the experience simple.
I didn't want PingMe to become project-management software.
No complicated workspaces.
No teams.
No boards with 20 different columns.
No account setup just to remember that you need to buy medicine tomorrow.
The goal is:
Capture the thought → understand it → remember it.
🔊 "Tell Me My Day"
This became one of my favorite parts of the project.
Sometimes you don't want to look through another screen in the morning.
So PingMe can tell you about your day.
Press Tell Me My Day, and PingMe creates a simple summary of what you have coming up.
For example:
"You have three things today. Remember to send your resume at 10 AM, buy medicine this evening, and prepare for your upcoming interview."
For the voice, I integrated ElevenLabs.
That turns PingMe from something you constantly have to check into something that can actually speak to you like an assistant.
This integration isn't there just to add another technology to the project.
It fits the original idea:
What would a helpful friend do?
They wouldn't hand you a JSON file. 😅
They'd probably say:
"Hey, you've got these things today. Don't forget."
That's what I wanted PingMe to feel like.
Demo
The complete application is deployed and working here:
👉 https://pingme.soumwadeepguha.com/
Try giving it something messy rather than writing a perfectly formatted task.
For example:
"I need to call Mom tomorrow morning, send the presentation tonight and pay the electricity bill before Thursday."
Then press:
✨ Sort My Brain
That's the best way to experience what PingMe is supposed to do.
Code
The project is open source and the source code is available on GitHub:
👉 https://github.com/soumwadeep/PingMe
The repository also contains information about the architecture, setup, AI integration, and how to run PingMe locally.
How I Built It
I wanted the technical side of PingMe to support one very simple experience:
Your messy thought
↓
PingMe
↓
Open-source AI
↓
Understand meaning
↓
Tasks / Events / Reminders
↓
My Day
↓
Don't forget! 🔔
Underneath that simple experience, several things are happening.
🧠 Gemma — The Brain Behind PingMe
The most important part of PingMe is understanding what the user actually means.
That's where Gemma comes in.
Gemma is used as the open-weight AI at the core of PingMe's understanding layer.
Imagine somebody writes:
"Need to send Shreshtha the deck tonight and remind me tomorrow morning to call Mom."
A computer normally just sees a sentence.
PingMe needs to understand that there are actually two separate commitments hiding inside it.
One is:
Send Rohan the deck — tonight
The other is:
Call Mom — tomorrow morning
PingMe sends the natural-language thought through its AI extraction layer.
The model identifies useful information such as:
- What needs to be done
- Whether something is a task or event
- When it needs to happen
- Whether a time was mentioned
- How the sentence should be separated into individual commitments
The result is then converted into structured information that the rest of PingMe can understand.
One important thing I added here was validation.
AI output isn't blindly trusted.
The response is checked before PingMe turns it into something that appears in your day.
The user also gets the ability to edit or delete commitments afterward.
AI organizes. The human stays in control.
🗓️ Understanding Human Time
One surprisingly interesting challenge was time.
Humans rarely speak in database-friendly dates.
We don't normally say:
"Create this for 2026-10-05T10:00:00."
We say:
"Tomorrow morning."
"Tonight."
"Next Monday."
"Before Thursday."
For PingMe to feel natural, it has to understand those phrases in the context of today.
That means the AI receives the relevant date and time context so it can interpret relative phrases correctly instead of guessing blindly.
It's a small detail, but it makes a huge difference to the experience.
💾 Local-First by Design
Something else mattered to me while building PingMe:
These are personal thoughts.
A person's reminders can reveal a surprising amount about their life.
Appointments.
Family commitments.
Interviews.
Bills.
Work.
Travel.
Medication reminders.
Personal plans.
So I designed PingMe with a local-first approach for the user's stored commitments.
The application keeps the user's task data in browser storage rather than requiring an account and sending every saved task to a central database.
The AI still needs the Brain Dump text when you explicitly ask it to understand and organize that text, but the application doesn't need a giant cloud database containing everyone's personal task history just to function.
That separation was intentional.
☁️ Render — Where PingMe Lives
I deployed the application using Render.
Render gives PingMe its production environment and allows the application and its server-side functionality to be available as a real product instead of remaining a localhost hackathon demo.
The live version is available at:
https://pingme.soumwadeepguha.com/
Having the server side deployed is particularly important because sensitive service credentials shouldn't be placed directly inside frontend code.
PingMe can keep those integrations behind its server-side endpoints while the user gets a simple web interface.
🎙️ ElevenLabs — Giving PingMe a Voice
I used ElevenLabs for the voice experience behind Tell Me My Day.
PingMe first understands the user's commitments and builds a natural daily briefing.
ElevenLabs then turns that briefing into speech.
This creates a completely different way of interacting with the product.
Instead of:
Open app → scan tasks → understand schedule
you can simply ask PingMe to tell you about your day.
That was one of those features where, after getting it working, PingMe started feeling much more like a companion than a task manager.
The Tech Behind It
For anyone interested in the technical side, PingMe is built with a modern web stack including:
- Next.js
- React
- TypeScript
- Material UI
- Gemma
- IndexedDB / browser-side persistence
- ElevenLabs
- Render
But I deliberately tried to hide most of that complexity from the person using PingMe.
A non-technical user shouldn't need to know what model inference, structured output, IndexedDB, or an API route is.
They should only need to know:
Write what you're thinking. PingMe will organize it.
If the technology disappears into the experience, I think it's doing its job.
Why Does Open Innovation Matter?
This part of the challenge was especially interesting to me.
There are plenty of closed AI APIs that can understand a sentence.
So why care about open models?
Because I don't think AI should only exist as a black box that developers rent one request at a time.
Open-weight models such as Gemma give developers much more freedom to understand, experiment with, customize, optimize, and eventually run intelligence in environments that make sense for their users.
That matters particularly for a product like PingMe.
The information we give a memory assistant can be personal.
Today PingMe uses an AI inference layer to understand Brain Dumps, but an open-model architecture gives this idea somewhere much more interesting to go in the future:
Fully local AI.
Imagine downloading PingMe and having the intelligence itself running on your own device.
No account.
No sending your personal thoughts to an external AI service.
No internet connection required for understanding them.
Just:
You → your device → your AI.
Open innovation makes that direction possible.
And that's much more exciting to me than simply replacing one API endpoint with another.
What Was Harder Than I Expected?
At first, PingMe sounded simple.
"Take a sentence and turn it into tasks."
Then I started thinking about sentences like:
"My interview is Monday at 2, remind me Sunday evening to prepare and I also need to send my resume tomorrow."
Now we're dealing with:
- an event
- a preparation reminder
- another task
- three different times
- relative dates
- implied relationships between them
And humans can still understand that sentence almost instantly.
Teaching software to transform that messy human thought into clean, useful information—without making the user learn a special command format—was the interesting part of this project.
Another challenge was deciding what not to build.
It's very tempting during a hackathon to keep adding features.
Calendar.
Teams.
Projects.
Analytics.
Accounts.
Collaboration.
But every time I considered another feature, I came back to one question:
Does this make "don't let me forget this" easier?
If not, it probably didn't belong in this version.
What I Learned
This project reminded me that AI products don't always need to start with a chatbot.
Sometimes AI is more useful when it quietly removes a step.
Without PingMe:
Think → remember → open app → create task → choose type → choose date → choose time → save
With PingMe:
Think → say it
That's the experience I'm trying to build toward.
I also learned that the most interesting AI interface isn't necessarily a giant chat window.
The intelligence can sit between what a human naturally says and what software needs to understand.
That is exactly what PingMe does.
What's Next?
There are several directions I'd love to explore after the challenge.
🧠 More capable local AI
My biggest goal would be moving more of PingMe's intelligence directly onto the user's device.
🔔 Better reminders
Smarter reminders based on urgency and context rather than simply displaying a fixed notification.
🎙️ Voice-first Brain Dump
Instead of typing anything:
"PingMe, remind me tomorrow morning to..."
and you're done.
🔁 Recurring commitments
Things like:
"Remind me to call my parents every Sunday."
📅 Calendar integration
Allow confirmed events to optionally appear in the user's existing calendar.
📱 Mobile experience
Turn PingMe into an even faster always-available capture experience on phones.
But I want to keep one principle regardless of how much PingMe grows:
It should always be easier than creating the reminder manually.
Why PingMe?
I started this challenge thinking about what I could build for a friend.
I ended it thinking about what we actually expect from a good friend.
A good friend listens.
A good friend understands what you mean even when you don't phrase everything perfectly.
And occasionally...
A good friend says:
"Hey, don't forget that thing you told me about."
That's PingMe.
Not another productivity dashboard.
Not another chatbot.
Just a small AI companion designed around a very human problem:
We have too much on our minds.
So...
Say it.
Forget it.
We'll remember. 💜
Prize Categories
I'm submitting PingMe for the partner categories that directly correspond to technologies used in the working project:
🧠 Gemma
Gemma provides the open-weight AI foundation for understanding natural Brain Dumps and transforming them into structured commitments.
☁️ Render
PingMe's production application is deployed using Render and is available through its live domain.
🔊 ElevenLabs
ElevenLabs powers PingMe's spoken Tell Me My Day experience, turning daily briefings into natural voice output.
Each integration serves an actual part of the product rather than being included solely for the category.
Try PingMe 💜
Live:
https://pingme.soumwadeepguha.com/
Source Code:
https://github.com/soumwadeep/PingMe
Give it a messy thought.
Something you'd normally tell a friend not to let you forget.
Then hit Sort My Brain.
I'd love to know whether PingMe understood you. 🙂




Top comments (0)