-
-
AI-powered Group Plans space tab coordinating shared events, dates, locations, and RSVP tracking.
-
Real-time activity stream tracking likes, comments, group invites, and party game notifications.
-
Milo AI Member Panel managing group memory, personality tuning, and autonomous chat initiatives.
-
Rich group chat with media sharing, interactive message bubbles, and Milo the AI companion.
-
Group Memories space tab archiving AI-curated event recaps, inside jokes, and shared milestones.
-
Story Forge game stage with author-colored text, dynamic tension timer, and tactile 5-word crystal grid.
-
Rich group chat with media sharing, interactive message bubbles, and Milo the AI companion.
-
Doodle Duel party lobby featuring Milo the AI mascot host, prompt sources, and live player roster.
-
-
-
-
-
-
-
-
Inspiration
Social apps are built for an audience. The group chat is where the actual relationship lives, and that is also where it gets lost. Plans die under a hundred messages. Photos never become a shared memory. Nobody can explain why the group keeps doing the same Saturday.
LORE started from that gap. We wanted a social app that feels as familiar as Instagram, then puts the friend group at the center. The AI is not a chatbot you open in another tab. It is a member of the group, disclosed as AI, and only allowed to remember what people consent to.
What it does
LORE is a relationship-first social app. You get a home feed, stories, reels, explore, profiles, direct messages, and group chats. A dense demo world of 30 people and 12 groups is already living in it, so the app feels populated the moment you sign in.
Inside a group, Milo is an AI member. Milo can answer in the chat, help plan something to do, and stay quiet when muted. Plans search real events and places, then the group votes and a person confirms. Afterward the group can turn the night into a private recap, a family story, or a short podcast.
Groups can also play together: One-Word Story, Meme Battle, and Pictionary. Find Friends matches people from public interests, not from reading private chats. A confirmed memory can be saved as a keepsake, a public note of that shared moment on Solana’s practice network. Nobody needs a crypto wallet. An impact page reports aggregate, privacy-safe stats, such as how often groups follow through on plans, without opening anyone’s messages.
How we built it
We split the build in two and merged it. One side owned the social platform: accounts, feed, stories, reels, chat, groups, and the app shell. The other owned intelligence: Milo, plans, memories, games, discovery, and the impact page.
The app is a TypeScript monorepo. The site is Next.js. The API is Fastify with Postgres, including vector search for interests and memory. Realtime chat uses Socket.IO. Background jobs handle things that should not block a tap, such as game timers and image generation.
Live models are wired, not mocked, for the demo. Meta’s Muse models write text, make images, and transcribe voice. Gemini embeds interests and checks messages for safety before Milo speaks or an image prompt is sent. SerpAPI supplies real events and places for plans. Snowflake stores the privacy-safe impact events and writes the short public pulse. Solana devnet stores keepsakes.
Challenges we ran into
The hard part was making two large halves feel like one app. A tab that remembered your last page was saving Messages as if it belonged to Reels, so opening Reels showed the inbox. Story close sat under the “next story” tap target, so X advanced instead of leaving. The story heart was sending a message and only saying “Sent,” instead of filling in as a like. Post carousels only responded to a mouse drag, so a trackpad swipe did nothing, and the home screen’s sideways swipe stole the stories row.
Games had the same class of bug. In a solo Meme Battle, voting opened before the AI player had entered, and you are not allowed to vote for yourself, so the round stuck. We also had to keep live AI honest when a provider was slow: image generation falls back, a failed keepsake does not change the memory, and safety runs before Milo talks.
Outside the app, Snowflake’s old Cortex function had been retired, and a network rule locked to one apartment IP would have broken the campus demo. We widened it so the impact page works on any network. Facebook login stayed out because creating the required business portfolio was blocked. The custom domain is waiting on a promo code, so the demo runs on localhost.
Accomplishments that we're proud of
LORE is a full social product, not a single AI demo screen. You can move through feed, stories, reels, messages, a group, a plan, a recap, and a game without hitting a dead end.
We played all three games through on the demo group. One-Word Story finished and illustrated the story. Meme Battle now waits for the AI player before voting. Pictionary scored a wrong guess and a right one and ended in a tie. The story rail behaves like a familiar app: viewed stories move to the back and the ring turns grey. Desktop gets left and right buttons for both stories and photo carousels, which is how we are demoing.
The privacy choices are visible, not buried. Milo is labeled as AI. Impact never reads chat text. A heart on a story is a saved like, not a secret message.
What we learned
A social app is a stack of gestures, and they fight. Edge swipe, story taps, carousel drags, and tab memory all want the same finger. The fix was to decide which layer owns each touch, then test the exact sequence a person would use.
AI features need a failure path as much as a happy path. If the model is slow, the round still has to move. If a search is thin, the plan should offer something at home. If a public record fails, the memory stays.
Merging two codebases only works if the contract is strict: who owns chat, who owns Milo, and which files neither side rewrites. The product appeared when those two sides shared one screen.
What's next for Lore
Facebook sign-in is next, once a business portfolio can be created, so Find Friends can include people you already know. The ourlore.tech domain and a phone home-screen install come after the promo code. We also want games that are easier to jump into with more than one person in the room, and Milo that gets better at staying quiet until the group actually wants a suggestion.
Built With
- bullmq
- context
- css
- drizzle
- fastify
- ffmpeg
- gemini
- meta
- model
- next.js
- node.js
- playwright
- postgresql
- protocol
- react
- redis
- serpapi
- snowflake
- socket.io
- solana
- tailwind
- turborepo
- typescript
- vercel
- zod
Log in or sign up for Devpost to join the conversation.