Pillar 1: Onsite
Zero marketing decisions should be made without data. No other task should proceed until this is in place.
Completed stack: PostHog + Google Search Console
| Tool | Purpose | Cost |
|---|---|---|
| PostHog | On-site behaviour, funnels, session replays, UTM/source attribution, custom conversion events | Free to ~50k visitors/month |
| Google Search Console | SEO keyword data, impressions, click-through rates, search rankings, no on-site script required | Free |
Why not GA4? PostHog is more powerful for funnel and behaviour tracking, requires no cookie consent banner (cookie-free by default), and is free at current traffic levels. GA4 adds complexity without meaningful benefit for this use case.
PostHog setup, completed 2026-05-16
- ✓ PostHog JS snippet installed on all pages via Eleventy base layout
- ✓ Custom event for contact form submission:
posthog.capture('contact form submitted') - ✓ Custom event for contact form failure:
posthog.capture('contact form failed') - ✓ Session recordings enabled (all sessions, no triggers)
- ✓ Exception autocapture enabled: JS errors captured automatically
- ✓ UTM parameter tracking active, captured automatically on all pageviews
- ✓ User identify on form submit, contact form links session to name and email
- ✓ "Analytics basics" dashboard created in PostHog with 10 insights: pageviews, top pages, referring domains, UTM campaigns, visitors by country, total leads, lead submissions over time, contact form success rate, demo-to-contact funnel, lead sources
- ✓ GitHub Actions workflow updated to build site with PostHog token before deploying to S3
Google Search Console setup
- Verify ownership of hosposure.com.au in Search Console
- Submit the sitemap (
/sitemap.xml) - Monitor weekly: top queries, impression share, CTR for primary keywords
LLM visibility monitoring (manual, monthly)
No paid tool is necessary at current scale. Run the full query list in the AIO tab monthly across ChatGPT, Perplexity, and Google AI Overviews and record whether HospoSure appears.
Branded search volume in Google Search Console (people Googling "HospoSure" directly) is a useful proxy for LLM-driven awareness, track it monthly as a trend.
PostHog is installed and capturing pageviews, but we have no visibility into what happens after a visitor arrives. Without conversion events, snapshots measure traffic inputs only, not revenue outputs. This is the single highest-value analytics task remaining.
Why this matters
The marketing strategy is designed to drive demo signups and paid conversions. Until these events are firing, we cannot measure whether any channel, campaign, or content change is actually working. Traffic growing 20% means nothing if we don't know whether signups grew with it.
Events to instrument
| Event name | Where | Trigger | Properties to capture |
|---|---|---|---|
demo_started | app.hosposure.com.au | User completes demo signup / first login | source, utm_source, utm_medium, utm_campaign |
setup_fee_paid | app.hosposure.com.au | $499 setup fee payment confirmed | amount, payment_method |
subscription_started | app.hosposure.com.au | $39/month subscription activated | plan, amount |
cta_clicked | hosposure.com.au | Any primary CTA button click | cta_label, page, section |
pricing_viewed | hosposure.com.au | /pricing/ page load (already getting traffic, worth segmenting) | referrer, utm_source |
Funnel to build in PostHog once events are live
- $pageview (any page) → cta_clicked → demo_started → setup_fee_paid → subscription_started
- Break down by utm_source to see which channels convert best end-to-end
Implementation notes
- PostHog JS is already loaded on the marketing site: CTA click and pricing view events can be added directly
- App events (demo_started, setup_fee_paid, subscription_started) require the posthog-node or posthog-js SDK in app.hosposure.com.au, use the same PostHog project token so events join up against the same person profiles
- Pass UTM params from the landing page into the app via URL or session storage so the acquisition source is preserved through the conversion
The homepage has a pricing section at /#pricing. This is not sufficient for SEO or paid ads. A dedicated /pricing page should:
- Mirror the homepage pricing journey: free demo → $499 one-time to open → $39/month to stay live (one sequential path, not three plans to choose between)
- Go deeper: inclusions per tier, FAQ (cancellation, free trial, data), comparison to DIY spreadsheets
- Frame the $499 as an investment against the cost of a bad first month of trading
- Have a single focused CTA: "Start your free demo"
- Become the landing page destination for future paid search ads
Files to create: src/pricing.html, src/_data/pricing.json
Replace the "Blog" nav link with "The Pass", a branded resource hub for cafe founders. The existing blog posts are SEO assets and stay published at their current URLs; only the nav label and landing page change.
- Remove "Blog" from the main navigation
- Add "The Pass" to the nav, pointing to
/the-pass/ - Create
src/the-pass.html: curated resource hub with lead magnet opt-in above the fold - Lead magnet: "The 10 Numbers Every Cafe Owner Must Know Before Opening" (downloadable PDF)
- Opt-in: first name + email only, delivered via Mailchimp (free tier)
- Add a secondary CTA on the homepage pointing to The Pass
- List existing blog posts and guides below the opt-in as free resources
Files: src/the-pass.html (new), update src/_includes/main.html nav
Shipped and live. The marketing site was rebuilt from scratch on Eleventy 3 + Tailwind CSS v4, replacing the old Eleventy + Bootstrap 4 theme, and merged to master (live on hosposure.com.au via the S3/CloudFront pipeline). Structural data (home.json, show.json, site.js) drives the content; section copy was rewritten to suit the bolder, more playful visual direction. Reference assets (Lemon Squeezy screenshots, palette-preview.html) live in strategy/website-rebuild/.
Tech stack
| Layer | Built with |
|---|---|
| SSG | Eleventy 3 (Nunjucks/Liquid templates) |
| CSS | Tailwind CSS v4 via @tailwindcss/postcss + cssnano, built in an eleventy.before hook (one build process, no separate watch) |
| JS | Alpine.js (mobile nav, the #how accordion); jQuery retained only where contactus.js / the Mailchimp signup still need it |
| Icons | Heroicons inline SVG via an icon shortcode reading the official heroicons npm package; brand/social marks as inline SVGs. Flaticon fully retired (zero flaticon strings in output) |
| Images | @11ty/eleventy-img async image shortcode (responsive WebP srcset + width/height + lazy) on content photography |
| Schema.org | Consolidated into _includes/schema.njk, included once from main.html, driven by site.js |
Visual direction and palette
Lemon Squeezy is the reference: typography-led, coloured all-caps eyebrows, alternating white / warm off-white bands, flat colour-block panels (no card shadows), pill buttons. Inter typeface; all display headings are font-normal with tight tracking, on a three-tier size scale (hero H1 largest, mid-page statement sections next, standard section H2s below). Body copy, H3s and inline emphasis stay dark slate-blue #344767 on the bright panels for WCAG AA contrast; the homepage section H2 headers are true black (text-black, Michael's call) for extra punch. Section content fades up on scroll via a lightweight IntersectionObserver (respects prefers-reduced-motion). The tablet/device panels (#inside, #dashboard) add a stronger LS-style "rise": each iPad screenshot slides up 80px and fades in as its coloured band enters view, with the right-hand device delayed ~120ms for a subtle stagger (data-rise attribute, driven by the same observer).
| Role | Colour |
|---|---|
| Primary accent (CTAs, links, eyebrows, numbered digits) | HospoSure green #54af50 |
| Heading / body text | Dark slate-blue #344767 |
| Section backgrounds | White #ffffff Warm off-white #faf9f6 |
| Flat panels, bold + light-tint pairs |
Yellow
Orange
Teal
Violet
Pink
|
Hero
Dark, full-bleed staff-working-cafe.webp photo under a left-weighted gradient overlay, white copy. H1 "Open a cafe that makes money.", a keyword-bearing sub, dual CTA ("Start your free demo" / "See how it works"), a Trustpilot rating line, and a single hero food photo (smoked salmon eggs benedict, recipe-salmon-eggs-benedict.webp; replaced the earlier 3-photo GP collage). The "Trusted by and affiliated with" partner strip (Square, me&u, Chomp, Clever Cafe Company, Restaurants & Catering Australia) sits inside the hero, logos knocked out to white. The sticky header is scroll-aware: a transparent dark veil with white links over the hero, crossfading to the light bar once scrolled past. The closing #cta banner (shared across the site via main.html) uses a black-and-white cafe-interior shot, cafe-interior-bw.webp, so the page still opens and closes on a cafe scene. Between the CTA and the footer sits a full-bleed pre-footer image band, pickle-ferment-jars.webp (jars of pickles and ferments on a shelf), shared site-wide via main.html.
Homepage section order
#hero, dark photo hero (above)#why: "Why HospoSure?" oversized single-statement block (T1)#how, top-features accordion: 6 solution-framed items, app screenshot swaps per item (T2)#dishes: "200+ dishes" food-photography grid (T7)#inside: "You're getting the lot" dish spec, teal two-tone iPad panel (T3)#before: "The honest part" + pre-opening planning: 9-box grid pairing each problem with its solution (T5)#dashboard, live dashboard showcase, violet two-tone iPad panel (T3)#coaching: "Help when you need it" coaching/support, with consultant portrait (T4)#reviews, live Trustpilot review cards (T5)#pricing, single sequential journey (free demo → $499 to open → $39/mo) as three connected numbered steps with one CTA#team: Tim, Michael, Chetan, Jodie photo cards (T6)#cta, closing "Your first trading day starts here." banner
Section layout templates
| Template | Exemplar | Structure |
|---|---|---|
| T1 Statement | #why | Full-height, vertically centred. Eyebrow + one oversized statement on white. No cards. |
| T2 Split feature (accordion) | #how | Eyebrow + heading top-left, then full-bleed two columns: interactive numbered list left / rotating accent panel + contained app screenshot right. |
| T3 Header-split + full-bleed media | #inside, #dashboard | Two-column text header, then a full-bleed two-tone panel carrying the product media. #inside = teal, #dashboard = violet; one iPad per half, bleeding off the outer edges. |
| T4 Cell grid · text columns | #coaching | Header (optionally with a supporting portrait), then borderless columns: small green index label + large title + body, hover-popping to a soft-shadow card. |
| T5 Cell grid · checkerboard cards | #reviews, #before | Centred header, then a no-gap checkerboard grid of cards that pop to white on hover. |
| T6 Cell grid · image cards | #team | Header, then a gap-1.5 grid of cards topped with a full-bleed image. White by default, grey (#f3f4f6) on hover with a soft lift. Shared by the the-pass / blog / guides / resource listing cards. |
| T7 Cell grid · photo cards | #dishes | Header, then a flush grid of full-bleed food-photo cards with the dish name, dimmed by default and brightening on hover. (GP% badges removed from the hero photo and dish cards pending verification of the figures; the gp values still sit unused in home.json for easy re-enable once confirmed.) |
Analytics conventions preserved
Two contracts src/js/analytics.js relies on are kept site-wide: every CTA is a real <a href="…app.hosposure.com.au…"> (not a JS-only button), and every major section keeps an id so getSectionLabel() can label which section a cta_clicked came from.
Follow-ups (all closed)
_includes/post.html: migrated (2026-07-07). The individual blog-article view now uses the guide template system (darkg-herowith The Pass kicker, byline and tag links, banner image, new.g-postbody styles inguide.css). Every template is now off the legacy Bootstrap theme.- Trustpilot TrustBox widget: closed (2026-07-07, decision). TrustBox is blocked at the Trustpilot account/plan level, and the hand-built review cards from
site.js(with a link through to Trustpilot) do the conversion job, so the cards are the permanent approach. Do not revisit unless the Trustpilot plan changes for another reason.
Depends on the website rebuild shipping first, don't theme the app against tokens still in flux. Goal: the click-through from the marketing site into app.hosposure.com.au feels like one product, not two. The app (hosposure.mui) is a completely different stack, React 19 + MUI 5 on Next.js, built on the "Material Dashboard 2 PRO" Creative Tim theme, with AWS Amplify for auth, so this is a token-translation exercise, not a copy of the website's Tailwind build.
Three theming surfaces to align, not one
- MUI theme (
src/assets/theme/base/colors.jsand friends), covers every dashboard component. Highest leverage, lowest risk: one set of token files, cascades everywhere automatically. - Amplify Studio theme (
src/ui-components/studioTheme.js), a separate token system for@aws-amplify/ui-reactcomponents, likely covering login/signup. This is the literal first screen after clicking through from the marketing site, so it matters most for the "feels seamless" perception, but is easy to forget since it's a different theming API to MUI's. - Marketing site tokens (Tailwind
@themeblock), the source everything else should match.
Recommended approach
- Wait until the website rebuild's tokens are finalised and live, not while still in flux
- Extract the final tokens (green accent, dark text colour, radius/spacing scale, light tint palette) into one shared source of truth, a small JSON/TS file referenced by both repos, rather than hex codes copy-pasted and left to drift again
- Theme the MUI layer first using that shared source
- Align the Amplify Studio theme to match, prioritise this given it's the actual transition screen
- Shell-first: nav, sidebar, buttons, cards, the chrome around every screen, before touching dense functional screens
- Leave deep data screens (financial modelling tables, menu builder) for a deliberately separate, later pass: apply the accent colour/radius/type there too, but don't import marketing-site patterns (flat colour panels, giant headlines) into dense working UI, usability over visual consistency for real work surfaces
Base tech stack: do we need to upgrade it first?
Checked current versions against latest (2026-06-16):
| Package | Installed | Latest | Action |
|---|---|---|---|
| React | 19.2.3 | 19.2.7 | Routine patch bump, no urgency |
| Next.js | 16.1.1 | 16.2.9 | Routine minor bump, no urgency |
| aws-amplify | 6.14.4 | 6.18.0 | Routine minor bump, no urgency |
| @aws-amplify/ui-react | 6.1.1 | 6.15.4 | Routine minor bump, no urgency |
| @mui/material | 5.17.1 | 9.1.1 | Four major versions behind, see below |
Recommendation: don't bundle the MUI v5→v9 upgrade into this theming work. MUI v5 is still fully supported and its theming system (the part this task actually touches) works fine as-is. The jump to v9 spans several major versions with real breaking changes along the way (Pigment CSS as a styling option, Grid component changes, Emotion defaults), and is exactly the kind of large, separate migration that deserves its own scoped project with its own test pass, not something silently absorbed into a visual-alignment task on a production app with live customer data. Track the MUI upgrade as its own future tech-debt item, prioritised only if there's a concrete driver (security advisory, deprecated API blocking something, a feature only available in newer MUI), not "because it's not the latest."
| # | Issue | Impact | File |
|---|---|---|---|
| 1 | aggregateRating count wrong (5 vs 9) | Low | src/_data/site.js |
| 2 | Resource page is empty | Medium | src/resource.html |
| 3 | Demo flow has no price anchor | High | src/index.html |
Three of HospoSure's strongest features are either absent or buried. These need to be surface-level, named, and specific.
| Feature | Current state | Required change |
|---|---|---|
| 200+ recipe Test Kitchen library | Referenced vaguely as "expert recipe templates" | Name it: "200+ chef-tested recipes in the Test Kitchen library" |
| Square menu management | Framed as a one-time setup step | Reframe as ongoing: "manage your live Square menu directly from HospoSure" |
| AI chat assistant | Completely absent from the site | Add a dedicated feature section with screenshot or demo |
These three features separate HospoSure from a generic spreadsheet. They should appear in the hero, features section, and pricing page.
For each feature, write:
- A one-sentence headline that leads with the benefit
- A two-sentence description
- A supporting visual (screenshot or gif)
Files to update: src/_data/show.json features and hero sections
9 real 5-star reviews exist in structured data. Two are named businesses ("The Chai Room", "Little Shop of Waffles" in Sydney). Ensure they are visible above the fold or close to it.
Add the Trustpilot widget if not already present.
Done: Hero social proof strip added (5 stars + 4.3/5 + Trustpilot link). Star ratings uncommented on all 8 rated review cards. Trustpilot widget swapped from Review Collector to MicroStar display.
Current flow: visitor goes to app with no price anchor. Add:
- A brief pricing mention on the homepage: "Free demo, then $499 one-time"
- A "What happens after the demo?" section on the homepage
- In the app: surface the upgrade prompt after a meaningful action, not on arrival
Instagram (https://www.instagram.com/hospo_sureau) is defined in src/_data/site.js but is not included in the sameAs array on the Organization schema. LinkedIn and Facebook are present. Adding Instagram completes the social profile set and strengthens entity recognition by Google and LLMs.
Fix: In src/_data/site.js, add instagram to the sameAs array alongside linkedIn and facebook. One line change.
Pillar 2: AISO
"How to open a cafe in Australia" and related queries are high-intent searches from people actively planning to spend money. HospoSure is the exact answer. Ranking for these terms is a compounding long-term asset.
Every major AI tool surfaces answers differently under the hood, but the signals they all respond to are the same: well-indexed content, clear product descriptions, and credible third-party citations. One strategy covers all of them.
| AI tool | How it sources answers | What this means for HospoSure |
|---|---|---|
| Google AI Overviews | Draws directly from Google's own search index and ranking signals. Confirmed by Google: no separate AIO algorithm exists. | Ranking well in organic search is the prerequisite. Google AI Optimization Guide |
| Perplexity | Performs live web search on every query and synthesises from indexed pages. Behaves most similarly to Google AIO. | Strong organic rankings and crawlable content feed directly into Perplexity answers. |
| ChatGPT | With browsing enabled: performs live search via Bing. Without browsing: draws from training data (knowledge cutoff applies). | Bing indexing matters. Directory listings, reviews, and external citations also feed the training data that informs non-browsing responses. |
| Claude | Primarily draws from training data. Web search available in some modes. Surfaces products that are well-documented and frequently cited across the web. | Named reviews on G2, Capterra, Trustpilot, and partner citations are the main levers. |
| Grok | Draws from training data and real-time X (Twitter) content. Social discussion and mentions on X influence visibility. | Active presence and mentions on X contribute. Named citations and directory listings also help via training data. |
| Gemini | Draws from Google's index and training data. Tightly integrated with Google Search signals. | Same as Google AIO, organic ranking and entity clarity are the primary signals. |
| Microsoft Copilot | Powered by Bing search. Live web retrieval on most queries. | Bing indexing and strong organic presence feed Copilot answers directly. |
The common thread: be findable, well-described, and well-cited. A product with strong organic rankings, consistent entity language, directory listings, and named reviews will surface across all of these tools, because those signals feed both search indexing and the training data that LLMs draw from.
Tactics confirmed ineffective by Google, do not action
- Creating
llms.txtfiles - Chunking content into small pieces for AI comprehension
- Rewriting content specifically for AI systems
- Over-emphasising structured data as a requirement for AI visibility
- Pursuing inauthentic mentions across the web
Primary keywords, use in H1, page title, URL
| Keyword | Cluster | Intent |
|---|---|---|
| cafe financial modelling | Financial modelling | High |
| cafe financial projections | Financial modelling | High |
| cafe cash flow report | Financial modelling | High |
| cafe recipe library | Test kitchen library | High |
| cafe recipe templates | Test kitchen library | High |
| cafe recipe costing | Recipe costing tools | High |
| Square menu integration cafe | Square menu export | High |
| Square POS cafe integration | Square menu export | High |
| cafe startup planning | Cafe startup planning | High |
| opening a cafe Australia | Cafe startup planning | High |
| pre-opening cafe planning | Cafe startup planning | High |
Secondary keywords, use in H2/H3, body copy, features
| Keyword | Cluster |
|---|---|
| cafe overheads calculation | Financial modelling |
| cafe labour costs | Financial modelling |
| cafe COGS | Financial modelling |
| bank-ready cafe reports | Financial modelling |
| cafe test kitchen library | Test kitchen library |
| expert cafe recipe templates | Test kitchen library |
| pre-costed cafe recipes | Test kitchen library |
| cafe batch recipe templates | Test kitchen library |
| cafe dish performance analysis | Recipe costing tools |
| cafe food cost calculator | Recipe costing tools |
| export menu to Square POS | Square menu export |
| Square POS menu setup cafe | Square menu export |
| POS integration cafe | Square menu export |
| Australian cafe planning | Cafe startup planning |
| cafe founder | Cafe startup planning |
| pre-opening cafe setup | Cafe startup planning |
Target query clusters
| Cluster | Example queries | Intent |
|---|---|---|
| Cafe startup planning | "how to open a cafe in Australia", "cafe business plan template Australia" | High |
| Financial modelling | "cafe startup costs Australia", "cafe break-even calculator" | High |
| Test kitchen library | "cafe recipe library", "pre-costed cafe recipes", "cafe batch recipes Australia", "expert cafe recipe templates" | High |
| Recipe costing tools | "cafe recipe costing spreadsheet", "menu cost calculator Australia", "cafe food cost calculator" | High |
| Square menu export | "export menu to Square POS", "Square POS menu setup cafe", "Square POS cafe integration" | High |
| POS and software | "cafe point of sale", "cafe planning software Australia", "best POS for cafe" | High |
| Comparison | "HospoSure alternative", "cafe business planning tool" | High |
Keyword research findings (competitor gap analysis)
Keyword gap research run against clevercafecompany.com.au and thehospitalitycoach.net as reference sites in the same niche. Note: Clever Cafe is Tim's own company and the source of all current leads, a partner, not a competitor. Its site remains useful as a keyword benchmark, but do not target content against it or try to outrank it on branded terms; the goal is complementary coverage. Keywords below are either uncontested or weakly held, priority targets for new content and on-page optimisation.
| Keyword | Vol/mth | Opportunity | Cluster |
|---|---|---|---|
| cafe point of sale | 260 | High, target POS guide page | POS and software |
| point of sale for coffee shop | 260 | High, target POS guide page | POS and software |
| pos for cafe | 260 | High, target POS guide page | POS and software |
| cafe recipe library | n/a | High, no competitors ranking, direct product match | Test kitchen library |
| pre-costed cafe recipes | n/a | High, uncontested, high purchase intent | Test kitchen library |
| export menu to Square POS | n/a | High, bottom-of-funnel, no competitors targeting this | Square menu export |
| ato benchmark | 600 | High, competitor pos 47, low competition | Financial modelling |
| ato benchmarks | 300 | High, competitor pos 62, low competition | Financial modelling |
| cafe business plan | 140 | High, core intent keyword | Cafe startup planning |
| setting up a coffee shop | 140 | High, startup intent | Cafe startup planning |
| how to open a cafe | 80 | High, competitor pos 51 | Cafe startup planning |
| how to start a cafe | 50 | High, competitor pos 56 | Cafe startup planning |
| best pos for cafe | 30 | Medium, specific buyer intent | POS and software |
| opening a cafe checklist | 20 | Medium, competitor pos 16, high intent | Cafe startup planning |
| buying a cafe | 20 | Medium, competitor pos 3, well-contested | Cafe startup planning |
| cafe consultant sydney | 20 | Low, geo-specific, target in copy | Cafe startup planning |
Keyword gap analysis conducted against clevercafecompany.com.au (Tim's company, partner not competitor) and thehospitalitycoach.net. Volumes sourced from keyword research tool data. Verify in GSC once site is indexed.
ATO benchmarks opportunity: "ato benchmark" (600/mth) and "ato benchmarks" (300/mth) are high-volume informational keywords where competitors rank very poorly (pos 47 and 62). A single guide covering ATO cafe benchmarks for labour, COGS, and overheads could capture significant organic traffic and directly supports HospoSure's financial modelling messaging.
Test kitchen library opportunity: "cafe recipe library" and "pre-costed cafe recipes" have no competitors ranking. These queries match the test kitchen library directly and should be targeted by a dedicated guide or landing page. High purchase intent, low competition.
Square menu export opportunity: "export menu to Square POS" and related queries are bottom-of-funnel with no competitors targeting them. A short guide or feature page on the Square menu integration could capture high-intent visitors who are actively setting up their cafe POS.
- Every page needs a unique, keyword-rich
<title>and meta description - Add descriptive alt text to all images
- Add an H1 to every page if missing
- Verify structured data with Google's Rich Results Test after implementation
- Fix
aggregateRating.ratingCountinsite.jsto match actual review count
Schema.org implementation, priority order
Schema.org remains relevant for Google rich results and LLM/AIO visibility. Focus on the four high-value types below. Legislation type for Terms and Privacy pages is not worth implementing. Google: Intro to structured data · Rich Results Test
| Type | Page | Value | Status |
|---|---|---|---|
Organization | Sitewide (via layout) | Entity recognition by Google and LLMs. Name, URL, logo, social links, contact. | Done |
SoftwareApplication | Homepage (/) | Enables app rich results. applicationCategory, operatingSystem, offers (pricing), aggregateRating. | Done |
FAQPage | FAQ page (/faq) | FAQ rich result, expands listing in search with accordion Q&A. High click-through impact. | Done |
AggregateRating | Homepage (nested in SoftwareApplication) | Review stars in search results. Requires ratingValue, ratingCount, bestRating. | Done |
Blog | Blog index (/the-pass, /blog) | Low impact but correct typing. Minimal effort. | Done |
BlogPosting | Each blog post | Correct typing. headline, datePublished, author, image. Low direct impact. | Done |
_includes/schema.njk (per-page schema + optional extraSchema), driven by site.js and the *.11tydata.js files. How to verify validity: (1) authoritative, paste a page (or its raw JSON-LD, since the redesign is pre-deploy) into the Google Rich Results Test and the schema.org validator; (2) local, a build-time lint extracts every application/ld+json block, parses it, and checks each @type for required properties. Current result: 53 pages, 82 JSON-LD blocks, all valid JSON, 0 missing-required-field problems. The hand-maintained JSON-LD lives in site.js (organization, reviews, FAQ, aggregateRating) and the per-page data files, so it is worth re-running the lint after editing those. Bug fixed this pass: the organization @type was Onlinebusiness (invalid lowercase-b, schema.org is case-sensitive), appearing site-wide on all 53 pages as reviewedBy/publisher/mainEntity. Set to Organization (the most broadly recognised type for Google's Organization features; OnlineBusiness is also valid schema.org but less universally supported). Blog/BlogPosting typing was already present in the output, so those rows are now marked Done.Schema.org properties: SoftwareApplication (homepage)
| Property | Value |
|---|---|
@type | SoftwareApplication |
name | HospoSure |
url | https://hosposure.com.au |
applicationCategory | BusinessApplication |
operatingSystem | Web |
description | Cafe business planning and financial modelling software for Australian cafe startups. Recipe costing, cash flow projections, and Square POS integration. |
offers.price | 39 |
offers.priceCurrency | AUD |
aggregateRating.ratingValue | Pull from site.js |
aggregateRating.ratingCount | Pull from site.js (keep in sync with actual reviews) |
aggregateRating.bestRating | 5 |
Schema.org properties: Organization (sitewide)
| Property | Value |
|---|---|
@type | Organization |
name | HospoSure |
url | https://hosposure.com.au |
logo | URL to logo image |
email | hello@hosposure.com.au |
sameAs | LinkedIn, Facebook, Instagram, Trustpilot URLs |
areaServed | AU |
Homepage optimisation checklist
- H1 contains the primary seed keyword
- Clear statement of what HospoSure is, who it is for, and what makes it different
- Internal links to main feature/service sections
- Links to recent blog posts and guides
- FAQ section present and linked
- Real photos and video integrated (not stock)
- Step-by-step product walkthrough visible on the page
- Pricing section present and accurate
- Social proof (Trustpilot reviews) above the fold or near CTA
Blog post optimisation checklist
- Primary keyword in H1, first paragraph, and at least one H2
- Target keyword density approximately 2% across the post
- Internal links to at least 2 other posts and to the pricing or demo page
- FAQ section at the bottom targeting long-tail variants
- Author byline present
- Date published and date updated visible
- At least one real image with descriptive alt text
- CTA at the end linking to demo or pricing
Per-page title and meta description targets
| Page | Title | Meta description |
|---|---|---|
| Homepage | Cafe Business Planning and Financial Modelling Australia | Cafe business planning and modelling, recipe analysis, and financial metrics. Easy-to-use software with access to accredited hospitality coaching and expert mentorship on demand. |
| Blog index | The Pass: Guidance for Cafe Founders | Useful guidance and home truths for cafe management and pre-opening planning. |
| FAQ | FAQ: HospoSure Cafe Planning Software | Quick answers to frequent questions about HospoSure's cafe planning and financial modelling tools. |
| About Us | About HospoSure: Our Purpose and Vision | Meet the team behind HospoSure and learn why we built Australia's cafe business planning platform. |
| Contact Us | Contact HospoSure: Get in Touch | We're here to help you every step of the way. Reach out with any questions about HospoSure. |
Current page structure for reference when planning content updates or schema implementation.
| Page | Section structure |
|---|---|
| Homepage | Header/Nav · Hero · Product Overview · Product Process (1-2-3) · Process Detail (Modelling, Recipe Analysis, Dashboard) · Key Features · Partnerships · Founder Problems · Testimonials · Pricing · CTA · Footer |
| Blog index (The Pass) | Header/Nav · Hero · Post list · Footer |
| Blog post | Header/Nav · Post header (title, date, tags) · Body · CTA · Footer |
| FAQ | Header/Nav · Hero · FAQ accordion · Footer |
| About Us | Header/Nav · Hero · Team cards · Purpose/vision · Footer |
| Contact Us | Header/Nav · Contact form · Footer |
| Terms of Use | Header/Nav · Legal content · Footer |
| Privacy Policy | Header/Nav · Legal content · Footer |
Navigation: Home · The Pass · FAQ · About Us · Contact Us · Sign In
11 posts exist. Before writing new content:
- Use PostHog or GSC to identify the top 3 posts by traffic
- Strengthen those three first: update facts, add internal links, improve headings, expand thin sections
- Interlink posts to each other and back to the pricing/demo CTA
Keyword density: Aim for approximately 2% usage of the primary keyword throughout each piece of content. Use semantic variations naturally rather than forcing exact matches. Google: Creating helpful content
Content by funnel stage
Plan content across all three stages. Awareness content drives traffic; consideration and decision content drives conversions.
| Stage | Content type | Example | Status |
|---|---|---|---|
| Awareness | Blog posts | "How to open a cafe in Australia" | Planned |
| How-to guides | "How to cost a cafe menu" | Planned | |
| Free resources | Demo access, templates | Done | |
| Case studies | Real cafe founder stories using HospoSure | Not started | |
| Consideration | Testimonials | Trustpilot reviews on site | Done |
| "Best X for Y" posts | "Best POS system for cafes in Australia" | Planned | |
| "X vs Y" comparisons | "HospoSure vs spreadsheets for cafe planning" | Not started | |
| Decision | Complete category guides | "Complete guide to cafe financial modelling" | Not started |
New posts to prioritise
| Post title | Stage | Target cluster | Word count |
|---|---|---|---|
| "ATO benchmarks for cafes: what your numbers should look like" | Awareness | Financial modelling | ~1,800 |
| "How to open a cafe in Australia: the complete pre-opening checklist" | Awareness | Startup planning | ~2,500 |
| "How to cost a cafe menu in Australia" | Awareness | Menu costing | ~1,800 |
| "Cafe startup costs in Australia: what you actually need to budget" | Awareness | Financial modelling | ~2,000 |
| "How to calculate break-even for a cafe" | Awareness | Financial modelling | ~1,500 |
| "Best POS system for cafes in Australia: Square vs the alternatives" | Consideration | POS and software | ~1,500 |
| "Square POS for cafes: connect your sales data to your planning" | Consideration | POS and software | ~1,500 |
| "Cafe business plan template: what banks actually want to see" | Decision | Startup planning | ~2,000 |
Priority: The ATO benchmarks post targets 600+ monthly searches where competitors rank very poorly, write it first. Case studies and "X vs Y" comparisons are the biggest content gaps; plan at least one of each in Phase 2.
- Sitemap submitted to GSC
- Canonical tags on all pages
- No broken internal links
- Mobile-friendly (verify in GSC)
- Core Web Vitals passing (check in GSC)
- HTTPS throughout
- Robots.txt correct (not blocking crawl of important pages)
PageSpeed Insights · Google Search Console · Google SEO Starter Guide
Each keyword cluster needs at least one dedicated guide page to rank. Without a purpose-built page, a cluster will not appear in GSC regardless of on-page work elsewhere. Guides live at root URLs (/slug/) using the existing guide layout. Priority order is based on search volume, competition, and product fit.
Page structure for each guide: URL slug matching the primary keyword. H1 containing the primary keyword. 1,500 to 2,000 words covering the topic thoroughly. FAQ section at the bottom targeting long-tail variants. Internal links to related cluster guides and the demo CTA. One or two external links to authoritative sources (ATO, Square docs, etc.).
| Cluster | Guide title / URL | Priority | Rationale | Status |
|---|---|---|---|---|
| ATO benchmarks | /ato-cafe-benchmarks/ | 1 | 900/mo combined volume, competitors at pos 47 and 62. Fastest realistic win. Directly supports financial modelling messaging. | To do |
| Test kitchen library | /cafe-recipe-library/ | 2 | Uncontested queries, direct product match. No competitors ranking. High purchase intent. | To do |
| Square menu export | /square-pos-cafe-menu-integration/ | 3 | Bottom-of-funnel, no competitors targeting it. Visitors searching this are actively setting up their cafe. | To do |
| Cafe startup planning | /how-to-open-a-cafe-in-australia/ (expand existing) | 4 | High volume, high intent. Guide exists but needs expansion to 1,500+ words with FAQ. | To do |
| Recipe costing tools | /cafe-food-cost-calculator/ (expand existing) | 5 | Existing how-to-cost guide covers adjacent content. Needs a calculator-focused variant. | To do |
| Financial modelling | /cafe-financial-modelling/ | 6 | Core product pillar. Competitive cluster, build after easier wins are indexed. | To do |
| POS and software | /cafe-point-of-sale/ | 7 | High volume (260/mo) but competitive. Build after Square menu export guide is live. | To do |
The blog is being retired. All posts move to the guides format at root URLs (/slug/). The blog index (/blog/) redirects to /guides/. A new guides summary page (/guides/) is created to list all guides. hosposure-partners-with-square is dropped with no redirect.
Content migration plan
| Blog post | Action | New URL | 301 from |
|---|---|---|---|
| a-guide-to-cafe-startup-and-business-planning | Migrate and reformat as guide | /cafe-startup-business-planning/ | /blog/a-guide-to-cafe-startup-and-business-planning/ |
| cafe-overheads | Migrate and reformat as guide | /cafe-overheads/ | /blog/cafe-overheads/ |
| cafe-marketing-strategy | Migrate and reformat as guide | /cafe-marketing-strategy/ | /blog/cafe-marketing-strategy/ |
| what-cafe-management-tools-actually-matter | Migrate and reformat as guide | /cafe-management-tools/ | /blog/what-cafe-management-tools-actually-matter/ |
| mastering-financial-literacy-for-long-term-success | Migrate and reformat as guide | /cafe-financial-literacy/ | /blog/mastering-financial-literacy-for-long-term-success/ |
| cafe-crew-and-culture | Migrate and reformat as guide | /cafe-crew-and-culture/ | /blog/cafe-crew-and-culture/ |
| operations-and-management | Migrate and reformat as guide | /cafe-operations-and-management/ | /blog/operations-and-management/ |
| selecting-suppliers | Migrate and reformat as guide | /cafe-selecting-suppliers/ | /blog/selecting-suppliers/ |
| choosing-and-using-ingredients | Migrate and reformat as guide | /cafe-ingredients-guide/ | /blog/choosing-and-using-ingredients/ |
| menu-development | Migrate and reformat as guide | /cafe-menu-development/ | /blog/menu-development/ |
| partnering-with-councils | Migrate and reformat as guide | /cafe-council-partnerships/ | /blog/partnering-with-councils/ |
| hosposure-partners-with-square | Drop, no redirect | n/a | n/a |
Definition of done
- All posts above migrated to
src/guides/using guide layout (no author byline, no post date, hero and FAQ sections added) - 301 redirects configured for all migrated posts
/blog/index 301 redirects to/guides//guides/summary page live, listing all guides with title, description, and cluster tag- Nav updated to remove blog link, add guides link
- Old
src/blog/directory andblog.htmltemplate removed - GSC monitored for redirect coverage after deploy
The monthly LLM visibility check is currently manual. Partial automation is achievable today using LLM APIs. Full automation is not possible: Google AI Overviews has no API and must remain a manual browser check.
What can be automated
| Tool | Automated? | Reason |
|---|---|---|
| ChatGPT (GPT-4o) | Yes | OpenAI API, paid, ~$0.05/month for this script |
| Claude | Yes | Anthropic API, paid, ~$0.05/month for this script |
| Gemini | Yes | Google AI API, free tier via AI Studio |
| Perplexity | No | No free API tier: $20/month Pro required. Manual check; note sources cited. |
| Google AI Overviews | No | No API exists. Manual browser check from Australian IP or VPN. |
| Grok | No | API in limited beta. Manual check at x.com. |
API access and cost per tool
| Tool | Free API? | Cost | Approach |
|---|---|---|---|
| Gemini | Yes | Free via Google AI Studio (use gemini-2.5-flash-lite model) | Automate, no cost |
| Claude | No | ~$0.05/month for 15 queries | Automate, negligible cost |
| ChatGPT | No | ~$0.05/month for 15 queries at GPT-4o pricing | Automate, negligible cost |
| Perplexity | No | $20/month Pro required for API access | Manual check, note sources cited, more useful than yes/no |
| Google AI Overviews | No API | n/a | Manual browser check from Australian IP or VPN |
| Grok | Limited beta | n/a | Manual check at x.com for now |
Script
strategy/check-ai-visibility.js: Node.js script that queries ChatGPT, Claude, and Gemini with all target queries, checks each response for "HospoSure", and writes results to strategy/ai-visibility-YYYY-MM-DD.csv. Run monthly.
Required .env keys (missing keys are skipped gracefully):
OPENAI_API_KEY: platform.openai.com/api-keysANTHROPIC_API_KEY: console.anthropic.com/settings/keysGEMINI_API_KEY: aistudio.google.com/app/apikey (free)
Definition of done
- API keys added to
.envfor OpenAI, Anthropic, and Gemini - Script runs successfully and produces a CSV baseline
- Perplexity, Google AIO, and Grok checked manually and results recorded in the AIO visibility tracker in Metrics
- Script run monthly alongside the GSC review
- Evaluate dedicated GEO tracking tool (Otterly.ai, Peec.ai) once site is ranking and there is meaningful data to track
One new AISO-targeted post per month. Prioritise depth over volume. A single 2,000-word post that fully answers a high-intent query is worth more than five 500-word posts.
Use this or a variant wherever the brand appears: directories, partner sites, press mentions, social bios. Consistent entity language helps Google and LLMs recognise HospoSure as a named product in a specific category.
src/_data/site.js). Facebook and Trustpilot re-updated with the new wording (2026-07-07). Crunchbase still carries the old wording and needs re-updating. Instagram and LinkedIn still waiting on Tim's admin access.
Canonical description used across profiles (long form): "HospoSure is Australian cafe startup planning software helping cafe founders open profitably. It combines financial modelling, cash flow projections, menu costing with 200+ chef-tested recipes from the Test Kitchen library, and direct Square POS menu management in one platform. Founders use HospoSure to build bank-ready financial reports, calculate overheads and labour costs, cost their menu before opening, and publish their menu directly to Square POS without re-entry."
| Action | Why it helps | Effort |
|---|---|---|
| Write genuinely helpful, expert-led long-form guides | Google and LLMs pull from indexed content. First-hand expertise (Tim, Chetan) is a direct signal. | Medium |
| Add clear entity language to the site | "HospoSure is Australian cafe business planning software..." stated plainly, not implied | Low |
| List on G2, Capterra, Product Hunt | Authoritative third-party sources LLMs use to verify product existence and category | Low |
| Complete Crunchbase and LinkedIn company profiles | Establishes the entity as real, named, and categorised | Low |
| Earn named reviews on Trustpilot, G2, Capterra | Reviews mentioning product name, category, and location are cited by LLMs more often | Ongoing |
| External citations from partners | Clever Cafe and other partners describing HospoSure with its full name, category, and URL | Medium |
Run each query manually in ChatGPT, Perplexity, and Google AI Overviews monthly. Record whether HospoSure appears, where in the response, and how it is described. Branded search volume in GSC ("HospoSure" queries) is a useful proxy for LLM-driven awareness, track it monthly as a trend.
Target queries by cluster
| Cluster | Query |
|---|---|
| Cafe startup planning | "best cafe business planning tool Australia" |
| Cafe startup planning | "how to plan opening a cafe in Australia" |
| Cafe startup planning | "cafe pre-opening checklist Australia" |
| Financial modelling | "cafe financial modelling software Australia" |
| Financial modelling | "how to do cash flow projections for a cafe" |
| Financial modelling | "cafe startup costs calculator Australia" |
| Test kitchen library | "cafe recipe library Australia" |
| Test kitchen library | "pre-costed cafe recipes Australia" |
| Recipe costing tools | "how to cost a cafe menu Australia" |
| Recipe costing tools | "cafe food cost calculator" |
| Square menu export | "how to export menu to Square POS" |
| Square menu export | "Square POS cafe planning software" |
| ATO benchmarks | "ato cafe benchmarks labour COGS" |
| Branded | "what is HospoSure" |
| Branded | "HospoSure review" |
Tracking signals
| Signal | Frequency |
|---|---|
| Manual LLM query checks (ChatGPT, Perplexity, Google AI Overviews) | Monthly |
| Branded search volume in GSC ("HospoSure" queries, proxy for LLM-driven awareness) | Monthly |
| Brand mention tracking via Google Alerts | Ongoing |
Pillar 3: Offsite
| Directory | Priority | Notes |
|---|---|---|
| Trustpilot | Done | Already present |
| G2 | High | LLMs frequently cite G2 reviews, listing pending, support ticket raised 2026-06-15 |
| Capterra / GetApp | Done | Listing submitted 2026-06-15 via g2digitalmarkets.com, covers both Capterra and GetApp |
| Product Hunt | Done | Profile created 2026-06-15 |
| Crunchbase | Done | Profile created 2026-06-15 |
| LinkedIn Company Page | Done | Page complete, website, phone, specialties, logo present. Two copy updates still needed: (1) tagline should read "Australian cafe business planning software, financial modelling, menu costing, and Square POS integration"; (2) Overview should open with the canonical entity sentence ("HospoSure is Australian cafe business planning software that helps cafe founders build financial models, cost their menus, and connect to Square POS before they open.") before describing the product detail. |
| SourceBottle / HARO (AU) | Medium | Expert quote placements generate press mentions |
Offsite profile register
Master list of every offsite profile, so entity copy, contact details, and login access stay tracked in one place. Update the "Last touched" column whenever a profile is created or edited.
| Profile | URL | Login / access | Last touched |
|---|---|---|---|
| Trustpilot | trustpilot.com/review/hosposure.com.au | Michael | 2026-06-15 (entity copy updated) |
| facebook.com/hosposure | Michael | 2026-06-15 (entity copy updated) | |
| TBC | Tim (admin access pending) | Not yet updated | |
| LinkedIn Company Page | TBC | Tim (admin access pending) | Page built; copy updates pending |
| Crunchbase | TBC | Michael | 2026-06-15 (profile created) |
| Product Hunt | TBC | Michael | 2026-06-15 (profile created) |
| Capterra / GetApp | TBC | Michael (submitted via g2digitalmarkets.com) | 2026-06-15 (submitted, awaiting approval) |
| G2 | TBC | Michael (support ticket raised) | 2026-06-15 (ticket raised, listing pending) |
Citations, business directory mentions
Citations (consistent name, URL, and contact details across directories) build trust signals for Google. Focus on Australian and hospitality-relevant directories first.
| Directory | Priority | Notes |
|---|---|---|
| Yellow Pages (yellowpages.com.au) | Medium | Australian business directory, broad reach |
| True Local | Medium | Australian local business directory |
| Yelp | Low | Low AU relevance but adds citation breadth |
| Manta | Low | SME directory, adds entity presence |
Q&A sites
Answering relevant questions on Q&A platforms builds brand visibility and can generate referral traffic. Focus on genuine, helpful answers, do not spam links.
| Platform | Approach |
|---|---|
| Quora | Answer questions about opening a cafe in Australia, cafe financial planning, Square POS setup. Link to relevant blog posts where genuinely useful. |
| Reddit (r/smallbusiness, r/australia) | Participate in cafe founder discussions. Build credibility before mentioning HospoSure. |
Clever Cafe Company is already converting. This model works. Scale it.
| Partner type | Example | Lead quality | Effort |
|---|---|---|---|
| Hospitality business coaches | Clever Cafe Co. | Very high | Medium |
| TAFE hospitality departments | TAFE NSW, William Angliss | High | Medium |
| Council small business programs | Business Victoria, Business Connect NSW | High | Medium |
| Commercial kitchen incubators | Shared kitchen operators | Medium | Low |
| Hospitality accountants | Boutique firms specialising in food business | High | Medium |
Offer: referral commission per paid conversion, co-branded content, or resource sharing.
Target 3 to 5 backlinks per quarter from relevant sites.
| Method | Target sites | Effort |
|---|---|---|
| Guest posts | Cafe industry blogs, hospitality association newsletters | Medium |
| Expert quotes | Food business press, startup media in AU | Low (via SourceBottle) |
| Partner mentions | Every partner site should mention and link to HospoSure | Low |
| Resource page listings | University entrepreneurship centres, TAFE resource pages | Low |
| PR (milestone-based) | App launch updates, customer success stories | Medium |
Ask satisfied customers at the right moment:
- After they complete their first financial model (in-app prompt)
- After they receive their bank-ready report
- After a successful opening (follow-up email at 30 days post-onboarding)
Ask for: Trustpilot review, Google review, and optionally refer a friend. One click per ask.
| Channel | Priority | Cadence | Content type |
|---|---|---|---|
| High | 2x per week | Cafe numbers, customer results, practical tips | |
| Medium | 2x per week | Carousels from blog posts, cafe startup visuals | |
| Low | 1x per week | Repurpose LinkedIn posts |
LinkedIn content pillars
- The numbers behind opening a cafe (financial insight posts)
- Customer results and named business stories
- Behind the product: what we built and why
- Practical tips: cafe planning, menu costing, Square POS
Pillar 5: Email Marketing
| Source | Method |
|---|---|
| Homepage opt-in | Lead magnet: "The 10 Numbers Every Cafe Owner Must Know Before Opening" PDF |
| Resource page | Same opt-in, different context |
| Blog post upgrades | Relevant checklist or template download at end of high-traffic posts |
| Demo signup | Automatically add all demo signups to the nurture sequence |
Triggered on opt-in.
| Day | Content | |
|---|---|---|
| 1 | 0 | Deliver the lead magnet. Introduce HospoSure in one paragraph. No hard sell. |
| 2 | 2 | The biggest financial mistake cafe founders make (links to blog post) |
| 3 | 4 | How to know if your menu will actually make money (menu costing angle) |
| 4 | 7 | Customer story: how [named business] used HospoSure to open confidently |
| 5 | 10 | Soft CTA: "Ready to see it working for your cafe? Start your free demo." |
Triggered when someone starts a demo but has not paid.
| Day | Content | |
|---|---|---|
| 1 | 1 | "Here is what to do first in your demo", guided quick win |
| 2 | 3 | "What does the financial model tell you?", surface the value |
| 3 | 7 | Address the most common objection: "Is $499 worth it?" |
| 4 | 14 | Urgency without pressure: "Your demo data is saved. Pick up where you left off." |
| 5 | 21 | Final nudge: direct offer, clear CTA, easy reply option |
Triggered 30 days after becoming a paid customer.
| Trigger | Content | |
|---|---|---|
| 30-day check-in | 30 days post-payment | "How is the planning going?" Personal feel, not automated-looking |
| Review request | 45 days post-payment | Ask for Trustpilot or Google review. Direct link. No login friction. |
| Referral ask | 60 days post-payment | "Know anyone else planning to open a cafe?" One-line ask, no pressure. |
Start with Mailchimp (free up to 500 contacts, 1,000 emails/month). Migrate to ActiveCampaign or ConvertKit when sequences become more complex or the list exceeds 500.
| Metric | Target |
|---|---|
| Welcome sequence open rate | 40%+ (industry average 25%) |
| Demo nurture click-through rate | 5%+ |
| Demo-to-paid conversion from email | Track separately from organic conversion |
| List growth per month | Set baseline once capture is live |
Pillar 6: Reputation
9 real 5-star Trustpilot reviews exist in structured data. Two mention named businesses in Sydney. This is a strong foundation. The gap is that these reviews are not being actively grown or distributed.
Reviews feed three things simultaneously: conversion (social proof on-site), AIO (LLMs cite named reviews), and trust (Trustpilot widget). Google Business Profile is not applicable as HospoSure is an online-only business with no physical premises.
| Platform | Priority | Why |
|---|---|---|
| Trustpilot | High | Already present. Need to actively solicit new reviews. |
| G2 | High | LLMs and software buyers cite G2. Even 5 to 10 reviews establishes presence. |
| Capterra | Medium | Gartner-owned, broad buyer reach. |
| Low | Declining relevance but still visible in search. |
Ask at the right moment, not randomly. Three moments where customers are most likely to say yes:
- After completing their first financial model in the app (in-app prompt)
- After downloading their bank-ready report (high-value moment)
- 45 days after becoming a paid customer (via automated email)
Make it one click. Direct link to the review platform. No login friction where possible.
Respond to every review, positive or negative.
- Positive: short, personal, mention the customer's business or detail if they shared it
- Negative: acknowledge the issue, offer to resolve via email, do not argue publicly
Responses signal to both Google and potential customers that the business is active and cares.
Reviews that include the product name, category, and location are more likely to be cited by LLMs. When asking for reviews, a brief prompt helps:
Do not script it. Just surface the idea.
Brand Context
| Stage | Pain | Message |
|---|---|---|
| Awareness | "Opening a cafe is overwhelming and risky" | "Plan your cafe with expert-proven tools" |
| Consideration | "I need financial projections but don't know where to start" | "Build bank-ready cash flow reports in hours, not weeks" |
| Decision | "Will this actually work for my specific cafe?" | "Free demo + money-back guarantee" |
| Retention | Ongoing menu optimisation, POS sync, performance tracking | Surface feature value in-app at the right moments |
- Australian-specific: Tailored to AU market, regulations, and terminology
- All-in-one: Replaces multiple disconnected tools (spreadsheets, POS, recipes)
- Expert-backed: Recipes and templates from hospitality professionals
- Practical focus: Designed for operators, not accountants
Core features (must-have)
- Financial modelling engine
- Recipe costing calculator
- Cash flow projections
- Menu builder
Differentiating features (competitive edge)
- Square POS integration
- Test kitchen recipe library
- Dish performance analysis
- Bank-ready report export
Supporting features (value-add)
- Overhead calculators
- Labour cost planning
- Pre-opening checklists
- Demo access
| Use | Avoid |
|---|---|
| cafe | café |
| expert | veteran |
| modelling | modeling |
| pre-opening planning | generic "planning" |
| test kitchen library | recipe collection / templates |
| dish performance analysis | menu analytics |
| revolutionary, game-changing | hype language of any kind |
Current
- Square POS, primary POS integration (OAuth + manual token). Core integration is live; feature development is continuing. Ensure all marketing copy and onboarding docs reflect the current state of the integration.
- AWS Amplify, backend infrastructure
- Trustpilot, review platform
Potential future
- Xero / MYOB (accounting)
- Additional POS systems (Toast, Lightspeed)
- Supplier ordering platforms
Customer success
- Cafe opens on time and on budget
- Secures bank funding with HospoSure reports
- Menu performs profitably in first 6 months
- Avoids common startup financial mistakes
Business success
- User activation rate (free to paid conversion)
- Feature adoption (especially POS sync)
- Customer retention (monthly churn)
- Review ratings (Trustpilot, Google)
| Name | Role | Responsibility |
|---|---|---|
| Michael Roberts | Technical Director | Architecture, product development, cloud infrastructure, technology strategy |
| Tim Noye | Commercial Director | Commercial strategy, partnerships, hospitality operations expertise |
| Chetan Shroff | Customer Service | Onboarding, pre-opening planning support, Square POS implementation |
Overview
Monthly status roll-up: what shipped in June, what the data now shows, and the prioritised actions for July. Full metric detail is in the Metrics tab (July snapshot).
Progress: June 2026
| Done | Pillar | Outcome |
|---|---|---|
| Website rebuild shipped (Eleventy 3 + Tailwind v4) | Onsite | Live on hosposure.com.au. post.html migrated 2026-07-07, so no templates remain on the legacy theme. TrustBox widget closed by decision: hand-built review cards are the permanent approach. Rebuild fully complete. |
| Conversion events instrumented and firing | Onsite | cta_clicked, pricing_viewed, demo_started, signup_requested, subscription_started all captured events in June. The measurement gap flagged in the June review is closed. |
| Entity language rolled out | AISO | Site, Trustpilot, Facebook, Crunchbase, Product Hunt done. LinkedIn/Instagram still pending Tim's admin access; G2 ticket still open. |
| Directory referrals starting | Offsite | First-ever visits from Product Hunt, Trustpilot, and Microsoft Copilot, the June directory work is beginning to register. |
| Traffic up | AISO | Visitors +71%, sessions +184% vs prior 30 days. Organic search pageviews 33 → 54. Caveat: 92% of pageviews are Direct and likely include internal testing. |
Where the bottleneck is now
subscription_started, well above the ~2 customers/month reality).Focus areas for July
- Data hygiene: test-account filter in PostHog, then the end-to-end conversion funnel by utm_source, real conversion rates in the August snapshot.
- Content: first cluster guide (ATO benchmarks), then the blog-to-guides migration.
- Entity completion: close out G2, LinkedIn, and Instagram so every profile carries the canonical description.
Tier 1: Do first (highest impact, no dependencies)
| # | Action | Pillar | Owner | Effort | Why it matters |
|---|---|---|---|---|---|
| 1 | Verify conversion data and set up a test-account filter in PostHog, then build the pageview → cta_clicked → demo_started → signup_requested → subscription_started funnel broken down by utm_source | Onsite | Michael | Low | June shows 7 unique users on subscription_started, far above the ~2 customers/month baseline, and 92% of June pageviews are Direct, internal testing of the rebuild is almost certainly polluting the numbers. Until test traffic is filtered, the new conversion data can't be trusted for decisions. |
| 2 | Write and publish the ATO cafe benchmarks guide (/ato-cafe-benchmarks/) |
AISO | Michael | Medium | 900/mo combined search volume with competitors at positions 47 and 62. The single fastest realistic organic win, and the first step of the cluster-guide plan every AISO target depends on. |
| 3 | Chase the G2 listing (support ticket raised 2026-06-15, still pending) and confirm the Capterra/GetApp submission was approved | Offsite | Michael | Low | G2 is the directory LLMs cite most when recommending SaaS. Three weeks with no listing means the ticket needs a follow-up, not more waiting. |
| 4 | Update LinkedIn company page copy and Instagram bio, tagline to "Australian cafe business planning software, financial modelling, menu costing, and Square POS integration"; Overview opens with the canonical entity sentence | Offsite | Tim | Low | Blocked on Tim's admin access since mid-June. These are the last two profiles without the canonical entity language, the June LLM baseline showed Gemini hallucinating HospoSure's description, which is exactly what consistent entity copy fixes. |
Tier 2: Start once Tier 1 is moving
| # | Action | Pillar | Owner | Effort | Dependency |
|---|---|---|---|---|---|
| 5 | Migrate blog to guides format (301s, /guides/ index, nav update) and continue cluster guides in priority order (recipe library, Square menu export) | AISO | Michael | Medium | Website rebuild is live, so nothing blocks this now. Pair each migration batch with a GSC redirect check. |
| 6 | Launch email capture: lead magnet + The Pass opt-in + welcome sequence in Mailchimp | Michael | Medium | No email list exists. Every visitor who doesn't sign up for the demo is currently lost forever; capture should be live before content starts driving traffic. | |
| 7 | Expand partner channel: TAFEs, councils, hospitality accountants | Offsite | Tim | Medium | Clever Cafe is already converting. This model works, scale it. See Offsite for target partner list. |
| 8 | Rerun the LLM visibility script with the OpenAI key added, plus manual Perplexity/AIO/Grok checks; record in the Metrics tracker | AISO | Michael | Low | June baseline is incomplete (ChatGPT skipped, 4 Gemini errors). A clean July run is needed to measure whether the entity-language work is moving anything. |
Tier 3: Deferred (needs Tier 1 and 2 first)
| Action | Blocked by |
|---|---|
| Social activation (Instagram, TikTok, YouTube at cadence) | Instagram/LinkedIn admin access; content repurposing needs guides to exist |
| Demo nurture sequence (5 emails / 21 days) | Email platform and list capture live first (Tier 2 #6) |
| In-app referral and review prompts | Verified conversion funnel first (Tier 1 #1) |
| Backlink outreach (3 to 5/quarter) | Cluster guides must exist to link to |
| Paid search / paid social | Proven organic conversion data first |
Each pillar owns a stage in the customer journey. They are not independent activities, they feed each other. Reputation earned in stage 5 loops back to amplify discovery in stage 1, compounding returns over time.
Goals
Updated monthly. Status reflects GSC ranking data and automated LLM visibility checks. Green = on track or better. Amber = partial progress. Red = not started or no movement.
Keyword cluster rankings (GSC)
| Cluster | Status | Current | 6-month target |
|---|---|---|---|
| Financial modelling | Not started | Not ranking, 0 impressions | Pos <20, 50+ impressions/mo |
| Cafe startup planning | Not started | Not ranking, 0 impressions | Pos <20, 100+ impressions/mo |
| Test kitchen library | Not started | Not ranking, 0 impressions | Pos <10, 50+ impressions/mo |
| Recipe costing tools | Not started | Not ranking, 0 impressions | Pos <20, 50+ impressions/mo |
| Square menu export | Not started | Not ranking, 0 impressions | Pos <10, 30+ impressions/mo |
| POS and software | Not started | Not ranking, 0 impressions | Pos <20, 100+ impressions/mo |
| ATO benchmarks | Not started | Not ranking, 0 impressions | Pos <10, 100+ impressions/mo |
LLM visibility (automated, monthly)
| Tool | Status | Non-branded mentions | Branded mentions | Goal |
|---|---|---|---|---|
| Claude | Baseline only | 0 / 13 queries | 2 / 2 branded queries | 1+ non-branded cluster mention |
| Gemini | Baseline only | 0 / 13 queries (4 errors) | 2 / 2, wrong description | Correct description + 1+ cluster mention |
| ChatGPT | Not checked | n/a | n/a | 1+ non-branded cluster mention |
| Perplexity | Not checked | n/a | n/a | 1+ non-branded cluster mention |
| Google AIO | Not checked | n/a | n/a | Appear in 1+ cluster query AIO |
| Grok | Not checked | n/a | n/a | 1+ non-branded cluster mention |
Overall AISO goal
By month 6 (December 2026): at least 4 of 7 keyword clusters ranking in GSC with 30+ impressions per month each, and HospoSure appearing correctly (right description, right category) in at least 2 of the 4 major LLMs for at least 1 cluster query per tool. Branded queries should return an accurate description across all tools.
Goal: Put the measurement and content foundations in place so every subsequent decision is data-driven and the site starts converting existing traffic.
Definition of done: GA4 firing, GSC connected, sitemap submitted, hero copy updated, three key features visible on the homepage, pricing page live, G2/Capterra/Product Hunt listings created.
Focus: Onsite fixes, analytics baseline, feature prominence, directory listings, entity presence for AIO.
Goal: Turn cold traffic into leads and start nurturing demos toward payment. Build the email engine and publish the first high-intent SEO content.
Definition of done: Lead magnet live, email capture on homepage and resource page, welcome and demo nurture sequences running in Mailchimp, first blog post published, LinkedIn posting at cadence, three new partner conversations started.
Focus: Email list building, nurture sequences, blog strategy, social activation, partnership outreach.
Goal: Compound the gains from Phases 1 and 2. Build organic authority, grow the review presence, and activate paid search once conversion is proven.
Definition of done: One SEO post published per month, 3 to 5 backlinks earned per quarter, G2 and Capterra at 10+ reviews each, retention email sequence live, LLM visibility checked monthly, paid search launched.
Focus: Ongoing SEO content, backlink building, review growth, retention emails, LLM visibility monitoring, paid acquisition.
Metrics
| Metric | What it tells you | Where to check |
|---|---|---|
| Organic sessions | Whether SEO is working | PostHog |
| Demo signups | Top-of-funnel conversion | PostHog |
| Demo-to-paid conversion rate | Bottom-of-funnel efficiency | PostHog |
| New customers/month | The headline number | PostHog |
| Email list size and monthly growth | Lead nurture health | Email platform |
| Welcome sequence open rate | Email content quality (target: 40%+) | Email platform |
| Demo nurture conversion to paid | Email channel revenue contribution | Email platform |
| LinkedIn followers and average post impressions | Social reach and authority growth | LinkedIn Analytics |
| Instagram followers, saves per carousel, and bio link clicks | Social engagement quality and traffic contribution | Instagram Insights |
| Social-attributed sessions | Social channel traffic contribution | PostHog (source: social) |
| Social-attributed demo signups (UTM tracked) | Social channel revenue contribution | PostHog |
| Review count across Trustpilot, G2, Capterra | Reputation growth | Each platform |
| Average review rating | Reputation quality | Each platform |
| Branded search volume | AIO proxy: people finding HospoSure via LLMs then Googling it | GSC |
| Average position for target keywords | SEO ranking progress | GSC |
| Backlinks earned | Offsite authority growth | GSC or Ahrefs |
| LLM visibility (manual) | Appears in top 3 answers for target queries | Manual check |
PostHog data: last 30 days to 7 July, compared with the prior 30 days. First snapshot since the website rebuild shipped and conversion events went live.
subscription_started, well above the ~2 customers/month reality. Internal testing of the rebuilt site and app is almost certainly inflating both traffic and conversion counts. No test-account filter is configured in PostHog yet, set one up (Tier 1 action) before treating any of these numbers as customer behaviour.
Traffic overview (PostHog, vs prior 30 days)
| Metric | This period | Prior period | Change |
|---|---|---|---|
| Unique visitors | 118 | 69 | +71% |
| Pageviews | 1,279 | 169 | +657% (inflated by internal/direct traffic) |
| Sessions | 278 | 98 | +184% |
| Bounce rate | 34.5% | 32.7% | +1.9pts |
Conversion events (now live, first data)
| Event | June count | June unique users | Note |
|---|---|---|---|
pricing_viewed | 31 | n/a | Firing on marketing site |
cta_clicked | 21 | n/a | Firing with section labels |
demo_started | 26 | 15 | App event live |
signup_requested | 10 | 9 | Replaces the planned setup_fee_paid naming |
subscription_started | 7 | 7 | Verify against real billing before trusting |
Next step: once test accounts are filtered, build the end-to-end funnel (pageview → cta_clicked → demo_started → signup_requested → subscription_started) broken down by utm_source, and report real conversion rates in the August snapshot.
Traffic sources (pageviews, last 30 days)
| Source | Pageviews |
|---|---|
| Direct (includes internal testing) | 1,258 |
| Google (organic) | 30 |
| Bing (organic) | 24 |
| Facebook (all surfaces) | 12 |
| 4 | |
| LinkedIn (app) | 3 |
| Trustpilot, Product Hunt, Copilot | 1 each, first referrals from the new directory profiles and an AI assistant |
Organic search (Google + Bing) grew from 33 to 54 pageviews month on month. Still small, and still mostly branded, the cluster guides remain the prerequisite for non-branded growth. The first-ever referrals from Product Hunt, Trustpilot, and Microsoft Copilot suggest the June directory/entity work is starting to register.
June 2026 baseline. PostHog data: last 30 days to 8 June. GSC data: last 3 months to 8 June. LLM visibility: automated run 10 June. Use as the comparison point for all future monthly snapshots.
Traffic overview (PostHog)
| Metric | Value |
|---|---|
| Total pageviews | 174 |
| Unique visitors | 76 |
| Sessions | 103 |
| Pages per session | 1.69 |
Weekly trend (PostHog)
| Week | Pageviews | Unique visitors | Sessions |
|---|---|---|---|
| 11 May | 6 | 5 | 5 |
| 18 May | 48 | 25 | 29 |
| 25 May | 49 | 23 | 31 |
| 1 Jun | 71 | 34 | 38 |
Week of 1 June: +45% pageviews and +48% sessions vs prior two weeks.
Top pages (PostHog)
| Page | Pageviews | Unique visitors |
|---|---|---|
| / (homepage) | 104 | 59 |
| /pricing/ | 18 | 5 |
| /the-pass/ | 10 | 7 |
| /about-us/ | 10 | 8 |
| /the-pass/what-makes-the-best-eggs-benedict/ | 5 | 4 |
| /faq/ | 4 | 4 |
| /contact-us/ | 4 | 3 |
| /blog/what-cafe-management-tools-actually-matter/ | 4 | 4 |
| /how-much-does-it-cost-to-open-a-cafe-in-australia/ | 2 | 2 |
/pricing/ at 18 pageviews is a notable intent signal. No conversion events instrumented yet.
Traffic sources (PostHog)
| Source | Pageviews | Unique visitors |
|---|---|---|
| Direct | 113 | 47 |
| Google (organic) | 19 | 8 |
| Bing (organic) | 14 | 5 |
| app.hosposure.com.au (internal) | 9 | 2 |
| 9 | 9 | |
| 2 | 2 |
Device split (PostHog)
| Device | Pageviews | Visitors |
|---|---|---|
| Desktop | 128 (74%) | 43 |
| Mobile | 46 (26%) | 33 |
GSC, top queries
77 clicks, ~1,100 impressions total. 59 of 77 clicks are branded. Non-branded organic is near zero, content creation is the prerequisite.
| Query | Clicks | Impressions | CTR | Avg position |
|---|---|---|---|---|
| hosposure | 59 | 70 | 84% | 1.0 |
| cafe menu development sydney | 0 | 25 | 0% | 3.3 |
| hospos | 0 | 7 | 0% | 38.6 |
| freecafe | 0 | 3 | 0% | 6.7 |
| opening a coffee shop | 0 | 1 | 0% | 1.0 |
GSC, top pages by impressions
| Page | Clicks | Impressions | CTR | Avg position |
|---|---|---|---|---|
| / | 71 | 275 | 25.8% | 4.8 |
| /about-us | 2 | 163 | 1.2% | 2.7 |
| /contact-us | 1 | 103 | 1.0% | 3.9 |
| /faq | 0 | 101 | 0% | 1.9 |
| /blog | 0 | 96 | 0% | 1.9 |
| /resource | 0 | 51 | 0% | 2.6 |
| /blog/partnering-with-councils/ | 1 | 19 | 5.3% | 6.5 |
| /blog/cafe-overheads/ | 1 | 15 | 6.7% | 9.8 |
| /blog/what-cafe-management-tools-actually-matter/ | 0 | 13 | 0% | 6.0 |
| /blog/cafe-marketing-strategy/ | 0 | 11 | 0% | 11.1 |
/faq and /blog each have ~100 impressions at position ~2 but 0% CTR, title tags and meta descriptions need review.
GSC, cluster rankings
None of the target keyword clusters are ranking yet. No dedicated guide pages exist, content creation is the prerequisite.
| Cluster | GSC avg position | Impressions/mo | Target (6 months) |
|---|---|---|---|
| Financial modelling | Not ranking | 0 | Pos <20, 50+ impressions/mo |
| Cafe startup planning | Not ranking | 0 | Pos <20, 100+ impressions/mo |
| Test kitchen library | Not ranking | 0 | Pos <10, 50+ impressions/mo |
| Recipe costing tools | Not ranking | 0 | Pos <20, 50+ impressions/mo |
| Square menu export | Not ranking | 0 | Pos <10, 30+ impressions/mo |
| POS and software | Not ranking | 0 | Pos <20, 100+ impressions/mo |
| ATO benchmarks | Not ranking | 0 | Pos <10, 100+ impressions/mo |
LLM visibility, automated (Claude and Gemini, 10 June)
ChatGPT skipped (no API key). "Error" = transient Gemini 503. Zero non-branded cluster visibility. Gemini finds the brand name but hallucinated the description ("insurance solutions", "booking platform"), entity language work is the immediate priority.
| Cluster | Query | Claude | Gemini | ChatGPT |
|---|---|---|---|---|
| Cafe startup planning | best cafe business planning tool Australia | No | No | Skipped |
| Cafe startup planning | how to plan opening a cafe in Australia | No | Error | Skipped |
| Cafe startup planning | cafe pre-opening checklist Australia | No | No | Skipped |
| Financial modelling | cafe financial modelling software Australia | No | No | Skipped |
| Financial modelling | how to do cash flow projections for a cafe | No | No | Skipped |
| Financial modelling | cafe startup costs calculator Australia | No | No | Skipped |
| Test kitchen library | cafe recipe library Australia | No | Error | Skipped |
| Test kitchen library | pre-costed cafe recipes Australia | No | No | Skipped |
| Recipe costing tools | how to cost a cafe menu Australia | No | No | Skipped |
| Recipe costing tools | cafe food cost calculator | No | Error | Skipped |
| Square menu export | how to export menu to Square POS | No | Error | Skipped |
| Square menu export | Square POS cafe planning software | No | No | Skipped |
| ATO benchmarks | ato cafe benchmarks labour COGS | No | Error | Skipped |
| Branded | what is HospoSure | Yes | Yes (wrong description) | Skipped |
| Branded | HospoSure review | Yes | Yes (wrong description) | Skipped |
LLM visibility, manual checks outstanding
| Tool | Status | Notes |
|---|---|---|
| ChatGPT | Not checked, no API key | Add OPENAI_API_KEY to .env and rerun script |
| Perplexity | Not checked | Manual check at perplexity.ai, note sources cited |
| Google AIO | Not checked | Manual check from Australian IP or VPN |
| Grok | Not checked | Manual check at x.com |
Facebook page posting is not included. Page reach has declined sharply; effort is better spent in Groups where the audience is active and engaged. A Facebook page should exist for completeness and Meta Ads infrastructure but is not a posting channel.
Setup checklist