Skip to content

Latest commit

 

History

History
156 lines (139 loc) · 7.6 KB

File metadata and controls

156 lines (139 loc) · 7.6 KB
layout default
title Get Pro
nav_order 4
description Buy Off Grid Pro. Enter your email and check out. $50 one-time, no subscription. Have a promo code? Apply it at checkout.
Off Grid Pro

Pay once.
Run it forever.

Off Grid Pro adds voice, custom personas, and tool integrations. All of it runs on your phone, the same as the rest. Enter your email below to check out. Your email is the account the purchase attaches to, so use the one you sign into the app with.

This offer closes July 1. After June 30 the one-time $50 Pro deal goes away in favour of Off Grid AI, our background intelligence layer for desktop and mobile, priced monthly. Buy Pro now and you keep it for life, including Off Grid AI Pro free, forever. This is the last window to lock in a one-time price.
Continue to checkout

$50 one-time · no subscription · promo codes apply at checkout

Have a promo code? Enter it on the checkout page after this step. Checkout is handled by RevenueCat. Nothing on this page touches your phone's models or data.


Voice in, voice out
Whisper transcribes what you say, Kokoro speaks the reply. Hold to talk, listen back. No audio leaves the device.
Custom personas
Build assistants with your own prompts, voices, and memory. Switch contexts in a tap.
Tool integrations
Read your inbox, draft a reply, schedule a meeting, file a ticket. Slack, calendar, email, any MCP server. You approve every action that leaves the phone.
Pay once, keep it
$50 one-time. No subscription, no surprise pricing. Have a promo code? Enter it at checkout to adjust the price.

How checkout works

You enter your email and we send you to RevenueCat's hosted checkout with that email attached. The purchase is tied to your email, so sign into the app with the same address to unlock Pro.

Have a promo code? Apply it on the checkout page, before you pay. The price updates once the code is accepted.

Pro is a one-time $50 purchase, not a subscription. The open-source core has 100K downloads already. Pro is an extension of it, not a rewrite.

If we do not ship Pro within 12 weeks, email us and you get a full refund.

<script src="{{ '/assets/js/revenuecat-link.js' | relative_url }}"></script> <script> (function() { var LINK_ID = {{ site.revenuecat_link_id | jsonify }}; var form = document.getElementById('payForm'); var emailInput = document.getElementById('payEmail'); var submit = document.getElementById('paySubmit'); var status = document.getElementById('payStatus'); if (!form || !window.RevenueCatLink) return; // Sync the button state on load too - the browser may have autofilled the // field (or restored it on back-navigation) without firing an input event. submit.disabled = emailInput.value.trim() === ''; function clearError() { emailInput.classList.remove('ea-input-error'); emailInput.setAttribute('aria-invalid', 'false'); if (status.classList.contains('ea-status-error')) { status.textContent = ''; status.className = 'ea-status'; } } function showError(message) { emailInput.classList.add('ea-input-error'); emailInput.setAttribute('aria-invalid', 'true'); status.textContent = message; status.className = 'ea-status ea-status-error'; } // Enable the button only once something is typed; clear errors as they type. emailInput.addEventListener('input', function() { submit.disabled = emailInput.value.trim() === ''; clearError(); }); form.addEventListener('submit', function(e) { e.preventDefault(); var email = emailInput.value.trim(); if (!RevenueCatLink.isValidEmail(email)) { showError('Enter a valid email address.'); emailInput.focus(); return; } var url = RevenueCatLink.buildPurchaseUrl(LINK_ID, email); if (!url) { // Email is valid, so a null URL means the link id is not configured. showError('Checkout is not available right now. Please try again later.'); return; } if (typeof posthog !== 'undefined') { // Never let an analytics failure (blocked, errored) stop the purchase. try { posthog.identify(email, { email: email }); posthog.capture('pro_checkout_started', { email: email, source: window.location.pathname }); } catch (err) { console.warn('PostHog tracking failed:', err); } } status.innerHTML = 'Checkout opened in a new tab. Reopen it if your browser blocked the popup.'; status.className = 'ea-status ea-status-success'; // No features string: a non-empty one forces a popup window; '_blank' // alone opens a real new tab and already defaults to noopener. window.open(url, '_blank'); }); })(); </script>