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, 27 total releases.

Most recent release: Oct 23, 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

  • Oct 23, 2026 0.1.22
    - Upgrade Applesauce to v7 with account-specific relay authentication, automatic subscription recovery, and relay health, cooldown, and retry controls. - Show shared reaction and comment counts for visible rows without downloading every reaction. Distinguish unavailable counts from zero and preserve totals across map revisions. Calculate zap totals from actual receipt amounts. - Require completed wallet synchronization before spending, preserve recovery and consumed-token safeguards, and bound wallet capability discovery. - Use upstream large-message and restored-session remote signing support, and improve comment threading when parents arrive late or are deleted. - Fix validation debt: isolate unit-test files, align stale UI/routing/editor
    More…
    assertions, reject invalid geometry at rendering boundaries, and prevent uninterruptible schema regex validation when no worker is available. ### Validation - All 418 unit-test files pass through the isolated test gate; the AI-suite typecheck passes and the application typecheck reports no new diagnostics. - Desktop/mobile browser checks and Android emulator navigation, foreground resume, and process restart passed. ### Known limitations - Physical-device performance and live mint/NWC payments remain untested. - Android instrumentation dependency downloads returned HTTP 404; equivalent navigation and lifecycle smoke checks used ADB and UI Automator.
  • Oct 13, 2026 0.1.21
    - Embed a published public dataset on a website from Share, with a live preview, configurable theme, height, title, legend, controls, scroll zoom, and initial camera. Copy ready-to-use iframe HTML on desktop and mobile. - Check viewer compatibility and relay availability before enabling the preview or copy action. Private datasets and unpublished drafts remain excluded; unsupported datasets offer a link-sharing alternative. - Added the Earthly Maps MCP integration for creating interactive maps in chat, publishing them to Nostr, sharing public links, and generating website embeds. Temporary guest editing survives MCP reconnects within its original expiry. - Added isolated PM2/Caddy deployment support for the public map service and
    More…
    reused Earthly's icon for the plugin package. ### Known limitations - The initial embed viewer supports inline datasets up to 300 features and 48 KiB on its configured relays. Blob-backed datasets are not supported. - Physical-device Android upgrade and embed smoke testing remain pending.
  • Oct 6, 2026 0.1.20
    - Replaced the three-way map background switch with one compact icon button that cycles OSM → Satellite → Combined. The icon shows the current mode; its tooltip names the current and next modes. A 44-pixel touch target surrounds the smaller 32-pixel visual control on desktop and mobile. - Preserved the vector-only default and configurable Combined blend settings. ### Known limitations - Physical-device Android upgrade and map/Story smoke testing remain pending for this release.
  • Oct 6, 2026 0.1.18
    - Geometry clicks now open feature details by default in Maps and Stories, showing the selected feature's name, description, geometry data, and properties. - Long feature details scroll inside a popup with a capped height, positioned above the mobile panel. Hover previews remain optional. - Map inspection reveals, expands, and highlights the clicked feature in the sidebar, including features beyond the initial list and those hidden by list filters. - Preserved source feature identities and complete typed properties when inspecting rendered geometry, including Story presentation layers and externally stored Maps. ### Known limitations
    More…
    - Physical-device Android upgrade and map/Story smoke testing remain pending for this release.
  • Oct 5, 2026 0.1.17
    - Added a visible Enter atlas button as the first action on Atlas list rows, including Browse, profiles, and mobile layouts. - Reordered Browse tabs to Stories, Atlases, Maps, Sightings, Maplets, and People. Atlas-specific browsing also shows Stories first. ### Known limitations - Physical-device Android upgrade and map/Story smoke testing remain pending for this release.
  • Oct 2, 2026 0.1.16
    - Enlarged Map, Story, and Atlas previews across list rows, including mobile layouts. - Preserved Story image descriptions in rendered images and lightboxes, and aligned timeline jumps with their map cues even when earlier images load afterward. - Made the Shelf count distinct Map sources separately from presentation layers, while keeping each layer's visibility controls independent. - Kept desktop-agent tool registrations, session tokens, and source access stable across editor and Reader navigation. Editor-only actions now report when the editor must be opened before making changes. - Allowed independent public Map reads to run concurrently through WebMCP, while keeping editing and publication serialized.
    More…
    - Stopped relay restarts triggered by reclaimable database file cache, while retaining automatic recovery and a limit on Go-managed memory. ### Known limitations - Desktop WebMCP requires a compatible browser with the experimental feature enabled. Full-page reloads still start a new agent session. - Physical-device Android upgrade and map/Story smoke testing remain pending for this release.
  • Oct 2, 2026 0.1.15
    - Enabled desktop-agent access and external queries by default, with saved preferences that survive reloads while account changes revoke earlier agent permissions. - Added polygon union, intersection, and difference to chat and WebMCP, sharing the editor's geometry processing and existing review, Cancel, and Undo controls. - Made road routing handle up to 100 ordered waypoints within the backend's actual limits. Interrupted or disconnected routes report partial results and cannot be imported as complete. - Added recovery for publication timeouts using verified relay receipts, preserving later edits and preventing duplicate Maps. Stories and Atlases can now explicitly rebase local changes against newer published revisions with conflict choices and Undo. - Added fresh public-source reads, complete paginated feature inventories, direct Story
    More…
    draft previews, and immediate feature citations after acknowledged publication. - Fixed switches across the app and reduced false self-intersection warnings for valid point contacts between MultiPolygon parts. - Kept the main map working when viewing long Stories with many inline maps, and preserved Story layers and visibility settings when inspecting a geometry on the map. ### Known limitations - Desktop WebMCP requires a compatible Chrome build with the experimental browser feature enabled. - Physical-device Android upgrade and map/Story smoke testing remain pending for this release.
  • Oct 1, 2026 0.1.14
    - Fixed long Stories turning the main map grey in Read mode on devices with limited graphics resources. Off-screen inline map figures now release their resources and restore their authored view when revisited. - Made WebMCP tool instructions self-contained for external agents, with supported browser command names and explicit local Story targets. - Added ready-to-use published Map citations to WebMCP source discovery. ### Known limitations - Reader verification covers desktop and mobile browser emulation; physical-device
    More…
    Android upgrade and Read-mode smoke testing remain pending for this release.
  • Oct 1, 2026 0.1.13
    - Added desktop-agent access through WebMCP, sharing Earthly's Map editing tools with external AI clients. Agents can read full geometry, frame and capture Maps, edit styles and metadata, and use existing remote geography and research tools when enabled. - Added fat lines and arrows from editable line geometry, with width, offset, and shape controls available through the toolbar, chat, and WebMCP. - Added images to map callouts while preserving existing callout sizes and layouts. - Added shared Story and Atlas draft authoring in chat and WebMCP, including names, descriptions, local Map and Story references, feature selections, cameras, and named views. - Kept agent changes reviewable with Apply, Cancel, and Undo; protected newer human edits and account changes, and refreshed open forms after draft updates.
    More…
    - Fixed local Map layers rendering twice in Story and Atlas previews. Hidden layers, feature selections, and opacity now apply while saved Maps return intact to editing. - Highlighted new AI work and previewed the first Map created by a conversation. ### Known limitations - Desktop WebMCP requires a compatible Chrome build with the experimental feature enabled. Access is enabled per tab session; publishing remains an explicit action in Earthly. - Physical-device Android upgrade and keyboard smoke testing remain pending for this release.
  • Sep 30, 2026 0.1.12
    - Added the Maplets directory and GMapper, a client-side viewer for public Google My Maps. Create configurations with selected layers, colours, and opacity; publish them for others to discover, or keep them private on the device or encrypted in your account. - Gave each active configuration its own Shelf controls, personal viewing choices, and editable geometry copies with source attribution. Publisher updates can be reviewed while retaining personal choices; edit previews leave the active configuration unchanged. - Preserved existing My Maps preferences and publication addresses, added resumable drafts and signer recovery, and retained downloaded KML as a local fallback. - Simplified chat navigation and settings, added encrypted connection sharing and entity drops, kept chat edits on one map, and exposed Chat in mobile primary navigation.
    More…
    - Disabled map hover popups by default and strengthened wallet payment handling. - Fixed Android release setup to install supported SDK platform tools after Google removed the legacy tools package. The unpublished 0.1.11 tag remains unchanged. ### Known limitations - Google export availability and browser CORS still govern fetching. GMapper supports public Google My Maps vector KML; ordinary Google Maps places, image overlays, and KMZ are outside its supported input. - Downloaded executable Maplets remain unavailable in Tauri. The bundled GMapper is allowed; physical Android upgrade, file-picker, and keyboard testing remain pending for this release.
  • 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.