Manage courses, sell gear, send invoices, and keep your students informed — all from one platform built for dive professionals.
Built and hosted entirely in Canada
Your data stays in Canada. The platform is developed and operated by a Canadian company, with all infrastructure hosted on Canadian soil.
Create courses at every certification level, manage schedules with dates, locations, and instructors, handle enrollments and waitlists, send automatic reminders 48 hours before events, and get admin notifications when students sign up for courses requiring an e-learning code. Tag each course with its certification agency (PADI, SDI, IANTD, etc.) and one or more free-form tracks / categories (Recreational, Technical, Cave, CCR…), and customers can filter the public catalog by either. Set a public price, or flip on “Contact for pricing” for consultation-only courses — a per-schedule price override still enables online booking on a per-session basis. Customize the public courses page with your own markdown sections — training philosophy, signature programs, FAQ — placed above or below the course grid. Attach courses to trips and events as optional add-ons (e.g. PADI AWARE cert on a beach cleanup), and mark courses as add-on-only to keep them off the public listing. Admin enrollment supports full payment, deposits (partial-paid with a balance owing), or send-an-invoice, with a free-form notes field for internal context.
Set a per-course students-per-instructor ratio and a bonus for certified assistants. Assign a lead instructor and additional staff to any schedule and the editor warns in real time when capacity outstrips your staffing. Flip the toggle in Configuration → Dive Courses to turn those warnings into hard blocks that prevent saving a schedule whose capacity exceeds what its assigned staff can supervise.
Multi-day courses and events generate one record per day so capacity, manifests, and attendance live at the day level. Customers always book the full event, and shop staff can assign a customer to a subset of days from the admin enrollment page — the booking price recomputes proportionally and per-day manifests and attendance flow through to instructors.
Sell gear and accessories with product listings, images, brand filtering, and integrated checkout powered by Square. Configure flat-rate shipping with an optional free-over-threshold amount, or offer in-store pickup — customers choose at checkout and the fee (or none) appears on their order and receipt. For high-value configurable items — rebreathers, CCR units, custom regs — flip a product into Inquire to Purchase mode: the catalog shows “Inquire for pricing,” the detail page swaps Add to Cart for a Request-a-Quote CTA with optional configurable option groups (Mouthpiece, Color, Material), and the customer's selections flow into the contact form so your quote conversation starts with the spec already filled in.
Add option groups (Size, Color, Wetsuit Thickness…) to any product and let the platform generate the full variant matrix. Each variant gets its own SKU, stock level, and an optional price override — the listing card shows the price range automatically. Customers pick their options on the product page before adding to cart, and POS staff can ring up any variant at the till.
Embed your shop as an iframe on your own website — a chrome-free storefront and product pages your visitors browse in place, with login and checkout breaking out to the full store when needed. Your platform administrator allow-lists your site's origin and gives you a ready-made embed snippet to paste into your page.
New to the platform? Point our onboarding importer at your existing website and it scrapes your branding, brands, shop info, courses, staff, rentals, and gear-service offerings — then lets you review and approve each item before it lands in your shop, so you start with your real content instead of a blank slate.
Stop typing every SKU and description by hand. Search a built-in catalog of 19 dive brands (Atomic, Bare, BigBlue, Deep 6, Dive Rite, Dive Xtras, Divesoft, DUI, Henderson, Hollis, Kraken, Light Monkey, OrcaTorch, Santi, Shearwater, XS Scuba, Zeagle, Apeks, Garmin) to pre-fill product SKU, name, description, images, and price in one click. A bulk-import wizard at /admin/products/import lets you seed a new store with dozens of products in a single batch: pick a brand from a logo grid (brands with nothing in the catalog are greyed out), narrow that brand's products by category, and switch between a compact list and an image-rich card view before ticking the ones you want.
The shared brand catalog behind bulk import is kept accurate over time: platform admins can correct any product's text, price, images, or visibility, and each corrected field is locked so future catalog re-imports flag the upstream change for review instead of silently overwriting your fix. Platform admins can also add, hide, or delete catalog products outright.
Optional $15/month add-on: ring up in-store sales at /admin/pos with Square Terminal support. Sell products, ad-hoc items, or enroll walk-ins in any scheduled course, trip, or event (type-coded chips in the picker make events first-class) — apply manual discounts or store credit, accept cash, e-transfer, paired-reader card payments, hand off to the Square POS mobile app on iOS/Android (works with the Square Reader and Tap to Pay), or fall back to manual card entry, print or email receipts at the till.
Built-in earnings tracking and payout ledger. Set a default pay rule per instructor (flat fee, $ per confirmed student, or % of enrollment revenue), override it per schedule for one-off rates, and watch earnings accrue from confirmed bookings. Record payouts with method (cash, e-transfer, cheque, EFT), reference, and notes — each schedule's $ is snapshotted at payout time so later rule changes don't move historical numbers. Generate printable period statements per payout or for any custom date range. Instructors get a self-serve /instructor/earnings page showing their open balance, lifetime paid total, and full schedule + payout history.
Generate professional invoices, download or email PDFs, track payment status, send payment reminders, and record cash or e-Transfer payments and refunds outside the platform — all from the admin panel. Create invoices on demand — save as a draft to keep refining, or issue immediately to bill the customer without taking payment up front. Walk-in or cash sale? Create an invoice with no customer and no email, hand the customer their PDF, and attach contact info later if it ever comes in. Spin up pending shop orders the same way for phone or pickup sales — stock holds back until the payment lands. Cancelled and refunded rows are highlighted across invoices, orders, and enrollments with direct links to the Square refund. Configure a starting invoice number when migrating from another platform, plus your tax rate and registration number (HST/GST/VAT) which appear on every invoice. Record the cost side too — boat charters, fuel, park fees, rent, insurance, software, air analysis, gas supplier, 3D printer materials, equipment — with vendor names autocompleting from prior entries, and link costs to a specific schedule for per-event P&L. Export everything as CSV — invoice summary, line-item detail, or expenses — for any date range, ready to import into QuickBooks, Xero, Wave, FreshBooks, or Sage.
Send non-binding price quotes with a valid-until date and convert them to invoices in one click. Quotes carry their own QUO-#### number (never an invoice number), include an approximate-pricing disclaimer on every PDF and email, and each edit to a sent quote issues a fresh revision so the customer always has the latest version.
Manual invoices accept per-line and invoice-level discounts (% or $), and the description field autocompletes from your shop's most-used line items so you don't retype the same things every week. If a mistake slips through on an issued invoice, shop staff can cancel it outright (with a one-click 'Notify customer' button) or use 'Edit (cancel & reissue)' to cancel the original and reopen the same line items as a new draft to fix.
When a manual invoice should have been an enrollment, fix it from the invoice page in one click. Open the invoice, hit “Convert to enrollment”, pick the schedule and customer, and the booking shows up on the manifest with the existing payment intact.
Publish your service menu — repairs, inspections, tune-ups, gas fills — with prices or a “Contact Us” flag for consultation-only work. Tag each item with a free-form category and the public services page groups them into sections (Repairs, Gas Fills, Inspections, etc.) so customers can scan straight to what they need. Choose how those categories display — stacked sections, side-by-side cards, or tabs — and write your own intro paragraph and call-to-action button. Add a “how it works” strip of numbered steps and trust badges (warranty, genuine parts, factory-trained techs) to set expectations before customers reach the price list. Drag items within a section, or drag whole sections, to control the exact order customers see. Drop-off partner locations land in their own section underneath, and the brands you carry render as a logo strip at the bottom. Take in gear for repair and track each job through its workflow — received, in progress, awaiting parts, ready for pickup — with a sequential job number (SJ-0001) and per-serial service history. Bill completed work by creating a prefilled invoice directly from the job, or link an existing invoice and unlink it at any time. Available on the Enterprise plan or as an add-on.
Set a fixed deposit on any course, event, or trip schedule — optionally non-refundable — and let customers book online with just the deposit due today. The remaining balance stays visible on the confirmation email, invoice, and the customer's account, and the platform automatically emails a reminder as the balance-due date approaches and again once it's due. Instructors see a balance-owing flag right on their roster email so outstanding payments never slip through at check-in.
Create a pending shop order for a phone or pickup sale and the platform emails the customer an invoice with a “Pay online” link — no login required. The customer can pay by card through Square directly from the link, or the shop can record a manual cash or e-Transfer payment when it comes in. Stock holds back until payment lands. Existing pay-later orders can be backfilled to issue invoices in bulk.
Change a pending order before it's paid — add or remove products, adjust quantities, and apply manual order-level or per-line discounts. The customer's unpaid invoice is re-synced and re-emailed automatically with the same pay link, so they always have the latest total to pay.
Ship what's ready without waiting on backordered items. Record a shipment against any paid order with just the items and quantities going out — carrier and tracking number are optional, plus a free-form internal note. Each recorded shipment emails the customer what shipped, what's still to come, and tracking if provided. The order shows a running “X of Y sent” progress badge and auto-advances to Shipped once everything's out, and works the same way for in-store pickup orders.
Let shoppers buy without creating an account — turn it on per shop under Configuration → Shop Settings (off by default). Guests check out with just an email address and get an emailed link to view their order, no login required, and can create an account any time afterward. Store credit and Air Fill Card products still require an account.
Sell prepaid air, Nitrox, and Trimix fill cards as products. Each card carries a configurable number of punches and an optional expiry; staff redeem fills at the POS with a 60-second undo, customers see remaining balance and history in their account, and partially-used cards are non-refundable.
Branded transactional emails for booking confirmations, schedule changes, event reminders, and more. Users can manage their notification preferences, and shop admins receive a configurable weekly digest summarizing items that need attention.
Owners can take shop products or have work done on their own gear and record it as owner's draw — captured at cost basis, kept separate from sales, and never counted as revenue or a loss. Record it straight from a service job with “Record as internal use,” or use the standalone form on the Internal Use admin page to log products, shop labour, and gas fills. Gas fills are free-text — type the gas (helium, oxygen, etc.), a volume, and a unit cost, and the line costs out at volume × unit cost against a single shop-wide unit (cu ft or L), with no stock to decrement. Product lines are decremented from inventory just like a sale, and everything exports to its own internal-use CSV at tax time. Only team members a platform admin has flagged as an owner can be the consumer.
Author standalone markdown pages (About Us, Training Philosophy, FAQ, Trip Reports) at /p/your-slug. Optional hero image, drag-and-drop image uploads in the markdown editor, and a single toggle to show them in the top nav.
Choose from a theme gallery or set custom colors with a built-in WCAG contrast check, upload your logo to auto-generate favicons, rename navigation labels like Courses → Training without changing URLs, set a founded year for a “Serving since YYYY” line in the footer, and use your own domain.
Tell customers what they need to know to walk in. Set weekly opening hours — separate Summer and Winter grids that you switch manually or let auto-switch on your chosen start dates — or flip on “By appointment only” to surface a booking URL in place of the hours grid. Add holiday overrides (recurring or one-off, closed or custom hours) that show a “closed today” / “today’s hours” notice and an upcoming-holidays list on the public site. List the payment methods you accept (Visa, Cash, Interac, e-transfer…) so they appear as chips on the contact page. Set a slogan / tagline that flows into the footer and, if no homepage subtitle is configured, the home page hero.
Run your shop on multiple domains. Add alternate domains for $5/mo each. Each can serve the same content or 301-redirect to your primary; the From-address suffix follows whichever domain is primary.
Run just the shop as a site's whole homepage — turn every other section off and shopEnabled becomes your landing page, storefront nav, and site map, with no dead links to disabled sections. Set an External home URL and the logo and a “Back to site” link point customers to your main site, so a standalone shop subdomain (e.g. shop.yourdiveshop.com) can stay tied to your primary storefront.
Students get iCal subscription feeds for their enrolled sessions. Booking confirmation emails include calendar event attachments.
Serve your site in English and French. Toggle French support per tenant, translate CMS content side-by-side, and deliver localized emails automatically.
Privacy-focused analytics with Umami and optional Google Analytics — track conversions, funnels, and customer engagement without storing personal information.
Per-page title, description, and social image overrides; auto-generated section titles; heuristic keyword suggestions drawn from your own course and product copy; auto-resized social-share image from your logo; and rich Schema.org markup (LocalBusiness with hours, Course, Product, Person) so search engines understand what you sell.
Give each team member exactly the access they need. Built-in roles for Staff, Manager, Content Editor, and Bookkeeper hide admin sections that aren't theirs and gate sensitive actions like recording payments, issuing credit, or changing site branding.
Tag customers (veteran, military, student, first-responder, etc.) right from the user list and gate a discount code to a specific tag — only users with that tag can redeem it. Tag suggestions are pulled from existing values so the wording stays consistent across users and codes. Record walk-in customers with just a name; capture their email later and the platform sends the usual verification flow automatically.
Every customer's detail page shows their shop orders and course/trip/event enrollments in one combined timeline, newest first — each row tagged Order or Event with its date, status, and amount. Jump straight from a row to the order or the schedule, so you can see a customer's whole relationship with the shop without hopping between the Orders and Enrollments pages.
Override the platform-default privacy policy with your own version by creating a Custom Page with slug “privacy-policy.” A “terms” slug enables a new /terms route automatically — the footer only links to it once the page exists.
Collect liability releases, PADI medical statements, and rental agreements three ways. Upload (download blank → sign offline → upload signed) and Smartwaiver hand-off are included. Inline e-signature is a $10/month add-on: customer reads the waiver in-browser, types their name + ticks assent, gets a signed PDF emailed with a full ESIGN/UETA audit trail — IP, user agent, timestamp, and a SHA-256 hash of the exact text version they signed. Per-form validity in months auto-expires signatures so they're re-collected at the right cadence. Pre-set agency forms (PADI, TDI, SDI, ERDI Liability Releases and PADI's Standard Safe Diving Practices) can be added in one click from a built-in catalog — the form's blank PDF is automatically mirrored into the shop's own uploads at save time.
Start your 14-day free trial — no credit card required.