Earthly

city.earthly
by earthly.city _@earthly.city

Collaborative maps built on Nostr

Earthly is a touch-first collaborative mapping app for creating, discussing, and sharing geographic datasets over Nostr. Draw points, lines, and polygons; publish GeoJSON maps and map-backed Stories; annotate maps with geographic comments; and work in MLS-encrypted Private groups. AI chat can help edit multiple drafts using explicit editable and read-only references. You choose what to publish. Android Field sessions add explicit nearby-only collaboration over a shared Wi-Fi network or hotspot, including chat, map editing, and one-time mirroring of referenced map files for offline use. Earthly includes its own local relay and Blossom service. Core nearby and offline workflows do not require a separate companion relay app.

First release: Jul 18, 2026, 17 total releases.

Most recent release: Sep 13, 2026.

Website Repo

Appears in 2 app stacks.

0 sats / 0 zaps received in the past year.

Sats Received

Underlying data available via MCP: app_zaps, app_releases.

Zap Count

Underlying data available via MCP: app_zaps, app_releases.

Releases

  • Sep 13, 2026 0.1.10
    - Fixed the critical MapLibre attribution-sanitizer vulnerability [GHSA-jrc7-96c5-q579](https://github.com/maplibre/maplibre-gl-js/security/advisories/GHSA-jrc7-96c5-q579) by upgrading to MapLibre GL JS 6.9.0, with bundled map workers and updated icon loading. - Added a clear startup message when WebGL 2 is unavailable, and updated the mobile drawing magnifier for the new map renderer. - Unified Story and Atlas map-presentation controls and tightened geometry editing and selection checks, with regression coverage for authoring and map rendering. - Refreshed compatible application dependencies and added a TypeScript check that prevents new diagnostics while existing issues are resolved.
    More…
    ### Known limitations - Map rendering now requires WebGL 2. Devices or WebViews without it show an explanation instead of a working map. - Adding the same Map through both chat search and Browse can still create duplicate read-only references. Compact-phone chat settings and context panels still need spacing improvements. - Physical-device upgrade and keyboard smoke testing remain pending for this release.
  • Sep 11, 2026 0.1.9
    - Rebuilt the interface around a persistent map, compact browsing and inspection panels, and a mobile sheet that opens halfway and expands for editing. Existing icons are retained, account controls show the signed-in avatar and name, and drawing tools appear as toolbar space permits. - Added map-backed Story view blocks with selective references to other Maps, camera changes, view-local styling and opacity, and independent inline figures. Both manual authoring and AI chat can create these Stories; a local WW1 timeline fixture supports authoring and styling tests. - Made chat work with multiple Map and Story drafts, with separate editable and read-only sections, drag-and-drop entity references, and searchable/tappable alternatives. Foreign references remain read-only unless explicitly added for a change proposal. - Kept conversations open through draft navigation and publication, added clear left/right chat
    More…
    placement, flattened saved Map drafts, and exposed direct publication of saved Map and Story changes with distinct published and unpublished-change states. - Fixed hidden or removed draft geometry remaining on the map, restored panel scrolling, and added useful publishing failures instead of treating unacknowledged writes as successful. - Improved initial loading with progressive, recoverable basemap rendering, bounded Browse discovery, shared live subscriptions, and cached hydration. ### Known limitations - This release retains MapLibre GL JS 5.24.0, affected by the critical attribution-sanitizer issue [GHSA-jrc7-96c5-q579](https://github.com/maplibre/maplibre-gl-js/security/advisories/GHSA-jrc7-96c5-q579). The dependency security fix is not included in this release. - Adding the same Map through both chat search and Browse can create duplicate read-only references. - On small phones, expanding both chat settings and context leaves too little room for references; some draft actions and touch targets also need further spacing polish. - Mobile verification used browser touch emulation. A physical-device upgrade and keyboard smoke test are still pending for this candidate.
  • Sep 1, 2026 0.1.8
    - Added image uploads and clipboard pasting for vision-capable models, including official Kimi K3 recognition, with a more compact attachment rail in the Chat composer. - Added intentional AI map review: the model can fit the map to the current Dataset or selection, capture a stable visual preview, and evaluate its work without disturbing the author's camera. - Added an encrypted per-account “AI map screenshots” preference in expanded model settings, so authors can disable token-hungry autonomous captures without disabling their own image uploads. - Made visual feedback safer across account changes and live edits, with immediate revocation, bounded review guidance, map-readiness checks, antimeridian-aware framing, and rejection of stale or transient editor previews. - Included Earthly and client identity in NIP-46 connection names so remote signers can distinguish
    More…
    concurrent connections from different platforms and clients.
  • Aug 26, 2026 0.1.6
    - Reworked Chat around explicit, persistent Dataset edit targets: conversations, edit surfaces, and Inspectors can be switched independently without cancelling work or silently creating, reopening, closing, or retargeting drafts. - Made AI edits safer by binding each run to the exact captured draft, committing tool results atomically, preserving changes produced earlier in the same run, supporting target-bound undo, and pausing references until the current Dataset is published. - Unified the mobile authoring sheet around compact Stack, Edit, and Chat tabs, with persistent run and edit-target status, sheet-wide visibility controls, readable target styling, and reliable keyboard-aware composition. - Made the Map Stack authoritative for rendered content, so removing or hiding a retained draft
    More…
    immediately removes its geometry from the map without deleting the saved work or its Chat binding. - Added manifest-driven rehearsal and recording for repeatable 1920x1080 AI map demos, including prompt validation, edit-target setup, result tours, and campaign copy.
  • Aug 16, 2026 0.1.5
    - Added a Discover welcome surface with curated recent Datasets, Stories, and Contexts; direct entry points for Sightings, Private groups, the Android app, and the optional product tour; and the latest eligible map already loaded underneath. - Made startup more resilient to stale deployment chunks with a visible boot shell and bounded retry path, tightened static-asset cache policy, and deferred spreadsheet and QR dependencies until they are needed. - Removed the legacy 65,535-byte NIP-44 ceiling from Earthly's NIP-46 signing path and expanded the public relay's rate-limited signer-transport envelope so remote signers can publish the editor's full 1 MiB inline Dataset budget.
  • Aug 15, 2026 0.1.4
    - Stabilized Android dataset publishing with a safe transient retry and useful on-device failure feedback, and restored bundled reference data needed by native network routing. - Reworked mobile authoring into a map-bound sheet with compact Map and Chat tabs, explicit conversation-to-draft ownership, and reliable access to the active editing panel. - Made editable callouts collapsible, restored the world basemap in Story previews, and kept mobile MapLibre attribution compact and clear of the sheet and bottom toolbar.
  • Aug 15, 2026 0.1.3
    - Fixed bundled point icons so Lucide symbols render with readable contrast in both draft and published maps. - Made requested transport corridors prefer the dedicated road and maritime network-routing tools without requiring users to ask for routing explicitly. - Fixed lines with legacy or noncanonical dash styles disappearing from draft and published maps; unsupported values now render safely as solid lines while dashed and dotted styles remain intact.
  • Aug 14, 2026 0.1.2
    - Overhauled AI map authoring with the complete tool surface available throughout a conversation, richer map-building guidance, longer model timeouts, visible streamed reasoning, retry recovery, and safer continuation after tool failures. - Added source-selecting reference boundaries that prefer bundled Natural Earth data for countries and administrative regions, plus road and maritime routing that follows real networks instead of drawing coarse straight lines. - Improved large-map workflows with untruncated ContextVM tool transport, uncapped administrative boundary batches and chat tool rounds, faster batched callout authoring, and early visible map scaffolds while longer research continues. - Added selection-independent targeted geometry simplification with authoritative before/after byte
    More…
    and vertex counts, and fixed the editor's dataset-size indicator remaining stale after geometry changes. - Fixed icon styling ambiguity by accepting point fills naturally and automatically choosing a readable glyph color, so matching marker and stroke colors cannot make map icons disappear. - Added richer example prompts, including a multi-layer Belt and Road map, and expanded conversation dumps and diagnostics for evaluating model and prompt behavior.
  • Aug 11, 2026 0.1.1
    - Added fine-grained Story references to individual Dataset geometries, OpenStreetMap elements, and coordinates, with typed mentions, map focus, and support in both user and AI authoring. - Added advanced geometry tools for splitting lines and polygons, polygon and line offsets by distance or map drag, and line-to-polygon corridors, exposed through the editor and AI chat. - Fixed coordinate picking while authoring Stories outside Dataset edit mode, improved reference type labels, and kept the picker visible beside the map. - Fixed drawn polygon cuts by snapping cutter endpoints to rendered boundaries and sharing exact topology nodes between cutters and polygons; failed cuts now report their real error. - Kept focused Dataset and Context landings free of unrelated Sighting and Live Beacon layers, and made Nostr timelines incorporate newly published and updated records without waiting for reload.
  • Aug 3, 2026 0.1.0
    - Added always-visible, geometry-attached map callouts that authors can create from the toolbar or AI chat, edit directly on the map, remove from either editing surface, and place independently from their anchor geometry. - Added automatic callout layout, overlap and off-screen collapsing, three user-controlled display states, compact three-line previews, expansion controls, and map interaction that remains usable beneath dense callout collections. - Fixed inspected Datasets remaining duplicated in the Map Stack when entering edit mode, and made callout creation fall back to drawing an anchor point when no geometry is selected. - Consolidated VPS deployment, activation, runtime operations, SearXNG, and rollback under
    More…
    `ops/vps`, with versioned releases, verified uploads, safe in-place legacy data handling, pinned native tools, and automatic recovery after failed activation. - Removed retired seed programs, unused starter assets, stale deployment scripts, and two large committed PMTiles binaries in favor of a checksum-verified local tool cache. - Added a dry-run-first cleanup command for known generated build and test artifacts.
  • Jul 27, 2026 0.0.9
    - Fixed likes disappearing when an entity drawer was closed, reopened, or reactively refreshed, while keeping large Dataset lists on one efficient account-level reaction subscription. - Fixed NIP-57 zap requests so Lightning providers receive valid request JSON and can publish verified receipts to publicly reachable relays even during local development. - Kept generated invoices open across entity-surface changes, added recipient and self-payment guidance, showed verified zap confirmation, and closed the dialog shortly after receipt.
  • Jul 27, 2026 0.0.8
    - Fixed successful Lightning zap dialogs disappearing before users could see confirmation. - Added Nostr Wallet Connect wallets with pasted or camera-scanned NIP-47 connection QR codes and direct payment of zap invoices from Earthly. - Added direct NIP-61 nutzaps from compatible NIP-60 Cashu wallets when recipients advertise a supported mint and nutzap key. - Restored immediate like and unlike feedback across Contexts, Datasets, Stories, Sightings, Private groups, Live Beacons, comments, and shoutbox posts.
  • Jul 26, 2026 0.0.7
    - Fixed remembered Nostr identities being lost when Android stopped and cold-started the app by adding an app-private durable account-session mirror that restores before the interface mounts. - Made login, logout, account switching, and account removal wait for native session persistence while keeping “Stay logged in” disabled accounts memory-only. - Redesigned the Connect to Nostr dialog with a wider desktop layout, more generous spacing, responsive mobile choices, safe text wrapping, and bounded scrolling on short screens.
  • Jul 25, 2026 0.0.6
    - Fixed Private-group join-request checks so they no longer wait behind background message sync, keep unrelated controls usable, and show clear progress, empty-result, and error feedback. - Improved AI-generated maps with semantic icons for imported places, quieter travel-time overlays, and stronger guidance for readable labels and points of interest. - Expanded the product tour with a manually drafted Beira cyclone-response map and an AI-assisted Porto home-search map.
  • Jul 24, 2026 0.0.5
    - Added a guided product tour with real desktop and mobile films for map authoring, private collaboration, AI-assisted research, offline drawing, public proposals, and map-backed Stories. - Added native app download paths throughout the tour and every web-only capability gate, including Field sessions, saved regions, the embedded local node, and durable delivery. - Added an Apple-silicon macOS DMG preview to the GitHub release alongside the signed Android artifacts. - Added multi-step rectangle, circle, triangle, and arrow drawing; visible scaling controls; larger line arrowheads; centered line labels; and correctly rendered dashed lines. - Added deletion flows for Private groups and Field sessions, plus clearer chat configuration and compact model, provider, tool, and token details.
    More…
    - Improved AI-generated maps, geographic research fallbacks, and Overpass query handling.
  • Jul 20, 2026 0.0.3
    - Redesigned the mobile authoring shell so Menu and AI chat remain available while drawing, with the active draft and panel position restored when returning to the map. - Added a compact centered destination badge, a cleaner place-search surface, non-overlapping map guidance, actionable location-permission recovery, and accurate inspect/create/edit panel titles. - Simplified mobile Sighting capture with persistent primary actions and progressive disclosure for advanced choices while preserving the complete editing workflow. - Separated ordinary AI conversations from Dataset authoring, clarified conversation and task transitions, and made AI-generated geometry enter the normal recoverable Dataset draft lifecycle. - Expanded deterministic mobile and deep-editor journey coverage for drawing recovery, comments, annotations, proposals, AI-assisted authoring, and switching safely between unrelated tasks.
  • Jul 18, 2026 0.0.1
    Earthly's first Android release includes: - touch-first creation and editing of GeoJSON points, lines, and polygons; - Nostr-native datasets, contexts, comments, proposals, reactions, and profiles; - MLS-encrypted Private groups with membership, chat, and collaborative geometry; - nearby-only Field sessions with signed invitations, approval, scoped relay access, chat, and collaborative datasets over a shared Wi-Fi network or hotspot; - an embedded relay and Blossom service, without requiring a companion Android app; - saved PMTiles regions, local-first rendering, resumable verified downloads, integrity repair, cleanup, and one-time mirroring from an approved nearby device;
    More…
    - Android QR scanning, invite links, NIP-46 signer handoff, Lightning wallet intents, and redacted diagnostics sharing; - a redesigned mobile menu, map-aware inspection drawer, safe-area handling, and touch drawing guidance. The general workflow of authoring arbitrary public records offline and deciding later whether to publish them globally is intentionally deferred. Field-session records in `0.0.1` remain nearby-only.