# Social Meshes A comprehensive directory and discovery platform for decentralized social networking projects, clients, and tools across multiple protocols including AT Protocol and ActivityPub. It provides an interface for browsing, searching, and filtering across the two major federated/decentralized networks. **Live at: https://socialmeshes.com** ![Social Meshes App Screenshot](public/app_screenshot/app-screenshot.png) Most of this code is written by Claude. If you see anywhere you wish to contribute feel free to open a PR! If you see any project data that needs to be changed or you are a project owner and wish for a description / owner to be changed feel free to submit PR's! ## Project Structure ``` socialmeshes-app/ ├── public/ │ ├── data/ │ │ └── projects.json # Project database │ └── logos/ # Project logo images ├── src/ │ ├── components/ # React components │ │ ├── TopBar.tsx # Navigation and network selector │ │ ├── FilterToolbar.tsx # Search and filter controls │ │ ├── ProjectGrid.tsx # Grid layout for projects │ │ └── ProjectCard.tsx # Individual project cards │ ├── types/ │ │ └── project.ts # TypeScript type definitions │ ├── utils/ │ │ └── projectUtils.ts # Filtering and sorting logic │ ├── App.tsx # Main application component │ └── main.tsx # Application entry point └── package.json # Dependencies and scripts ``` ## Getting Started ### Prerequisites - Node.js 18+ and npm ### Installation 1. Clone the repository: ```bash git clone https://tangled.sh/@bretton.dev/socialmeshes-app cd socialmeshes-app ``` 2. Install dependencies: ```bash npm install ``` 3. Start the development server: ```bash npm run dev ``` 4. Open your browser and navigate to `http://localhost:5173` ### Available Scripts - `npm run dev` - Start the development server - `npm run build` - Build for production - `npm run preview` - Preview the production build - `npm run lint` - Run ESLint for code quality ## Contributing Contributions are welcome! To add a new project to the directory: 1. Add the project data to `public/data/projects.json` 2. Add the project logo to `public/logos/` (preferably SVG or optimized PNG) 3. Submit a pull request ## License This project is open source. Please check the repository for license details.