Break free from endless scrolling. Join challenges, compete with others, and win SOL rewards for building better digital habits.
Features • Demo • Tech Stack • Getting Started • Architecture
Doomscroll is a Web3-powered digital wellness app that helps users break free from social media addiction through gamified challenges and financial incentives. Built on Solana blockchain, it combines behavioral psychology with crypto economics to create lasting habit change.
- Average person spends 2.5+ hours daily on social media
- Traditional screen time apps lack accountability and motivation
- No financial incentive to build better habits
- 📊 Automatic screen time tracking across Instagram, Twitter, Reddit, and TikTok
- 🏆 Competitive challenges with real money on the line
- 💰 Win SOL rewards by staying under your doom limit
- 📈 Live leaderboards to keep you accountable
- 🔒 Blockchain-verified results - no cheating possible
- Join Challenges: Browse and join upcoming or active challenges with SOL entry fees
- Multiple Durations: 2-day weekend challenges to 30-day transformations
- Custom Doom Limits: Each challenge has a daily screen time threshold (e.g., 60 min/day)
- Prize Pools: Winners split the entire prize pool equally
- Real-time Leaderboards: See your rank and compete with others
- Automatic Monitoring: Tracks Instagram, Twitter, Reddit, and TikTok usage
- Daily Doom Meter: Visual indicator showing if you're under or over your limit
- Weekly Analytics: See your usage patterns over time
- Activity Rings: Per-app breakdown of your daily usage
- Solana Mobile Wallet Adapter: Seamless Phantom wallet integration
- On-chain Challenges: All challenges stored on Solana blockchain
- Transparent Rewards: Automatic distribution via smart contracts
- Devnet Ready: Built for Solana devnet with mainnet-ready architecture
- Dark Theme: Easy on the eyes for extended use
- Smooth Animations: Native-feeling transitions and interactions
- Intuitive Navigation: Bottom tab navigation with clear hierarchy
- Motivational Design: Encouraging messages and visual feedback
- Onboarding → Connect Phantom wallet and set your doom limit
- Browse Challenges → Explore upcoming and active challenges
- Join Challenge → Pay entry fee (e.g., 0.5 SOL) via Phantom
- Track Progress → Monitor your daily usage and leaderboard rank
- Win Rewards → Stay under the limit and split the prize pool!
- Home Screen: Doom meter, activity rings, weekly stats, and challenge progress
- Challenges: Browse, filter (Joined/Upcoming/All), and join challenges
- Challenge Details: Full info, leaderboard, daily progress calendar, and rules
- Profile: Stats, achievements, and wallet info
- Framework: React Native with Expo (SDK 52)
- Language: TypeScript
- Styling: NativeWind (Tailwind CSS for React Native)
- Navigation: React Navigation v6
- State Management: React Context + TanStack Query
- Wallet: Solana Mobile Wallet Adapter
- Fonts: Poppins (Google Fonts)
- Runtime: Node.js with Express
- Language: TypeScript
- Database: PostgreSQL with Prisma ORM
- Authentication: Solana wallet signature verification
- Jobs: Cron jobs for challenge sync and reward distribution
- API: RESTful endpoints with rate limiting
- Platform: Solana (Anchor Framework)
- Language: Rust
- Network: Devnet (mainnet-ready)
- Features:
- Create challenges
- Join challenges
- End challenges
- Distribute rewards
# Node.js 18+
node --version
# Yarn or npm
yarn --version
# Solana CLI (for contract development)
solana --version
# Anchor (for contract development)
anchor --version
# PostgreSQL (for server)
psql --versiongit clone https://github.com/yourusername/doomscroll.git
cd doomscroll# Start PostgreSQL with Docker
docker-compose up -d
# Run migrations
cd server
yarn install
npx prisma migrate devcd server
yarn install
# Create .env file
cp .env.example .env
# Start server
yarn devcd client
yarn install
# Start Expo dev server
yarn start
# Run on Android (requires dev build)
yarn androidcd contract
yarn install
# Build contract
anchor build
# Deploy to devnet
anchor deploy --provider.cluster devnet┌─────────────────┐
│ Mobile App │
│ (React Native) │
└────────┬────────┘
│
├─────────────────┐
│ │
▼ ▼
┌─────────────────┐ ┌──────────────┐
│ Backend API │ │ Solana │
│ (Express) │ │ Blockchain │
└────────┬────────┘ └──────────────┘
│
▼
┌─────────────────┐
│ PostgreSQL │
│ Database │
└─────────────────┘
- User connects wallet → Mobile Wallet Adapter → Phantom
- User joins challenge → Transaction sent to Solana → Entry fee deducted
- Screen time tracked → Reported to backend → Stored in PostgreSQL
- Challenge ends → Cron job triggers → Smart contract distributes rewards
- Winners receive SOL → Automatic transfer to wallet
client/
├── src/
│ ├── components/ # Reusable UI components
│ ├── screens/ # Screen components
│ ├── navigators/ # Navigation setup
│ ├── contexts/ # React Context providers
│ ├── hooks/ # Custom React hooks
│ ├── services/ # API services
│ └── utils/ # Utility functions
├── assets/ # Images, fonts, etc.
└── app.json # Expo configuration
server/
├── src/
│ ├── routes/ # API route handlers
│ ├── middleware/ # Express middleware
│ ├── jobs/ # Cron jobs
│ └── services/ # Business logic
├── prisma/
│ └── schema.prisma # Database schema
└── .env # Environment variables
contract/
├── programs/
│ └── doomscroll/
│ ├── src/
│ │ ├── lib.rs # Main program
│ │ ├── state/ # Account structures
│ │ └── instructions/ # Program instructions
│ └── Cargo.toml
└── Anchor.toml # Anchor configuration
DATABASE_URL="postgresql://postgres:postgres@localhost:5432/doomscroll"
PORT=3000
SOLANA_RPC_URL="https://api.devnet.solana.com"
SOLANA_PROGRAM_ID="your_program_id_here"{
"expo": {
"name": "Doomscroll",
"slug": "doomscroll",
"scheme": "doomscroll"
}
}- Basic screen time tracking
- Challenge creation and joining
- Wallet integration
- Leaderboard system
- Reward distribution
- Social features (friends, teams)
- Achievement badges and NFTs
- Custom challenge creation by users
- Advanced analytics dashboard
- Push notifications
- Mainnet deployment
- iOS support
- Multi-chain support (Ethereum, Polygon)
- Partnership integrations
- Referral program
We welcome contributions! Please follow these steps:
- Fork the repository
- Create a feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
Built with ❤️ by the Doomscroll team
- Kshitij - Full Stack Developer & Blockchain Engineer
- Solana Mobile Stack for wallet adapter
- Expo for amazing mobile development tools
- Anchor for Solana smart contract framework
- Phantom Wallet for seamless Web3 integration
- Website: doomscroll.com
- Twitter: @doomscrollapp
- Email: hello@doomscroll.com
⭐ Star this repo if you find it helpful!
Made with 💜 for the Solana ecosystem
