Kudos reimagines social media by replacing traditional "likes" with a scarce token economy. Every user receives a limited supply of tokens, making engagement meaningful and thoughtful. Instead of infinite, reflexive likes, users must spend their hard-earned tokens to signal appreciationβcreating economic incentives for quality content and meaningful curation.
"By reducing how easy it is to like content, the bar for what goes viral goes a notch higher."
Traditional social media incentivizes engagement at any cost. Kudos flips this model:
- Likes become investments β Spend 1-10 tokens to express how much you value content
- Quality rises naturally β When engagement costs something, users think before they click
- Creators are rewarded β Great content creators accumulate tokens and influence
- Fair redistribution β Progressive taxation and stipends ensure everyone can participate
- π° 100 starting tokens for every new user
- π 60/20/20 split β 60% to creator, 20% to government pool, 20% burned
- π Progressive taxation β Wealthy accounts pay more to fund stipends
- π Weekly stipends β Active users receive tokens from the community pool
- β° Time decay β Inactive content gradually loses token value
- π Posts with token metrics β See both engagement count AND total tokens spent
- π¬ Comments cost tokens β First 2 daily comments free, then 0.5 tokens each
- π₯ MLFQ Feed Algorithm β Content moves through Hot β Warm β Cold β Archive queues
- β©οΈ 24-hour unlike window β Changed your mind? Get a full refund within 24 hours
- π± Phone number authentication β One account per phone number
- π€ Public pages β Multiple personas, unified token pool
- π Multiple feed types β Hot Today, Following, Hidden Gems, Trending
- π Wealth transparency β Public leaderboards and wealth metrics
Kudos uses a microservices architecture with services split by technology and responsibility:
βββββββββββββββββββ
β Frontend β
β (Next.js) β
β Port 3000 β
ββββββββββ¬βββββββββ
β
βΌ
βββββββββββββββββββ
β API Gateway β
β (Node.js) β
β Port 8080 β
ββββββββββ¬βββββββββ
β
βββββββββββββββββββββββββββββββββββΌββββββββββββββββββββββββββββββββββ
β β β
βΌ βΌ βΌ
βββββββββββββββββ βββββββββββββββββ βββββββββββββββββ
β HTTP Services β β gRPC Services β β Background β
β (Node.js) β β (Go) β β Jobs (Go) β
βββββββββββββββββ βββββββββββββββββ βββββββββββββββββ
β β β
βββββββββ΄ββββββββ ββββββββββ΄ββββββββ β
β β β β β
βΌ βΌ βΌ βΌ β
ββββββββ ββββββββ ββββββββ ββββββββ β
β Auth β βContentβ βToken β β Feed β β
β:4000 β β:4001 β β:50051β β:50052β β
ββββββββ ββββββββ ββββββββ ββββββββ β
β β β β β
βΌ βΌ βΌ βΌ β
ββββββββ ββββββββ ββββββββ ββββββββ ββββββββ΄ββββββββ
β User β β β β β β β β Jobs Serviceβ
β:4002 β β β β β β β β :4004 β
ββββββββ β β β β β β ββββββββββββββββ
β β β β β β β
ββββββββ΄ββββββββββ΄βββββββ΄βββββββββ΄βββββββ β
β β
βΌ β
βββββββββββββββββββ β
β PostgreSQL ββββββββββββββββββββββββββββββ
β :5432 β
βββββββββββββββββββ
| Service | Technology | Port | Responsibility |
|---|---|---|---|
| Frontend | Next.js 16 | 3000 | Web UI, user experience |
| API Gateway | Node.js | 8080 | Request routing, rate limiting, auth, proxy |
| Auth Service | Node.js | 4000 | Phone verification, JWT authentication |
| Content Service | Node.js | 4001 | Posts, comments, content management |
| User Service | Node.js | 4002 | Profiles, avatars, user search |
| Token Service | Go (gRPC) | 50051 | Token spending, balance, transactions |
| Feed Service | Go (gRPC) | 50052 | MLFQ feed generation, trending |
| Jobs Service | Go | 4004 | Decay, taxation, stipends, queue updates |
| PostgreSQL | - | 5432 | Primary database |
- Docker and Docker Compose
- Node.js 18+ and npm
- Go 1.21+
- PostgreSQL 15+ (or use Docker)
# Clone the repository
git clone https://github.com/yourusername/kudos.git
cd kudos
# Copy environment file
cp .env.example .env
# Edit .env with your settings
# - Set DB_PASSWORD
# - Set JWT_SECRET
# - Set Twilio credentials for SMS (optional for dev)# Start all services
docker-compose up -d
# Check service health
make health
# View logs
docker-compose logs -f- Frontend: http://localhost:3000
- API Gateway: http://localhost:8080
- Health Check: http://localhost:8080/health
# Install dependencies
make setup
# Start database
make db-up
# Run all services in development mode
make dev
# Or run individual services
make dev-auth # Auth service
make dev-content # Content service
make dev-user # User service
make dev-gateway # API gateway
make dev-token # Token service (Go)
make dev-feed # Feed service (Go)
make dev-jobs # Jobs service (Go)kudos/
βββ backend/
β βββ node/
β β βββ api-gateway/ # Central API routing & proxying
β β βββ auth-service/ # Phone auth & JWT management
β β βββ content-service/ # Posts & comments
β β βββ user-service/ # Profiles & avatars
β βββ go/
β β βββ go-core/ # Token, Feed, & Jobs services
β βββ shared/ # Shared types & utilities
βββ frontend/ # Next.js web application
βββ docker-compose.yml # Docker orchestration
βββ schema.sql # Database schema
βββ Makefile # Development commands
βββ DESIGN.md # Token economics spec
βββ README.md # This file
# Setup & Installation
make setup # Install all dependencies
# Database
make db-up # Start PostgreSQL
make db-down # Stop PostgreSQL
make db-reset # Reset database (WARNING: deletes data)
# Services
make services-up # Start all services (Docker)
make services-down # Stop all services
make services-restart # Restart all services
# Development
make dev # Run all services in dev mode
make dev-auth # Run auth service only
make dev-content # Run content service only
make dev-user # Run user service only
make dev-gateway # Run API gateway only
make dev-token # Run token service only
make dev-feed # Run feed service only
make dev-jobs # Run jobs service only
# Logs
make logs # View all service logs
make logs-auth # View auth service logs
make logs-gateway # View gateway logs
# Testing
make test # Run all tests
make health # Check all service health
# Cleanup
make clean # Remove dependencies & generated files
make stop # Stop all running services- DESIGN.md β Complete token economics design & specification
- backend/node/auth-service/README.md β Auth service docs
- backend/node/content-service/README.md β Content service docs
- backend/node/user-service/README.md β User service docs
- backend/node/api-gateway/README.md β API gateway docs
- backend/go/go-core/README.md β Token service docs
- backend/go/go-core/FEED_README.md β Feed service docs
- backend/go/go-core/JOBS_README.md β Jobs service docs
- frontend/README.md β Frontend docs
When a user spends 10 tokens on a post:
- 6 tokens (60%) β Creator
- 2 tokens (20%) β Government pool (funds stipends)
- 2 tokens (20%) β Burned (deflationary)
| Balance | Tax Rate |
|---|---|
| 0-200 | 0% (exempt) |
| 201-500 | 5% |
| 501-1,000 | 10% |
| 1,001-2,000 | 15% |
| 2,000+ | 20% |
- Base stipend: ~10 tokens/week for active users
- Engagement bonus: +10 tokens if you earned tokens last week
- New user bonus: 2x stipend for first 4 weeks
See DESIGN.md for the complete specification.
# Send OTP
curl -X POST http://localhost:8080/api/v1/auth/send-otp \
-H "Content-Type: application/json" \
-d '{"phone": "+1234567890"}'
# Verify OTP
curl -X POST http://localhost:8080/api/v1/auth/verify-otp \
-H "Content-Type: application/json" \
-d '{"verification_id": "...", "code": "123456"}'# Create post
curl -X POST http://localhost:8080/api/v1/posts \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{"content": "Hello Kudos!"}'
# Spend tokens on a post
curl -X POST http://localhost:8080/api/v1/tokens/spend \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{"target_type": "post", "target_id": "...", "amount": 5}'# Get global feed
curl http://localhost:8080/api/v1/feed/global?limit=20
# Get trending posts
curl http://localhost:8080/api/v1/feed/trending?time_window=day