Skip to content

A decentralized social networking platform powered by the Mina Blockchain, offering users a seamless, secure, and censorship-resistant environment for authentic social interactions.

License

private-archieve/distcom

Repository files navigation

🌟 Distcom

Version Next.js React TypeScript Mina Protocol

A decentralized social networking platform powered by the Mina Blockchain, offering users a seamless, secure, and censorship-resistant environment for authentic social interactions.

πŸš€ Overview

Distcom is a revolutionary decentralized social networking platform that leverages the power and innovation of the Mina Blockchain to offer users a seamless, secure, and censorship-resistant environment for social interactions. Unlike traditional social networks governed by centralized entities, Distcom empowers its community by distributing control and ownership directly to its users.

✨ Features

πŸ” Core Social Features

  • User Profiles - Customizable user profiles with authentication
  • Messaging System - Real-time communication between users
  • Groups & Communities - Create and join topic-based communities
  • Blog Publishing - Share long-form content with the community
  • Social Feed - Discover and interact with community content
  • Search & Discovery - Find users, groups, and content easily

πŸ›‘οΈ Blockchain-Powered Features

  • Zero-Knowledge Proofs - Privacy-preserving interactions
  • Decentralized Voting - Community governance through smart contracts
  • Donation System - Support creators and communities
  • Event Management - Organize and participate in community events
  • Censorship Resistance - Content stored on decentralized infrastructure

🎨 User Experience

  • Modern UI/UX - Built with Tailwind CSS and Radix UI
  • Responsive Design - Optimized for desktop and mobile
  • Real-time Updates - Live notifications and messaging
  • Dark/Light Mode - Customizable theme preferences

πŸ”§ Technology Stack

Frontend

  • Framework: Next.js 15.1.3 with App Router
  • Language: TypeScript 5.7.2
  • UI Library: React 19.0.0
  • Styling: Tailwind CSS with custom components
  • Components: Radix UI primitives
  • Icons: FontAwesome & Lucide React
  • State Management: Zustand
  • Animations: Motion (Framer Motion)

Blockchain & Backend

  • Blockchain: Mina Protocol
  • ZK Framework: o1js (SnarkyJS)
  • Database: InstantDB
  • Authentication: Custom wallet integration
  • Smart Contracts: Custom voting, donation, and event contracts

Development Tools

  • Package Manager: npm
  • Build Tool: Next.js with Turbo
  • Linting: Built-in Next.js linting
  • Type Checking: TypeScript strict mode

🌍 Why Mina Blockchain?

The Mina Blockchain stands out as the world's lightest blockchain, boasting a constant-sized blockchain of just 22 kilobytes. This lightweight architecture ensures that Distcom remains:

  • Scalable - Efficient performance regardless of network size
  • Accessible - No need for hefty computational resources
  • Private - Zero-knowledge proofs protect user data
  • Secure - Cryptographic verification without data exposure

🎯 The Distcom Vision

At its core, Distcom envisions a democratized digital social space where individuals can connect without intermediaries, ensuring that their voices remain authentic and unfiltered. By harnessing the transformative potential of the Mina Blockchain, Distcom aims to:

πŸ—½ Promote Digital Freedom

Create an environment where users can express themselves freely without fear of undue censorship or surveillance.

🀝 Foster Community Ownership

Encourage collaborative governance, allowing the community to make decisions that shape the platform's future.

πŸ’š Enhance Digital Well-being

Implement features and protocols that prioritize user well-being, reducing the negative impacts often associated with conventional social media platforms.

πŸš€ Getting Started

Prerequisites

  • Node.js 18.17 or later
  • npm or yarn package manager
  • Git for version control

Installation

  1. Clone the repository

    git clone https://github.com/private-archieve/distcom.git
    cd distcom
  2. Install dependencies

    npm install
  3. Set up environment variables

    cp .env.example .env.local
    # Edit .env.local with your configuration
  4. Run the development server

    npm run dev
  5. Open your browser Navigate to http://localhost:3000 to see the application.

Build for Production

# Build the application
npm run build

# Start the production server
npm run start

πŸ“ Project Structure

distcom/
β”œβ”€β”€ src/
β”‚   β”œβ”€β”€ app/                    # Next.js App Router pages
β”‚   β”‚   β”œβ”€β”€ about/             # About page
β”‚   β”‚   β”œβ”€β”€ blogs/             # Blog functionality
β”‚   β”‚   β”œβ”€β”€ groups/            # Groups and communities
β”‚   β”‚   β”œβ”€β”€ messages/          # Messaging system
β”‚   β”‚   β”œβ”€β”€ profile/           # User profiles
β”‚   β”‚   └── ...
β”‚   β”œβ”€β”€ Base/                   # Core application logic
β”‚   β”‚   β”œβ”€β”€ DistcomZKBase/     # Zero-knowledge proof implementations
β”‚   β”‚   β”œβ”€β”€ MinaProtocol/      # Mina blockchain integration
β”‚   β”‚   β”‚   β”œβ”€β”€ Contracts/     # Smart contracts
β”‚   β”‚   β”‚   └── Tests/         # Contract tests
β”‚   β”‚   └── ...
β”‚   β”œβ”€β”€ components/            # Reusable UI components
β”‚   β”œβ”€β”€ hooks/                 # Custom React hooks
β”‚   β”œβ”€β”€ lib/                   # Utility libraries
β”‚   β”œβ”€β”€ Pages/                 # Page components
β”‚   └── store/                 # State management
β”œβ”€β”€ public/                    # Static assets
β”œβ”€β”€ Archieve/                  # Legacy code and examples
└── package.json              # Project dependencies

πŸ”— Smart Contracts

Distcom includes several smart contracts built with o1js:

  • DonationContract - Handle community donations and funding
  • VoteContract - Implement decentralized governance
  • EventContract - Manage community events
  • MessageContract - Secure messaging functionality

🀝 Contributing

We welcome contributions from the community! Please follow these steps:

  1. Fork the repository
  2. Create a feature branch
    git checkout -b feature/amazing-feature
  3. Make your changes
  4. Commit your changes
    git commit -m 'Add some amazing feature'
  5. Push to the branch
    git push origin feature/amazing-feature
  6. Open a Pull Request

Development Guidelines

  • Follow TypeScript best practices
  • Use existing UI components when possible
  • Write tests for new smart contracts
  • Ensure responsive design for all components
  • Follow the existing code style and conventions

πŸ“œ License

This project is part of the private-archieve organization. Please refer to the repository settings for license information.

🌐 Links & Resources

πŸ“ž Support

For questions, issues, or contributions, please:

  • Open an issue in this repository
  • Check existing documentation
  • Review the project's discussion board

Built with ❀️ for the decentralized future

Empowering communities through blockchain technology

About

A decentralized social networking platform powered by the Mina Blockchain, offering users a seamless, secure, and censorship-resistant environment for authentic social interactions.

Topics

Resources

License

Code of conduct

Stars

Watchers

Forks

Contributors 3

  •  
  •  
  •  

Languages