LogbookWrapped is "Spotify Wrapped for Pilots." It transforms CSV exports from EFBs (like ForeFlight, Garmin Pilot, or MyFlightbook) into a shareable visual history of a pilot’s flying career. Pilots get a story-format breakdown of their flight hours, routes, aircraft, and extremes, whether they are reviewing a specific year's Wrapped, analyzing year-over-year Growth, or celebrating all-time career Milestones. All ready to be exported directly to social media or aviation forums.
Note: Logbook parsing happens entirely in your web browser. Your raw flight logs are never sent to a server. You can optionally choose to share anonymous, high-level totals to unlock community averages.
- Visit the Site: LogbookWrapped.com
- View a 2026 LogbookWrapped Demo
- GitHub: thebronway/LogbookWrapped
- Multiple Dashboards: Explore data via an annual Wrapped story, track year-over-year progression with Growth, or celebrate all-time achievements in Milestones.
- Story Mode Interface: A sequential animated experience detailing total hours, sorties, and home base status.
- The Stats Card: A high-impact summary card designed for quick social sharing.
- The Footprint Map: Path visualization that auto-scales from local practice areas to global maps.
- Fleet Diversity: Analytical breakdown of used airframes, unique tail numbers, and aircraft normalization.
- Aviation Extremes: Automatic identification of favorite routes, shortest flights, and longest distances.
- Community Averages: Opt-in to share anonymous, high-level totals (hours, landings, flights) to see how you stack up against the global pilot community.
-
Shareable Link: Opt-in
/s#...URL that encodes a read-only snapshot of your stats directly into the link. No server storage, no accounts, nothing uploaded. - Methodology-Driven Logic: Transparent parsing methodology and supported aircraft profiles.
- Privacy-First: 100% client-side parsing. Your raw logbook entries never touch a server. Read our privacy policy.
- Smart Mapping: Normalization engine that auto-detects EFB providers and cleans aircraft inputs.
- One-Click Export: HTML5 Canvas integration to generate 9:16 story and 4:5 post exports.
LogbookWrapped offers a 100% serverless, client-side import API for third-party flight tracking apps and EFBs. Devs can easily add a "Generate End of Year or All-time LogbookWrapped" button to your platform that securely transmits a user's logbook data directly to LogbookWrapped via window.postMessage().
For technical specifications, implementation examples, and allowlist requirements, please review our Developer Integration Guide.
- If a logbook isn't parsing right or an aircraft profile is missing, please open a GitHub issue or Contact Us with the details so we can improve the parser.
- Support the dev and project by helping keep the app airborne via our Buy Me A Coffee.
- Note: This project was coded with AI assistance, but fully reviewed, tested, and approved by hand. See AIACKNOWLEDGMENT.md for details.
Last updated: 2026-06-04 Current Version: v1.1.1
This document tracks past changes starting with v0.8.1.
-
Advanced Referral Attribution: Set up a global background memory listener to capture and persist the URL
?source=xyzparameter across the entire user session. Update key custom event triggers (e.g., "Generate Wrapped Clicked") to pass this saved referrer string directly to Umami as metadata, enabling a granular conversion funnel breakdown of where successful reports are coming from. ?utm_source=xyz&source=xyz
- UI / Feature: Replace "Autopilot's Default" (favorite route) on the Extremes page with "Second Home" (most visited destination excluding home base) to eliminate redundant A-to-A local pattern flights. Subtst should list the times visited.
- UX / Feature / bug: Added a 1s delayed fade-in to the action buttons (and make sure the button is disabled for that 1 second) on Page 11 (Export / CTA) to prevent accidental route changes when rapidly tapping through the mobile story.
- Bug: When viewing demo logbook, and you click create your own logbook, it goes to the configure screen, not the upload screen, and since you didnt upload it uses the demo logbook. It should go to the upload screen
- Feature: When viewing demo logbook add the floating create your own logbook button, similar to shared link /s
- Bug: When viewing a shared link /s and you click create your own logbook, it goes to the home screen, it should go to the upload screen
- SEO/AEO updates
- Content Updates
- Bug fix: Page 1 (Cover) PPL milestone showing 0 landings; corrected key mismatch (
destLandingsvsdepartureCounts) in MathEngine - Bug fix: Page 11 Growth button using wrong year labels and incorrect order
- Bug fix: "My [Year]" title appearing incorrectly on custom date ranges without a milestone name
- Page 2 (Big Picture): scaled down NM distance stat to match the visual weight of surrounding stats
- Page 10 (Community): rewrote tollbooth copy; title "See How You Stack Up", body leads with "Help build the community average", button renamed "Share to Unlock", table header updated to "Anonymous Data That Will Be Shared"
- Home page: added "View a Sample Dashboard" button below the iPhone preview carousel
- Page 11 (Export): refactored into sub-components (ExportCTA_Owner, ExportCTA_SharedDemo)
- SEO/AEO: improved meta descriptions on Home and Demos; added JSON-LD schemas to Contact (ContactPage) and Privacy (WebPage); fixed SoftwareApplication schema missing
urlon Home; fixed Methodology title length anddatePublishedtimezone; added 4th demo card to Demos ItemList schema - Copy/grammar: fixed "as log it" typo, duplicate "drop that drop", and several other grammar/copy issues across Methodology, HeroSection, About, FAQ, Contact, and Demos
- ShareLinkModal: title, icon badge, "What's in the link" heading, and ✓ checkmarks recolored to green; Generate button stays yellow
- ShareLinkModal: fixed background scroll-through when opened from ExportModal
- ShareLinkModal: added framer-motion scale+fade card entrance animation
- DonationModal: refactored from full-screen takeover to a centered card overlay with backdrop, scroll lock, and scroll stop propagation
- ExportModal, ShareLinkModal, DonationModal: X buttons now use yellow border accent consistent with the story close button
- Page 6 (Elements): Approach type breakdown chips (ILS / RNAV / VOR / LOC / NDB / Other) from ForeFlight typed descriptions
- Page 6 (Elements): Night flying % sub-line under The Night Owl
- Page 8 (Stats): Night hours shown as
X Hrs Night (Y%)when night data is present - Page 10 (Community): Percentile badge ("Top X% · More flight time than Y% of 2026 pilots")
- Page 10 (Community): VS layout swapped to Western reading order (Average on left, You on right); glow colors follow
- Page 10 (Community): Added
Community Page ViewedandCommunity Stats ErrorUmami events for full funnel tracking - Shareable hash link (
/s#...): client-side encoded, no server storage, consent-gated, renders full read-only story carousel with "Create your own" CTA - ExportModal: renamed header to Share Your LogbookWrapped, added inline yellow Share as Link button next to the Story/Post toggle, and reflowed the mobile header so the close (X) sits above the format slider with a full-width share button
- ShareLinkModal: recolored entirely to the site-standard yellow accent so it reads as a first-class primary action
- Page 11 & SharedView floating CTA: switched "Create Your Own LogbookWrapped" to yellow for visual consistency with the rest of the app
- Demo flow: when viewing a demo, Page 11 now swaps its Share/Donate/Growth buttons for the same "Create Your Own" pitch used on shared views, with a dedicated Demo sample footer note
- Demos page: redesigned the persona cards to show two visually distinct report slots (Yearly Wrapped vs Growth Report) with dedicated colors, eyebrow labels, and short descriptions instead of two near-identical buttons
- Privacy Policy: added Section 3 "Optional Shareable Link" explaining the client-side hash encoding (nothing uploaded, consent-gated, ~100 m rounded coords)
- FAQ: added a new "Can I share my LogbookWrapped with someone else?" entry
- About: added a sentence in "Why Privacy Matters" noting the optional share link also keeps data off our servers
- Code cleanup: trimmed verbose JSDoc / inline comments across ExportModal, ShareLinkModal, SharedView, Page11_Export, and Demos
- Fixed touch area issues for mobile stories
- Row 2/3 dyanamic areas on desktop
- Growth Page ui issues fixes
- Community Page fixes
- Dashboard Page Fixes
- Bug fixes
- Growth report over years
- Content updates
- Demo updates
- UI updates
- Bugfixes
- Added backend and db
- Added Community Stats Page
- Content Updates
- Reduced map sizes
- SEO/AEO Optimizations
- Content Updates
- NPM Updates
- Comment Cleanup
- Tech Debt Cleanup
- Performace tweaks and code cleanup
- Story Pages UI unification and updates
- Growth Page UI unification and updates
- Config page yellow highlight
- Screenshot Updates
- API Tests
- API documentation updates
- Security Updates
- SEO/AEO analysis
- Stats card (page 8) ui fixes
- Growth page monolithic breakup and restyling
- Demo file and UI updates
- Add growth report to year wrapped report.
- Scroll to top fixes
- Content Updates
- UI Updates
- Replace demo files
- Update screenshots
- Dev API updates
- Content Updates
- Backend Cleanup
- UI updates
- Growth wrapped updates
- Titles updates
- Config page updates
- My aviation dashboard
- Dropzone UI Fixes
- Added API to footer
- New Homepage and UI Flow
- New Filters
- New Compare Mode
- Added API endpoint and documentation
- Added data sources
- Added approach metrics
- Added experimental aicraft
- Updated asset manager
- Readme updates
- About us updates
- Added addtional umami tracking
- Change airport db
- Added umami tracking
- UI Updates and Tweaks
- New URL
- Updated Buy Me a Coffee / PayPal
- Contact Page UI
- Favicon
- Homepage demo files
- Aircraft profiles updates
- UI tweaks and bugfixes
- Code Cleanup
- Implemented a more consistent feel
- Domain name update
- Bigfix: Page 7 map zoom on mobile
- Bugfix: Page 1 busiest month invalid date
- Page 8: Remove bottom table line on export
- Add unknown profile for logbook processing
- Switch to local assets for map generation
- Bigfix: Airport generation file
- Post and Story Tweaks
- Bugfix: Tiny black bar on the bottom of the export modal just on mobile
- Created two versions of the export in different aspect ratios for posts and stories
- Math Engine refactor into Map Builder, Navigation, and Superlatives
- Export Modal Refactor into Export Engine, Preview Card and Export Pages
- Page 1 ui, content, metric and color updates
- Page 2 color updates to unify design
- Page 7 export bug fix
- Page 8 metrics and layout updates
- Page 9 touch area updates
- Screenshot Updates
- Swap pages 2 and 3
- Export page ui uppdates
- Refine support for ForeFlight and Garmin
- Add support for LogTen and MyFlightbook
- Vertically center items in cell on Page 8
- Export page updates (Titles and Exports)
- Homepage ui fixes and content updates
- Contact page ui and content updates
- Added EFB format detector to console logs
- Max CSV 10MB upload
- Custom error pages
- Removed mapbox dependency
- Bug fix with nginx conf
- Updated copywriter
- UI updates
- Fleet page refactor
- Added Support Files
Last updated: 2026-06-04 Current Version: v1.1.1
This document tracks planned improvements, enhancements, and maintenance.
-
Partner API & Secure Tracking Infrastructure: Enhance the upload API to accept a
partner_idparameter, secured via server-side API key validation. When a 3rd-party app submits a logbook, the backend will return a tamper-proof session token and track the partner's specific traffic in Umami. This establishes the secure, spoof-proof groundwork for future UI white-labeling (e.g., co-branded watermarks) without making any immediate visual changes to the frontend. - API documentation expand. I want all the options clearly laid out in great detail on /dev. This should be a tech doc page.
-
New CFI/Instructor Page (Page 7): Create a dedicated "Flight Instructor" page that dynamically renders only if the parsed logbook contains >10 hours of
Dual Given. The page will feature these exact instructor-specific metrics:-
The "Passing the Torch" Ratio: Percentage of total time spent teaching (
(Dual Given / Total Time) * 100). - The Pattern Warrior: "You survived [X] student landings this year." (Comparing landings to total flights when Dual Given > 0).
- The IMC Mentor: Hours of instruction given under the hood or in actual clouds.
- The Night Shift: Hours spent teaching in the dark.
-
The "Passing the Torch" Ratio: Percentage of total time spent teaching (
- Main Stats Update: Inject "Dual Given" as a standard sub-metric under the "Total Time" row on the main Stats page so CFIs see their core instruction metric regardless of the dedicated page.
-
Component Renumbering: Shift all components from Page 7 onward to maintain chronological file structure. Rename
Page7_PassporttoPage8_Passport,Page8_StatstoPage9_Stats, up throughPage12_Export. Update all imports and Umami tracking arrays accordingly. -
Desktop Grid Layout Protection (Max 3 Columns): Update the
StoryContainermasonry grid to prevent the new Page 7 from breaking the standard layout. Inject the CFI page into the dynamic "Row 3" container, but cap the grid at a maximum of 3 columns. If 4 items are present (Instructor, Growth, Community, Export), snap to a 2x2 grid (md:grid-cols-2) so the cards remain wide and legible. -
Mobile Sequence Update: Conditionally inject the new
p7component into the mobilepagesswipe array so it perfectly precedes the Passport and Stats pages during the mobile flow.
- Offline PWA












