Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/apursley2012/airgead-investment-calculator/llms.txt

Use this file to discover all available pages before exploring further.

Airgead targets current versions of modern browsers. It does not use a transpiler or polyfills, so browsers that lack native ES module support will not load the application JavaScript. The pages will render their HTML and CSS, but the calculator, chart, save, and export features depend entirely on the JavaScript modules and the browser APIs they call.

Supported Browsers

BrowserSupport
Google Chrome (current)✅ Full support
Microsoft Edge (current)✅ Full support
Mozilla Firefox (current)✅ Full support
Apple Safari (current)✅ Full support
Mobile Safari (iOS current)✅ Full support
Chrome for Android (current)✅ Full support
Internet Explorer❌ Not supported
“Current” means the latest stable release. One or two versions behind current generally works, but earlier versions are not tested and may lack one or more of the required APIs listed below.

Required Browser APIs

Each of the following APIs must be available for Airgead to function correctly. All are natively supported in the browsers listed above.
ES Modules
script type="module"
Native support for <script type="module"> and the import/export syntax. Every JavaScript file in Airgead is an ES module. The shell component, calculation library, chart library, and page controllers are all loaded as modules and import each other directly — there is no bundle.
localStorage
Web Storage API
The Web Storage API is used to persist data between sessions. Airgead stores the most recent calculation under the key airgead_current_calc, the collection of saved plans under airgead_saved_plans, and the mock sign-in email under airgead_user. All stored data stays in the current browser and is never sent to a server.
Canvas
HTML5 Canvas API
The Canvas API is used by js/lib/charts.js to draw the year-by-year growth chart on the Results page and the side-by-side comparison chart on the Compare page. The charts include grid lines, value labels, and principal-versus-interest segments. Charts resize when the viewport width changes.
Blob
Blob constructor
The Blob constructor is used by the downloadCsv() function in js/lib/calculator.js to create the CSV file content in memory before triggering a download. No server round-trip is required — the file is assembled entirely in the browser from the current year-by-year data.
URL.createObjectURL()
URL API
Used alongside the Blob API to generate a temporary object URL that a programmatically created <a> element can point to. Clicking that link triggers the browser’s file-download behavior. The URL is immediately revoked after the download starts to free memory.

Why Not file:// URLs

Browsers enforce strict CORS restrictions on ES modules loaded over file:// URLs. Attempting to open index.html directly from the file system will block all module imports and leave the application non-functional. Always serve Airgead through an HTTP or HTTPS server — even for local development. Use python -m http.server 8000 from the project root, or the VS Code Live Server extension, to get a local server running in seconds.

No Polyfill Strategy

Airgead intentionally ships no polyfills and produces no transpiler output. This keeps every source file readable, keeps the deployment simple (no node_modules, no build artifacts), and keeps the browser’s network requests to a minimum. If support for older browsers becomes a requirement, a bundler such as Vite or Rollup could be added to the project — it would compile the existing ES module source into a compatible bundle without changing the application logic.

Canvas and Accessibility

Canvas elements do not expose their drawn content to assistive technologies. Airgead addresses this by making every chart value available through an alternative text path: the same numbers displayed in a chart are also present in the summary cards below the chart and in the year-by-year data table. Users who cannot see or interact with the canvas — including those using screen readers or browsers that do not support Canvas — still have access to the complete projection data in text and tabular form.

Build docs developers (and LLMs) love