<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Features on Wingbeat Documentation</title>
    <link>https://wingbeat.dummthings.dev/docs/features/</link>
    <description>Recent content in Features on Wingbeat Documentation</description>
    <generator>Hugo</generator>
    <language>en</language>
    <atom:link href="https://wingbeat.dummthings.dev/docs/features/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Live Tracking</title>
      <link>https://wingbeat.dummthings.dev/docs/features/live-tracking/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://wingbeat.dummthings.dev/docs/features/live-tracking/</guid>
      <description>&lt;h1 id=&#34;live-tracking&#34;&gt;Live Tracking&lt;a class=&#34;anchor&#34; href=&#34;#live-tracking&#34;&gt;#&lt;/a&gt;&lt;/h1&gt;&#xA;&lt;p&gt;The dashboard shows every active tracker&amp;rsquo;s current position on a Leaflet map,&#xA;with a plane marker per tracker and a status card per aircraft along the top&#xA;of the page.&lt;/p&gt;&#xA;&lt;h2 id=&#34;polling&#34;&gt;Polling&lt;a class=&#34;anchor&#34; href=&#34;#polling&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;Wingbeat polls each tracker&amp;rsquo;s Garmin MapShare feed on a Cron Trigger that runs&#xA;every minute, throttled per-tracker to roughly Garmin&amp;rsquo;s own ~2-minute&#xA;transmission rate. The dashboard also polls in the browser while it&amp;rsquo;s open, so&#xA;position updates arrive without a manual refresh. A manual &lt;strong&gt;Refresh&lt;/strong&gt; button&#xA;is available too (throttled to once per 30 seconds).&lt;/p&gt;</description>
    </item>
    <item>
      <title>Fleet Management</title>
      <link>https://wingbeat.dummthings.dev/docs/features/fleet-management/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://wingbeat.dummthings.dev/docs/features/fleet-management/</guid>
      <description>&lt;h1 id=&#34;fleet-management&#34;&gt;Fleet Management&lt;a class=&#34;anchor&#34; href=&#34;#fleet-management&#34;&gt;#&lt;/a&gt;&lt;/h1&gt;&#xA;&lt;p&gt;Wingbeat separates three things that are easy to conflate: the &lt;strong&gt;tracker&lt;/strong&gt;&#xA;(the physical Garmin inReach device), the &lt;strong&gt;aircraft&lt;/strong&gt; it&amp;rsquo;s riding in, and the&#xA;&lt;strong&gt;pilot&lt;/strong&gt; flying it. All three are managed from Settings, and any tracker&amp;rsquo;s&#xA;aircraft/pilot assignment can change over time — a tracker isn&amp;rsquo;t permanently&#xA;bolted to one plane.&lt;/p&gt;&#xA;&lt;p&gt;Everyone can see the Aircraft, Pilots, and Trackers lists in Settings; only&#xA;admins can add, edit, pause, or remove entries. See&#xA;&lt;a href=&#34;../settings/&#34;&gt;Settings&lt;/a&gt; for the full admin/user split.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Maintenance Tracking</title>
      <link>https://wingbeat.dummthings.dev/docs/features/maintenance-tracking/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://wingbeat.dummthings.dev/docs/features/maintenance-tracking/</guid>
      <description>&lt;h1 id=&#34;maintenance-tracking&#34;&gt;Maintenance Tracking&lt;a class=&#34;anchor&#34; href=&#34;#maintenance-tracking&#34;&gt;#&lt;/a&gt;&lt;/h1&gt;&#xA;&lt;p&gt;Each aircraft has an &lt;strong&gt;Aircraft Info&lt;/strong&gt; card (open it from an aircraft&amp;rsquo;s entry&#xA;in Settings) showing Hobbs/tach timers and a maintenance schedule.&lt;/p&gt;&#xA;&lt;h2 id=&#34;hobbs-and-tach-timers&#34;&gt;Hobbs and tach timers&lt;a class=&#34;anchor&#34; href=&#34;#hobbs-and-tach-timers&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;Rather than requiring someone to update a timer reading constantly, Wingbeat&#xA;stores one recorded value + timestamp per timer and estimates the current&#xA;reading using flight time logged since, scaled by a per-aircraft correction&#xA;factor (defaults to 1.0 — set it if the timer runs faster or slower than&#xA;wall-clock flight time).&lt;/p&gt;</description>
    </item>
    <item>
      <title>Pilot Duty Log</title>
      <link>https://wingbeat.dummthings.dev/docs/features/pilot-duty-log/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://wingbeat.dummthings.dev/docs/features/pilot-duty-log/</guid>
      <description>&lt;h1 id=&#34;pilot-duty-log&#34;&gt;Pilot Duty Log&lt;a class=&#34;anchor&#34; href=&#34;#pilot-duty-log&#34;&gt;#&lt;/a&gt;&lt;/h1&gt;&#xA;&lt;p&gt;Per-pilot flight log, opened from a pilot&amp;rsquo;s entry in Settings. Shows one&#xA;month at a time, navigable with prev/next.&lt;/p&gt;&#xA;&lt;h2 id=&#34;table&#34;&gt;Table&lt;a class=&#34;anchor&#34; href=&#34;#table&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;One row per flight that month: date, aircraft, origin, departure time,&#xA;destination, arrival time, and block time (derived from the flight&amp;rsquo;s&#xA;recorded start/end). Days with no flights show as a &amp;ldquo;Rest&amp;rdquo; row. Each day with&#xA;flights gets a day-total row; the month gets a total at the bottom.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Analytics</title>
      <link>https://wingbeat.dummthings.dev/docs/features/analytics/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://wingbeat.dummthings.dev/docs/features/analytics/</guid>
      <description>&lt;h1 id=&#34;analytics&#34;&gt;Analytics&lt;a class=&#34;anchor&#34; href=&#34;#analytics&#34;&gt;#&lt;/a&gt;&lt;/h1&gt;&#xA;&lt;p&gt;A separate page (&lt;code&gt;/analytics&lt;/code&gt;) for fleet-wide trends, sharing the same&#xA;filters (date range, tracker, aircraft, pilot) as the dashboard.&lt;/p&gt;&#xA;&lt;h2 id=&#34;map-view&#34;&gt;Map view&lt;a class=&#34;anchor&#34; href=&#34;#map-view&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;All filtered flight tracks plotted together, with the same basemap/layer&#xA;controls as the dashboard (see &lt;a href=&#34;map-tools&#34;&gt;Map Tools&lt;/a&gt;).&lt;/p&gt;&#xA;&lt;h2 id=&#34;stream-graph&#34;&gt;Stream graph&lt;a class=&#34;anchor&#34; href=&#34;#stream-graph&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;Flight time broken down by region over time, as a stacked stream graph.&#xA;Toggle between:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;Time&lt;/strong&gt; or &lt;strong&gt;stops&lt;/strong&gt; mode&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Absolute&lt;/strong&gt; hours or &lt;strong&gt;normalized&lt;/strong&gt; (percentage) view&lt;/li&gt;&#xA;&lt;li&gt;Interval: auto, day, week, or month buckets&lt;/li&gt;&#xA;&lt;li&gt;Show/hide the home-base region&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;Region colors are assigned per region name and stay stable regardless of sort&#xA;order or the active date filter.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Notifications</title>
      <link>https://wingbeat.dummthings.dev/docs/features/notifications/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://wingbeat.dummthings.dev/docs/features/notifications/</guid>
      <description>&lt;h1 id=&#34;notifications&#34;&gt;Notifications&lt;a class=&#34;anchor&#34; href=&#34;#notifications&#34;&gt;#&lt;/a&gt;&lt;/h1&gt;&#xA;&lt;p&gt;Admins can register notification targets (Settings → Admin → Global Settings&#xA;→ Notifications) to get notified when a tracker:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;takes off&lt;/strong&gt; — velocity crosses above the flight-speed threshold (~20 kt)&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;lands&lt;/strong&gt; — velocity drops back below it&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;loses signal in flight&lt;/strong&gt; — more than the configured gap-alert threshold&#xA;(default 5 minutes) passes between two updates while airborne. Gap alerts&#xA;repeat roughly once a minute while the silence continues, followed by a&#xA;final &amp;ldquo;signal restored&amp;rdquo; notification once updates resume.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;Both target types below share the same detection pipeline and message&#xA;formatting, and can be freely mixed.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Map Tools</title>
      <link>https://wingbeat.dummthings.dev/docs/features/map-tools/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://wingbeat.dummthings.dev/docs/features/map-tools/</guid>
      <description>&lt;h1 id=&#34;map-tools&#34;&gt;Map Tools&lt;a class=&#34;anchor&#34; href=&#34;#map-tools&#34;&gt;#&lt;/a&gt;&lt;/h1&gt;&#xA;&lt;h2 id=&#34;basemaps&#34;&gt;Basemaps&lt;a class=&#34;anchor&#34; href=&#34;#basemaps&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;Available basemaps, toggleable and switchable from the map layer controls&#xA;(bottom of the map):&lt;/p&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th&gt;Basemap&lt;/th&gt;&#xA;          &lt;th&gt;Source&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;Map&lt;/td&gt;&#xA;          &lt;td&gt;Carto Voyager (requires a hoster-configured API key — hidden if unset)&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;Topo&lt;/td&gt;&#xA;          &lt;td&gt;OpenTopoMap&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;USGS Topo&lt;/td&gt;&#xA;          &lt;td&gt;USGS National Map&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;USGS Imagery Topo&lt;/td&gt;&#xA;          &lt;td&gt;USGS National Map&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;Satellite&lt;/td&gt;&#xA;          &lt;td&gt;Esri World Imagery&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;p&gt;Which layers are enabled, the active basemap, and per-layer color correction&#xA;(saturation/contrast/brightness) are stored &lt;strong&gt;locally per device&lt;/strong&gt;, not&#xA;synced to the server — picking a style is a personal preference, not a tenant&#xA;setting. A custom tile URL can also be added from Settings → Map layers.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Users &amp; Devices</title>
      <link>https://wingbeat.dummthings.dev/docs/features/users-and-devices/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://wingbeat.dummthings.dev/docs/features/users-and-devices/</guid>
      <description>&lt;h1 id=&#34;users--devices&#34;&gt;Users &amp;amp; Devices&lt;a class=&#34;anchor&#34; href=&#34;#users--devices&#34;&gt;#&lt;/a&gt;&lt;/h1&gt;&#xA;&lt;h2 id=&#34;accounts-are-invite-only&#34;&gt;Accounts are invite-only&lt;a class=&#34;anchor&#34; href=&#34;#accounts-are-invite-only&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;There&amp;rsquo;s no public sign-up. Admins generate an invite link (Settings → Admin →&#xA;Users → Invite someone) for a name and a role (&lt;strong&gt;Admin&lt;/strong&gt; or &lt;strong&gt;Viewer&lt;/strong&gt;);&#xA;opening the link in a browser sets up that device&amp;rsquo;s session. Invite links&#xA;expire after 24 hours.&lt;/p&gt;&#xA;&lt;h2 id=&#34;roles&#34;&gt;Roles&lt;a class=&#34;anchor&#34; href=&#34;#roles&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;Viewer&lt;/strong&gt; — full read access to the dashboard, analytics, and flight data.&#xA;Can see (but not edit) Aircraft/Pilots/Trackers lists and their own&#xA;devices.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Admin&lt;/strong&gt; — everything a Viewer can do, plus: edit&#xA;Aircraft/Pilots/Trackers, bulk-edit flight assignments, manage users, and&#xA;everything under Global Settings (app name, timezone, map defaults,&#xA;notifications, regions, named points).&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;my-devices&#34;&gt;My Devices&lt;a class=&#34;anchor&#34; href=&#34;#my-devices&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;Each user can be signed into multiple devices at once. Settings → My Devices&#xA;lists every session on the account (device name, last-seen date), and lets&#xA;you:&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
