1. System Overview
▼ SHOWHangarHub Mx is the maintenance management system for KP Aviation Services. It covers the full job lifecycle from intake to payment.
| Dashboard | Live list of all active aircraft. Open work orders, view history, archive. |
| Work Orders | Full-page job card with discrepancies, corrective actions, parts, timers, AD compliance, and customer messaging. |
| Estimates | Pre-job pricing documents. Can be sent to the customer and converted to an invoice. |
| Invoices | Final billing. Payment method determines delivery: Cash/Check sends PDF only; Card (3.9%) or ACH (1%) sends Valor PayTech payment link. Processing fee shown below tax. |
| Brokerage | Teton AeroWorks aircraft sales module. Listings, buyer profiles, deal pipeline (Kanban), and commission tracking with partner splits. |
| Admin Panel | Parts inventory, accounts, rates, manuals, timekeeping, analytics, and billing. |
2. Mechanic Accounts
▼ SHOWCreating an Account
- Open Admin → ⚙ Settings → Accounts.
- Fill in Username, Display Name, and Password (min 10 characters).
- Check Grant admin access for admin-level users.
- Click Create Account.
Resetting a Password
In the Accounts tab, delete the account and recreate it with the new password. Work order history and timeclock data are preserved.
3. Logging In
▼ SHOWNavigate to kpaviationservices.com and log in with your username and password. Sessions last approximately 7 days.
4. The Dashboard
▼ SHOWTopbar Buttons
| ⋯ More | Dropdown: View Archive, SMS Log, Manuals, Scan QR. |
| ⚙ Admin | Opens the Admin Panel (admin users only). |
| + Add Aircraft | Register a new aircraft into the active job list. |
Aircraft Row Actions
Click Open ▼ on any row to expand the action panel:
| 📝 Update Status | Change status, notes, service type, assigned mechanic. |
| 📋 Work Order | Open the full work order page in a new tab. |
| 🕐 History | View all past work orders for this aircraft. |
| 📱 QR Code | Display the customer-facing QR status code. |
| ▲ ▼ | Reorder aircraft in the list. |
| 📁 Archive | Remove from active dashboard when job is complete. |
Status Badges
| IN PROGRESS | Active work underway. |
| GROUNDED | Aircraft is not airworthy. |
| READY FOR PICKUP | Work complete, awaiting customer. |
| PENDING CHECK-IN | Scheduled but not yet received. |
| OPEN | Job open, no specific status set. |
5. Work Orders
▼ SHOWWork orders open as full-page documents in a new tab, auto-filled with aircraft and customer info from the dashboard.
Aircraft Fields
The aircraft section includes fields for N-number, make, model, year, serial, engine, Propeller Make, and Propeller Model. Filling in propeller make and model enables propeller AD searches and TCDS lookups.
TCDS (Type Certificate Data Sheets)
When a work order loads, the system automatically fetches TCDS for the airframe, engine, and propeller from the FAA database (2,257 entries). TC number links (e.g. A4CE Rev 51) appear below Relevant Manuals — clicking them opens the FAA document in a new tab.
Topbar Buttons
| ← Dashboard | Close the tab and return to the dashboard. |
| 💾 Save | Save all changes. Also auto-saves every 60 seconds. |
| ⚖ AD Compliance | Open the AD compliance tracker for this aircraft. |
| 💬 MSG | Open customer messaging thread. Badge shows unread count. |
| Generate a printable work order. | |
| 📋 Create Estimate | Convert this work order into a billing estimate. |
| ❓ Help | Opens this guide. |
Discrepancy / Corrective Action Table
Each row is one discrepancy. Fill in Discrepancy, Corrective Action, Parts Used, and Labor hours.
- Parts Used — Start typing to search your parts inventory for autocomplete.
- ▶ Start timer — Runs a live labor timer for that row. Only one timer runs at a time. Hours are written to the labor input automatically.
- Click + Add line item to add more rows.
Creating an Estimate from a Work Order
Click 📋 Create Estimate in the topbar. The system pulls:
- Aircraft: reg, make, model, year, serial number
- Customer: name and phone
- Service type
- One labor line per discrepancy row with hours logged (description = corrective action)
- One parts line per discrepancy row with parts entered
The new estimate appears in Admin → Operations → Billing → Estimates. Open it there to set prices and send to the customer.
Return to Service
Point of Contact
The work order includes a Point of Contact block below the customer fields. Use this for business-registered aircraft where the maintenance contact differs from the registered owner. POC data saves with the work order and syncs to the customer database.
From Estimate Badge
When you click 📋 Create Estimate, a blue 📋 From Estimate Q-XXXX badge appears in the work order header linking it to the generated estimate.
The bottom of the work order includes the FAR Part 43 Appendix B certification with signature lines for mechanic and IA inspector.
6. Billing — Estimates & Invoices
▼ SHOWAccess billing via Admin → ✈ Operations → Billing. The tab has two sub-sections: 💳 Invoices and 📋 Estimates.
Estimates
Pre-job pricing documents sent to customers for approval before work begins.
Creating an Estimate
- Click + New Estimate.
- Enter the N-number and press Tab to auto-fill from the FAA registry.
- Select service type and adjust labor hours and rate.
- Toggle Travel job or Emergency / AOG as needed.
- In the Search items box, type to search Services (⚙) and Parts (📦). Select any item to add it as a line item.
- Adjust quantities and prices on each line item.
- Click Save Estimate.
Estimate Actions
| Edit | Open the estimate editor. |
| Preview or print the estimate. | |
| 📧 Send | Email the estimate to the customer (draft/sent status). |
| 💳 Invoice | Convert to an invoice. Estimate is marked "Converted." |
| Re-convert | Create a new invoice from a converted estimate (useful after deleting the original invoice). |
| Reset | Reset a converted estimate back to "Accepted." |
| ✕ Delete | Permanently delete the estimate. |
Estimate Statuses
| Draft | Created, not yet sent. |
| Sent | Emailed to customer. |
| Accepted | Customer approved. |
| Declined | Customer declined. |
| Converted | An invoice has been created from this estimate. |
Invoices
Final billing documents sent to customers. The delivery method depends on how the customer is paying.
Creating an Invoice
- Click + New Invoice, or use the 💳 Invoice button on an estimate to convert it.
- Enter N-number (Tab to auto-fill).
- Select service type and fill in labor details.
- Search and add line items using the Search items box.
- Select the Payment Method in the totals box — this determines delivery and fees.
- Click Save Invoice.
Payment Methods & Processing Fees
| 💵 Cash | No processing fee. Customer receives a PDF invoice by email. No payment link. |
| 🏦 Check | No processing fee. Customer receives a PDF invoice by email. No payment link. |
| 💳 Card | 3.9% processing fee added to the subtotal (labor + parts + tax). Customer receives a Valor PayTech payment link by email. |
| 🔄 ACH | 1% processing fee added to the subtotal. Customer receives a Valor PayTech payment link by email. |
The processing fee appears as a separate line below Sales Tax on the invoice and PDF. The grand total shown is the final amount including all fees.
Sending an Invoice
- Click 📤 Send on the invoice row.
- Cash or Check: The customer receives a branded email with the PDF invoice attached. The email includes instructions to contact the shop to arrange payment. No Valor payment link is generated.
- Card or ACH: The customer receives a branded email with the PDF attached and a Pay Invoice Online button linked to a Valor PayTech secure payment page.
- When paid, mark the invoice as ✅ Paid.
Invoice Actions
| Edit | Edit an unpaid, non-voided invoice. |
| Preview or print the invoice. | |
| 📤 Send | Send invoice to customer — PDF only (cash/check) or Valor payment link (card/ACH). |
| Copy Link | Copy the Valor payment URL to clipboard (card/ACH only). |
| ✅ Mark Paid | Manually mark as paid. |
| Void | Void the invoice (cannot be undone). |
| 📋 Estimate | Create a new estimate from this invoice's data. |
Converting Between Types
- Work Order → Estimate: Click 📋 Create Estimate in the work order topbar. Pulls all labor, parts, and customer data automatically.
- Estimate → Invoice: Click 💳 Invoice on any estimate row.
- Invoice → Estimate: Click 📋 Estimate on any invoice row to create an estimate from invoice data.
Adding Services as Line Items
In the estimate or invoice editor, type in the Search items box. The dropdown shows:
- Services (⚙) — Labor types from your Parts Inventory with SVC- prefix. Prices reflect your current Rates & Fees.
- Parts Inventory (📦) — Physical parts with current unit costs.
7. Customer Database
▼ SHOWHangarHub Mx maintains a customer database that stores contact information for aircraft owners and maintenance contacts. It is accessible under Admin → ✈ Operations → Customers.
Point of Contact & CC Emails
The Add Aircraft panel includes a Point of Contact block (below the owner fields) for business-registered aircraft where the maintenance contact differs from the registered owner. A CC Emails field lets you add additional recipients for estimates and invoices. Both are stored on the customer record and auto-fill on future interactions.
Auto-Fill on Aircraft Add
When you add a new aircraft, the system links your customer database to the FAA registry lookup:
- Type the N-number and press Tab — FAA fills the owner name (e.g., "Skyriders, Inc").
- The system immediately searches your customer database for that owner name.
- If a match is found, phone and email auto-fill from your customer record.
- If no match is found, fill in the phone and email manually — they are automatically saved to the customer database when you click Add Aircraft.
You can also type directly in the Owner name field to search your customer database. A dropdown appears showing matching customers — click one to fill name, phone, and email at once.
Managing Customers
Go to Admin → ✈ Operations → Customers to view and manage your full customer list.
| Search | Search by name, phone number, or email address. |
| + Add Customer | Manually add a customer with name, phone, email, address, city, and notes. |
| Edit | Update any customer's contact information. |
| ✕ Delete | Permanently remove a customer record (admin only). |
Customer Fields
| Name * | Customer or company name (required). Should match the FAA registered owner name exactly for auto-fill to work. |
| Phone * | Primary contact phone number (required). |
| Email address — used to pre-fill estimate and invoice recipient. | |
| Address | Street address. |
| City, State, Zip | City/state/zip. |
| Notes | Internal notes (e.g., "call cell only", "fleet account"). |
Point of Contact
The customer edit modal includes a Point of Contact block (Contact Name, Title, Phone, Email) and a CC Emails field. POC information auto-fills on all estimates, invoices, and work orders associated with that customer.
Customer Aircraft History
In the Customers tab, each customer row has a ✈ Aircraft button. Click it to expand an inline table showing every aircraft ever associated with that customer — active and archived — with N-number, aircraft type, service type, number of work orders, last service date, and status.
Auto-Fill on Estimates & Invoices
When creating a new estimate or invoice, type the N-number and press Tab. After the FAA fills the owner name, the system also searches your customer database and auto-fills phone and email if a match is found.
8. Automated Emails
▼ SHOWHangarHub Mx sends several automated emails. All use the Gmail account configured in your Render environment variables.
| Estimate sent | When you click 📧 Send on an estimate, you receive an internal notification at kpaviationmx@gmail.com with customer name, aircraft, and total. |
| Invoice sent | When you click 💳 Send via Valor on an invoice: (1) the customer receives a branded email with the full invoice PDF attached and a Pay Online button, and (2) you receive an internal notification with customer name, aircraft, total, and the Valor link. |
| Invoice paid — Google Review | When an invoice is marked paid (manually or via Valor polling), the customer receives a one-time Google Review request email with your review link. Repeat customers are skipped automatically. |
| Nightly backup | After each nightly backup completes, you receive a confirmation email with the filename, size, and status (success or failure). |
Valor Payment Auto-Check
HangarHub automatically checks all sent invoices against Valor every 5 minutes while the Billing tab is open. When a customer pays, the invoice status updates to Paid automatically and the Google Review email fires.
You can also click 🔄 Check Payments in the Invoices tab header to trigger an immediate check.
9. Customer Messaging
▼ SHOWEach aircraft has a customer messaging thread. Access it from the work order via 💬 MSG.
- Messages can be marked Internal (mechanics only, not visible to customer).
- Customers receive a unique link to view status and reply.
- A red badge on the MSG button shows unread messages. Page polls every 20 seconds.
- Photos can be attached.
- Use Copy Link in the MSG panel to share the customer portal link via text or email.
10. AD Compliance
▼ SHOWTrack airworthiness directive compliance per aircraft. Access from the work order via ⚖ AD Compliance. The page opens as a full-screen panel inside the app.
Loading ADs
- Click 🔍 Load ADs for This Aircraft to search both the FAA AD database (20,067 ADs) and the Federal Register simultaneously. Results are merged and deduplicated automatically.
- ADs are matched by airframe make/model, engine, and propeller. Fill in all three on the work order for complete results.
- Use the AD number or keyword search box to look up a specific AD manually.
The AD Picker
- Each result shows the AD subject (description) as the headline, with the AD number, category badge, and ✓ Current or 🕑 Historical status clearly labeled.
- The picker header shows a breakdown: e.g. 42 results — 28 Airframe, 14 Engine (6 historical).
- Select the ADs that apply to this aircraft and click Add Selected.
AD Cards
- Each AD card shows the subject, AD number, category, Current/Historical status, and effective date.
- Set compliance status: Open, Complied, N/A, or Deferred.
- Enter method of compliance, date, hours at completion, next due, and internal notes.
- Check Recurring for ADs requiring repetitive action. Check Historical / SSED as appropriate.
Omit vs. Remove
- ✕ Omit — Hides the AD from the main list. It remains in the database and can be restored by checking Show Omitted and clicking ↩ Restore.
- 🗑 Remove — Removes the AD from the visible list permanently for this work order. The AD record is never deleted from the master FAA database. Save after removing to make it permanent.
- Clear AD List — Removes all ADs from the current view. Does not delete anything from the database.
TCDS (Type Certificate Data Sheets)
TCDS links appear on the work order itself (in the Aircraft section, below Relevant Manuals). Clicking a TC number (e.g. A4CE Rev 51) opens the FAA document in a new tab. The TCDS database covers 2,257 entries for aircraft, engines, and propellers.
Printing
Click 🖨 Print AD List for a formatted 14 CFR Part 39 compliance report.
11. SMS Notifications
▼ SHOWCustomers receive automated SMS messages when their aircraft status changes. Powered by Twilio from (208) 980-2553.
- Fires automatically on every status update.
- View all sent messages in ⋯ More → SMS Log.
- Customer replies appear in the aircraft messaging thread.
12. Manual Library
▼ SHOWAccess the full manual library from ⋯ More → Manuals on the dashboard.
- On a work order, the system auto-matches the aircraft make/model and engine and shows relevant manuals automatically.
- Organized by Airframe, Engine, and Component.
- Admins can add custom manuals (Google Drive links, etc.) in Admin → Shop → Manuals.
13. QR Code System
▼ SHOWEach aircraft has a unique QR code for customer status lookup.
- Print it and attach it to the aircraft or paperwork.
- Customers scan it to view real-time status on their device.
- From dashboard: Open ▼ → 📱 QR Code.
- Scan any aircraft's QR from the dashboard via ⋯ More → Scan QR.
14. Timekeeping
▼ SHOWClock In / Out / Break
The timeclock widget is in the bottom-right corner of the dashboard.
- Clock In — Start your shift.
- Start/End Break — Break time is tracked and deducted.
- Clock Out — End your shift.
My Timesheet
Click My Timesheet to view your weekly hours. Multiple clock-in/out events per day all show, with a └ indent for subsequent entries on the same day. Navigate weeks with ← →. Regular and overtime hours are summarized at the bottom.
Admin Timekeeping
In Admin → ⚙ Settings → Timekeeping, admins can view all mechanic time entries, make corrections, and approve weekly timesheets.
15. Apprentice Tracker
▼ SHOWTrack apprentice experience hours by ATA chapter for A&P certification. Accessible from the timeclock area on the dashboard.
- Log entries by aircraft, ATA chapter, hours, and description of work performed.
- Supervising mechanic verifies each entry.
- Progress bars show completion toward FAA hour targets per ATA chapter.
In Admin → ⚙ Settings → Apprentice, admins can verify hours, lock entries, and generate the experience letter PDF.
16. Admin Panel
▼ SHOWOpen via ⚙ Admin in the dashboard topbar (admin users only). The panel has three dropdown groups:
🔧 Shop
Parts Inventory
- Add, edit, and delete parts. Fields are editable inline.
- Parts with a SVC- prefix are shop services — they show with a ⚙ icon and appear in estimate/invoice line item search.
- On first load, the system automatically seeds your standard services (Piston-Hangar, Piston-Mobile, Turboprop, Turbine, Emergency, Prop Balancing) into parts using your current Rates & Fees prices.
- Import/export parts via CSV.
Manuals — Add custom manual links for specific aircraft/engine models.
✈ Operations
Billing — Estimates and Invoices. See Section 6 for full details.
Customers — Full customer database. Search, add, edit, and delete customer contact records. Auto-populated when aircraft are checked in. See Section 7 for full details.
Analytics
- Filter by YTD, 90 Days, 30 Days, All Time, or custom date range.
- Stats: jobs completed, total labor hours, avg hrs/job, unique aircraft, unique customers.
- Charts: aircraft by month, jobs by service type, labor by mechanic, turnaround time, aircraft by make, and most used parts.
⚙ Settings
Accounts — Create accounts with username, display name, email, phone, and password. Use the Edit button to update any account. Toggle Admin access. Delete accounts. Email and phone on accounts are used for time-off request notifications (coming soon).
Rates & Fees
- Set hourly rates for Piston (Hangar/Mobile), Turboprop (Hangar/Mobile), Turbine (Hangar/Mobile).
- Set Emergency/AOG rate and mileage rate.
- Rates update in estimate/invoice service searches immediately on save.
Display — Configure the public shop display screen.
Timekeeping — View, edit, and approve mechanic time entries.
Apprentice — Review and verify apprentice log entries. Generate experience letters.
AD Database — Rebuild the FAA AD database from updated Excel files. When the FAA releases a new AD export, download the ZIP from drs.faa.gov, convert the two Access files to Excel, then use Choose File to select both files and click 🔄 Rebuild AD Database. Click 🔍 Check Status to verify the database loaded correctly.
17. Archiving Aircraft
▼ SHOWWhen a job is complete and the aircraft picked up, archive it to clear it from the active dashboard.
- Click Open ▼ on the aircraft row.
- Click 📁 Archive.
- Confirm the prompt.
All work order history is preserved. View archived aircraft from ⋯ More → View Archive. Click Restore to return an aircraft to the active list.
18. Brokerage Module
▼ SHOWThe brokerage module supports Teton AeroWorks aircraft sales operations, fully integrated into HangarHub Mx. Access via 🤝 Brokerage in the admin panel header.
Listings
Admin → 🤝 Brokerage → Listings → + New Listing
- Type the N-number — Make, Model, Year, Engine, Serial, and Seller Name auto-fill from the FAA registry.
- If the seller is already in your customer database, their phone and email auto-fill too.
- Set asking price, commission rate (default 8%), description, and status.
- Statuses: Active, Under Contract, Sold, Withdrawn.
- Click 📷 Photos to upload photos. Click + Deal to create a pipeline deal.
Photo Manager
- Click 📷 Photos on any listing row to open the photo manager.
- Drag and drop photos or click the upload zone — JPG, PNG, WEBP, max 15MB each, up to 30 per listing.
- The first photo uploaded automatically becomes the cover photo shown on the public portal.
- Click ⭐ Set Cover on any photo to make it the listing thumbnail.
- Click 🗑 Delete to remove a photo from Cloudinary and the database. If the cover is deleted, the next photo becomes cover automatically.
Buyers
Admin → 🤝 Brokerage → Buyers → + Add Buyer
- Store budget range, pilot certificate level, aircraft wishlist/preferences, phone, and email.
- Search buyers by name, phone, or email using the search box.
- Buyers are selected from a dropdown when creating or editing a deal.
Deal Pipeline
Admin → 🤝 Brokerage → Pipeline
- Five-stage Kanban board: Inquiry → Showing → Offer Made → Under Contract → Closed.
- Click any deal card to open the detail modal — assign or change buyer, update stage, enter offer amount, add notes.
- Click ✔ Mark Closed to close the deal, mark the listing as Sold, and create a commission record automatically.
Commissions
Admin → 🤝 Brokerage → Commissions
- Each closed deal generates a commission record showing sale price and calculated commission.
- Click Edit to enter the actual sale price, commission amount, partner names, and split percentages.
- The split calculator shows each partner's dollar amount in real time — total must equal 100%.
- Set status to Pending or Paid to track distributions.
Public Buyer Portal
- listings.html — public aircraft listings page. Shows all Active listings as photo cards with search and aircraft type filter (Piston/Turboprop/Turbine).
- listing-detail.html — individual aircraft page with full photo gallery (click any photo for lightbox, use arrow keys to navigate), all specs, description, and a contact form.
- The contact form emails kpaviationmx@gmail.com and automatically creates a buyer record in HangarHub.
- No login required — fully public. Phone: (208) 557-3709. Hours: Mon–Fri 8:30AM–5PM MT.
19. Quick Reference
▼ SHOW| Add aircraft | Dashboard → + Add Aircraft |
| Open work order | Dashboard → Open ▼ → Work Order |
| Create estimate from WO | Work Order topbar → 📋 Create Estimate |
| Create estimate manually | Admin → Operations → Billing → Estimates → + New Estimate |
| Convert estimate to invoice | Billing → Estimates → 💳 Invoice button |
| Send invoice (cash/check) | Billing → Invoices → 📤 Send → emails PDF, no payment link |
| Send invoice (card/ACH) | Billing → Invoices → 📤 Send → emails PDF + Valor payment link |
| Set payment method on invoice | Invoice editor → totals box → Payment Method dropdown |
| Add service line item | Estimate/Invoice editor → Search items box → select ⚙ service |
| Update labor rates | Admin → Settings → Rates & Fees → Save |
| Add parts to inventory | Admin → Shop → Parts → + Add Part |
| Add shop service | Admin → Shop → Parts → + Add Part with SVC- prefix |
| View customer database | Admin → Operations → Customers |
| Add customer manually | Admin → Operations → Customers → + Add Customer |
| Auto-fill customer on add | Add Aircraft → type N-number → Tab (auto-fills from customer DB) |
| Archive aircraft | Dashboard → Open ▼ → 📁 Archive |
| View archive | Dashboard → ⋯ More → View Archive |
| Clock in/out | Dashboard → Timeclock widget (bottom right) |
| View my timesheet | Timeclock widget → My Timesheet |
| View analytics | Admin → Operations → Analytics |
| Add mechanic account | Admin → Settings → Accounts |
| Message customer | Work Order → 💬 MSG |
| Print work order | Work Order → 🖨 Print |
| View AD compliance | Work Order → ⚖ AD Compliance |
| Load ADs for aircraft | AD Compliance → 🔍 Load ADs for This Aircraft |
| View TCDS for aircraft | Work Order → Aircraft section → TC number link |
| Omit an AD | AD Compliance → AD card → ✕ Omit |
| Remove an AD from list | AD Compliance → AD card → 🗑 Remove (then Save) |
| Restore omitted AD | AD Compliance → Show Omitted → ↩ Restore |
| New brokerage listing | Admin → 🤝 Brokerage → Listings → + New Listing → type N-number |
| Upload listing photos | Brokerage → Listings → 📷 Photos button on listing row |
| Set cover photo | Photo manager → ⭐ Set Cover on any photo |
| Add a buyer | Admin → 🤝 Brokerage → Buyers → + Add Buyer |
| Create a deal | Brokerage → Listings → + Deal button on listing row |
| View deal pipeline | Admin → 🤝 Brokerage → Pipeline |
| Assign buyer to deal | Pipeline → click deal card → Buyer dropdown → Save |
| Close a deal | Pipeline → click deal card → ✔ Mark Closed |
| View commissions | Admin → 🤝 Brokerage → Commissions |
| Edit commission split | Commissions → Edit → enter partner names and percentages |
| Scan aircraft QR | Dashboard → ⋯ More → Scan QR |
| Check invoice payments | Billing → Invoices → 🔄 Check Payments |
| Edit mechanic account | Admin → ⚙ Settings → Accounts → Edit button |
| Add Point of Contact | Add Aircraft panel, or estimate/invoice editor → POC block below customer fields |
| Add CC emails | Add Aircraft panel, or estimate/invoice editor, or Customer edit modal |
| Install as desktop app | Open in Chrome → address bar install icon ⇒ Install |
| Unpaid invoices only | Billing → Invoices → Unpaid Only button |
| View customer aircraft history | Admin → Operations → Customers → ✈ Aircraft button |
| Parts usage analytics | Admin → Operations → Analytics → Most Used Parts chart |
20. System Information
▼ SHOW| Website | kpaviationservices.com (Namecheap shared hosting) |
| PWA / App | Installable on Windows, Mac, iPad, Android — no app store required |
| Backend | Node.js/Express — kp-aviation-backend.onrender.com |
| Database | Neon PostgreSQL |
| SMS | Twilio — (208) 980-2553 |
| Payments | Valor PayTech — EPI 2501419013 |
| Photo storage | Cloudinary |
| Support | kpaviationmx@gmail.com |
| Shop phone | (208) 557-3709 |
| Address | 1940 International Way, Idaho Falls, ID 83402 |
Install as an App (PWA)
| Windows / Mac | Open in Chrome → click install icon in address bar ⇒ Install |
| iPad / iPhone | Safari → Share button → Add to Home Screen |
| Android | Chrome → three dots menu → Add to Home Screen |
Runs full screen with no browser bar. No app store required.