Inspiration
Honestly it started from something pretty simple, texting your family "hey I'm fine, had a normal day" gets old fast, and most people just stop doing it once uni gets busy. We wanted something that handles that in the background instead of you having to sit down and write an update every night.
Before we started coding we did a competitor breakdown on an app called SetLog, similar co-vlogging idea but for friend groups, and it shaped a lot of our decisions. Their whole thing is you have to actively record clips all day, which is effort. Ours is the opposite, it tracks passively, but that comes with its own problem, it can come across as creepy or surveillance-y if you're not careful. So opt-in, not opt-out, became something we kept checking ourselves against the whole build, and it ended up shaping real features, not just a privacy toggle for show.
What it does
Konekt runs in the background through your day and quietly tracks where you go using your phone's real location, no manual check-ins needed. At the end of the day you attach a few photos or videos to the stops it picked up, hit make today's recap, and Claude turns that into an actual warm, human sounding summary of your day instead of a list of GPS coordinates.
Before it goes anywhere you get to review it, you can exclude any stop you don't want included and add a personal note on top of the AI writeup. Once you send it, it goes to whoever you've connected with on the app, real profiles you've invited and who accepted from their own account, not some generic contact list. They get it in their inbox, can react to it, and you get notified when they do. Everything you've sent stays saved in a Memory Lane tab so it's not just a one time message that disappears.
Privacy is opt-in the whole way through, location sharing defaults off and when it's off the location data genuinely isn't sent, not just hidden from view. The whole point is your family gets to feel like they know how your day went without you ever having to sit down and type it out yourself.
How we built it
It's an Expo and React Native app in TypeScript, Firebase on the backend, and Claude for actually writing the day's summary instead of us hardcoding fake text. We split into tracks and worked in parallel on separate git branches, app shell and nav, screens, the AI and backend pipeline, maps and location, and profiles and privacy, then merged everything through pull requests.
The app tracks your real location through the day using expo-location, not mock data. You attach photos or videos to the stops it picks up, hit make today's recap, and Claude turns it into an actual written paragraph instead of a list of GPS pings. You can exclude any stop before sending, add a personal note, and only then does it save and land in your inbox.
People is a real signed-up-profile system now, you search for someone else who's signed up, send them an invite, and only they can accept it from their own account, which is what actually authorises you to send them recaps. Once connected, reactions on a recap actually notify the sender through an activity screen, privacy toggles genuinely strip location data when turned off rather than just hiding it in the UI, and there's a Memory Lane tab that keeps every past day in one place so it's not lost the moment you send it. We also set up an EAS build so it can be installed as a real APK, not just run through a dev server.
Challenges we ran into
React native maps just does not work in Expo Go on Android, Google Maps auth fails and you get a black screen. We lost real time to that before switching to Leaflet inside a WebView, which needs no API key and just works.
We had a bug where recaps were saved to Firestore under one id but looked up by a different id, so opening your own recap would silently fail. Took a while to catch. Firestore rejects the entire write if any field is undefined, so any recap sent without a highlight note failed with a completely unhelpful error until we tracked it down.
We tried uploading a recorded voice memo to Firebase Storage and kept getting a vague storage unknown error no matter what we changed. Eventually decided it wasn't worth the time and cut the feature, keeping the text note version instead.
Five people merging into main at once caused actual regressions more than once, someone's fix would quietly undo someone else's feature. That was probably the biggest time sink of the whole hackathon, more than any single bug. Lastly, university wifi blocked our phones from even reaching the dev server half the time, so we had to fall back to tunnel mode just to test on a real device.
Accomplishments that we're proud of
Getting the whole pipeline to actually work end to end feels like the biggest one, real GPS tracking through the day, into a genuinely different AI-written summary every time (not a template with names swapped in), attached photos and videos, all the way to landing in someone else's inbox for real. It's easy to fake that in a demo, we didn't.
We're also proud that the invite system is actually correct, not just for show, only the person who was invited can accept it from their own account, which is what unlocks you sending them recaps. And privacy toggles genuinely strip the location data server side rather than just hiding it in the UI, so the opt-in principle we cared about going in is actually true, not just marketing.
Managing to keep shipping through five people merging into main at the same time, plus a run of real infrastructure problems, react native maps not working on Android, university wifi blocking our own dev server, Firebase throwing vague errors, and still coming out the other side with something that installs as a real APK, not just runs in a dev client, felt like a genuine win by the end.
What we learned
Mostly that scope creeps up faster than you'd expect, we kept almost adding full password based authentication, real push notifications, full voice recording, and every time the smaller version was the right call for the time we had. Privacy has to be built into how you store and query data from the start, not bolted on as a checkbox later. And merging code between people more often, instead of one big merge at the end, would have saved more time than any other single decision we could have made.
What's next for Konekt
A few things got scoped out on purpose and are the obvious next steps. Voice memos got cut because of a Firebase Storage error we couldn't pin down in time, that's worth revisiting properly. We also never built the fallback photo labeling we talked about early on, clearly marking a stock photo as suggested instead of letting it pass as something you actually took, which matters a lot for trust. Same with the hidden places idea, letting someone flag certain locations that always get double checked with them before going into a recap, rather than being included automatically.
Beyond that, one gentle end of day reminder notification instead of relying on someone remembering to open the app, sending a single day to more than one person at once instead of one recipient at a time, and smarter stop detection from raw GPS points instead of relying on simple dwell time would all make the actual day to day experience feel a lot more finished.
Built With
- anhtropic
- asyncstorage
- claude
- cloud
- eas
- expo.io
- firebase
- firestore
- github
- javascript
- leaflet.js
- node.js
- openstreetmap
- react-native
- router
- typescript
- unsplashapi
Log in or sign up for Devpost to join the conversation.