{"id":47181394,"url":"https://github.com/gotnull/socialmesh","last_synced_at":"2026-03-13T07:37:28.509Z","repository":{"id":335663095,"uuid":"1105615700","full_name":"gotnull/socialmesh","owner":"gotnull","description":"Connect to your Meshtastic radio, message off-grid, map your nodes, and explore the mesh - no internet required.","archived":false,"fork":false,"pushed_at":"2026-03-09T00:17:54.000Z","size":126600,"stargazers_count":7,"open_issues_count":2,"forks_count":2,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-03-09T04:13:48.384Z","etag":null,"topics":["android","ble","field-operations","flutter","ios","lora","mesh-networking","meshtastic","offline-first","situational-awareness","tak"],"latest_commit_sha":null,"homepage":"https://socialmesh.app","language":"Dart","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/gotnull.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":"NOTICE.md","maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"github":"gotnull"}},"created_at":"2025-11-27T22:31:10.000Z","updated_at":"2026-03-09T00:17:58.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/gotnull/socialmesh","commit_stats":null,"previous_names":["gotnull/socialmesh"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/gotnull/socialmesh","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gotnull%2Fsocialmesh","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gotnull%2Fsocialmesh/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gotnull%2Fsocialmesh/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gotnull%2Fsocialmesh/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/gotnull","download_url":"https://codeload.github.com/gotnull/socialmesh/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gotnull%2Fsocialmesh/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30461027,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-13T06:34:02.089Z","status":"ssl_error","status_checked_at":"2026-03-13T06:33:49.182Z","response_time":60,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["android","ble","field-operations","flutter","ios","lora","mesh-networking","meshtastic","offline-first","situational-awareness","tak"],"created_at":"2026-03-13T07:37:27.998Z","updated_at":"2026-03-13T07:37:28.504Z","avatar_url":"https://github.com/gotnull.png","language":"Dart","funding_links":["https://github.com/sponsors/gotnull"],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003cimg src=\"assets/app_icons/socialmesh_icon_512_rounded.png\" width=\"120\" alt=\"Socialmesh\"\u003e\n\u003c/p\u003e\n\n\u003ch1 align=\"center\"\u003eSocialmesh\u003c/h1\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cstrong\u003eMesh Radio Companion App\u003c/strong\u003e\u003cbr\u003e\n  Connect to your Meshtastic radio, message off-grid, map your nodes, and explore the mesh — no internet required.\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"#status\"\u003eStatus\u003c/a\u003e •\n  \u003ca href=\"#features\"\u003eFeatures\u003c/a\u003e •\n  \u003ca href=\"#nodedex\"\u003eNodeDex\u003c/a\u003e •\n  \u003ca href=\"#signals\"\u003eSignals\u003c/a\u003e •\n  \u003ca href=\"#getting-started\"\u003eGetting Started\u003c/a\u003e •\n  \u003ca href=\"#building-from-source\"\u003eBuild\u003c/a\u003e •\n  \u003ca href=\"#contributing\"\u003eContributing\u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://flutter.dev\"\u003e\u003cimg src=\"https://img.shields.io/badge/Flutter-3.10+-02569B?logo=flutter\" alt=\"Flutter\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://meshtastic.org\"\u003e\u003cimg src=\"https://img.shields.io/badge/Meshtastic-Compatible-67EA94\" alt=\"Meshtastic\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://github.com/gotnull/socialmesh/blob/main/LICENSE\"\u003e\u003cimg src=\"https://img.shields.io/badge/License-GPL--3.0-blue\" alt=\"License\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://github.com/gotnull/socialmesh/pulls\"\u003e\u003cimg src=\"https://img.shields.io/badge/PRs-Welcome-brightgreen\" alt=\"PRs Welcome\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://github.com/gotnull/socialmesh/stargazers\"\u003e\u003cimg src=\"https://img.shields.io/github/stars/gotnull/socialmesh?style=flat\u0026logo=github\u0026color=yellow\" alt=\"GitHub Stars\"\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://socialmesh.app\"\u003eWebsite\u003c/a\u003e •\n  \u003ca href=\"https://apps.apple.com/app/id6742694642\"\u003eiOS App\u003c/a\u003e •\n  \u003ca href=\"https://play.google.com/store/apps/details?id=com.gotnull.socialmesh\"\u003eAndroid App\u003c/a\u003e •\n  \u003ca href=\"https://github.com/gotnull/socialmesh/issues\"\u003eIssues\u003c/a\u003e\n\u003c/p\u003e\n\n---\n\nConnect to your mesh radio, message off-grid, discover nodes, and explore the mesh — **all without internet**.\n\nSocialmesh works fully offline over BLE and USB. Firebase is optional for cloud sync and social features.\n\n---\n\n## Status\n\n- The **iOS and Android releases** on the App Store and Play Store are the current stable builds. All features listed in the [Features](#features) section below are available in these releases.\n- The offline-first architecture, mesh communication, NodeDex, Signals, TAK integration, and all companion-app capabilities are **shipped and stable**.\n- See [Architecture Overview](docs/ARCHITECTURE.md) for the current system design and [Releasing](docs/RELEASING.md) for the release process.\n\n---\n\n## NodeDex\n\n\u003e _Mesh node registry and discovery journal._\n\nEvery node discovered on the mesh is automatically catalogued in the **NodeDex** — a persistent, queryable registry of all mesh nodes and their observed history. NodeDex serves as the authoritative record of what devices have been seen, how they behave, and where they have been observed. Each node receives a unique **procedural Sigil** (a geometric glyph derived deterministically from its identity) and a **behavioral classification** inferred from real observed data. Accessible from the drawer menu.\n\n### Procedural Sigils\n\nEvery node gets a unique constellation-style geometric identity generated from its node number. The same node always produces the same sigil — no randomness, no variation. Sigils are built from outer polygons (3-8 vertices), optional inner rings, radial lines, and a unique 3-color palette drawn from 16 curated colors.\n\n### Personality Traits\n\nTraits are never user-assigned — they are passively inferred from observable telemetry and behavior:\n\n| Trait        | Description                                                      |\n| ------------ | ---------------------------------------------------------------- |\n| **Relay**    | Router role with high throughput — forwards traffic for the mesh |\n| **Wanderer** | Seen across multiple distinct positions or regions               |\n| **Sentinel** | Fixed position, long-lived, high encounter count                 |\n| **Beacon**   | Always active, very frequent encounters                          |\n| **Ghost**    | Rarely seen relative to age — elusive presence                   |\n| **Courier**  | High message volume relative to encounters                       |\n| **Anchor**   | Persistent hub with many co-seen connections                     |\n| **Drifter**  | Irregular timing, unpredictable appearance pattern               |\n\nEach trait includes a confidence score and evidence lines explaining the classification.\n\n### Patina Score\n\nA numerical measure (0-100) of how much observable history a node has accumulated, computed across six axes: tenure, encounters, geographic reach, signal depth, social connections, and recency. Early gains are meaningful; diminishing returns prevent runaway scores.\n\n### Progressive Disclosure\n\nInformation is revealed as observation accumulates — new nodes start sparse, detail unlocks over time:\n\n| Tier | Name   | What appears                     |\n| ---- | ------ | -------------------------------- |\n| 0    | Trace  | Sigil, name, hex ID only         |\n| 1    | Noted  | Primary trait badge              |\n| 2    | Logged | Trait evidence and field note    |\n| 3    | Inked  | Full trait list and patina stamp |\n| 4    | Etched | Identity overlay at full density |\n\n### Sigil Evolution\n\nSigils visually mature as patina accumulates — subtle line weight changes, color deepening, and micro-etch detail that progresses through five stages: **Seed**, **Marked**, **Inscribed**, **Heraldic**, and **Legacy**.\n\n### Sigil Cards\n\nCollectible trading-card-style renders of a node's full identity — rarity-tiered borders, dramatic sigil display, RPG-style stat grids, and shareable PNG export. Accessible from the NodeDex detail screen and the Nodes screen.\n\n### Field Notes\n\nDeterministic single-line observations that read like entries in a naturalist's field journal. The same node always gets the same note. Template families are selected by trait and filled with concrete values from the node's history.\n\n### Social Tags\n\nUser-assigned labels for discovered nodes: **Contact**, **Trusted Node**, **Known Relay**, and **Frequent Peer**. Filter and sort the NodeDex by tag.\n\n### Co-Seen Tracking\n\nRecords which nodes have been observed together on the mesh, building a social graph of node relationships over time.\n\n---\n\n## Signals\n\n\u003e _Structured mesh persistence with location and time context._\n\nSignals is the mesh-native persistence layer. Publish status updates, check-ins, and hazard markers that are received by all mesh members in range. Signals carry configurable TTL, GPS location stamps, and image attachments. Sorted by proximity and expiry. Designed for groups that need structured, time-bounded awareness without internet.\n\n---\n\n## Features\n\n### Communication \u0026 Coordination\n\n#### Messaging\n\n| Feature               | Description                                                        |\n| --------------------- | ------------------------------------------------------------------ |\n| **Channel Messaging** | Send and receive on multiple channels simultaneously               |\n| **Direct Messages**   | Private, encrypted node-to-node communication                      |\n| **Quick Responses**   | Pre-configured canned messages for fast replies                    |\n| **Message Search**    | Full-text search across all conversations                          |\n| **Offline Queue**     | Messages queued when disconnected, sent automatically on reconnect |\n| **Reactions**         | React to messages with emoji responses                             |\n\n#### Network and Nodes\n\n| Feature              | Description                                                               |\n| -------------------- | ------------------------------------------------------------------------- |\n| **Node Discovery**   | See all nodes with signal strength, battery, and location                 |\n| **NodeDex**          | Mesh node registry with procedural sigils and behavioral classification   |\n| **Network Topology** | Visual graph showing mesh interconnections                                |\n| **Traceroute**       | Trace the exact path packets take through the mesh                        |\n| **Signal History**   | SNR and RSSI charts over time                                             |\n| **Favorites**        | Pin important nodes for quick access                                      |\n| **Node Profiles**    | Rich profiles with user info, social links, and custom avatars            |\n| **Presence**         | Track when nodes are online, their activity patterns, and last seen times |\n\n#### Maps and Location\n\n| Feature              | Description                                 |\n| -------------------- | ------------------------------------------- |\n| **Node Map**         | Interactive map with all GPS-enabled nodes  |\n| **Waypoints**        | Drop, share, and navigate to waypoints      |\n| **Location Sharing** | Broadcast your position to the mesh         |\n| **Map Styles**       | Street, satellite, and terrain views        |\n| **Route Recording**  | Record and save your routes with GPS tracks |\n\n#### Team Coordination\n\n| Feature               | Description                                                             |\n| --------------------- | ----------------------------------------------------------------------- |\n| **Activity Timeline** | Chronological feed of mesh activity and events with identity resolution |\n| **Group Profiles**    | View group member profiles with role, assignment, and contact details   |\n| **Signals Feed**      | Structured status updates sorted by proximity and expiry                |\n\n#### Safety\n\n- **Emergency SOS** — One-tap broadcast with optional GPS coordinates\n- **Geofence Alerts** — Notifications when nodes leave defined areas\n- **Battery Alerts** — Low battery warnings for tracked nodes\n\n#### Analytics and Monitoring\n\n| Feature            | Description                                                               |\n| ------------------ | ------------------------------------------------------------------------- |\n| **Mesh Health**    | Real-time network health metrics, utilization graphs, and issue detection |\n| **Reachability**   | Probabilistic assessment of node reachability based on observed data      |\n| **Presence**       | Track when nodes are online, their activity patterns, and last seen times |\n| **Route Analysis** | View discovered routes and packet paths through the mesh                  |\n| **Telemetry Logs** | Device metrics, environment sensors, air quality, position history        |\n\n#### Device Configuration\n\nFull control over your Meshtastic device:\n\n- **LoRa** — Region, modem preset, hop limit, frequency slot\n- **Power** — Sleep mode, shutdown timeout, power saving\n- **Position** — GPS mode, broadcast interval, smart position\n- **Bluetooth** — Pairing mode, PIN code, power settings\n- **Network** — WiFi, Ethernet, MQTT bridge\n- **Display** — Timeout, brightness, flip screen, OLED burn-in protection\n- **Detection Sensor** — Motion and door sensor triggers\n- **Canned Messages** — On-device quick responses\n\n#### Integrations\n\n- **IFTTT Webhooks** — Trigger automations on node events and geofence alerts\n- **MQTT Bridge** — Internet uplink configuration\n- **QR Codes** — Import/export channels and share node info instantly\n\n### Community, Visualization \u0026 Extras\n\n#### Audio\n\n- **7,000+ RTTTL Ringtones** — Organized by category, preview before sending\n- **Custom Compositions** — Create and save your own ringtones\n\n#### Visualization\n\n| Feature          | Description                                                  |\n| ---------------- | ------------------------------------------------------------ |\n| **3D Mesh View** | Interactive 3D visualization of your mesh network topology   |\n| **World Map**    | Global view of Meshtastic nodes from the public MQTT network |\n| **Globe View**   | 3D rotating globe with node positions plotted worldwide      |\n| **Timeline**     | Chronological feed of all mesh activity and events           |\n\n#### Extras\n\n- **Nothing Phone Glyph** — LED pattern notifications for mesh events (Nothing Phone only)\n- **Sigil Cards** — Collectible trading-card-style renders of node identities with shareable PNG export\n\n#### Premium Features\n\nThese features are available via one-time in-app purchases:\n\n| Feature               | Description                                                          |\n| --------------------- | -------------------------------------------------------------------- |\n| **Theme Pack**        | 12 accent colors to personalize the entire app                       |\n| **Ringtone Pack**     | 7,000+ searchable RTTTL ringtones — classic tunes, TV themes, games  |\n| **Widgets**           | Build custom dashboard widgets with live data, charts, and gauges    |\n| **Automations**       | Create rules that trigger alerts, send messages, and react to events |\n| **IFTTT Integration** | Connect your mesh to 700+ apps and services via webhooks             |\n\n---\n\n## Tech Stack\n\n| Layer                | Technology                        |\n| -------------------- | --------------------------------- |\n| **UI Framework**     | Flutter 3.10+                     |\n| **State Management** | Riverpod 3.x                      |\n| **Protocol**         | Meshtastic Protobufs              |\n| **Local Storage**    | SQLite                            |\n| **Analytics**        | Firebase (optional)               |\n| **Sigil Generation** | Deterministic geometric identity  |\n| **Trait Inference**  | Passive behavioral classification |\n\n---\n\n## Documentation\n\n- [Architecture Overview](docs/ARCHITECTURE.md) — How the app is structured\n- [Backend Boundary](docs/BACKEND.md) — What requires cloud services\n- [Releasing](docs/RELEASING.md) — How to cut a release\n\n---\n\n## Getting Started\n\n### Prerequisites\n\n| Requirement      | Version                            |\n| ---------------- | ---------------------------------- |\n| Flutter SDK      | 3.10+                              |\n| Xcode            | 15+ (iOS)                          |\n| Android Studio   | SDK 34+                            |\n| Protocol Buffers | `brew install protobuf`            |\n| CocoaPods        | `sudo gem install cocoapods` (iOS) |\n\n### Quick Start (Demo Mode)\n\nRun the app without backend configuration using demo mode:\n\n```bash\n# Clone and bootstrap\ngit clone https://github.com/gotnull/socialmesh.git\ncd socialmesh\n./tool/dev_bootstrap.sh\n\n# Run in demo mode (no backend required)\nflutter run --dart-define=SOCIALMESH_DEMO=1\n```\n\nDemo mode provides sample nodes and messages so you can explore the UI immediately.\n\n### Production Build\n\nFor production builds, demo mode is disabled by default. Configure Firebase and other services as documented below.\n\n```bash\n# Install dependencies\nflutter pub get\n\n# Generate Meshtastic protobufs\n./scripts/generate_protos.sh\n\n# Run on connected device\nflutter run\n```\n\n### Project Structure\n\n```\nlib/\n├── core/           # Theme, shared widgets, constants, safety utilities\n├── features/       # Feature modules\n│   ├── automations/# Rule-based event automation engine\n│   ├── channels/   # Channel messaging\n│   ├── dashboard/  # Custom widget dashboard\n│   ├── device/     # Device configuration\n│   ├── globe/      # 3D globe visualization\n│   ├── map/        # Interactive node map\n│   ├── mesh3d/     # 3D mesh topology view\n│   ├── mesh_health/# Network health analytics\n│   ├── messaging/  # Direct and channel messaging\n│   ├── nodedex/    # Mesh node registry (sigils, classifications, patina)\n│   ├── presence/   # Node presence tracking\n│   ├── reachability/# Node reachability analysis\n│   ├── signals/    # Structured mesh persistence\n│   ├── social/     # Activity timeline, team profiles\n│   ├── widget_builder/ # Custom dashboard widget editor\n│   ├── world_mesh/ # Global MQTT node map\n│   └── ...         # Additional feature modules\n├── generated/      # Meshtastic protobuf code\n├── models/         # Data models\n├── providers/      # Riverpod state management\n├── services/       # Protocol, storage, transport layers\n└── utils/          # Utilities and helpers\n```\n\n---\n\n## Building from Source\n\n### What works out of the box\n\n- BLE and USB connection to Meshtastic devices\n- All mesh communication (messaging, node discovery, channels)\n- Local SQLite storage (NodeDex, signals, routes, packet deduplication)\n- Protobuf encoding/decoding\n- NodeDex with procedural sigils and trait inference\n\n### Optional: Firebase\n\nThe app uses Firebase for optional cloud features. Without configuration:\n\n| Feature               | Behavior                 |\n| --------------------- | ------------------------ |\n| Analytics/Crashlytics | Disabled silently        |\n| Cloud sync            | Falls back to local-only |\n| Authentication        | Sign-in unavailable      |\n| Social features       | Local-only mode          |\n\nTo enable, add your own `google-services.json` (Android) and `GoogleService-Info.plist` (iOS).\n\n### Build Commands\n\n```bash\n# Install dependencies\nflutter pub get\n\n# Generate Meshtastic protobufs\n./scripts/generate_protos.sh\n\n# iOS\ncd ios \u0026\u0026 pod install \u0026\u0026 cd ..\nflutter build ios\n\n# Android\nflutter build apk                    # Debug APK\nflutter build apk --release          # Release APK\nflutter build appbundle --release    # Play Store bundle\n```\n\n### Build Outputs\n\n| Platform       | Location                            |\n| -------------- | ----------------------------------- |\n| iOS            | `build/ios/ipa/`                    |\n| Android APK    | `build/app/outputs/flutter-apk/`    |\n| Android Bundle | `build/app/outputs/bundle/release/` |\n\n---\n\n## URL Scheme\n\nSocialmesh registers `socialmesh://` for deep linking:\n\n```\nsocialmesh://channel/\u003cbase64\u003e   # Import channel configuration\nsocialmesh://node/\u003cbase64\u003e      # Import node information\n```\n\n---\n\n## Project Status\n\nSocialmesh is a fully functional Meshtastic companion app available on iOS and Android. The codebase is stable and actively maintained.\n\n### Contributions Welcome\n\n- Bug fixes and performance improvements\n- New device configuration options as Meshtastic firmware evolves\n- UI/UX polish and accessibility improvements\n- Documentation and translations\n- Test coverage\n\n### Out of Scope\n\nThe following are intentionally excluded from this repository:\n\n- Backend services, cloud functions, and APIs (proprietary)\n- Payment processing and subscription infrastructure\n- App Store/Play Store publishing workflows\n- Marketing materials and promotional content\n\n---\n\n## Contributing\n\nWe welcome contributions. Please read our [Contributing Guide](CONTRIBUTING.md) before submitting a PR.\n\nAll code must pass the project linter (`scripts/hooks/socialmesh-lint.sh`) with zero errors. The linter enforces banned patterns, required headers, async safety, and UI consistency rules automatically. PRs that fail the linter will not be accepted. See the [Contributing Guide](CONTRIBUTING.md) for the full list of enforced rules.\n\nSee [SECURITY.md](SECURITY.md) for reporting vulnerabilities.\n\n---\n\n## License\n\nThis mobile application is licensed under the **GNU General Public License v3.0** (GPL-3.0-or-later).\n\nYou are free to use, modify, and distribute this software under the terms of the GPL-3.0. See [LICENSE](LICENSE) for details.\n\n### Scope\n\n| Component                        | License                             |\n| -------------------------------- | ----------------------------------- |\n| **Mobile app** (this repository) | GPL-3.0 — source code provided here |\n| **Backend services**             | Proprietary — not included          |\n\n### Third-Party Notices\n\nSee [NOTICE.md](NOTICE.md) for attribution of third-party components including Meshtastic protobufs.\n\n---\n\n## Maintainer Setup\n\nFor repository maintainers:\n\n1. Enable branch protection on `main`\n2. Require pull requests with at least one approval\n3. Require CI status checks to pass before merging\n4. Disallow force pushes to `main`\n\n---\n\n## Resources\n\n- [Architecture Overview](docs/ARCHITECTURE.md)\n- [Backend Boundary](docs/BACKEND.md)\n- [Contributing Guide](CONTRIBUTING.md)\n- [Security Policy](SECURITY.md)\n\n---\n\n\u003cp align=\"center\"\u003e\n  \u003cstrong\u003eBuilt for the mesh. Built for the outdoors.\u003c/strong\u003e\n\u003c/p\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgotnull%2Fsocialmesh","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgotnull%2Fsocialmesh","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgotnull%2Fsocialmesh/lists"}