Inspiration
Family stories disappear. Your grandmother's WWII tale, your grandfather's journey to another country, your uncle's unforgettable adventure—they fade with time unless someone preserves them. We wanted to build a way to capture these narratives before they're lost forever, while also honoring the stories that matter most to you personally.
## What it does
Anecdotario is an AI-powered family story archive that:
- Captures anecdotes with intelligent chat assistance that helps you write compelling narratives
- Preserves lineage: Mark stories as "personal" (things that happened to you) or "familiar" (inherited family tales from ancestors)
- Tracks sources: Record who told you a story, when they told it, and when it actually happened—critical for century-old family histories
- Orders chronologically: Define relative ordering ("this happened before/after that other story") without needing exact dates
- Shares securely: Control who sees each story (private, friends, or shared)
- Works in English & Spanish with multi-language support
## How we built it
- Frontend: Next.js 16 + React 19 + TypeScript
- Backend: Supabase (PostgreSQL) with Row-Level Security policies for privacy
- AI: Claude 3.5 Sonnet via Vercel AI SDK—intelligently detects inherited vs personal stories
- Ordering: Custom topological sort algorithm (Kahn's) to build chronologies from relative relationships
- Database: Created 3 new tables (
anecdote_sources,anecdote_ordering, category column) with RLS protection - Deployment: Vercel with environment variables for Supabase & Blob storage
## Challenges we ran into
- Dating without dates: How do you order stories when you don't know exact dates? We solved it with relative ordering—users compare stories ("this was before X, after Y") and we build a graph
- RLS complexity: Ensuring users can only see their own stories while maintaining privacy across shared relationships required careful policy design
- AI detection: Getting Claude to intelligently detect whether a story is inherited vs personal, then ask for source info—required careful prompt engineering
- Git email mismatches: Deployment blocked because commit author email didn't match GitHub account (lesson: validate early)
- Vercel plan limitations: Hobby Plan doesn't support team collaboration on private repos—had to upgrade to Pro
## Accomplishments that we're proud of
- ✅ Complete hereditary feature: Full pipeline from chat detection → source tracking → chronological ordering
- ✅ Topological sort: Working algorithm that handles conflicts (first relationship wins) and calculates positions
- ✅ Smart chat: Claude detects story type automatically and asks the right follow-up questions
- ✅ Privacy-first: Row-Level Security policies protect user data at the database level
- ✅ Production-ready: Deployed to Vercel with proper environment variables and build optimization
- ✅ Multi-language: Full i18n support for Spanish & English
## What we learned
- Topological sort is powerful: For problems without strict ordering, relative relationships can be more intuitive than absolute timestamps
- Supabase RLS is game-changing: Security at the database layer means you can trust your queries
- AI detection is subtle: Prompting Claude to understand context and ask intelligent follow-ups requires precision
- Git matters: Email configuration affects deployments—catch it early
- Vercel workflow: Private repos with teams require Pro plan, but the deployment experience is excellent once configured
## What's next for Anecdotario
- Family tree visualization: See how stories connect across generations
- Collaborative editing: Multiple family members can refine and add to stories together
- Photo & voice: Attach images and voice recordings to anecdotes
- Export: Generate printable books or PDFs of your family chronicle
- Timeline view: Interactive visual timeline of all family events
- Search & tagging: Find stories by people, dates, or themes
- Analytics: See patterns—when do most stories happen? Who are the main characters?
- Public family archives: Optionally share curated collections with extended family or the internet
Built With
- claude-3.5-sonnet
- date-fns
- lucide-react-icons
- next-intl-(i18n)
- next.js-16
- react-19
- row-level-security-(rls)
- shadcn/ui
- sonner-(toast)
- supabase
- supabase-(postgresql)
- tailwind-css
- typescript
- vercel-(deployment)
- vercel-ai-sdk
- vercel-blob
- zod-(validation)
Log in or sign up for Devpost to join the conversation.