A privacy-first anonymous confession platform leveraging Stellar blockchain for immutability, transparency, and trustless verification.
xConfess is an anonymous confession platform where users can share their thoughts, react to confessions, and engage privatelyโall while maintaining complete anonymity. By integrating Stellar blockchain technology, we ensure confessions are verifiable, immutable, and censorship-resistant.
| Feature | Status | Notes |
|---|---|---|
| ๐ Anonymous Confession Posting | โ Implemented | Core module with full CRUD |
| ๐ญ Anonymous User Identity | โ Implemented | Session-based anonymous users |
| ๐ Emoji Reactions | โ Implemented | Reaction module with WebSocket support |
| ๐ฌ Commenting System | โ Implemented | Nested comments with parent-child |
| ๐ Search (Hybrid + Full-text) | โ Implemented | Encrypted search support |
| ๐ก๏ธ AI Content Moderation | โ Implemented | OpenAI-based moderation pipeline |
| ๐ Admin Dashboard & RBAC | โ Implemented | Role-based access control |
| ๐ Report System | โ Implemented | Report + moderation workflow |
| ๐จ Anonymous Messaging | โ Implemented | Author-reply model with constraints |
| โ๏ธ Confession Anchoring (Stellar) | โ Implemented | Hash anchoring on Stellar testnet |
| ๐ท๏ธ Tag System | โ Implemented | Multi-tag confessions |
| ๐ Encryption | โ Implemented | Field-level confession encryption |
| ๐ Audit Logging | โ Implemented | Comprehensive audit trail |
| ๐ฐ XLM Tipping | โ Implemented | Stellar-based micro-tipping |
| ๐ Analytics | โ Implemented | View counts, trending |
| ๐ฆ Data Export | โ Implemented | User data export |
| ๐ Real-time Updates | โ Implemented | WebSocket gateway |
| ๐จ Frontend (Next.js) | โ Implemented | App router with modern UI |
| ๐ NFT Badge System | ๐บ๏ธ Roadmap | Soroban contract placeholder exists |
| ๐ฑ Mobile App | ๐บ๏ธ Roadmap | Not started |
| ๐ Multi-language Support | ๐บ๏ธ Roadmap | Not started |
| ๐๏ธ Community Governance | ๐บ๏ธ Roadmap | Not started |
- NestJS: Robust, scalable Node.js framework
- PostgreSQL: Reliable relational database with JSONB support
- TypeORM: Database ORM with migrations
- WebSockets: Real-time communication (Socket.IO)
- JWT + Passport: Secure session management
- Redis/In-memory Cache: Response caching
- Swagger/OpenAPI: API documentation
- Next.js 14: React framework with App Router
- TailwindCSS: Utility-first styling
- Stellar SDK: Blockchain interactions
- Soroban: Stellar smart contract platform
- Rust: Smart contract development language
- Stellar SDK: JavaScript/TypeScript integration
xconfess/
โโโ README.md # This file
โโโ package.json # Root workspace config
โโโ PERFORMANCE_RESULTS.md # Benchmark results
โโโ PERFORMANCE_BASELINE.md # Performance baselines
โโโ PERFORMANCE_GUIDELINES.md # Performance guidelines
โ
โโโ xconfess-backend/ # NestJS backend
โ โโโ src/
โ โ โโโ main.ts # App bootstrap
โ โ โโโ app.module.ts # Root module
โ โ โโโ auth/ # Authentication (JWT, guards)
โ โ โโโ user/ # User management
โ โ โโโ confession/ # Confession CRUD + tags
โ โ โโโ reaction/ # Emoji reactions
โ โ โโโ comment/ # Comments
โ โ โโโ messages/ # Anonymous messaging
โ โ โโโ report/ # Report system
โ โ โโโ admin/ # Admin panel + RBAC
โ โ โโโ moderation/ # AI content moderation
โ โ โโโ audit-log/ # Audit logging
โ โ โโโ logger/ # Structured logging
โ โ โโโ middleware/ # Express middleware
โ โ โโโ stellar/ # Stellar blockchain integration
โ โ โโโ tipping/ # XLM micro-tipping
โ โ โโโ encryption/ # Field-level encryption
โ โ โโโ cache/ # Cache service
โ โ โโโ analytics/ # Analytics module
โ โ โโโ data-export/ # Data export
โ โ โโโ notifications/ # Notification system
โ โ โโโ websocket/ # WebSocket gateway
โ โ โโโ config/ # Configuration
โ โโโ test/ # E2E tests
โ โโโ e2e/ # Additional E2E tests
โ โโโ migrations/ # Database migrations
โ
โโโ xconfess-frontend/ # Next.js frontend
โ โโโ src/
โ โโโ app/ # App router pages
โ โโโ components/ # React components
โ โโโ lib/ # Utilities
โ
โโโ xconfess-contracts/ # Soroban smart contracts
โ โโโ Cargo.toml # Workspace config
โ โโโ contracts/
โ โโโ confession-anchor/ # โ
Confession hash anchoring
โ โโโ reputation-badges/ # ๐บ๏ธ NFT badges (placeholder)
โ โโโ anonymous-tipping/ # ๐บ๏ธ On-chain tipping (placeholder)
โ
โโโ docs/ # Additional documentation
โโโ scripts/ # Build/deploy scripts
โโโ deployments/ # Deployment configs
- Node.js (v18+)
- PostgreSQL (v14+)
- pnpm or npm
- Rust (for Soroban contract development)
- Stellar CLI (optional, for contract deployment)
-
Clone the repository
git clone https://github.com/Godsmiracle001/xconfess.git cd xconfess -
Install backend dependencies
cd xconfess-backend npm install -
Install frontend dependencies
cd ../xconfess-frontend npm install -
Set up environment variables
Create a
.envfile inxconfess-backend(see.env.example):DATABASE_URL=postgresql://username:password@localhost:5432/xconfess JWT_SECRET=your-super-secret-jwt-key PORT=5000 # Stellar Configuration STELLAR_NETWORK=testnet STELLAR_HORIZON_URL=https://horizon-testnet.stellar.org CONFESSION_ANCHOR_CONTRACT=<contract-id>
-
Set up the database
cd xconfess-backend npm run migration:run -
Start the backend
npm run start:dev
-
Start the frontend (in a new terminal)
cd xconfess-frontend npm run dev -
Access the application
- Frontend: http://localhost:3000
- Backend API: http://localhost:5000
- API Docs: http://localhost:5000/api/api-docs
# 1. Install Stellar CLI
cargo install --locked stellar-cli --features opt
# 2. Add WebAssembly target
rustup target add wasm32-unknown-unknown
# 3. Navigate to contracts
cd xconfess-contracts
# 4. Build contracts
cargo build --release --target wasm32-unknown-unknown
# 5. Run tests
cargo testThe xconfess-contracts/ workspace contains Soroban smart contracts:
| Contract | Status | Description |
|---|---|---|
confession-anchor |
โ Implemented | Stores 32-byte confession hashes on-chain with timestamps |
reputation-badges |
๐บ๏ธ Placeholder | NFT badge system (contract scaffolded, logic pending) |
anonymous-tipping |
๐บ๏ธ Placeholder | On-chain tipping (contract scaffolded, logic pending) |
Anchor a Confession (JavaScript)
import * as StellarSDK from '@stellar/stellar-sdk';
const contract = new StellarSDK.Contract(CONFESSION_ANCHOR_CONTRACT_ID);
// Create confession hash
const confessionHash = hashConfession(confessionText);
// Anchor on Stellar
const tx = await contract.call(
'anchor_confession',
StellarSDK.nativeToScVal(confessionHash, { type: 'bytes' }),
StellarSDK.nativeToScVal(Date.now(), { type: 'u64' })
);Verify a Confession (JavaScript)
const timestamp = await contract.call(
'verify_confession',
StellarSDK.nativeToScVal(confessionHash, { type: 'bytes' })
);xConfess is optimized for speed and scalability. See our Performance Results for detailed metrics.
| Metric | Value | Status |
|---|---|---|
| API Response Time | < 100ms avg | โ |
| Page Load Time | < 2s | โ |
| Lighthouse Score | 94/100 | โ |
| Database Queries | < 100ms | โ |
| Cache Hit Rate | 82% | โ |
๐ Full Report: PERFORMANCE_RESULTS.md
We welcome contributions from the community! xConfess is participating in the Stellar Wave Program ๐
-
Find an Issue
- Browse open issues
- Look for
good first issue,help wanted, orStellar Wavelabels - Comment to get assigned
-
Fork & Branch
git checkout -b feat/your-feature-name
-
Make Your Changes
- Write clean, tested code
- Follow existing code style
- Update documentation if needed
-
Commit & Push
git commit -m "feat: add stellar wallet connection" git push origin feat/your-feature-name -
Submit a Pull Request
- Include
Closes #<issue-number>in description - Fill out the PR template
- Wait for review
- Include
โ Before Submitting:
- Join our Telegram community
- Get assigned to the issue first
- Ensure all tests pass
- Update documentation
โ Code Quality:
- Write unit tests for new features
- Follow TypeScript/Rust best practices
- Use meaningful variable names
- Comment complex logic
โ Commit Messages:
- Use conventional commits:
feat:,fix:,docs:,refactor: - Keep messages clear and concise
- Reference issue numbers
xConfess is proud to participate in the Stellar Development Foundation's Wave Program!
- Browse Wave Issues: Look for issues tagged with
Stellar Wave - Apply to Work: Comment on the issue to express interest
- Get Assigned: Maintainers will review and assign you
- Submit Quality Work: Create a PR that meets acceptance criteria
- Earn Rewards: Get points and rewards from the Stellar Development Foundation
- Anonymous confession posting with encryption
- Emoji reactions with WebSocket updates
- Commenting system
- Anonymous messaging (author-reply model)
- AI content moderation
- Admin dashboard with RBAC
- Report system
- Tag system
- Search (hybrid + full-text)
- Audit logging
- Data export
- Soroban confession-anchor contract
- Backend anchoring + verification endpoints
- XLM tipping module
- Stellar service integration
- Freighter wallet frontend integration (in progress)
- NFT badge system (Soroban contract)
- E2E encrypted messaging upgrade
- Advanced analytics dashboard
- Content recommendation engine
- Mobile app (React Native)
- Deploy to Stellar Mainnet
- Community governance
- Multi-language support
- Premium features
- ๐ Contributors: 10+
- โญ GitHub Stars: Growing daily
- ๐ง Open Issues: View Issues
- ๐ฆ Pull Requests: View PRs
- ๐ฌ Discord: xConfess Community
- ๐ฌ Telegram: xConfess Community
- ๐ Issues: GitHub Issues
- Check existing issues and discussions
- Join our Telegram for real-time support
This project is licensed under the MIT License. See LICENSE for details.
- Stellar Development Foundation for supporting this project through the Wave Program
- All our amazing contributors and community members
- The Soroban team for excellent smart contract tooling
If you find xConfess valuable, please give us a โญ on GitHub!
Built with โค๏ธ for the Stellar ecosystem
Community โข Contribute