Caution
Work In Progress: This project is currently in active development. Features are being added and refactored frequently.
The Best Way to Choose Your Baby's Name.
About • Features • Getting Started • Tech Stack • Architecture
"A name is the first gift a parent gives a child."
Little Origin is a polished, high-performance application designed to help couples find the perfect name for their baby. Inspired by the convenience of swipe-based interfaces, it simplifies the overwhelming world of baby names into a collaborative and delightful experience.
- 🎯 Curated Swipe Interface: High-quality name cards with gesture-driven interactions (Framer Motion).
- 💓 Real-time Matching: Instant notifications when you and your partner both "Like" a name.
- 🌍 Global Name Sourcing: Integrated static data and API access to names from over 7 countries.
- 🔐 Data Security: Self-hosted solution with secure authentication (JWT + Argon2).
-
Install Dependencies
pnpm install
-
Configure Environment Create a
.envfile at the root:JWT_SECRET=your_very_secret_key_here
-
Start Development
pnpm run dev
The first run will automatically build all packages before starting the dev servers.
- Frontend: React + Vite + Tailwind CSS
- Backend: Express + Apollo Server
- Database: SQLite + Drizzle ORM
- Gestures: Framer Motion
- Real-time: GraphQL Subscriptions
- Runtime: Mise (Node 24, pnpm)
- Monorepo: Turborepo
- Logic & Validation: Zod
- Linting & Formatting: Biome
- Dependency Management: Syncpack & Knip
The project follows a modular monorepo structure:
├── apps/
│ ├── web/ # React + Vite frontend
│ └── api/ # Express + Apollo backend
├── packages/
│ ├── core/ # Shared DB schemas (Drizzle), types, and constants
│ └── name-data/ # Static name data loader and JSON assets
├── .data/ # SQLite database storage (ignored by git)
└── specs/ # Technical documentation and plansBuilt with ❤️ for future parents.