Yoice is a group-based social app where friends answer a daily question and vote together, turning everyday decisions into a shared experience.
Instead of passive content, Yoice focuses on decisions — simple, fast, and social.
- Users belong to groups
- Each group has one daily question
- Members vote and see results instantly
- Groups can optionally share their questions/results publicly
The app combines:
- Daily habit (question of the day)
- Social interaction (groups)
- Lightweight decision-making
backend/: Node.js + Express + Prismafrontend/: Expo (React Native + Web)data/: seed data and static resourcesPostgreSQL: external database
- Group creation and membership
- Daily question per group
- Voting system (1 vote per user)
- Results visualization
- Group visibility settings:
- private
- public question
- public results
- Public feed of shared questions
- User profiles and stats
- Group identity and history
- ActivityPub (fediverse) integration
File: backend/.env
DATABASE_URL="postgresql://user:password@host:5432/yoice"
JWT_SECRET="change-this-secret"
PORT=3001File: frontend/.env
EXPO_PUBLIC_API_URL="http://localhost:3001/api"cd backend
npm install
npm run prisma:generate
npm run prisma:migrate
npm run prisma:seed
npm run startcd frontend
npm install
npm run startUser {
id
username
}
Group {
id
name
visibility
createdBy
}
GroupMember {
userId
groupId
role
}
Question {
id
groupId
text
createdAt
}
Option {
id
questionId
text
}
Vote {
userId
optionId
}Each group defines how its content is shared:
private→ only visible inside the grouppublic_question→ question is publicpublic_results→ results are also public
- Domain refactor (groups + questions)
- Remove WhatsApp-based flows
- Basic group UI
- Voting UX improvements
- Public feed
- Profiles & stats
- Fediverse integration
Yoice is not a traditional social network.
It is designed around:
- decisions instead of content
- groups instead of followers
- daily interaction instead of endless scrolling