Compare commits

...
4 Commits
Author SHA1 Message Date
help4bisandClaude Sonnet 5.5 1dcef36b50 docs: what's new draft for pricing page fix
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-23 06:45:43 +10:00
help4bisandClaude Sonnet 5.5 c91733764b chore: sitemap-driven site scan 2.0.0, copy of /home/help4bis/scripts (cockpit #168)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-23 06:45:43 +10:00
help4bisandClaude Sonnet 5.5 3ea2be5a43 fix: pricing paths, contact form spam guard, tracker on all pages, drop unused CDN script (cockpit #163 #164 #171)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-23 06:45:34 +10:00
help4bisandClaude Sonnet 5.5 9e6a41fc5d chore: baseline of the live help4bis.com docroot as of 2026-10-23 (cockpit #168)
Excludes analytics/data, vendor, support, .env, ACME tokens.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-23 06:45:34 +10:00
88 changed files with 21000 additions and 0 deletions
@@ -0,0 +1,8 @@
# What's new draft: pricing page loads properly (2026-10-23)
Our pricing page now looks right from every link. Before, opening it from the short
address (help4bis.com/pricing/) showed unstyled text and broken links. It now loads
with the full design on phones and desktops.
Also: the contact and SOS Fix forms now quietly filter out automated junk, so the
messages that reach us are from real people.
+5
View File
@@ -0,0 +1,5 @@
analytics/data/
vendor/
support/
.env*
.well-known/acme-challenge/
+61
View File
@@ -0,0 +1,61 @@
# php -- BEGIN cPanel-generated handler, do not edit
# Set the “ea-php84” package as the default “PHP” programming language.
<IfModule mime_module>
AddHandler application/x-httpd-ea-php84 .php .php8 .phtml
</IfModule>
# php -- END cPanel-generated handler, do not edit
# --- URL rewrite block (added 2026-05-13) ---
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
# Canonical host — force non-www (added 2026-07-08, fixes www/non-www duplicate content)
RewriteCond %{HTTP_HOST} ^www\.help4bis\.com$ [NC]
RewriteRule ^(.*)$ https://help4bis.com/$1 [R=301,L]
# Internal rewrites — clean URL stays in browser bar
RewriteRule ^managed-wordpress/?$ managed-wordpress.html [L]
RewriteRule ^contact/?$ contact.html [L]
RewriteRule ^wordpress-care-plans/?$ care-plans.html [L]
# Pricing — 301 to homepage (temporary until pricing.html is delivered)
RewriteRule ^pricing/?$ pricing.html [L]
# Long legacy slug — 301 to homepage
RewriteRule ^responsive-eco-conscious-and-community-centric-managed-wordpress-hosting/?$ / [R=301,L]
# Legacy WordPress-era glossary section (removed) — 301 so Google drops it (added 2026-07-08)
RewriteRule ^glossary/.*$ / [R=301,L]
</IfModule>
# --- end URL rewrite block ---
# --- Consulting pages removed 2026-05-25 ---
Redirect 301 /business-analysis.html /
Redirect 301 /business-process-architecture.html /
Redirect 301 /ai-training-evaluation.html /
# --- end consulting redirects ---
# --- Stale WordPress-era URLs still in Google index (added 2026-05-25) ---
# 301 so Google replaces the old cached pages with the current static site.
Redirect 301 /about-us/ /about.html
Redirect 301 /empower-your-start-up-journey-with-our-managed-wordpress-hosting/ /
Redirect 301 /elevate-your-business/ /
Redirect 301 /terms-and-conditions/ /terms.html
Redirect 301 /privacy-policy/ /privacy.html
Redirect 301 /how-to-use-the-support-system/ /support/
Redirect 301 /unlock-australias-best-web-hosting/ /
Redirect 301 /support-local-businesses/ /
Redirect 301 /js-support-ticket-controlpanel/ /support/
Redirect 301 /the-best-webhosting-in-brisbane-why-help4bis-tops-the-list/ /
Redirect 301 /lets-get-started/ /
# --- end stale URL redirects ---
# --- Block stray backup files from the web (added 2026-07-08) ---
# Editing workflow leaves *.bak.<timestamp> copies alongside live files; never serve them.
<FilesMatch "(\.bak(\.|$)|\.orig$|\.save$|\.old$|\.backup$|-bak$|~$)">
Require all denied
</FilesMatch>
# --- end backup file block ---
+558
View File
@@ -0,0 +1,558 @@
<!DOCTYPE html>
<!-- Version: 2.1.0 | Created: 2026-03-13 | Updated: 2026-08-16 -->
<html lang="en-AU">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>About HELP4BIS | The Team Behind the Work</title>
<meta name="description" content="HELP4BIS: a Brisbane graphic designer and WordPress specialist building honest, well-made websites for Australian small businesses. Small by design.">
<meta name="keywords" content="HELP4BIS, about HELP4BIS, managed WordPress Brisbane, graphic designer Brisbane, WordPress specialist Australia, Dutch Digital Dynamics">
<meta name="author" content="HELP4BIS">
<meta name="publisher" content="Dutch Digital Dynamics Pty Ltd">
<meta name="copyright" content="Dutch Digital Dynamics Pty Ltd">
<meta name="language" content="en-AU">
<meta name="revisit-after" content="7 days">
<meta name="category" content="WordPress Services, Web Development, Small Business Technology">
<meta name="classification" content="Business/Technology">
<meta name="coverage" content="Australia">
<meta name="distribution" content="global">
<meta name="rating" content="general">
<meta name="geo.region" content="AU-QLD">
<meta name="geo.placename" content="Brisbane, Queensland">
<meta name="geo.position" content="-27.4698;153.0251">
<meta name="ICBM" content="-27.4698, 153.0251">
<link rel="canonical" href="https://help4bis.com/about.html">
<meta name="robots" content="index, follow">
<meta property="og:type" content="website">
<meta property="og:url" content="https://help4bis.com/about.html">
<meta property="og:site_name" content="HELP4BIS">
<meta property="og:title" content="About HELP4BIS | The Team Behind the Work">
<meta property="og:description" content="A Brisbane graphic designer and WordPress specialist building honest, well-made websites for Australian small businesses. Small by design.">
<meta property="og:image" content="https://help4bis.com/assets/images/og-social-card.jpg">
<meta property="og:image:width" content="1200">
<meta property="og:image:height" content="630">
<meta property="og:image:alt" content="HELP4BIS, WordPress services for Australian small businesses">
<meta property="og:locale" content="en_AU">
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:site" content="@help4bis">
<meta name="twitter:title" content="About HELP4BIS | The Team Behind the Work">
<meta name="twitter:description" content="A Brisbane graphic designer and WordPress specialist building honest, well-made websites for Australian small businesses.">
<meta name="twitter:image" content="https://help4bis.com/assets/images/og-social-card.jpg">
<meta name="twitter:image:alt" content="HELP4BIS">
<link rel="icon" type="image/jpeg" href="assets/images/logo-favicon.jpg"> <link rel="stylesheet" href="assets/css/style.css">
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@graph": [
{
"@type": "Organization",
"@id": "https://help4bis.com/#business",
"name": "HELP4BIS",
"legalName": "Dutch Digital Dynamics Pty Ltd",
"taxID": "86 081 237 087",
"url": "https://help4bis.com",
"logo": "https://help4bis.com/assets/images/logo-cropped.jpg",
"email": "project@help4bis.com",
"address": {
"@type": "PostalAddress",
"addressLocality": "Brisbane",
"addressRegion": "QLD",
"addressCountry": "AU"
},
"areaServed": {
"@type": "Country",
"name": "Australia"
},
"foundingDate": "2000",
"numberOfEmployees": {
"@type": "QuantitativeValue",
"value": 1
},
"knowsAbout": ["WordPress", "WooCommerce", "AI Integration", "Custom Plugin Development", "Website Security", "Elementor", "Web Design"],
"member": [
{
"@type": "Person",
"name": "Danielle Latta",
"jobTitle": "Creative Lead & WordPress Specialist",
"sameAs": "https://rds.ink",
"knowsAbout": ["Graphic Design", "WordPress", "Visual Identity", "Ink Art", "Elementor", "Web Design"]
}
]
},
{
"@type": "WebPage",
"@id": "https://help4bis.com/about.html#webpage",
"url": "https://help4bis.com/about.html",
"name": "About HELP4BIS | The Team Behind the Work",
"isPartOf": {"@id": "https://help4bis.com/#website"},
"about": {"@id": "https://help4bis.com/#business"},
"breadcrumb": {
"@type": "BreadcrumbList",
"itemListElement": [
{"@type": "ListItem", "position": 1, "name": "Home", "item": "https://help4bis.com/"},
{"@type": "ListItem", "position": 2, "name": "About", "item": "https://help4bis.com/about.html"}
]
}
}
]
}
</script>
</head>
<body>
<!-- ═══════════════════════════════════════════════
NAVIGATION
═══════════════════════════════════════════════ -->
<nav class="nav" role="navigation" aria-label="Main navigation">
<div class="container">
<div class="nav__inner">
<a class="nav__logo" href="index.html" aria-label="HELP4BIS home">
<img src="assets/images/logo-cropped.jpg" alt="HELP4BIS Logo" width="160" height="44">
</a>
<ul class="nav__links" id="nav-links" role="list">
<li class="nav__dropdown">
<button class="nav__trigger" aria-haspopup="true" aria-expanded="false">Services <svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"/></svg></button>
<ul class="nav__dropdown-menu" role="menu">
<li class="nav__menu-group">WordPress</li>
<li><a href="managed-wordpress.html" role="menuitem">Tailored Website Management</a></li>
<li><a href="care-plans.html" role="menuitem">WP Care Plans <span class="menu-price">from $49/mo</span></a></li>
<li><a href="sos-fix.html" role="menuitem">WP SOS Fix <span class="menu-price">$97 flat</span></a></li>
<li><a href="ai-integration.html" role="menuitem">AI Integration</a></li>
<li><a href="plugin-development.html" role="menuitem">Custom Plugin Development</a></li>
</ul>
</li>
<li><a href="about.html" class="active">About</a></li>
<li><a href="index.html#portfolio">Our Work</a></li>
<li><a href="index.html#pricing">Pricing</a></li>
<li><a href="blog/index.html">Blog</a></li>
<li><a href="your-first-week-with-ai.html">AI Guide</a></li>
<li><a href="contact.html">Contact</a></li>
<li class="nav__cta-mobile" aria-hidden="true">
<a href="contact.html" class="btn btn-primary">Get Started</a>
<a href="sos-fix.html" class="btn btn-secondary">SOS Fix, $97</a>
</li>
</ul>
<div class="nav__cta">
<a href="sos-fix.html" class="btn btn-secondary btn-sm">SOS Fix $97</a>
<a href="contact.html" class="btn btn-primary btn-sm">Get Started</a>
</div>
<button class="nav__burger" id="nav-burger" aria-label="Open menu" aria-expanded="false" aria-controls="nav-links">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><line x1="3" y1="6" x2="21" y2="6"/><line x1="3" y1="12" x2="21" y2="12"/><line x1="3" y1="18" x2="21" y2="18"/></svg>
</button>
</div>
</div>
</nav>
<!-- ═══════════════════════════════════════════════
PAGE HERO
═══════════════════════════════════════════════ -->
<section class="page-hero" aria-labelledby="about-heading">
<div class="container">
<nav class="breadcrumb" aria-label="Breadcrumb">
<ol>
<li><a href="index.html">Home</a></li>
<li aria-current="page">About</li>
</ol>
</nav>
<p class="eyebrow">About HELP4BIS</p>
<h1 id="about-heading">Small by design.<br>Made with care.</h1>
</div>
</section>
<!-- ═══════════════════════════════════════════════
STORY
═══════════════════════════════════════════════ -->
<section class="section" aria-labelledby="story-heading">
<div class="container">
<div class="why__grid">
<div class="why__image reveal">
<img src="assets/images/DanielleBLattaBW1000sqr.jpg"
alt="Danielle Latta, designer and WordPress specialist at HELP4BIS"
width="520" height="520">
</div>
<div class="why__content reveal">
<p class="eyebrow">How We Work</p>
<h2 id="story-heading">One designer who cares about your site. No bureaucracy.</h2>
<p>HELP4BIS isn't a faceless platform or an offshore helpdesk. It's a Brisbane designer and WordPress specialist who builds and looks after a small number of sites properly, not a queue of tickets stitched together from Fiverr gigs.</p>
<p>Danielle runs HELP4BIS and is your point of contact. She handles design, the build, your site's presentation, and every conversation. She knows what it feels like to struggle to be found online and to get visitors to actually convert, because she's lived it as a business owner herself.</p>
<p>Where it helps, modern AI tooling does part of the work, drafting, testing, checking, automating the repetitive parts. It's directed by a person who decides what's right for your site and stands behind the result. We're upfront about that, because we also build AI tools for clients, and we'd rather show you how we use them than pretend we don't.</p>
<p>The result: you deal with one person you can actually reach, and you get a site built with attention rather than churned out to a template.</p>
<ul class="why__points">
<li>
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"/></svg>
Brisbane-based, not outsourced, not offshore
</li>
<li>
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"/></svg>
One person you deal with, every time
</li>
<li>
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"/></svg>
A professional design eye most solo builders don't have
</li>
<li>
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"/></svg>
Brisbane-based. Australian-owned. ABN: 86 081 237 087
</li>
<li>
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"/></svg>
24-hour response, not "within 5 business days"
</li>
</ul>
<a href="contact.html" class="btn btn-primary">Get in Touch</a>
</div>
</div>
</div>
</section>
<!-- ═══════════════════════════════════════════════
BY THE NUMBERS, DARK BACKGROUND (contrast fix)
═══════════════════════════════════════════════ -->
<section class="stats" aria-labelledby="numbers-heading">
<div class="container">
<div class="text-center" style="margin-bottom:var(--sp-8)">
<p class="eyebrow" style="color:rgba(255,255,255,.4)">What That Looks Like</p>
<h2 id="numbers-heading" style="color:var(--white)">By the numbers</h2>
</div>
<div class="stats__grid">
<div class="stats__item">
<strong>10+</strong>
<span>Years WordPress &amp; web design</span>
</div>
<div class="stats__item">
<strong>Disney</strong>
<span>Professional creative background</span>
</div>
<div class="stats__item">
<strong>24hr</strong>
<span>Response guarantee</span>
</div>
<div class="stats__item">
<strong>10+</strong>
<span>Sites currently under management</span>
</div>
<div class="stats__item">
<strong>1:1</strong>
<span>One person, start to finish</span>
</div>
</div>
</div>
</section>
<!-- ═══════════════════════════════════════════════
THE PERSON
═══════════════════════════════════════════════ -->
<section class="section" aria-labelledby="team-heading">
<div class="container">
<div class="text-center mb-6">
<p class="eyebrow">Who You're Working With</p>
<h2 id="team-heading">The person doing the work</h2>
<p class="section-subtitle">No layers. No outsourcing. The person listed here is the person working on your site.</p>
</div>
<div class="team__grid team__grid--single">
<!-- Danielle -->
<div class="team-card reveal">
<div class="team-card__image">
<img src="assets/images/DanielleBLattaBW1000sqr.jpg"
alt="Danielle Latta, Creative Lead, HELP4BIS"
loading="lazy">
</div>
<div class="team-card__body">
<span class="team-card__role">Creative Lead &amp; WordPress Specialist</span>
<div class="team-card__name">Danielle Latta</div>
<p class="team-card__bio">Danielle is HELP4BIS and your point of contact, for everything. Her background as a professional artist, including work at the Disney level, gives her an eye for design that goes well beyond most WordPress builders. She handles visual design, graphic identity, site aesthetics, the build, ongoing client management, and every conversation directly.</p>
<p class="team-card__bio">She also runs <a href="https://rds.ink" target="_blank" rel="noopener" class="inline-link">Running Duck Studio</a>, an ink art studio built on her creative background. That foundation in craft is what makes the websites she builds look different from the rest.</p>
<p class="team-card__bio">Where it speeds the work up or makes it better, she uses modern AI tooling to draft, test, and automate the repetitive parts, whilst a person reviews and directs everything before it reaches your site.</p>
<div class="team-card__skills">
<span class="team-card__skill">Graphic Design</span>
<span class="team-card__skill">Visual Identity</span>
<span class="team-card__skill">WordPress &amp; Elementor</span>
<span class="team-card__skill">Ink Art</span>
<span class="team-card__skill">UX &amp; Layout</span>
<span class="team-card__skill">Client Relations</span>
</div>
<a href="https://rds.ink" target="_blank" rel="noopener" class="team-card__link">
View her creative work →
</a>
</div>
</div>
</div>
</div>
</section>
<!-- ═══════════════════════════════════════════════
WHAT WE BELIEVE
═══════════════════════════════════════════════ -->
<section class="section section--alt" aria-labelledby="beliefs-heading">
<div class="container">
<div class="text-center mb-6">
<p class="eyebrow">Our Approach</p>
<h2 id="beliefs-heading">What we believe about small business websites</h2>
</div>
<div class="why__content reveal" style="max-width:760px; margin:0 auto;">
<ul class="why__points">
<li>
<svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"/></svg>
A website should make you money or save you time. If it does neither, it's broken, regardless of how it looks.
</li>
<li>
<svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"/></svg>
The technology doesn't matter. What matters is whether your phone rings, your forms convert, and your checkout works.
</li>
<li>
<svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"/></svg>
Small business owners shouldn't need a technical degree to manage their own website. They should be able to hand it off and not think about it.
</li>
<li>
<svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"/></svg>
Honest beats slick. We'd rather tell you what we actually do, including where we use AI tooling, than dress it up.
</li>
<li>
<svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"/></svg>
Local matters. Brisbane servers, Australian law, Australian timezone. When something goes wrong at 8am Thursday, we're online.
</li>
</ul>
</div>
</div>
</section>
<!-- ═══════════════════════════════════════════════
SERVICES
═══════════════════════════════════════════════ -->
<section class="section section--alt" id="services" aria-labelledby="services-heading">
<div class="container">
<div class="text-center mb-6">
<p class="eyebrow">What We Offer</p>
<h2 id="services-heading">Our services</h2>
<p class="section-subtitle">Everything is detailed on the individual service pages, here's the short version.</p>
</div>
<div style="max-width:720px; margin:0 auto;">
<table class="about-services-list" style="width:100%; border-collapse:collapse;">
<tbody>
<tr style="border-bottom:1px solid var(--border);">
<td style="padding:16px 0 16px 0; font-weight:600; color:var(--ink);">Tailored Website Management</td>
<td style="padding:16px 8px; color:var(--text-muted); font-size:15px;">Full-service managed site, design, hosting, edits, premium plugins</td>
<td style="padding:16px 0; white-space:nowrap; color:var(--text-muted); font-size:14px;">$300 setup · $200/mo</td>
<td style="padding:16px 0 16px 12px; text-align:right;"><a href="managed-wordpress.html" class="btn btn-secondary btn-sm">Learn More</a></td>
</tr>
<tr style="border-bottom:1px solid var(--border);">
<td style="padding:16px 0; font-weight:600; color:var(--ink);">WP Care Plans</td>
<td style="padding:16px 8px; color:var(--text-muted); font-size:15px;">Updates, backups, security, support, on your existing hosting</td>
<td style="padding:16px 0; white-space:nowrap; color:var(--text-muted); font-size:14px;">from $49/mo</td>
<td style="padding:16px 0 16px 12px; text-align:right;"><a href="care-plans.html" class="btn btn-secondary btn-sm">See Plans</a></td>
</tr>
<tr style="border-bottom:1px solid var(--border);">
<td style="padding:16px 0; font-weight:600; color:var(--ink);">WP SOS Fix</td>
<td style="padding:16px 8px; color:var(--text-muted); font-size:15px;">Something broke, fixed within 24 hours, flat rate</td>
<td style="padding:16px 0; white-space:nowrap; color:var(--text-muted); font-size:14px;">$97 - $197 flat</td>
<td style="padding:16px 0 16px 12px; text-align:right;"><a href="sos-fix.html" class="btn btn-primary btn-sm">Fix My Site</a></td>
</tr>
<tr style="border-bottom:1px solid var(--border);">
<td style="padding:16px 0; font-weight:600; color:var(--ink);">One-Page Website</td>
<td style="padding:16px 8px; color:var(--text-muted); font-size:15px;">Single-page WordPress site. Ideal for tradies, sole traders, and simple service businesses. From $197.</td>
<td style="padding:16px 0; white-space:nowrap; color:var(--text-muted); font-size:14px;">$300 setup · $49/mo</td>
<td style="padding:16px 0 16px 12px; text-align:right;"><a href="contact.html?service=one-page" class="btn btn-secondary btn-sm">Get a Quote</a></td>
</tr>
<tr style="border-bottom:1px solid var(--border);">
<td style="padding:16px 0; font-weight:600; color:var(--ink);">AI Integration</td>
<td style="padding:16px 8px; color:var(--text-muted); font-size:15px;">Chatbots, AI content assistants, automated lead qualification</td>
<td style="padding:16px 0; white-space:nowrap; color:var(--text-muted); font-size:14px;">from $297 one-off</td>
<td style="padding:16px 0 16px 12px; text-align:right;"><a href="ai-integration.html" class="btn btn-secondary btn-sm">Learn More</a></td>
</tr>
<tr>
<td style="padding:16px 0; font-weight:600; color:var(--ink);">Custom Plugin Builds</td>
<td style="padding:16px 8px; color:var(--text-muted); font-size:15px;">WooCommerce extensions, API connectors, bespoke functionality</td>
<td style="padding:16px 0; white-space:nowrap; color:var(--text-muted); font-size:14px;">from $297 one-off</td>
<td style="padding:16px 0 16px 12px; text-align:right;"><a href="plugin-development.html" class="btn btn-secondary btn-sm">Learn More</a></td>
</tr>
</tbody>
</table>
<p style="font-size:13px; color:var(--grey-mid); margin-top:0.5rem;">All prices shown are exclusive of GST.</p>
</div>
</div>
</section>
<!-- ═══════════════════════════════════════════════
FAQ
═══════════════════════════════════════════════ -->
<section class="section section--alt" aria-labelledby="about-faq-heading">
<div class="container">
<div class="text-center mb-6">
<p class="eyebrow">Common Questions</p>
<h2 id="about-faq-heading">Things people ask us.</h2>
</div>
<div class="faq__list" role="list">
<details class="faq-item" role="listitem">
<summary class="faq-item__question">
Are you a big agency or a solo operator?
<span class="faq-item__icon" aria-hidden="true">
<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><line x1="12" y1="5" x2="12" y2="19"/><line x1="5" y1="12" x2="19" y2="12"/></svg>
</span>
</summary>
<div class="faq-item__answer">
A solo operator, and proud of it. You deal with Danielle directly, start to finish. Deliberately small means deliberately good, and it means nothing about your site is a mystery to the person you're talking to.
</div>
</details>
<details class="faq-item" role="listitem">
<summary class="faq-item__question">
Who will I actually be talking to?
<span class="faq-item__icon" aria-hidden="true">
<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><line x1="12" y1="5" x2="12" y2="19"/><line x1="5" y1="12" x2="19" y2="12"/></svg>
</span>
</summary>
<div class="faq-item__answer">
Danielle, every time. She manages every client relationship personally. You'll never get handed off to someone who doesn't know your site or your business.
</div>
</details>
<details class="faq-item" role="listitem">
<summary class="faq-item__question">
Do you use AI to build the sites?
<span class="faq-item__icon" aria-hidden="true">
<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><line x1="12" y1="5" x2="12" y2="19"/><line x1="5" y1="12" x2="19" y2="12"/></svg>
</span>
</summary>
<div class="faq-item__answer">
Yes, where it helps, and we'll tell you straight. Modern AI tooling drafts, tests, and automates the repetitive parts of a build. A person decides what's right for your site, reviews everything, and stands behind the result. We build AI tools for clients too, so we'd rather be open about how we use them than pretend we don't.
</div>
</details>
<details class="faq-item" role="listitem">
<summary class="faq-item__question">
Why async? Why not phone calls?
<span class="faq-item__icon" aria-hidden="true">
<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><line x1="12" y1="5" x2="12" y2="19"/><line x1="5" y1="12" x2="19" y2="12"/></svg>
</span>
</summary>
<div class="faq-item__answer">
Because async delivery is better for you. Written briefs force clarity. Written responses give you something to refer back to. Nothing falls through the cracks. Every decision is documented. If you need a call, we're happy to schedule one, but most clients find they don't need to.
</div>
</details>
<details class="faq-item" role="listitem">
<summary class="faq-item__question">
Do you take on all clients or do you select?
<span class="faq-item__icon" aria-hidden="true">
<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><line x1="12" y1="5" x2="12" y2="19"/><line x1="5" y1="12" x2="19" y2="12"/></svg>
</span>
</summary>
<div class="faq-item__answer">
We take on a limited number of new managed WordPress clients each month to keep quality high. Care plans and one off fixes have no waitlist. If we're at capacity for new fully-managed clients, we'll say so honestly, and give you a realistic wait time.
</div>
</details>
</div>
</div>
</section>
<!-- ═══════════════════════════════════════════════
CTA BAND
═══════════════════════════════════════════════ -->
<section class="cta-band" aria-labelledby="cta-heading">
<div class="container">
<div class="cta-band__content">
<p class="eyebrow" style="color:rgba(255,255,255,.35)">Want to work together?</p>
<h2 id="cta-heading">Send us a brief. No phone call required.</h2>
<p>Tell us what you need and we'll come back within one business day with exactly what we recommend and what it costs. No obligation.</p>
<div class="cta-band__actions">
<a href="contact.html" class="btn btn-primary btn-lg">Get Started</a>
<a href="sos-fix.html" class="btn btn-outline-light btn-lg">SOS Fix $97</a>
</div>
</div>
</div>
</section>
<!-- ═══════════════════════════════════════════════
FOOTER
═══════════════════════════════════════════════ -->
<footer class="footer" aria-label="Site footer">
<div class="container">
<div class="footer__grid">
<div class="footer__brand">
<img src="assets/images/logo-cropped.jpg" alt="HELP4BIS" width="140" height="38">
<p>Managed WordPress hosting and maintenance for Australian small businesses. Brisbane-based, personal service, one designer who knows your site.</p>
<p style="margin-top:8px; font-size:12px; color:rgba(255,255,255,.25);">Dutch Digital Dynamics Pty Ltd · ABN 86 081 237 087</p>
</div>
<div class="footer__col">
<h4>Services</h4>
<ul class="footer__links">
<li><a href="managed-wordpress.html">Tailored Website Management</a></li>
<li><a href="care-plans.html">WP Care Plans</a></li>
<li><a href="sos-fix.html">WP SOS Fix</a></li>
<li><a href="ai-integration.html">AI Integration</a></li>
<li><a href="plugin-development.html">Plugin Development</a></li>
</ul>
</div>
<div class="footer__col">
<h4>Company</h4>
<ul class="footer__links">
<li><a href="about.html">About</a></li>
<li><a href="index.html#portfolio">Our Work</a></li>
<li><a href="index.html#testimonials">Client Feedback</a></li>
<li><a href="blog/index.html">Blog</a></li>
<li><a href="contact.html">Contact</a></li>
</ul>
</div>
<div class="footer__col">
<h4>Contact</h4>
<ul class="footer__links">
<li><a href="mailto:project@help4bis.com">project@help4bis.com</a></li>
<li><a href="contact.html">Submit a Brief</a></li>
<li><a href="sos-fix.html">Emergency Fix</a></li>
</ul>
<p style="margin-top:16px; font-size:12px; color:rgba(255,255,255,.3);">
Brisbane, Queensland<br>Response within 24 business hours
</p>
</div>
</div>
<div class="footer__bottom">
<span>© 2026 HELP4BIS, a trading name of Dutch Digital Dynamics Pty Ltd · ABN 86 081 237 087</span>
<span><a href="privacy.html">Privacy</a> · <a href="terms.html">Terms</a></span>
</div>
</div>
</footer>
<button id="back-to-top" aria-label="Back to top">
<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="18 15 12 9 6 15"/></svg>
</button>
<script src="assets/js/main.js"></script>
<script src="/analytics/tracker.js" defer></script>
<footer style="margin-top:48px;padding:24px;background:#f0f7f2;border-left:4px solid #18604A;border-radius:8px;font-family:'ABeeZee',sans-serif;font-size:1rem;line-height:1.65;color:#1A1A1A;">
<h3 style="font-family:'Poppins',sans-serif;color:#1A5C2E;font-size:1.1rem;margin:0 0 10px;">A few words from us</h3>
<p style="margin:0 0 8px;">We're not the big shops. We have time to sit down with you and find the best fit for your business, not the best fit for a templated process. Every client we work with is treated as if they're the only one on our desk, because for the time we're with them, they are.</p>
<p style="margin:0 0 8px;">We build websites, automations, custom plugins, and AI tools, whichever actually solves your problem. Where modern AI tooling speeds things up or makes the result better, we use it, openly, with a person reviewing and directing the work. We'd rather show you how we work than sell you a package off the shelf.</p>
<p style="margin:0 0 8px;">It means we're slower to start than a shop that hands you a template. It also means you get a site that fits how you actually run your business, and you get to talk to the person who built it whenever you need to.</p>
<p style="margin:0;color:#555555;font-size:0.9rem;">Page updated 26/05/2026. Contact: <a href="mailto:project@help4bis.com" style="color:#18604A;">project@help4bis.com</a>.</p>
</footer>
</body>
</html>
+773
View File
@@ -0,0 +1,773 @@
<!DOCTYPE html>
<!-- Version: 1.2.0 | Created: 2026-03-13 | Updated: 2026-08-16 -->
<html lang="en-AU">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>AI Integration for WordPress | Chatbots & Automation | HELP4BIS</title>
<meta name="description" content="Add AI to your WordPress website. Custom chatbots, AI content assistants, lead qualification automation. Fixed-price packages from $297. HELP4BIS, Brisbane. Australia-wide delivery.">
<meta name="keywords" content="AI integration WordPress, WordPress chatbot Australia, AI automation small business, WordPress AI tools Brisbane, AI lead qualification Australia, WordPress AI integration, ChatGPT WordPress plugin, AI content assistant WordPress">
<meta name="author" content="HELP4BIS">
<meta name="publisher" content="Dutch Digital Dynamics Pty Ltd">
<meta name="copyright" content="Dutch Digital Dynamics Pty Ltd">
<meta name="language" content="en-AU">
<meta name="revisit-after" content="7 days">
<meta name="category" content="WordPress Services, AI Integration, Small Business Technology">
<meta name="classification" content="Business/Technology">
<meta name="coverage" content="Australia">
<meta name="distribution" content="global">
<meta name="rating" content="general">
<meta name="geo.region" content="AU-QLD">
<meta name="geo.placename" content="Brisbane, Queensland">
<meta name="geo.position" content="-27.4698;153.0251">
<meta name="ICBM" content="-27.4698, 153.0251">
<link rel="canonical" href="https://help4bis.com/ai-integration.html">
<meta name="robots" content="index, follow">
<meta property="og:type" content="website">
<meta property="og:url" content="https://help4bis.com/ai-integration.html">
<meta property="og:site_name" content="HELP4BIS">
<meta property="og:title" content="AI Integration for WordPress | Chatbots, Automation & AI Tools | HELP4BIS">
<meta property="og:description" content="Add AI to your WordPress website. Custom chatbots, AI content assistants, lead qualification automation. Fixed-price packages from $297. Brisbane-based, Australia-wide.">
<meta property="og:image" content="https://help4bis.com/assets/images/og-social-card.jpg">
<meta property="og:image:width" content="1200">
<meta property="og:image:height" content="630">
<meta property="og:image:alt" content="HELP4BIS, WordPress services for Australian small businesses">
<meta property="og:locale" content="en_AU">
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:site" content="@help4bis">
<meta name="twitter:title" content="AI Integration for WordPress | Chatbots, Automation & AI Tools | HELP4BIS">
<meta name="twitter:description" content="Add AI to your WordPress business. Fixed-price packages from $297. Custom chatbots, AI content assistants, automated lead qualification.">
<meta name="twitter:image" content="https://help4bis.com/assets/images/og-social-card.jpg">
<meta name="twitter:image:alt" content="HELP4BIS">
<link rel="icon" type="image/jpeg" href="assets/images/logo-favicon.jpg">
<!-- Fonts -->
<!-- Icons (Lucide) -->
<link rel="stylesheet" href="assets/css/style.css">
<style>
/* AI page extras */
.ai-fit-grid {
display: grid;
grid-template-columns: 1fr 1fr;
gap: var(--sp-6);
max-width: 860px;
margin: 0 auto;
}
@media (max-width: 640px) {
.ai-fit-grid { grid-template-columns: 1fr; }
}
.ai-fit-card {
background: var(--white);
border: 1px solid var(--grey-border);
border-radius: var(--r-lg);
padding: var(--sp-4);
}
.ai-fit-card h4 {
font-size: 16px;
margin-bottom: var(--sp-2);
display: flex;
align-items: center;
gap: var(--sp-1);
}
.ai-fit-card--yes h4 { color: var(--green); }
.ai-fit-card--no h4 { color: var(--grey-mid); }
.ai-fit-card ul {
list-style: none;
display: flex;
flex-direction: column;
gap: 10px;
}
.ai-fit-card li {
display: flex;
align-items: flex-start;
gap: 10px;
font-size: 15px;
color: var(--grey-mid);
}
</style>
<!-- JSON-LD Service Schema -->
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@graph": [
{
"@type": "Service",
"@id": "https://help4bis.com/ai-integration.html#service",
"name": "AI Integration for WordPress",
"description": "Fixed-price AI integrations for Australian small businesses. AI chatbots, content assistants, automated lead qualification, and workflow automation, all built on WordPress.",
"provider": {"@id": "https://help4bis.com/#business"},
"areaServed": {"@type": "Country", "name": "Australia"},
"offers": [
{
"@type": "Offer",
"name": "Automation Starter",
"description": "Entry-level WordPress automation. Connect your forms to email sequences, CRMs, or notification systems.",
"price": "297",
"priceCurrency": "AUD",
"url": "https://help4bis.com/ai-integration.html"
},
{
"@type": "Offer",
"name": "AI Content Assistant",
"description": "AI-powered content generation integrated into your WordPress admin. Drafts posts, product descriptions, and page copy.",
"price": "347",
"priceCurrency": "AUD",
"url": "https://help4bis.com/ai-integration.html"
},
{
"@type": "Offer",
"name": "AI Chat Responder",
"description": "Custom AI chatbot trained on your business content. Handles FAQs, captures leads, and escalates to email.",
"price": "497",
"priceCurrency": "AUD",
"url": "https://help4bis.com/ai-integration.html"
},
{
"@type": "Offer",
"name": "AI Lead Qualifier",
"description": "AI chatbot that qualifies leads before they reach your inbox. Asks the right questions and scores enquiries automatically.",
"price": "597",
"priceCurrency": "AUD",
"url": "https://help4bis.com/ai-integration.html"
},
{
"@type": "Offer",
"name": "Speed + SEO Audit",
"description": "One-time audit of your WordPress site's speed and SEO. Deliverable: written report with prioritised fixes.",
"price": "97",
"priceCurrency": "AUD",
"url": "https://help4bis.com/ai-integration.html"
},
{
"@type": "Offer",
"name": "Full AI Stack",
"description": "Complete AI integration: chatbot, lead qualifier, content assistant, and automation workflows. All four packages bundled.",
"price": "1497",
"priceCurrency": "AUD",
"url": "https://help4bis.com/ai-integration.html"
}
]
},
{
"@type": "WebPage",
"@id": "https://help4bis.com/ai-integration.html#webpage",
"url": "https://help4bis.com/ai-integration.html",
"name": "AI Integration for WordPress | Chatbots & Automation | HELP4BIS",
"isPartOf": {"@id": "https://help4bis.com/#website"},
"breadcrumb": {
"@type": "BreadcrumbList",
"itemListElement": [
{"@type": "ListItem", "position": 1, "name": "Home", "item": "https://help4bis.com/"},
{"@type": "ListItem", "position": 2, "name": "AI Integration", "item": "https://help4bis.com/ai-integration.html"}
]
}
},
{
"@type": "FAQPage",
"@id": "https://help4bis.com/ai-integration.html#faq",
"mainEntity": [
{
"@type": "Question",
"name": "Does AI integration work with my existing WordPress site?",
"acceptedAnswer": {
"@type": "Answer",
"text": "In most cases, yes. We'll check your tech stack when you submit your brief and flag any conflicts before starting. No surprises."
}
},
{
"@type": "Question",
"name": "Which AI engine does the WordPress chatbot use?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Typically Claude API or OpenAI GPT-4o, depending on your use case. We'll recommend which is better for your situation when we review your brief."
}
},
{
"@type": "Question",
"name": "Are there ongoing API costs for a WordPress AI chatbot?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Yes, AI chatbots and lead qualifiers run on OpenAI or Anthropic APIs. You set up your own API account (free to create, pay-as-you-go). Typical small business cost: $5–$40/month depending on traffic. We document the expected cost before you commit."
}
},
{
"@type": "Question",
"name": "Can I update the AI chatbot training myself?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Yes, we configure it so you can update the FAQ and knowledge base yourself via a simple Google Sheet or WordPress admin panel, without touching code."
}
},
{
"@type": "Question",
"name": "What if the AI gives incorrect or harmful information?",
"acceptedAnswer": {
"@type": "Answer",
"text": "All AI integrations include a system prompt that defines the assistant's scope and instructs it to redirect out-of-scope questions to a human. For high-stakes queries, we configure a fallback: the AI says it doesn't have enough information and directs the user to contact you directly."
}
}
]
}
]
}
</script>
</head>
<body>
<!-- ═══════════════════════════════════════════════
NAVIGATION
═══════════════════════════════════════════════ -->
<nav class="nav" role="navigation" aria-label="Main navigation">
<div class="container">
<div class="nav__inner">
<a class="nav__logo" href="index.html" aria-label="HELP4BIS home">
<img src="assets/images/logo-cropped.jpg" alt="HELP4BIS Logo" width="160" height="44">
</a>
<ul class="nav__links" id="nav-links" role="list">
<!-- Services dropdown -->
<li class="nav__dropdown">
<button class="nav__trigger" aria-haspopup="true" aria-expanded="false">Services <svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"/></svg></button>
<ul class="nav__dropdown-menu" role="menu">
<li class="nav__menu-group">WordPress</li>
<li><a href="managed-wordpress.html" role="menuitem">Tailored Website Management</a></li>
<li><a href="care-plans.html" role="menuitem">WP Care Plans <span class="menu-price">from $49/mo</span></a></li>
<li><a href="sos-fix.html" role="menuitem">WP SOS Fix <span class="menu-price">$97 flat</span></a></li>
<li><a href="ai-integration.html" role="menuitem">AI Integration</a></li>
<li><a href="plugin-development.html" role="menuitem">Custom Plugin Development</a></li> </ul>
</li>
<li><a href="about.html">About</a></li>
<li><a href="index.html#portfolio">Our Work</a></li>
<li><a href="index.html#pricing">Pricing</a></li>
<li><a href="blog/index.html">Blog</a></li>
<li><a href="your-first-week-with-ai.html">AI Guide</a></li>
<li><a href="contact.html">Contact</a></li>
<!-- Mobile CTA (inside nav drawer) -->
<li class="nav__cta-mobile" aria-hidden="true">
<a href="contact.html" class="btn btn-primary">Get Started</a>
<a href="sos-fix.html" class="btn btn-secondary">SOS Fix, $97</a>
</li>
</ul>
<div class="nav__cta">
<a href="sos-fix.html" class="btn btn-secondary btn-sm">SOS Fix $97</a>
<a href="contact.html" class="btn btn-primary btn-sm">Get Started</a>
</div>
<button class="nav__burger" id="nav-burger" aria-label="Open menu" aria-expanded="false" aria-controls="nav-links">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><line x1="3" y1="12" x2="21" y2="12"/><line x1="3" y1="6" x2="21" y2="6"/><line x1="3" y1="18" x2="21" y2="18"/></svg>
</button>
</div>
</div>
</nav>
<!-- ═══════════════════════════════════════════════
PAGE HERO
═══════════════════════════════════════════════ -->
<section class="page-hero" aria-labelledby="hero-heading">
<div class="container">
<nav class="breadcrumb" aria-label="Breadcrumb">
<a href="index.html">Home</a>
<span aria-hidden="true">›</span>
<a href="index.html#services">Services</a>
<span aria-hidden="true">›</span>
AI Integration
</nav>
<p class="eyebrow">AI Integration</p>
<h1 id="hero-heading">Add AI to your business. Fixed price. No guesswork.</h1>
<p>The AI tools that make sense for Australian small businesses, chatbots that answer questions 24/7, lead qualification that filters your enquiries, content assistants trained on your brand. All delivered async, all fixed price.</p>
</div>
</section>
<!-- ═══════════════════════════════════════════════
WHY NOW
═══════════════════════════════════════════════ -->
<section class="section" aria-labelledby="why-heading">
<div class="container">
<div class="why__grid">
<div class="why__image reveal">
<img src="assets/images/expert-technical-support.jpg"
alt="AI integration for small business, HELP4BIS"
width="520" height="650">
</div>
<div class="why__content reveal">
<p class="eyebrow">Why Now</p>
<h2 id="why-heading">The window for competitive advantage is now.</h2>
<p>Australian small businesses are starting to add AI tools, but most providers quote hourly and deliver uncertainty. We build fixed-scope AI integrations: you know exactly what you'll get and exactly what it costs. No discovery phase. No retainer. Submit a brief, we build it, you get a working tool.</p>
<p>In 12 months, every web developer will offer this. Today, very few deliver it reliably for small business budgets.</p>
<ul class="why__points">
<li>
<svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"/></svg>
Fixed price, you know what it costs before work starts
</li>
<li>
<svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"/></svg>
Fully async, no calls, no meetings, no waiting
</li>
<li>
<svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"/></svg>
Works on your existing WordPress site
</li>
<li>
<svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"/></svg>
Ongoing API costs documented before you commit
</li>
</ul>
<a href="contact.html?service=ai" class="btn btn-primary">Submit an AI Brief</a>
</div>
</div>
</div>
</section>
<!-- ═══════════════════════════════════════════════
FIXED-PRICE AI PACKAGES
═══════════════════════════════════════════════ -->
<section class="section section--alt" id="packages" aria-labelledby="packages-heading">
<div class="container">
<div class="text-center mb-6">
<p class="eyebrow">Fixed-Price Packages</p>
<h2 id="packages-heading">Fixed-price AI packages</h2>
<p class="section-subtitle">Scope defined. Price confirmed. Work starts. No surprises.</p>
</div>
<div class="services__grid">
<!-- AI Chat Responder -->
<div class="service-card reveal">
<div class="service-card__icon" aria-hidden="true">
<svg xmlns="http://www.w3.org/2000/svg" width="26" height="26" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z"/></svg>
</div>
<h3>AI Chat Responder</h3>
<p>An AI chatbot embedded on your website, trained on your FAQs, products, policies, and services. Answers customer questions 24/7, hands off to you for complex queries, and you can (re)-train it yourself as your content changes.</p>
<div class="service-card__price">$497 <span>AUD one-off</span></div>
<p style="font-size:13px; color:var(--grey-mid); margin-bottom:var(--sp-3);">
<strong style="color:var(--ink);">Includes:</strong> Chatbot installed on WordPress, trained on your content, branded to match your site, one round of response tuning.
</p>
<a href="contact.html?service=ai&package=chat-responder" class="btn btn-secondary btn-sm">Get This Package</a>
</div>
<!-- AI Content Assistant -->
<div class="service-card reveal">
<div class="service-card__icon" aria-hidden="true">
<svg xmlns="http://www.w3.org/2000/svg" width="26" height="26" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7"/><path d="M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z"/></svg>
</div>
<h3>AI Content Assistant</h3>
<p>AI Engine WordPress plugin configured with a system prompt trained for your brand voice. Helps you write blog posts, page content, and social media in your brand's tone.</p>
<div class="service-card__price">$347 <span>AUD one-off</span></div>
<p style="font-size:13px; color:var(--grey-mid); margin-bottom:var(--sp-3);">
<strong style="color:var(--ink);">Includes:</strong> Plugin installed and configured, brand voice prompt written and tested, 45-minute async video walkthrough.
</p>
<a href="contact.html?service=ai&package=content-assistant" class="btn btn-secondary btn-sm">Get This Package</a>
</div>
<!-- AI Lead Qualifier -->
<div class="service-card reveal">
<div class="service-card__icon" aria-hidden="true">
<svg xmlns="http://www.w3.org/2000/svg" width="26" height="26" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="22 12 18 12 15 21 9 3 6 12 2 12"/></svg>
</div>
<h3>AI Lead Qualifier</h3>
<p>A smart contact form that scores and categorises inbound leads. Sends personalised follow-up emails. Notifies you with a lead summary and recommended next action.</p>
<div class="service-card__price">$597 <span>AUD one-off</span></div>
<p style="font-size:13px; color:var(--grey-mid); margin-bottom:var(--sp-3);">
<strong style="color:var(--ink);">Includes:</strong> Smart contact form + AI integration, automated email sequences, lead scoring rules, 30 days of tuning.
</p>
<a href="contact.html?service=ai&package=lead-qualifier" class="btn btn-secondary btn-sm">Get This Package</a>
</div>
<!-- Automation Starter -->
<div class="service-card reveal">
<div class="service-card__icon" aria-hidden="true">
<svg xmlns="http://www.w3.org/2000/svg" width="26" height="26" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="3"/><path d="M19.07 4.93l-1.41 1.41M6.34 17.66l-1.41 1.41M4.93 4.93l1.41 1.41M17.66 17.66l1.41 1.41M2 12h2M20 12h2M12 2v2M12 20v2"/></svg>
</div>
<h3>Automation Starter</h3>
<p>One workflow connecting your WordPress site to your tools. New enquiry goes to your CRM, triggers an email, and sends a Slack alert, or new WooCommerce order into accounting and fulfilment.</p>
<div class="service-card__price">$297 <span>AUD one-off</span></div>
<p style="font-size:13px; color:var(--grey-mid); margin-bottom:var(--sp-3);">
<strong style="color:var(--ink);">Includes:</strong> One automated workflow via Zapier or n8n, documented and tested.
</p>
<a href="contact.html?service=ai&package=automation-starter" class="btn btn-secondary btn-sm">Get This Package</a>
</div>
<!-- Section divider: non-AI service -->
<div style="grid-column:1/-1; border-top:2px solid var(--grey-100); margin:1rem 0; padding-top:1.5rem;">
<p class="eyebrow" style="text-align:center; margin-bottom:0.25rem;">Also available</p>
<p style="text-align:center; font-size:14px; color:var(--grey-mid); margin-bottom:1.5rem;">Not AI-powered, but frequently requested alongside AI integrations.</p>
</div>
<!-- Speed + SEO Audit -->
<div class="service-card reveal">
<div class="service-card__icon" aria-hidden="true">
<svg xmlns="http://www.w3.org/2000/svg" width="26" height="26" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="11" cy="11" r="8"/><line x1="21" y1="21" x2="16.65" y2="16.65"/></svg>
</div>
<h3>Speed + SEO Audit</h3>
<p>A complete WordPress performance and SEO audit. PageSpeed score, Core Web Vitals, RankMath review, 20-point checklist. Delivered as a PDF report plus Loom video.</p>
<div class="service-card__price">$97 <span>AUD one-off</span></div>
<p style="font-size:13px; color:var(--grey-mid); margin-bottom:var(--sp-3);">
<strong style="color:var(--ink);">Includes:</strong> Full audit report, prioritised action list, video walkthrough. Implementation quoted separately.
</p>
<a href="contact.html?service=ai&package=seo-audit" class="btn btn-secondary btn-sm">Get This Package</a>
</div>
<!-- Full AI Stack, Featured -->
<div class="service-card reveal" style="border-color:var(--red); box-shadow:var(--shadow-lg); position:relative;">
<div class="pricing-card__badge" style="position:absolute;top:-14px;left:50%;transform:translateX(-50%);background:var(--red);color:var(--white);font-family:var(--font-head);font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;padding:4px 16px;border-radius:20px;white-space:nowrap;">Best Value</div>
<div class="service-card__icon" aria-hidden="true" style="background:rgba(204,41,41,.1);">
<svg xmlns="http://www.w3.org/2000/svg" width="26" height="26" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="11" width="18" height="11" rx="2" ry="2"/><path d="M7 11V7a5 5 0 0 1 10 0v4"/></svg>
</div>
<h3>Full AI Stack</h3>
<p>All five packages above, bundled. 90 days of support via email. The complete AI layer for your small business, delivered in one project.</p>
<div class="service-card__price">$1,497 <span>AUD one-off</span></div>
<p style="color:#16A34A; font-weight:600; font-size:14px; margin-bottom:0.75rem;">Save $338 vs buying separately</p>
<p style="font-size:13px; color:var(--grey-mid); margin-bottom:var(--sp-3);">
<strong style="color:var(--ink);">Includes:</strong> Everything above + priority support for 90 days.
</p>
<a href="contact.html?service=ai&package=full-stack" class="btn btn-primary btn-sm">Get the Full Stack</a>
</div>
</div>
<p class="text-center" style="font-size:13px; color:var(--grey-mid); margin-top:1rem;">All prices shown are exclusive of GST. GST (10%) applies to Australian clients.</p>
</div>
</section>
<!-- ═══════════════════════════════════════════════
API COSTS, HONEST DISCLOSURE
═══════════════════════════════════════════════ -->
<section class="section" aria-labelledby="api-costs-heading">
<div class="container">
<div style="max-width:780px; margin:0 auto; background:var(--ink); border-radius:16px; padding:2.5rem; color:#fff;" class="reveal">
<p class="eyebrow" style="color:rgba(255,255,255,.4);">What You Need To Know</p>
<h2 id="api-costs-heading" style="color:#fff; margin-bottom:1rem;">The setup fee is one-off. The AI needs its own fuel.</h2>
<p style="color:rgba(255,255,255,.75); margin-bottom:1.5rem;">AI chatbots and lead qualifiers run on commercial APIs, OpenAI or Anthropic. Every conversation uses tokens, and tokens cost money. We cannot run these on free local models and deliver a quality result. That's just the honest reality of how AI works in 2026.</p>
<p style="color:rgba(255,255,255,.75); margin-bottom:2rem;">The way we handle this: <strong style="color:#fff;">you set up your own API account</strong> (free to create, pay-as-you-go) and connect it to the tools we build. You see exactly what you're spending, directly on your OpenAI or Anthropic dashboard, with no markup from us.</p>
<div style="display:grid; grid-template-columns:1fr 1fr 1fr; gap:1rem; margin-bottom:2rem;">
<div style="background:rgba(255,255,255,.07); border-radius:12px; padding:1.25rem; text-align:center;">
<div style="font-size:26px; font-weight:700; color:#4ade80; font-family:var(--font-head);">$5–$15</div>
<div style="font-size:13px; color:rgba(255,255,255,.55); margin-top:.25rem;">/ month typical</div>
<div style="font-size:13px; color:rgba(255,255,255,.75); margin-top:.5rem;">Low-traffic site<br>~50 chat conversations/mo</div>
</div>
<div style="background:rgba(255,255,255,.07); border-radius:12px; padding:1.25rem; text-align:center;">
<div style="font-size:26px; font-weight:700; color:#facc15; font-family:var(--font-head);">$15–$40</div>
<div style="font-size:13px; color:rgba(255,255,255,.55); margin-top:.25rem;">/ month typical</div>
<div style="font-size:13px; color:rgba(255,255,255,.75); margin-top:.5rem;">Medium traffic<br>~200 conversations/mo</div>
</div>
<div style="background:rgba(255,255,255,.07); border-radius:12px; padding:1.25rem; text-align:center;">
<div style="font-size:26px; font-weight:700; color:rgba(255,255,255,.5); font-family:var(--font-head);">$40+</div>
<div style="font-size:13px; color:rgba(255,255,255,.55); margin-top:.25rem;">/ month</div>
<div style="font-size:13px; color:rgba(255,255,255,.75); margin-top:.5rem;">High traffic or<br>complex conversations</div>
</div>
</div>
<div style="background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.1); border-radius:10px; padding:1.25rem; font-size:14px; color:rgba(255,255,255,.7);">
<strong style="color:#fff;">Not all packages need an API account.</strong> The Automation Starter (Zapier/n8n) and Speed + SEO Audit have no ongoing API costs. The AI Content Assistant uses your own OpenAI key but only when you actively write content, not 24/7. We'll tell you exactly what applies to your package before you commit.
</div>
</div>
</div>
</section>
<!-- ═══════════════════════════════════════════════
HOW WE DELIVER
═══════════════════════════════════════════════ -->
<section class="section" aria-labelledby="delivery-heading">
<div class="container">
<div class="text-center mb-6">
<p class="eyebrow">The Process</p>
<h2 id="delivery-heading">How we deliver AI projects</h2>
<p class="section-subtitle">Async from start to finish. No calls required.</p>
</div>
<div class="services__grid" style="grid-template-columns:repeat(4,1fr); max-width:1000px; margin:0 auto;">
<div class="service-card reveal" style="text-align:center; align-items:center;">
<div style="width:56px;height:56px;background:var(--red);border-radius:50%;display:flex;align-items:center;justify-content:center;margin-bottom:var(--sp-3);">
<span style="font-family:var(--font-head);font-size:22px;font-weight:700;color:var(--white);">1</span>
</div>
<h3 style="font-size:16px;">Submit your brief</h3>
<p>Tell us what you want, your current tech stack, and your WordPress URL.</p>
</div>
<div class="service-card reveal" style="text-align:center; align-items:center;">
<div style="width:56px;height:56px;background:var(--red);border-radius:50%;display:flex;align-items:center;justify-content:center;margin-bottom:var(--sp-3);">
<span style="font-family:var(--font-head);font-size:22px;font-weight:700;color:var(--white);">2</span>
</div>
<h3 style="font-size:16px;">Fixed-price proposal</h3>
<p>We confirm scope and send a fixed-price proposal within one business day.</p>
</div>
<div class="service-card reveal" style="text-align:center; align-items:center;">
<div style="width:56px;height:56px;background:var(--red);border-radius:50%;display:flex;align-items:center;justify-content:center;margin-bottom:var(--sp-3);">
<span style="font-family:var(--font-head);font-size:22px;font-weight:700;color:var(--white);">3</span>
</div>
<h3 style="font-size:16px;">Async build</h3>
<p>Work happens async, no calls needed. You receive video updates as we build.</p>
</div>
<div class="service-card reveal" style="text-align:center; align-items:center;">
<div style="width:56px;height:56px;background:var(--red);border-radius:50%;display:flex;align-items:center;justify-content:center;margin-bottom:var(--sp-3);">
<span style="font-family:var(--font-head);font-size:22px;font-weight:700;color:var(--white);">4</span>
</div>
<h3 style="font-size:16px;">Delivery</h3>
<p>Working tool on your site, documentation, and async walkthrough video. Done.</p>
</div>
</div>
</div>
</section>
<!-- ═══════════════════════════════════════════════
IS AI RIGHT FOR YOUR BUSINESS?
═══════════════════════════════════════════════ -->
<section class="section section--alt" aria-labelledby="fit-heading">
<div class="container">
<div class="text-center mb-6">
<p class="eyebrow">Is It Right For You?</p>
<h2 id="fit-heading">Is AI right for your business?</h2>
<p class="section-subtitle">Honest assessment before you spend a dollar.</p>
</div>
<div class="ai-fit-grid">
<div class="ai-fit-card ai-fit-card--yes reveal">
<h4>
<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="#16A34A" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"/></svg>
Good fit, yes, if:
</h4>
<ul>
<li>
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="#16A34A" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"/></svg>
You're getting repetitive enquiries that could be answered automatically
</li>
<li>
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="#16A34A" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"/></svg>
You create content regularly and want to speed it up
</li>
<li>
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="#16A34A" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"/></svg>
You want to capture and qualify leads 24/7 without hiring staff
</li>
</ul>
</div>
<div class="ai-fit-card ai-fit-card--no reveal">
<h4>
<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="#6B7280" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><line x1="18" y1="6" x2="6" y2="18"/><line x1="6" y1="6" x2="18" y2="18"/></svg>
Probably not, if:
</h4>
<ul>
<li>
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="#D1D5DB" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><line x1="18" y1="6" x2="6" y2="18"/><line x1="6" y1="6" x2="18" y2="18"/></svg>
You need a custom AI application, not a WordPress integration
</li>
<li>
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="#D1D5DB" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><line x1="18" y1="6" x2="6" y2="18"/><line x1="6" y1="6" x2="18" y2="18"/></svg>
You want AI to replace your entire sales process
</li>
<li>
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="#D1D5DB" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><line x1="18" y1="6" x2="6" y2="18"/><line x1="6" y1="6" x2="18" y2="18"/></svg>
You need real-time data integrations beyond simple webhooks
</li>
</ul>
</div>
</div>
</div>
</section>
<!-- ═══════════════════════════════════════════════
FAQ
═══════════════════════════════════════════════ -->
<section class="section" id="faq" aria-labelledby="faq-heading">
<div class="container">
<div class="text-center mb-6">
<p class="eyebrow">Questions</p>
<h2 id="faq-heading">Common questions about AI integration</h2>
</div>
<div class="faq__list" role="list">
<details class="faq-item" role="listitem">
<summary class="faq-item__question">
Does this work with my existing WordPress site?
<span class="faq-item__icon" aria-hidden="true">
<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><line x1="12" y1="5" x2="12" y2="19"/><line x1="5" y1="12" x2="19" y2="12"/></svg>
</span>
</summary>
<div class="faq-item__answer">
In most cases, yes. We'll check your tech stack when you submit your brief and flag any conflicts before starting. No surprises.
</div>
</details>
<details class="faq-item" role="listitem">
<summary class="faq-item__question">
Which AI engine does the chatbot use?
<span class="faq-item__icon" aria-hidden="true">
<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><line x1="12" y1="5" x2="12" y2="19"/><line x1="5" y1="12" x2="19" y2="12"/></svg>
</span>
</summary>
<div class="faq-item__answer">
Typically Claude API or OpenAI GPT-4o, depending on your use case. We'll recommend which is better for your situation when we review your brief.
</div>
</details>
<details class="faq-item" role="listitem">
<summary class="faq-item__question">
Are there ongoing API costs?
<span class="faq-item__icon" aria-hidden="true">
<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><line x1="12" y1="5" x2="12" y2="19"/><line x1="5" y1="12" x2="19" y2="12"/></svg>
</span>
</summary>
<div class="faq-item__answer">
Yes, AI chatbots and lead qualifiers run on OpenAI or Anthropic APIs. You set up your own API account (free to create, pay-as-you-go) and connect it to the tools we build. You see your costs directly on your own dashboard, no markup from us. Typical small business cost: $5–$40/month depending on traffic. We document the expected cost before you commit.
</div>
</details>
<details class="faq-item" role="listitem">
<summary class="faq-item__question">
Can I update the chatbot training myself?
<span class="faq-item__icon" aria-hidden="true">
<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><line x1="12" y1="5" x2="12" y2="19"/><line x1="5" y1="12" x2="19" y2="12"/></svg>
</span>
</summary>
<div class="faq-item__answer">
Yes, we configure it so you can update the FAQ and knowledge base yourself via a simple Google Sheet or WordPress admin panel, without touching code.
</div>
</details>
<details class="faq-item" role="listitem">
<summary class="faq-item__question">
What if the AI gives incorrect or harmful information?
<span class="faq-item__icon" aria-hidden="true">
<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><line x1="12" y1="5" x2="12" y2="19"/><line x1="5" y1="12" x2="19" y2="12"/></svg>
</span>
</summary>
<div class="faq-item__answer">
All AI integrations we build include a system prompt that defines the assistant's scope and instructs it to redirect out-of-scope questions to a human. The AI is not configured to give advice on medical, legal, or financial matters. For high-stakes queries, we configure a fallback: "I don't have enough information to answer that, please contact us directly." We also recommend clients review chatbot responses during the first 30 days and flag anything unexpected.
</div>
</details>
</div>
</div>
</section>
<!-- ═══════════════════════════════════════════════
CTA BAND
═══════════════════════════════════════════════ -->
<section class="cta-band" aria-labelledby="cta-heading">
<div class="container">
<div class="cta-band__content">
<p class="eyebrow" style="color:rgba(255,255,255,.5)">Ready to add AI to your business?</p>
<h2 id="cta-heading">Submit a brief, we'll tell you which package fits and what it'll cost.</h2>
<p>No calls. No retainer. Fixed price confirmed before work starts.</p>
<div class="cta-band__actions">
<a href="contact.html?service=ai" class="btn btn-primary btn-lg">Submit an AI Brief</a>
<a href="#packages" class="btn btn-outline-light btn-lg">View Packages</a>
</div>
</div>
</div>
</section>
<!-- ═══════════════════════════════════════════════
FOOTER
═══════════════════════════════════════════════ -->
<footer class="footer" aria-label="Site footer">
<div class="container">
<div class="footer__grid">
<div class="footer__brand">
<img src="assets/images/logo-cropped.jpg" alt="HELP4BIS" width="140" height="38">
<p>Managed WordPress hosting and maintenance for Australian small businesses. Brisbane-based, personal service, WordPress specialist, Brisbane.</p>
<p style="font-size:13px; color:rgba(255,255,255,.4);">Dutch Digital Dynamics Pty Ltd · ABN 86 081 237 087</p>
</div>
<div class="footer__col">
<h4>Services</h4>
<ul class="footer__links">
<li><a href="managed-wordpress.html">Tailored Website Management</a></li>
<li><a href="care-plans.html">WP Care Plans</a></li>
<li><a href="sos-fix.html">WP SOS Fix</a></li>
<li><a href="ai-integration.html">AI Integration</a></li>
<li><a href="plugin-development.html">Plugin Development</a></li> </ul>
</div>
<div class="footer__col">
<h4>Company</h4>
<ul class="footer__links">
<li><a href="about.html">About Us</a></li>
<li><a href="index.html#portfolio">Our Work</a></li>
<li><a href="index.html#testimonials">Client Feedback</a></li>
<li><a href="blog/index.html">Blog</a></li>
<li><a href="contact.html">Contact</a></li>
</ul>
</div>
<div class="footer__col">
<h4>Contact</h4>
<ul class="footer__links">
<li><a href="mailto:project@help4bis.com">project@help4bis.com</a></li>
<li><a href="contact.html">Submit a Brief</a></li>
<li><a href="sos-fix.html">Emergency Fix</a></li>
</ul>
<p style="margin-top:1rem; font-size:13px; color:rgba(255,255,255,.4);">
Brisbane, Queensland<br>
Response within 24 business hours
</p>
</div>
</div>
<div class="footer__bottom">
<span>© 2026 HELP4BIS, a trading name of Dutch Digital Dynamics Pty Ltd · ABN 86 081 237 087</span>
<span>
<a href="privacy.html">Privacy Policy</a> ·
<a href="terms.html">Terms</a>
</span>
</div>
</div>
</footer>
<!-- Back to top -->
<button id="back-to-top" aria-label="Back to top" style="position:fixed;bottom:24px;right:24px;width:44px;height:44px;background:var(--red);border:none;border-radius:50%;color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .3s ease;box-shadow:var(--shadow-md);">
<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="18 15 12 9 6 15"/></svg>
</button>
<script src="assets/js/main.js"></script>
<script src="/analytics/tracker.js" defer></script>
<footer style="margin-top:48px;padding:24px;background:#f0f7f2;border-left:4px solid #18604A;border-radius:8px;font-family:'ABeeZee',sans-serif;font-size:1rem;line-height:1.65;color:#1A1A1A;">
<h3 style="font-family:'Poppins',sans-serif;color:#1A5C2E;font-size:1.1rem;margin:0 0 10px;">A few words from us</h3>
<p style="margin:0 0 8px;">We're not the big shops. We have time to sit down with you and find the best fit for your business, not the best fit for a templated process. Every client we work with is treated as if they're the only one on our desk, because for the time we're with them, they are.</p> <p style="margin:0 0 8px;">It means we're slower to start than a shop that sells you a package off the shelf. It also means we don't sell you a package off the shelf. You get a system that fits how you actually run your business, and you get to talk to the person who built it whenever you need to.</p>
<p style="margin:0;color:#555555;font-size:0.9rem;">Page updated 26/05/2026. Contact: <a href="mailto:project@help4bis.com" style="color:#18604A;">project@help4bis.com</a>.</p>
</footer>
</body>
</html>
+473
View File
@@ -0,0 +1,473 @@
<?php
/* Version: 1.0.0 | Created: 2026-04-08 | Updated: 2026-04-08 */
/* HELP4BIS Analytics Dashboard — Self-hosted admin panel */
session_start();
// ── Authentication ──────────────────────────────────────────────────────────
$ADMIN_USER = 'admin';
$ADMIN_HASH = '$2y$10$PLACEHOLDER'; // Set on first run
$configFile = __DIR__ . '/data/.auth_config';
// First-run setup: create password hash
if (!file_exists($configFile)) {
if (isset($_POST['setup_password'])) {
$pass = $_POST['setup_password'];
if (strlen($pass) < 8) {
$setupError = 'Password must be at least 8 characters.';
} else {
$hash = password_hash($pass, PASSWORD_BCRYPT);
$dataDir = __DIR__ . '/data';
if (!is_dir($dataDir)) mkdir($dataDir, 0750, true);
file_put_contents($configFile, json_encode([
'user' => $ADMIN_USER,
'hash' => $hash,
'created' => date('Y-m-d H:i:s')
]));
chmod($configFile, 0600);
$_SESSION['analytics_auth'] = true;
$_SESSION['analytics_user'] = $ADMIN_USER;
header('Location: /analytics/');
exit;
}
}
// Show setup form
?><!DOCTYPE html>
<html lang="en-AU"><head>
<meta charset="UTF-8"><meta name="viewport" content="width=device-width,initial-scale=1">
<title>HELP4BIS Analytics — Setup</title>
<style>
*{margin:0;padding:0;box-sizing:border-box}
body{font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;background:#0f172a;color:#e2e8f0;display:flex;align-items:center;justify-content:center;min-height:100vh}
.setup{background:#1e293b;padding:2.5rem;border-radius:12px;width:100%;max-width:400px;box-shadow:0 25px 50px -12px rgba(0,0,0,.5)}
h1{font-size:1.25rem;margin-bottom:.5rem;color:#f8fafc}
p{font-size:.875rem;color:#94a3b8;margin-bottom:1.5rem}
label{display:block;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:#64748b;margin-bottom:.5rem}
input{width:100%;padding:.75rem 1rem;border:1px solid #334155;border-radius:8px;background:#0f172a;color:#f8fafc;font-size:1rem;margin-bottom:1rem}
input:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px rgba(59,130,246,.2)}
button{width:100%;padding:.75rem;background:#3b82f6;color:#fff;border:none;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;transition:background .2s}
button:hover{background:#2563eb}
.error{background:#7f1d1d;color:#fca5a5;padding:.75rem;border-radius:8px;margin-bottom:1rem;font-size:.875rem}
.brand{color:#3b82f6;font-weight:700}
</style></head><body>
<div class="setup">
<h1><span class="brand">HELP4BIS</span> Analytics</h1>
<p>First-time setup. Create your admin password.</p>
<?php if (isset($setupError)): ?><div class="error"><?= htmlspecialchars($setupError) ?></div><?php endif; ?>
<form method="post">
<label>Admin Username</label>
<input type="text" value="admin" disabled>
<label>Password</label>
<input type="password" name="setup_password" required minlength="8" autofocus placeholder="Minimum 8 characters">
<button type="submit">Create Account</button>
</form></div></body></html><?php
exit;
}
// Load auth config
$auth = json_decode(file_get_contents($configFile), true);
// Login
if (!isset($_SESSION['analytics_auth'])) {
if (isset($_POST['password'])) {
if (password_verify($_POST['password'], $auth['hash'])) {
$_SESSION['analytics_auth'] = true;
$_SESSION['analytics_user'] = $auth['user'];
header('Location: /analytics/');
exit;
}
$loginError = 'Incorrect password.';
}
?><!DOCTYPE html>
<html lang="en-AU"><head>
<meta charset="UTF-8"><meta name="viewport" content="width=device-width,initial-scale=1">
<title>HELP4BIS Analytics — Login</title>
<style>
*{margin:0;padding:0;box-sizing:border-box}
body{font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;background:#0f172a;color:#e2e8f0;display:flex;align-items:center;justify-content:center;min-height:100vh}
.login{background:#1e293b;padding:2.5rem;border-radius:12px;width:100%;max-width:400px;box-shadow:0 25px 50px -12px rgba(0,0,0,.5)}
h1{font-size:1.25rem;margin-bottom:1.5rem;color:#f8fafc}
label{display:block;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:#64748b;margin-bottom:.5rem}
input{width:100%;padding:.75rem 1rem;border:1px solid #334155;border-radius:8px;background:#0f172a;color:#f8fafc;font-size:1rem;margin-bottom:1rem}
input:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px rgba(59,130,246,.2)}
button{width:100%;padding:.75rem;background:#3b82f6;color:#fff;border:none;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;transition:background .2s}
button:hover{background:#2563eb}
.error{background:#7f1d1d;color:#fca5a5;padding:.75rem;border-radius:8px;margin-bottom:1rem;font-size:.875rem}
.brand{color:#3b82f6;font-weight:700}
</style></head><body>
<div class="login">
<h1><span class="brand">HELP4BIS</span> Analytics</h1>
<?php if (isset($loginError)): ?><div class="error"><?= htmlspecialchars($loginError) ?></div><?php endif; ?>
<form method="post">
<label>Password</label>
<input type="password" name="password" required autofocus placeholder="Enter admin password">
<button type="submit">Log In</button>
</form></div></body></html><?php
exit;
}
// Logout
if (isset($_GET['logout'])) {
session_destroy();
header('Location: /analytics/');
exit;
}
// ── Dashboard ───────────────────────────────────────────────────────────────
$dbPath = __DIR__ . '/data/analytics.db';
$hasData = file_exists($dbPath);
$db = null;
if ($hasData) {
$db = new SQLite3($dbPath);
$db->busyTimeout(5000);
}
// Date range
$range = $_GET['range'] ?? '7d';
$rangeMap = ['24h' => 1, '7d' => 7, '30d' => 30, '90d' => 90];
$days = $rangeMap[$range] ?? 7;
$since = date('Y-m-d', strtotime("-{$days} days"));
// Fetch metrics
$metrics = ['pageviews' => 0, 'unique_visitors' => 0, 'avg_duration' => 0, 'cta_clicks' => 0, 'form_submits' => 0, 'bounce_rate' => 0];
$topPages = [];
$topReferrers = [];
$topCTAs = [];
$dailyChart = [];
$scrollData = [];
if ($db) {
// Total pageviews
$r = $db->querySingle("SELECT COUNT(*) FROM events WHERE event='pageview' AND created_at >= '$since'");
$metrics['pageviews'] = (int)$r;
// Unique visitors
$r = $db->querySingle("SELECT COUNT(DISTINCT session_id) FROM events WHERE event='pageview' AND created_at >= '$since'");
$metrics['unique_visitors'] = (int)$r;
// Avg duration
$r = $db->querySingle("SELECT AVG(CAST(json_extract(extra,'$.seconds') AS REAL)) FROM events WHERE event='duration' AND created_at >= '$since'");
$metrics['avg_duration'] = round((float)$r, 1);
// CTA clicks
$r = $db->querySingle("SELECT COUNT(*) FROM events WHERE event='cta_click' AND created_at >= '$since'");
$metrics['cta_clicks'] = (int)$r;
// Form submits
$r = $db->querySingle("SELECT COUNT(*) FROM events WHERE event='form_submit' AND created_at >= '$since'");
$metrics['form_submits'] = (int)$r;
// Bounce rate (sessions with only 1 pageview)
$totalSessions = $db->querySingle("SELECT COUNT(DISTINCT session_id) FROM events WHERE event='pageview' AND created_at >= '$since'");
$singlePageSessions = $db->querySingle("SELECT COUNT(*) FROM (SELECT session_id, COUNT(*) as cnt FROM events WHERE event='pageview' AND created_at >= '$since' GROUP BY session_id HAVING cnt = 1)");
$metrics['bounce_rate'] = $totalSessions > 0 ? round(($singlePageSessions / $totalSessions) * 100, 1) : 0;
// Top pages
$result = $db->query("SELECT page, COUNT(*) as views, COUNT(DISTINCT session_id) as visitors
FROM events WHERE event='pageview' AND created_at >= '$since'
GROUP BY page ORDER BY views DESC LIMIT 15");
while ($row = $result->fetchArray(SQLITE3_ASSOC)) {
$topPages[] = $row;
}
// Top referrers
$result = $db->query("SELECT referrer, COUNT(*) as hits
FROM events WHERE event='pageview' AND referrer != '' AND created_at >= '$since'
GROUP BY referrer ORDER BY hits DESC LIMIT 10");
while ($row = $result->fetchArray(SQLITE3_ASSOC)) {
$topReferrers[] = $row;
}
// Top CTA clicks
$result = $db->query("SELECT json_extract(extra,'$.text') as label, json_extract(extra,'$.href') as href, COUNT(*) as clicks
FROM events WHERE event='cta_click' AND created_at >= '$since'
GROUP BY label, href ORDER BY clicks DESC LIMIT 10");
while ($row = $result->fetchArray(SQLITE3_ASSOC)) {
$topCTAs[] = $row;
}
// Daily chart data
$result = $db->query("SELECT date(created_at) as day, COUNT(*) as views, COUNT(DISTINCT session_id) as visitors
FROM events WHERE event='pageview' AND created_at >= '$since'
GROUP BY day ORDER BY day ASC");
while ($row = $result->fetchArray(SQLITE3_ASSOC)) {
$dailyChart[] = $row;
}
// Scroll depth
$result = $db->query("SELECT json_extract(extra,'$.depth') as depth, COUNT(*) as cnt
FROM events WHERE event='scroll' AND created_at >= '$since'
GROUP BY depth ORDER BY depth ASC");
while ($row = $result->fetchArray(SQLITE3_ASSOC)) {
$scrollData[] = $row;
}
$db->close();
}
$chartLabels = json_encode(array_column($dailyChart, 'day'));
$chartViews = json_encode(array_map('intval', array_column($dailyChart, 'views')));
$chartVisitors = json_encode(array_map('intval', array_column($dailyChart, 'visitors')));
?>
<!DOCTYPE html>
<html lang="en-AU">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<meta name="robots" content="noindex,nofollow">
<title>HELP4BIS Analytics Dashboard</title>
<script src="https://cdn.jsdelivr.net/npm/chart.js@4/dist/chart.umd.min.js"></script>
<style>
*{margin:0;padding:0;box-sizing:border-box}
:root{--bg:#0f172a;--surface:#1e293b;--border:#334155;--text:#e2e8f0;--muted:#94a3b8;--accent:#3b82f6;--green:#22c55e;--red:#ef4444;--amber:#f59e0b}
body{font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;background:var(--bg);color:var(--text);line-height:1.5}
a{color:var(--accent);text-decoration:none}
a:hover{text-decoration:underline}
/* Layout */
.header{background:var(--surface);border-bottom:1px solid var(--border);padding:1rem 2rem;display:flex;justify-content:space-between;align-items:center}
.header h1{font-size:1.125rem;font-weight:700}
.header h1 span{color:var(--accent)}
.header nav{display:flex;gap:1rem;align-items:center}
.header nav a{font-size:.875rem;color:var(--muted)}
.container{max-width:1280px;margin:0 auto;padding:1.5rem}
/* Range tabs */
.range-tabs{display:flex;gap:.5rem;margin-bottom:1.5rem}
.range-tabs a{padding:.5rem 1rem;border-radius:8px;font-size:.875rem;font-weight:500;color:var(--muted);background:var(--surface);border:1px solid var(--border);transition:all .2s}
.range-tabs a.active,.range-tabs a:hover{color:#fff;background:var(--accent);border-color:var(--accent)}
/* Metric cards */
.metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1rem;margin-bottom:1.5rem}
.metric{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:1.25rem}
.metric .label{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);margin-bottom:.25rem}
.metric .value{font-size:1.75rem;font-weight:700;color:#f8fafc}
.metric .sub{font-size:.75rem;color:var(--muted);margin-top:.25rem}
/* Chart */
.chart-card{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:1.25rem;margin-bottom:1.5rem}
.chart-card h2{font-size:.875rem;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.05em;margin-bottom:1rem}
/* Tables */
.grid-2{display:grid;grid-template-columns:repeat(auto-fit,minmax(400px,1fr));gap:1.5rem;margin-bottom:1.5rem}
.table-card{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:1.25rem}
.table-card h2{font-size:.875rem;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.05em;margin-bottom:1rem}
table{width:100%;border-collapse:collapse}
th{text-align:left;font-size:.75rem;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.05em;padding:.5rem .75rem;border-bottom:1px solid var(--border)}
td{padding:.625rem .75rem;font-size:.875rem;border-bottom:1px solid var(--border)}
tr:last-child td{border-bottom:none}
.num{text-align:right;font-variant-numeric:tabular-nums;font-weight:600}
/* Scroll bars */
.scroll-bars{display:flex;gap:1rem;align-items:flex-end;height:100px;margin-top:1rem}
.scroll-bar{flex:1;display:flex;flex-direction:column;align-items:center;gap:.25rem}
.scroll-bar .bar{width:100%;border-radius:4px 4px 0 0;background:var(--accent);min-height:4px;transition:height .3s}
.scroll-bar .lbl{font-size:.75rem;color:var(--muted)}
.scroll-bar .val{font-size:.75rem;font-weight:600;color:#f8fafc}
/* Empty state */
.empty{text-align:center;padding:4rem 2rem}
.empty h2{font-size:1.25rem;margin-bottom:.5rem;color:#f8fafc}
.empty p{color:var(--muted);max-width:500px;margin:0 auto}
.empty code{background:var(--surface);padding:.125rem .5rem;border-radius:4px;font-size:.875rem}
@media(max-width:768px){
.header{flex-direction:column;gap:.75rem;text-align:center}
.container{padding:1rem}
.grid-2{grid-template-columns:1fr}
.metrics{grid-template-columns:repeat(2,1fr)}
}
</style>
</head>
<body>
<div class="header">
<h1><span>HELP4BIS</span> Analytics</h1>
<nav>
<a href="/">View Site</a>
<a href="?logout">Log Out</a>
</nav>
</div>
<div class="container">
<!-- Range tabs -->
<div class="range-tabs">
<?php foreach (['24h'=>'24 Hours','7d'=>'7 Days','30d'=>'30 Days','90d'=>'90 Days'] as $k=>$v): ?>
<a href="?range=<?= $k ?>" class="<?= $range===$k?'active':'' ?>"><?= $v ?></a>
<?php endforeach; ?>
</div>
<?php if (!$hasData || $metrics['pageviews'] === 0): ?>
<!-- Empty state -->
<div class="empty">
<h2>No data yet</h2>
<p>Analytics tracking is active. Data will appear here once visitors start arriving.
The tracker is loaded on all pages via <code>&lt;script src="/analytics/tracker.js"&gt;</code></p>
</div>
<?php else: ?>
<!-- Metric cards -->
<div class="metrics">
<div class="metric">
<div class="label">Pageviews</div>
<div class="value"><?= number_format($metrics['pageviews']) ?></div>
<div class="sub">Last <?= $days ?> day<?= $days>1?'s':'' ?></div>
</div>
<div class="metric">
<div class="label">Unique Visitors</div>
<div class="value"><?= number_format($metrics['unique_visitors']) ?></div>
<div class="sub">By session hash</div>
</div>
<div class="metric">
<div class="label">Avg. Duration</div>
<div class="value"><?= $metrics['avg_duration'] ?>s</div>
<div class="sub">Time on page</div>
</div>
<div class="metric">
<div class="label">Bounce Rate</div>
<div class="value"><?= $metrics['bounce_rate'] ?>%</div>
<div class="sub">Single-page sessions</div>
</div>
<div class="metric">
<div class="label">CTA Clicks</div>
<div class="value"><?= number_format($metrics['cta_clicks']) ?></div>
<div class="sub">Buttons &amp; links</div>
</div>
<div class="metric">
<div class="label">Form Submissions</div>
<div class="value"><?= number_format($metrics['form_submits']) ?></div>
<div class="sub">Contact / brief forms</div>
</div>
</div>
<!-- Chart -->
<div class="chart-card">
<h2>Traffic Over Time</h2>
<canvas id="trafficChart" height="80"></canvas>
</div>
<!-- Tables row -->
<div class="grid-2">
<!-- Top pages -->
<div class="table-card">
<h2>Top Pages</h2>
<table>
<tr><th>Page</th><th class="num">Views</th><th class="num">Visitors</th></tr>
<?php foreach ($topPages as $p): ?>
<tr>
<td><?= htmlspecialchars($p['page'] === '/' ? 'Homepage' : ltrim($p['page'], '/')) ?></td>
<td class="num"><?= number_format($p['views']) ?></td>
<td class="num"><?= number_format($p['visitors']) ?></td>
</tr>
<?php endforeach; ?>
</table>
</div>
<!-- Top referrers -->
<div class="table-card">
<h2>Top Referrers</h2>
<?php if (empty($topReferrers)): ?>
<p style="color:var(--muted);font-size:.875rem;padding:.5rem 0">No external referrers yet.</p>
<?php else: ?>
<table>
<tr><th>Source</th><th class="num">Visits</th></tr>
<?php foreach ($topReferrers as $r): ?>
<tr>
<td><?= htmlspecialchars(parse_url($r['referrer'], PHP_URL_HOST) ?: $r['referrer']) ?></td>
<td class="num"><?= number_format($r['hits']) ?></td>
</tr>
<?php endforeach; ?>
</table>
<?php endif; ?>
</div>
</div>
<div class="grid-2">
<!-- CTA clicks -->
<div class="table-card">
<h2>CTA Clicks</h2>
<?php if (empty($topCTAs)): ?>
<p style="color:var(--muted);font-size:.875rem;padding:.5rem 0">No CTA clicks recorded yet.</p>
<?php else: ?>
<table>
<tr><th>Button</th><th>Destination</th><th class="num">Clicks</th></tr>
<?php foreach ($topCTAs as $c): ?>
<tr>
<td><?= htmlspecialchars(substr($c['label'] ?? '—', 0, 40)) ?></td>
<td><?= htmlspecialchars(substr($c['href'] ?? '', 0, 40)) ?></td>
<td class="num"><?= number_format($c['clicks']) ?></td>
</tr>
<?php endforeach; ?>
</table>
<?php endif; ?>
</div>
<!-- Scroll depth -->
<div class="table-card">
<h2>Scroll Depth</h2>
<?php if (empty($scrollData)): ?>
<p style="color:var(--muted);font-size:.875rem;padding:.5rem 0">No scroll data yet.</p>
<?php else: ?>
<?php
$maxScroll = max(array_column($scrollData, 'cnt'));
?>
<div class="scroll-bars">
<?php foreach ($scrollData as $s): ?>
<div class="scroll-bar">
<div class="val"><?= number_format($s['cnt']) ?></div>
<div class="bar" style="height:<?= $maxScroll > 0 ? round(($s['cnt']/$maxScroll)*80) : 4 ?>px"></div>
<div class="lbl"><?= htmlspecialchars($s['depth']) ?>%</div>
</div>
<?php endforeach; ?>
</div>
<?php endif; ?>
</div>
</div>
<script>
var ctx = document.getElementById('trafficChart').getContext('2d');
new Chart(ctx, {
type: 'line',
data: {
labels: <?= $chartLabels ?>,
datasets: [{
label: 'Pageviews',
data: <?= $chartViews ?>,
borderColor: '#3b82f6',
backgroundColor: 'rgba(59,130,246,.1)',
fill: true,
tension: .3,
pointRadius: 3,
pointHoverRadius: 5
}, {
label: 'Visitors',
data: <?= $chartVisitors ?>,
borderColor: '#22c55e',
backgroundColor: 'rgba(34,197,94,.1)',
fill: true,
tension: .3,
pointRadius: 3,
pointHoverRadius: 5
}]
},
options: {
responsive: true,
maintainAspectRatio: true,
plugins: {
legend: { labels: { color: '#94a3b8', font: { size: 12 } } }
},
scales: {
x: { grid: { color: '#1e293b' }, ticks: { color: '#64748b', font: { size: 11 } } },
y: { beginAtZero: true, grid: { color: '#1e293b' }, ticks: { color: '#64748b', font: { size: 11 }, precision: 0 } }
}
}
});
</script>
<?php endif; ?>
</div>
</body>
</html>
+128
View File
@@ -0,0 +1,128 @@
<?php
/* Version: 1.0.0 | Created: 2026-04-08 | Updated: 2026-04-08 */
/* HELP4BIS Analytics — Event collector endpoint */
header('Content-Type: application/json');
header('Access-Control-Allow-Origin: https://help4bis.com');
header('Access-Control-Allow-Methods: POST');
header('Access-Control-Allow-Headers: Content-Type');
if ($_SERVER['REQUEST_METHOD'] === 'OPTIONS') {
http_response_code(204);
exit;
}
if ($_SERVER['REQUEST_METHOD'] !== 'POST') {
http_response_code(405);
echo json_encode(['error' => 'Method not allowed']);
exit;
}
// Read JSON body
$raw = file_get_contents('php://input');
$data = json_decode($raw, true);
if (!$data || empty($data['event']) || empty($data['page'])) {
http_response_code(400);
echo json_encode(['error' => 'Invalid payload']);
exit;
}
// Open/create SQLite database
$dbPath = __DIR__ . '/data/analytics.db';
$dbDir = dirname($dbPath);
if (!is_dir($dbDir)) {
mkdir($dbDir, 0750, true);
}
try {
$db = new SQLite3($dbPath);
$db->busyTimeout(5000);
$db->exec('PRAGMA journal_mode=WAL');
$db->exec('PRAGMA synchronous=NORMAL');
// Tables and indexes are pre-created via CLI setup.
// See analytics/setup.php for schema if DB needs recreation.
// Privacy: hash the IP, don't store raw
$ipHash = hash('sha256', ($_SERVER['REMOTE_ADDR'] ?? '') . date('Y-m-d'));
$uaHash = hash('sha256', $_SERVER['HTTP_USER_AGENT'] ?? '');
$sessionId = hash('sha256', $ipHash . $uaHash);
// Extract UTM params
$utm = $data['utm'] ?? [];
// Extract extra data (duration, scroll depth, href, etc.)
$extra = [];
foreach (['seconds', 'depth', 'href', 'text', 'form_id', 'form_action'] as $key) {
if (isset($data[$key])) {
$extra[$key] = $data[$key];
}
}
// Insert event
$now = gmdate('Y-m-d H:i:s');
$stmt = $db->prepare('INSERT INTO events (event, page, title, referrer, screen, language,
utm_source, utm_medium, utm_campaign, utm_term, utm_content,
extra, ip_hash, user_agent_hash, session_id, created_at)
VALUES (:event, :page, :title, :referrer, :screen, :language,
:utm_source, :utm_medium, :utm_campaign, :utm_term, :utm_content,
:extra, :ip_hash, :ua_hash, :session_id, :created_at)');
$stmt->bindValue(':event', substr($data['event'], 0, 50), SQLITE3_TEXT);
$stmt->bindValue(':page', substr($data['page'], 0, 500), SQLITE3_TEXT);
$stmt->bindValue(':title', substr($data['title'] ?? '', 0, 200), SQLITE3_TEXT);
$stmt->bindValue(':referrer', substr($data['referrer'] ?? '', 0, 500), SQLITE3_TEXT);
$stmt->bindValue(':screen', substr($data['screen'] ?? '', 0, 20), SQLITE3_TEXT);
$stmt->bindValue(':language', substr($data['language'] ?? '', 0, 10), SQLITE3_TEXT);
$stmt->bindValue(':utm_source', substr($utm['utm_source'] ?? '', 0, 100), SQLITE3_TEXT);
$stmt->bindValue(':utm_medium', substr($utm['utm_medium'] ?? '', 0, 100), SQLITE3_TEXT);
$stmt->bindValue(':utm_campaign', substr($utm['utm_campaign'] ?? '', 0, 100), SQLITE3_TEXT);
$stmt->bindValue(':utm_term', substr($utm['utm_term'] ?? '', 0, 100), SQLITE3_TEXT);
$stmt->bindValue(':utm_content', substr($utm['utm_content'] ?? '', 0, 100), SQLITE3_TEXT);
$stmt->bindValue(':extra', !empty($extra) ? json_encode($extra) : null, SQLITE3_TEXT);
$stmt->bindValue(':ip_hash', $ipHash, SQLITE3_TEXT);
$stmt->bindValue(':ua_hash', $uaHash, SQLITE3_TEXT);
$stmt->bindValue(':session_id', $sessionId, SQLITE3_TEXT);
$stmt->bindValue(':created_at', $now, SQLITE3_TEXT);
$stmt->execute();
// Update daily stats for pageviews
if ($data['event'] === 'pageview') {
$today = date('Y-m-d');
$safePage = SQLite3::escapeString(substr($data['page'], 0, 500));
$db->exec("INSERT INTO daily_stats (date, page, pageviews, unique_visitors)
VALUES ('$today', '$safePage', 1, 1)
ON CONFLICT(date, page) DO UPDATE SET
pageviews = pageviews + 1,
unique_visitors = (
SELECT COUNT(DISTINCT session_id) FROM events
WHERE page = '$safePage' AND event = 'pageview'
AND date(created_at) = '$today'
)");
}
// Update duration in daily stats
if ($data['event'] === 'duration' && isset($data['seconds'])) {
$today = date('Y-m-d');
$safePage = SQLite3::escapeString(substr($data['page'], 0, 500));
$db->exec("UPDATE daily_stats SET
avg_duration = (
SELECT AVG(CAST(json_extract(extra, '$.seconds') AS REAL))
FROM events WHERE page = '$safePage' AND event = 'duration'
AND date(created_at) = '$today'
)
WHERE date = '$today' AND page = '$safePage'");
}
$db->close();
http_response_code(200);
echo json_encode(['ok' => true]);
} catch (Exception $e) {
http_response_code(500);
echo json_encode(['error' => 'Database error']);
}
+119
View File
@@ -0,0 +1,119 @@
/* Version: 1.0.0 | Created: 2026-04-08 | Updated: 2026-04-08 */
/* HELP4BIS Analytics Tracker — lightweight, self-hosted, privacy-first */
(function() {
'use strict';
var endpoint = '/analytics/track.php';
function getPagePath() {
return window.location.pathname || '/';
}
function getReferrer() {
var ref = document.referrer || '';
// Strip own domain
if (ref.indexOf(window.location.hostname) !== -1) return '';
return ref;
}
function getScreenSize() {
return window.screen.width + 'x' + window.screen.height;
}
function getUtmParams() {
var params = {};
var search = window.location.search;
if (!search) return params;
var pairs = search.substring(1).split('&');
for (var i = 0; i < pairs.length; i++) {
var kv = pairs[i].split('=');
var key = decodeURIComponent(kv[0]);
if (key.indexOf('utm_') === 0) {
params[key] = decodeURIComponent(kv[1] || '');
}
}
return params;
}
function track(eventType, data) {
var payload = {
event: eventType,
page: getPagePath(),
title: document.title,
referrer: getReferrer(),
screen: getScreenSize(),
language: navigator.language || '',
utm: getUtmParams(),
timestamp: new Date().toISOString()
};
if (data) {
for (var key in data) {
if (data.hasOwnProperty(key)) payload[key] = data[key];
}
}
// Use sendBeacon for reliability, fallback to fetch
var body = JSON.stringify(payload);
if (navigator.sendBeacon) {
navigator.sendBeacon(endpoint, body);
} else {
var xhr = new XMLHttpRequest();
xhr.open('POST', endpoint, true);
xhr.setRequestHeader('Content-Type', 'application/json');
xhr.send(body);
}
}
// Track page view on load
track('pageview');
// Track time on page (fires on unload)
var startTime = Date.now();
window.addEventListener('beforeunload', function() {
var duration = Math.round((Date.now() - startTime) / 1000);
if (duration > 1) {
track('duration', { seconds: duration });
}
});
// Track outbound link clicks
document.addEventListener('click', function(e) {
var link = e.target.closest('a');
if (!link) return;
var href = link.getAttribute('href') || '';
// CTA buttons (contact, get started, etc.)
if (link.classList.contains('btn') || link.classList.contains('cta')) {
track('cta_click', { href: href, text: (link.textContent || '').trim().substring(0, 80) });
}
// Outbound links
if (href.indexOf('http') === 0 && href.indexOf(window.location.hostname) === -1) {
track('outbound', { href: href });
}
// Phone/email clicks
if (href.indexOf('tel:') === 0 || href.indexOf('mailto:') === 0) {
track('contact_click', { href: href });
}
});
// Track form submissions
document.addEventListener('submit', function(e) {
var form = e.target;
track('form_submit', { form_id: form.id || '', form_action: form.action || '' });
});
// Track scroll depth (25%, 50%, 75%, 100%)
var scrollMarks = { 25: false, 50: false, 75: false, 100: false };
window.addEventListener('scroll', function() {
var scrollTop = window.pageYOffset || document.documentElement.scrollTop;
var docHeight = document.documentElement.scrollHeight - document.documentElement.clientHeight;
if (docHeight <= 0) return;
var pct = Math.round((scrollTop / docHeight) * 100);
[25, 50, 75, 100].forEach(function(mark) {
if (pct >= mark && !scrollMarks[mark]) {
scrollMarks[mark] = true;
track('scroll', { depth: mark });
}
});
});
})();
File diff suppressed because it is too large Load Diff
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 72 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 426 KiB

+59
View File
@@ -0,0 +1,59 @@
# Help4BIS Website Images - Download Manifest
**Date**: 2026-02-28
**Source**: https://help4bis.com
**Destination**: /var/www/html/dev-help4bis.com/assets/images/
**Total Size**: 2.2M
**Total Images**: 23 files
## Image Categories
### Logo & Branding (4 files)
- `logo-favicon.jpg` - 9.5K - Favicon version of ContactMan logo
- `logo-cropped.jpg` - 15K - Full cropped help4bis logo
- `logo-300x56.jpg` - 13K - Thumbnail version of logo
- `design-by-help4bis.jpg` - 3.6K - "Design by Help4BIS" badge
### Personnel (1 file)
- `danielle-photo.jpg` - 23K - Photo of Danielle (Running Duck Studio)
### Illustrations & Icons (3 files)
- `puzzle-man.png` - 69K - 3D man with puzzle illustration (full)
- `puzzle-man-188x300.png` - 37K - Puzzle man thumbnail
- `expert-technical-support.jpg` - 28K - Technical support icon/illustration
### Features & Benefits (4 files)
- `piggy-bank.jpg` - 29K - Cost savings/pricing illustration
- `seamless-scalability.jpg` - 32K - Scalability feature illustration
- `get-started.png` - 193K - Call-to-action visual
- `ancop-privacy-data-sovereignty.jpg` - 75K - Privacy/data sovereignty logo
### Portfolio / Client Case Studies (8 files)
- `rds-managed-wordpress.jpg` - 296K - Running Duck Studio managed WordPress project
- `mbac-managed-wordpress.jpg` - 132K - MBAC managed WordPress project
- `mineral-water-direct.jpg` - 184K - Mineral Water Direct portfolio
- `tradeshack-envisioning.jpg` - 133K - TradeShack Envisioning project
- `above-and-beyond.jpg` - 108K - Above & Beyond portfolio
- `bohemian-decor.jpg` - 137K - Bohemian Decor portfolio
- `madilly-border-collies.jpg` - 127K - Madilly Border Collies portfolio
- `shear-water.jpg` - 127K - ShearWater portfolio
- `tawny-trails.jpg` - 108K - Tawny Trails portfolio
- `startup-savvy-sarah.jpg` - 103K - Startup Savvy Sarah portfolio
### Screenshots & Documentation (1 file)
- `screenshot-2023-08-26.jpg` - 169K - Website feature screenshot
## Notes
1. **help3bis.com**: This domain was unreachable and appears to be a typo
2. **All images sourced from**: https://help4bis.com/wp-content/uploads/
3. **Image naming**: Converted from original WordPress uploads to descriptive lowercase with hyphens
4. **Permissions**: All files owned by help4bis:help4bis (644 permissions)
5. **Quality**: Original full-resolution images downloaded where available; thumbnails also included for key images
## Usage in Website Rebuild
- Portfolio images showcase Help4BIS's client work across various industries
- Logo variations available for different layout contexts
- Personnel photo provides business legitimacy and personal touch
- Feature illustrations support sales/marketing messaging
Binary file not shown.

After

Width:  |  Height:  |  Size: 72 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 107 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 75 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 136 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 426 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 193 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 126 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 132 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 183 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 29 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 56 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 436 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 340 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 820 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 70 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 176 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 128 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 657 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 744 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 37 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 69 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 296 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 169 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 127 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 102 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 108 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 133 KiB

+230
View File
@@ -0,0 +1,230 @@
'use strict';
/* ══════════════════════════════════════
NAVIGATION — DROPDOWN (click-based)
══════════════════════════════════════ */
function initDropdowns() {
document.querySelectorAll('.nav__dropdown').forEach(item => {
const trigger = item.querySelector('.nav__trigger');
const menu = item.querySelector('.nav__dropdown-menu');
if (!trigger || !menu) return;
trigger.addEventListener('click', (e) => {
e.stopPropagation();
const isOpen = menu.classList.toggle('open');
trigger.setAttribute('aria-expanded', isOpen);
// Close siblings
document.querySelectorAll('.nav__dropdown-menu.open').forEach(m => {
if (m !== menu) {
m.classList.remove('open');
m.closest('.nav__dropdown').querySelector('.nav__trigger')?.setAttribute('aria-expanded','false');
}
});
});
});
// Close on outside click
document.addEventListener('click', () => {
document.querySelectorAll('.nav__dropdown-menu.open').forEach(m => {
m.classList.remove('open');
m.closest('.nav__dropdown').querySelector('.nav__trigger')?.setAttribute('aria-expanded','false');
});
});
// Close on Escape
document.addEventListener('keydown', (e) => {
if (e.key === 'Escape') {
document.querySelectorAll('.nav__dropdown-menu.open').forEach(m => {
m.classList.remove('open');
m.closest('.nav__dropdown').querySelector('.nav__trigger')?.setAttribute('aria-expanded','false');
});
}
});
}
/* ══════════════════════════════════════
NAVIGATION — MOBILE BURGER
══════════════════════════════════════ */
function initMobileNav() {
const burger = document.getElementById('nav-burger');
const navLinks = document.getElementById('nav-links');
if (!burger || !navLinks) return;
burger.addEventListener('click', (e) => {
e.stopPropagation();
const isOpen = navLinks.classList.toggle('nav--open');
burger.setAttribute('aria-expanded', isOpen);
document.body.style.overflow = isOpen ? 'hidden' : '';
burger.innerHTML = isOpen ? iconX() : iconMenu();
});
// Close on link click
navLinks.querySelectorAll('a').forEach(link => {
link.addEventListener('click', () => {
navLinks.classList.remove('nav--open');
burger.setAttribute('aria-expanded','false');
document.body.style.overflow = '';
burger.innerHTML = iconMenu();
});
});
// Close on outside click
document.addEventListener('click', (e) => {
if (!burger.contains(e.target) && !navLinks.contains(e.target)) {
navLinks.classList.remove('nav--open');
burger.setAttribute('aria-expanded','false');
document.body.style.overflow = '';
burger.innerHTML = iconMenu();
}
});
}
function iconMenu() {
return `<svg xmlns="http://www.w3.org/2000/svg" width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><line x1="3" y1="6" x2="21" y2="6"/><line x1="3" y1="12" x2="21" y2="12"/><line x1="3" y1="18" x2="21" y2="18"/></svg>`;
}
function iconX() {
return `<svg xmlns="http://www.w3.org/2000/svg" width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><line x1="18" y1="6" x2="6" y2="18"/><line x1="6" y1="6" x2="18" y2="18"/></svg>`;
}
/* ══════════════════════════════════════
ACTIVE NAV LINK
══════════════════════════════════════ */
function initActiveNav() {
const path = window.location.pathname;
const file = path.split('/').pop() || 'index.html';
document.querySelectorAll('.nav__links a').forEach(a => {
const href = a.getAttribute('href');
if (href && (href === file || (file === '' && href === 'index.html'))) {
a.classList.add('active');
}
});
}
/* ══════════════════════════════════════
STICKY NAV SHADOW
══════════════════════════════════════ */
function initStickyNav() {
const nav = document.querySelector('.nav');
if (!nav) return;
const update = () => nav.classList.toggle('scrolled', window.scrollY > 30);
window.addEventListener('scroll', update, { passive: true });
update();
}
/* ══════════════════════════════════════
SCROLL REVEAL
══════════════════════════════════════ */
function initReveal() {
const io = new IntersectionObserver((entries) => {
entries.forEach(e => {
if (e.isIntersecting) {
e.target.classList.add('visible');
io.unobserve(e.target);
}
});
}, { threshold: 0.06, rootMargin: '0px 0px -24px 0px' });
// Individual reveal elements
document.querySelectorAll('.reveal').forEach(el => io.observe(el));
// Stagger groups (observe the container, trigger class on it)
document.querySelectorAll('.stagger').forEach(el => io.observe(el));
}
/* ══════════════════════════════════════
SMOOTH ANCHOR SCROLL
══════════════════════════════════════ */
function initAnchorScroll() {
document.querySelectorAll('a[href^="#"]').forEach(a => {
a.addEventListener('click', (e) => {
const id = a.getAttribute('href');
const target = document.querySelector(id);
if (target) {
e.preventDefault();
const top = target.getBoundingClientRect().top + window.scrollY - 76;
window.scrollTo({ top, behavior: 'smooth' });
}
});
});
}
/* ══════════════════════════════════════
FORM HANDLER
══════════════════════════════════════ */
const formShownAt = Date.now();
function initForms() {
document.querySelectorAll('.intake-form').forEach(form => {
form.addEventListener('submit', async (e) => {
e.preventDefault();
const btn = form.querySelector('[type="submit"]');
const originalText = btn.textContent;
btn.textContent = 'Sending…';
btn.disabled = true;
// Collect all named fields
const data = {};
new FormData(form).forEach((val, key) => { data[key] = val; });
// Spam check: how long the visitor took to fill the form (measured on their own clock)
data.fill_ms = Date.now() - formShownAt;
try {
const res = await fetch('/contact.php', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify(data)
});
const json = await res.json();
if (json.ok) {
form.innerHTML = `
<div style="text-align:center;padding:2.5rem 1rem;">
<svg xmlns="http://www.w3.org/2000/svg" width="52" height="52" viewBox="0 0 24 24" fill="none" stroke="#16A34A" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" style="margin:0 auto 1.25rem;display:block"><path d="M22 11.08V12a10 10 0 1 1-5.93-9.14"/><polyline points="22 4 12 14.01 9 11.01"/></svg>
<h3 style="font-family:'DM Sans',sans-serif;color:#1A1A2E;margin-bottom:.5rem;font-size:22px;">Sent.</h3>
<p style="color:#6B7280;font-size:15px;max-width:400px;margin:0 auto;">We'll be back within one business day with a clear recommendation and price.</p>
</div>`;
} else {
throw new Error(json.error || 'Send failed');
}
} catch (err) {
// Show inline error — don't wipe the form
let errEl = form.querySelector('.form-error');
if (!errEl) {
errEl = document.createElement('p');
errEl.className = 'form-error';
errEl.style.cssText = 'color:#E8352A;font-size:14px;margin-top:0.75rem;';
form.querySelector('.intake-form__actions').appendChild(errEl);
}
errEl.textContent = err.message || 'Something went wrong. Please email project@help4bis.com directly.';
btn.textContent = originalText;
btn.disabled = false;
}
});
});
}
/* ══════════════════════════════════════
BACK TO TOP
══════════════════════════════════════ */
function initBackToTop() {
const btn = document.getElementById('back-to-top');
if (!btn) return;
window.addEventListener('scroll', () => {
btn.classList.toggle('visible', window.scrollY > 500);
}, { passive: true });
btn.addEventListener('click', () => window.scrollTo({ top: 0, behavior: 'smooth' }));
}
/* ══════════════════════════════════════
INIT
══════════════════════════════════════ */
document.addEventListener('DOMContentLoaded', () => {
initDropdowns();
initMobileNav();
initActiveNav();
initStickyNav();
initReveal();
initAnchorScroll();
initForms();
initBackToTop();
});
@@ -0,0 +1,283 @@
<!DOCTYPE html>
<!-- Version: 2.2.0 | Created: 2026-04-08 | Updated: 2026-08-16 -->
<html lang="en-AU">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>5 Signs Your Website Is Costing You Customers | HELP4BIS</title>
<meta name="description" content="Your website might look fine to you. But if it's slow, outdated, or broken on mobile, it's turning people away before they ever pick up the phone.">
<meta name="keywords" content="website losing customers, slow website fix, mobile website problems, website not working properly, small business website issues Australia">
<meta name="author" content="HELP4BIS">
<meta name="publisher" content="Dutch Digital Dynamics Pty Ltd">
<meta name="copyright" content="Dutch Digital Dynamics Pty Ltd">
<meta name="language" content="en-AU">
<meta name="revisit-after" content="7 days">
<link rel="canonical" href="https://help4bis.com/blog/five-signs-your-website-costing-you-customers.html">
<meta name="robots" content="index, follow">
<meta property="og:type" content="article">
<meta property="og:url" content="https://help4bis.com/blog/five-signs-your-website-costing-you-customers.html">
<meta property="og:site_name" content="HELP4BIS">
<meta property="og:title" content="5 Signs Your Website Is Costing You Customers">
<meta property="og:description" content="Your website might look fine to you. But if it's slow, outdated, or broken on mobile, it's turning people away before they ever pick up the phone.">
<meta property="og:image" content="https://help4bis.com/assets/images/og-social-card.jpg">
<meta property="og:image:width" content="1200">
<meta property="og:image:height" content="630">
<meta property="og:locale" content="en_AU">
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:title" content="5 Signs Your Website Is Costing You Customers">
<meta name="twitter:description" content="Your website might look fine to you. But if it's slow, outdated, or broken on mobile, it's turning people away.">
<meta name="twitter:image" content="https://help4bis.com/assets/images/og-social-card.jpg">
<link rel="icon" type="image/jpeg" href="../assets/images/logo-favicon.jpg"> <link rel="stylesheet" href="../assets/css/style.css">
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "BlogPosting",
"headline": "5 Signs Your Website Is Costing You Customers",
"description": "Your website might look fine to you. But if it's slow, outdated, or broken on mobile, it's turning people away before they ever pick up the phone.",
"author": {
"@type": "Organization",
"name": "HELP4BIS",
"url": "https://help4bis.com"
},
"publisher": {
"@type": "Organization",
"name": "HELP4BIS",
"logo": { "@type": "ImageObject", "url": "https://help4bis.com/assets/images/logo-cropped.jpg" }
},
"datePublished": "2026-04-08",
"dateModified": "2026-04-08",
"mainEntityOfPage": "https://help4bis.com/blog/five-signs-your-website-costing-you-customers.html"
}
</script>
</head>
<body>
<nav class="nav" role="navigation" aria-label="Main navigation">
<div class="container">
<div class="nav__inner">
<a class="nav__logo" href="../index.html" aria-label="HELP4BIS home">
<img src="../assets/images/logo-cropped.jpg" alt="HELP4BIS Logo" width="160" height="44">
</a>
<ul class="nav__links" id="nav-links" role="list">
<li class="nav__dropdown">
<button class="nav__trigger" aria-haspopup="true" aria-expanded="false">Services <svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"/></svg></button>
<ul class="nav__dropdown-menu" role="menu">
<li class="nav__menu-group">WordPress</li>
<li><a href="../managed-wordpress.html" role="menuitem">Tailored Website Management</a></li>
<li><a href="../care-plans.html" role="menuitem">WP Care Plans <span class="menu-price">from $49/mo</span></a></li>
<li><a href="../sos-fix.html" role="menuitem">WP SOS Fix <span class="menu-price">$97 flat</span></a></li>
<li><a href="../ai-integration.html" role="menuitem">AI Integration</a></li>
<li><a href="../plugin-development.html" role="menuitem">Custom Plugin Development</a></li> </ul>
</li>
<li><a href="../about.html">About</a></li>
<li><a href="../index.html#portfolio">Our Work</a></li>
<li><a href="../index.html#pricing">Pricing</a></li>
<li><a href="index.html">Blog</a></li>
<li><a href="../your-first-week-with-ai.html">AI Guide</a></li>
<li><a href="../contact.html">Contact</a></li>
<li class="nav__cta-mobile" aria-hidden="true">
<a href="../contact.html" class="btn btn-primary">Get Started</a>
<a href="../sos-fix.html" class="btn btn-secondary">SOS Fix $97</a>
</li>
</ul>
<div class="nav__cta">
<a href="../sos-fix.html" class="btn btn-secondary btn-sm">SOS Fix $97</a>
<a href="../contact.html" class="btn btn-primary btn-sm">Get Started</a>
</div>
<button class="nav__burger" id="nav-burger" aria-label="Open menu" aria-expanded="false" aria-controls="nav-links">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><line x1="3" y1="6" x2="21" y2="6"/><line x1="3" y1="12" x2="21" y2="12"/><line x1="3" y1="18" x2="21" y2="18"/></svg>
</button>
</div>
</div>
</nav>
<section class="page-hero" aria-labelledby="post-heading">
<div class="container">
<nav class="breadcrumb" aria-label="Breadcrumb">
<ol>
<li><a href="../index.html">Home</a></li>
<li><a href="index.html">Blog</a></li>
<li aria-current="page">Website Health</li>
</ol>
</nav>
<p class="eyebrow">Small Business</p>
<h1 id="post-heading">5 Signs Your Website Is<br> Costing You Customers</h1>
<p>Most of these problems are invisible to you, but your customers see them every day.</p>
</div>
</section>
<section class="section">
<div class="container">
<div class="article-layout">
<div class="article">
<div class="article__meta">
<span class="article__tag">Small Business</span>
<span class="article__meta-sep">·</span>
<span>8 April 2026</span>
<span class="article__meta-sep">·</span>
<span>5 min read</span>
</div>
<p class="article__lead">Most business owners check their website the same way they check their car. Occasionally, when something obviously breaks. The problem is a broken website doesn't always look broken. On the sites I look after I see it all the time: a site looks perfectly fine on your computer whilst driving away every customer who finds it on their phone.</p>
<p>Here are the five signs I check first when someone asks me why their website isn't bringing in work. Most of them take less than an hour to fix.</p>
<div class="article-sign">
<div class="article-sign__number">1</div>
<h3>It loads slowly</h3>
<p>People will wait about three seconds for a page to load. After that they're gone, back to Google, clicking on your competitor. And they won't come back. They won't think "that site was slow, I'll try again later." They just move on.</p>
</div>
<div class="article-tip">
<div class="article-tip__icon">
<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"/><line x1="12" y1="16" x2="12" y2="12"/><line x1="12" y1="8" x2="12.01" y2="8"/></svg>
</div>
<div class="article-tip__content">
<div class="article-tip__label">Tip</div>
<p>Go to Google PageSpeed Insights right now. Type in your website address. If you score below 50 on mobile, you have a real problem. Below 70 and you're losing people every single day. The most common causes I find are easy to fix: images that haven't been compressed, plugins that load code the page doesn't need, or hosting that's just too cheap.</p>
</div>
</div>
<div class="article-sign">
<div class="article-sign__number">2</div>
<h3>Your contact form doesn't work</h3>
<p>This one is embarrassingly common, and I've seen it more often than any of the other four. A business owner set up a contact form years ago, something change with the hosting or email setup, and the form quietly stopped delivering messages. The owner has no idea. The customer thinks they've sent an enquiry. Nobody calls back.</p>
</div>
<div class="article-tip">
<div class="article-tip__icon">
<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"/><line x1="12" y1="16" x2="12" y2="12"/><line x1="12" y1="8" x2="12.01" y2="8"/></svg>
</div>
<div class="article-tip__content">
<div class="article-tip__label">Tip</div>
<p>Test your own form right now. Fill it in with your personal email address. See if it arrives. Check your spam folder too. Whilst you're at it, check who that form sends to. If it's an email address that nobody monitors, or one buried under 4,000 unread messages, that's the same as having no form at all.</p>
</div>
</div>
<div class="article-sign">
<div class="article-sign__number">3</div>
<h3>There's no padlock in the address bar</h3>
<p>If your website still runs on HTTP instead of HTTPS, Chrome shows visitors a "Not Secure" warning in the address bar. Even if you're just a landscaper or a bookkeeper with nothing sensitive on the site, that warning kills trust on the spot. People have been trained to look for the padlock. If it's not there, they leave.</p>
</div>
<blockquote><p>An SSL certificate costs almost nothing, often it's free with your hosting. If you don't have HTTPS set up, that's one phone call to fix, and it's usually the first thing I sort out.</p></blockquote>
<div class="article-sign">
<div class="article-sign__number">4</div>
<h3>The content is out of date</h3>
<p>Look at your website footer. Does it say 2022? Look at your "About" page. Is it still talking about a service you stopped offering, or a staff member who left? Outdated content tells visitors two things: you're not paying attention, and you might not even still be in business. Google thinks the same way. It notices when a site hasn't been touched in years and ranks it accordingly.</p>
</div>
<div class="article-tip">
<div class="article-tip__icon">
<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"/><line x1="12" y1="16" x2="12" y2="12"/><line x1="12" y1="8" x2="12.01" y2="8"/></svg>
</div>
<div class="article-tip__content">
<div class="article-tip__label">Tip</div>
<p>You don't need to rewrite the whole site. My advice: update the year. Fix anything that's factually wrong. Add one new page or post about something you're doing now. Even small signs of activity make a difference.</p>
</div>
</div>
<div class="article-sign">
<div class="article-sign__number">5</div>
<h3>You can't find your own business on Google</h3>
<p>This one's easy to check. Open your phone (not your computer, your phone) and search for your business type and your suburb. "Accountant Redcliffe." "Café Samford." "Electrician Narangba." See who comes up. If you're not on the first page, most people will never find you. And if a competitor shows up where you should be, every search they do is a potential customer going to someone else. It's the first search I run when I take on a new site.</p>
</div>
<h2>These aren't big problems</h2>
<p>None of these five issues require a complete rebuild. They're maintenance problems, the digital equivalent of fixing a leaking tap or replacing a blown bulb. They get neglected because they're not flashy and nobody sends you a bill when a customer bounces off your slow website. In my experience that's exactly why they sit there for years.</p>
<div class="article-takeaway">
<div class="article-takeaway__label">Key Point</div>
<p>Every day your contact form doesn't deliver, every person who sees the "Not Secure" warning and leaves, every potential customer who gives up waiting for your page to load. That's real business walking out the door. Start with the check. See how many of the five signs apply to you. Then fix them one at a time.</p>
</div>
<div class="article-cta">
<h3>Not sure if your site has these problems?</h3>
<p>I'll check your website against all five signs (speed, security, contact forms, content and search visibility) and give you a straight answer on what needs fixing.</p>
<a href="../contact.html" class="btn btn-primary">Get a Free Health Check</a>
</div>
</div>
<aside class="article-sidebar">
<div class="sidebar-card">
<h4>In this article</h4>
<a href="#" class="sidebar-card__link">Sign 1: It loads slowly</a>
<a href="#" class="sidebar-card__link">Sign 2: Contact form broken</a>
<a href="#" class="sidebar-card__link">Sign 3: No HTTPS padlock</a>
<a href="#" class="sidebar-card__link">Sign 4: Outdated content</a>
<a href="#" class="sidebar-card__link">Sign 5: Can't find yourself on Google</a>
</div>
<div class="sidebar-cta">
<h4>Not sure if your site has these problems?</h4>
<p>I'll check your site against all five signs and give you a straight answer.</p>
<a href="../contact.html" class="btn btn-primary btn-sm">Get a Free Health Check</a>
</div>
<div class="sidebar-card">
<h4>Related reading</h4>
<a href="what-wordpress-care-plan-actually-includes.html" class="sidebar-card__link">What a WordPress Care Plan Actually Includes</a>
<a href="small-business-compete-online-without-big-budget.html" class="sidebar-card__link">Compete Online Without a Big Budget</a>
<a href="how-to-choose-right-wordpress-developer-australia.html" class="sidebar-card__link">How to Choose the Right WordPress Developer</a>
</div>
</aside>
</div>
</div>
</section>
<footer class="footer" aria-label="Site footer">
<div class="container">
<div class="footer__grid">
<div class="footer__brand">
<img src="../assets/images/logo-cropped.jpg" alt="HELP4BIS" width="140" height="38">
<p>Managed WordPress hosting and maintenance for Australian small businesses. Brisbane based, personal service, combining creative and strategic know how.</p>
<p style="margin-top:8px; font-size:12px; color:rgba(255,255,255,.55);">Dutch Digital Dynamics Pty Ltd · ABN 86 081 237 087</p>
</div>
<div class="footer__col">
<h4>Services</h4>
<ul class="footer__links">
<li><a href="../managed-wordpress.html">Tailored Website Management</a></li>
<li><a href="../care-plans.html">WP Care Plans</a></li>
<li><a href="../sos-fix.html">WP SOS Fix</a></li>
<li><a href="../ai-integration.html">AI Integration</a></li>
<li><a href="../plugin-development.html">Plugin Development</a></li>
</ul>
</div>
<div class="footer__col">
<h4>Company</h4>
<ul class="footer__links">
<li><a href="../about.html">About the Team</a></li>
<li><a href="../index.html#portfolio">Our Work</a></li>
<li><a href="index.html">Blog</a></li>
<li><a href="../contact.html">Contact</a></li>
</ul>
</div>
<div class="footer__col">
<h4>Contact</h4>
<ul class="footer__links">
<li><a href="mailto:project@help4bis.com">project@help4bis.com</a></li>
<li><a href="../contact.html">Submit a Brief</a></li>
</ul>
<p style="margin-top:16px; font-size:12px; color:rgba(255,255,255,.55);">
Brisbane, Queensland<br>Response within 24 business hours
</p>
</div>
</div>
<div class="footer__bottom">
<span>&copy; 2026 HELP4BIS, a trading name of Dutch Digital Dynamics Pty Ltd · ABN 86 081 237 087</span>
<span><a href="../privacy.html">Privacy</a> · <a href="../terms.html">Terms</a></span>
</div>
</div>
</footer>
<button id="back-to-top" aria-label="Back to top">
<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="18 15 12 9 6 15"/></svg>
</button>
<script src="../assets/js/main.js"></script>
<script src="/analytics/tracker.js" defer></script>
</body>
</html>
+208
View File
@@ -0,0 +1,208 @@
<!DOCTYPE html>
<!-- Version: 1.2.0 | Created: 2026-04-08 | Updated: 2026-08-16 -->
<html lang="en-AU">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Blog | HELP4BIS: WordPress Tips, Local Business Advice, and Straight Talk</title>
<meta name="description" content="Practical advice for Australian small businesses. No jargon, no fluff. WordPress maintenance, local SEO, getting found online, and spending your marketing budget where it actually works.">
<meta name="keywords" content="WordPress blog Australia, small business website tips, tradie marketing advice, WordPress maintenance tips, local business SEO Brisbane, small business online presence">
<meta name="author" content="HELP4BIS">
<meta name="publisher" content="Dutch Digital Dynamics Pty Ltd">
<meta name="copyright" content="Dutch Digital Dynamics Pty Ltd">
<meta name="language" content="en-AU">
<link rel="canonical" href="https://help4bis.com/blog/">
<meta name="robots" content="index, follow">
<meta property="og:type" content="website">
<meta property="og:url" content="https://help4bis.com/blog/">
<meta property="og:site_name" content="HELP4BIS">
<meta property="og:title" content="Blog | HELP4BIS: Straight Talk for Small Businesses">
<meta property="og:description" content="Practical advice for Australian small businesses. No jargon, no fluff.">
<meta property="og:image" content="https://help4bis.com/assets/images/og-social-card.jpg">
<meta property="og:locale" content="en_AU">
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:title" content="Blog | HELP4BIS">
<meta name="twitter:description" content="Practical advice for Australian small businesses. No jargon, no fluff.">
<meta name="twitter:image" content="https://help4bis.com/assets/images/og-social-card.jpg">
<link rel="icon" type="image/jpeg" href="../assets/images/logo-favicon.jpg"> <link rel="stylesheet" href="../assets/css/style.css">
</head>
<body>
<nav class="nav" role="navigation" aria-label="Main navigation">
<div class="container">
<div class="nav__inner">
<a class="nav__logo" href="../index.html" aria-label="HELP4BIS home">
<img src="../assets/images/logo-cropped.jpg" alt="HELP4BIS Logo" width="160" height="44">
</a>
<ul class="nav__links" id="nav-links" role="list">
<li class="nav__dropdown">
<button class="nav__trigger" aria-haspopup="true" aria-expanded="false">Services <svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"/></svg></button>
<ul class="nav__dropdown-menu" role="menu">
<li class="nav__menu-group">WordPress</li>
<li><a href="../managed-wordpress.html" role="menuitem">Tailored Website Management</a></li>
<li><a href="../care-plans.html" role="menuitem">WP Care Plans <span class="menu-price">from $49/mo</span></a></li>
<li><a href="../sos-fix.html" role="menuitem">WP SOS Fix <span class="menu-price">$97 flat</span></a></li>
<li><a href="../ai-integration.html" role="menuitem">AI Integration</a></li>
<li><a href="../plugin-development.html" role="menuitem">Custom Plugin Development</a></li> </ul>
</li>
<li><a href="../about.html">About</a></li>
<li><a href="../index.html#portfolio">Our Work</a></li>
<li><a href="../index.html#pricing">Pricing</a></li>
<li><a href="../your-first-week-with-ai.html">AI Guide</a></li>
<li><a href="../contact.html">Contact</a></li>
<li class="nav__cta-mobile" aria-hidden="true">
<a href="../contact.html" class="btn btn-primary">Get Started</a>
<a href="../sos-fix.html" class="btn btn-secondary">SOS Fix $97</a>
</li>
</ul>
<div class="nav__cta">
<a href="../sos-fix.html" class="btn btn-secondary btn-sm">SOS Fix $97</a>
<a href="../contact.html" class="btn btn-primary btn-sm">Get Started</a>
</div>
<button class="nav__burger" id="nav-burger" aria-label="Open menu" aria-expanded="false" aria-controls="nav-links">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><line x1="3" y1="6" x2="21" y2="6"/><line x1="3" y1="12" x2="21" y2="12"/><line x1="3" y1="18" x2="21" y2="18"/></svg>
</button>
</div>
</div>
</nav>
<section class="page-hero" aria-labelledby="blog-heading">
<div class="container">
<nav class="breadcrumb" aria-label="Breadcrumb">
<ol>
<li><a href="../index.html">Home</a></li>
<li aria-current="page">Blog</li>
</ol>
</nav>
<p class="eyebrow">HELP4BIS Blog</p>
<h1 id="blog-heading">Straight talk for small businesses.</h1>
</div>
</section>
<section class="section">
<div class="container">
<div class="blog-grid">
<div class="blog-card">
<div class="blog-card__body">
<div class="blog-card__meta">
<span class="blog-card__tag">Local Business</span>
<span>8 Apr 2026</span>
</div>
<h2 class="blog-card__title">
<a href="why-most-tradie-websites-dont-get-leads.html">Why Most Tradie Websites in Brisbane Don't Get Leads</a>
</h2>
<p class="blog-card__excerpt">Your mate told you to get a website. You got one. It sits there doing nothing. Here's why, and what I see actually working for tradies in Southeast Queensland.</p>
<a href="why-most-tradie-websites-dont-get-leads.html" class="blog-card__link">
Read more <svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="9 18 15 12 9 6"/></svg>
</a>
</div>
</div>
<div class="blog-card">
<div class="blog-card__body">
<div class="blog-card__meta">
<span class="blog-card__tag">Small Business</span>
<span>8 Apr 2026</span>
</div>
<h2 class="blog-card__title">
<a href="five-signs-your-website-costing-you-customers.html">5 Signs Your Website Is Costing You Customers</a>
</h2>
<p class="blog-card__excerpt">Your website might look fine to you. But if it's slow, outdated, or broken on mobile, it's turning people away before they ever pick up the phone. I run through the five checks I use on my own sites.</p>
<a href="five-signs-your-website-costing-you-customers.html" class="blog-card__link">
Read more <svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="9 18 15 12 9 6"/></svg>
</a>
</div>
</div>
<div class="blog-card">
<div class="blog-card__body">
<div class="blog-card__meta">
<span class="blog-card__tag">WordPress</span>
<span>8 Apr 2026</span>
</div>
<h2 class="blog-card__title">
<a href="what-wordpress-care-plan-actually-includes.html">What a WordPress Care Plan Actually Includes</a>
</h2>
<p class="blog-card__excerpt">WordPress doesn't maintain itself. Here's what a care plan covers, what happens without one, and what I reckon you should expect to pay in Australia.</p>
<a href="what-wordpress-care-plan-actually-includes.html" class="blog-card__link">
Read more <svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="9 18 15 12 9 6"/></svg>
</a>
</div>
</div>
<div class="blog-card">
<div class="blog-card__body">
<div class="blog-card__meta">
<span class="blog-card__tag">Small Business</span>
<span>8 Apr 2026</span>
</div>
<h2 class="blog-card__title">
<a href="small-business-compete-online-without-big-budget.html">How Small Businesses in Queensland Can Compete Online Without a Big Budget</a>
</h2>
<p class="blog-card__excerpt">You don't need $5,000 a month to compete with the big players online. Here's what actually works, and what I'd never spend my money on.</p>
<a href="small-business-compete-online-without-big-budget.html" class="blog-card__link">
Read more <svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="9 18 15 12 9 6"/></svg>
</a>
</div>
</div>
</div>
</div>
</section>
<footer class="footer" aria-label="Site footer">
<div class="container">
<div class="footer__grid">
<div class="footer__brand">
<img src="../assets/images/logo-cropped.jpg" alt="HELP4BIS" width="140" height="38">
<p>Managed WordPress hosting and maintenance for Australian small businesses. Brisbane based, personal service, combining creative and strategic know how.</p>
<p style="margin-top:8px; font-size:12px; color:rgba(255,255,255,.55);">Dutch Digital Dynamics Pty Ltd · ABN 86 081 237 087</p>
</div>
<div class="footer__col">
<h4>Services</h4>
<ul class="footer__links">
<li><a href="../managed-wordpress.html">Tailored Website Management</a></li>
<li><a href="../care-plans.html">WP Care Plans</a></li>
<li><a href="../sos-fix.html">WP SOS Fix</a></li>
<li><a href="../ai-integration.html">AI Integration</a></li>
<li><a href="../plugin-development.html">Plugin Development</a></li>
</ul>
</div>
<div class="footer__col">
<h4>Company</h4>
<ul class="footer__links">
<li><a href="../about.html">About the Team</a></li>
<li><a href="../index.html#portfolio">Our Work</a></li>
<li><a href="index.html">Blog</a></li>
<li><a href="../contact.html">Contact</a></li>
</ul>
</div>
<div class="footer__col">
<h4>Contact</h4>
<ul class="footer__links">
<li><a href="mailto:project@help4bis.com">project@help4bis.com</a></li>
<li><a href="../contact.html">Submit a Brief</a></li>
</ul>
<p style="margin-top:16px; font-size:12px; color:rgba(255,255,255,.55);">
Brisbane, Queensland<br>Response within 24 business hours
</p>
</div>
</div>
<div class="footer__bottom">
<span>&copy; 2026 HELP4BIS, a trading name of Dutch Digital Dynamics Pty Ltd · ABN 86 081 237 087</span>
<span><a href="../privacy.html">Privacy</a> · <a href="../terms.html">Terms</a></span>
</div>
</div>
</footer>
<button id="back-to-top" aria-label="Back to top">
<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="18 15 12 9 6 15"/></svg>
</button>
<script src="../assets/js/main.js"></script>
<script src="/analytics/tracker.js" defer></script>
</body>
</html>
@@ -0,0 +1,297 @@
<!DOCTYPE html>
<!-- Version: 2.2.0 | Created: 2026-04-08 | Updated: 2026-08-16 -->
<html lang="en-AU">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>How Small Businesses in Queensland Can Compete Online Without a Big Budget | HELP4BIS</title>
<meta name="description" content="You don't need $5,000 a month to compete with the big players online. Here's what actually works for small businesses in Queensland, and what's a waste of money.">
<meta name="keywords" content="small business online marketing Queensland, affordable website Brisbane, cheap website maintenance, small business SEO Australia, local business online presence">
<meta name="author" content="HELP4BIS">
<meta name="publisher" content="Dutch Digital Dynamics Pty Ltd">
<meta name="copyright" content="Dutch Digital Dynamics Pty Ltd">
<meta name="language" content="en-AU">
<meta name="revisit-after" content="7 days">
<link rel="canonical" href="https://help4bis.com/blog/small-business-compete-online-without-big-budget.html">
<meta name="robots" content="index, follow">
<meta property="og:type" content="article">
<meta property="og:url" content="https://help4bis.com/blog/small-business-compete-online-without-big-budget.html">
<meta property="og:site_name" content="HELP4BIS">
<meta property="og:title" content="How Small Businesses in Queensland Can Compete Online Without a Big Budget">
<meta property="og:description" content="You don't need $5,000 a month to compete with the big players online. Here's what actually works for small businesses in Queensland, and what's a waste of money.">
<meta property="og:image" content="https://help4bis.com/assets/images/og-social-card.jpg">
<meta property="og:image:width" content="1200">
<meta property="og:image:height" content="630">
<meta property="og:locale" content="en_AU">
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:title" content="How Small Businesses in Queensland Can Compete Online Without a Big Budget">
<meta name="twitter:description" content="You don't need $5,000 a month to compete online. Here's what actually works for Queensland small businesses.">
<meta name="twitter:image" content="https://help4bis.com/assets/images/og-social-card.jpg">
<link rel="icon" type="image/jpeg" href="../assets/images/logo-favicon.jpg"> <link rel="stylesheet" href="../assets/css/style.css">
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "BlogPosting",
"headline": "How Small Businesses in Queensland Can Compete Online Without a Big Budget",
"description": "You don't need $5,000 a month to compete with the big players online. Here's what actually works for small businesses in Queensland, and what's a waste of money.",
"author": {
"@type": "Organization",
"name": "HELP4BIS",
"url": "https://help4bis.com"
},
"publisher": {
"@type": "Organization",
"name": "HELP4BIS",
"logo": { "@type": "ImageObject", "url": "https://help4bis.com/assets/images/logo-cropped.jpg" }
},
"datePublished": "2026-04-08",
"dateModified": "2026-04-08",
"mainEntityOfPage": "https://help4bis.com/blog/small-business-compete-online-without-big-budget.html"
}
</script>
</head>
<body>
<nav class="nav" role="navigation" aria-label="Main navigation">
<div class="container">
<div class="nav__inner">
<a class="nav__logo" href="../index.html" aria-label="HELP4BIS home">
<img src="../assets/images/logo-cropped.jpg" alt="HELP4BIS Logo" width="160" height="44">
</a>
<ul class="nav__links" id="nav-links" role="list">
<li class="nav__dropdown">
<button class="nav__trigger" aria-haspopup="true" aria-expanded="false">Services <svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"/></svg></button>
<ul class="nav__dropdown-menu" role="menu">
<li class="nav__menu-group">WordPress</li>
<li><a href="../managed-wordpress.html" role="menuitem">Tailored Website Management</a></li>
<li><a href="../care-plans.html" role="menuitem">WP Care Plans <span class="menu-price">from $49/mo</span></a></li>
<li><a href="../sos-fix.html" role="menuitem">WP SOS Fix <span class="menu-price">$97 flat</span></a></li>
<li><a href="../ai-integration.html" role="menuitem">AI Integration</a></li>
<li><a href="../plugin-development.html" role="menuitem">Custom Plugin Development</a></li> </ul>
</li>
<li><a href="../about.html">About</a></li>
<li><a href="../index.html#portfolio">Our Work</a></li>
<li><a href="../index.html#pricing">Pricing</a></li>
<li><a href="index.html">Blog</a></li>
<li><a href="../your-first-week-with-ai.html">AI Guide</a></li>
<li><a href="../contact.html">Contact</a></li>
<li class="nav__cta-mobile" aria-hidden="true">
<a href="../contact.html" class="btn btn-primary">Get Started</a>
<a href="../sos-fix.html" class="btn btn-secondary">SOS Fix $97</a>
</li>
</ul>
<div class="nav__cta">
<a href="../sos-fix.html" class="btn btn-secondary btn-sm">SOS Fix $97</a>
<a href="../contact.html" class="btn btn-primary btn-sm">Get Started</a>
</div>
<button class="nav__burger" id="nav-burger" aria-label="Open menu" aria-expanded="false" aria-controls="nav-links">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><line x1="3" y1="6" x2="21" y2="6"/><line x1="3" y1="12" x2="21" y2="12"/><line x1="3" y1="18" x2="21" y2="18"/></svg>
</button>
</div>
</div>
</nav>
<section class="page-hero" aria-labelledby="post-heading">
<div class="container">
<nav class="breadcrumb" aria-label="Breadcrumb">
<ol>
<li><a href="../index.html">Home</a></li>
<li><a href="index.html">Blog</a></li>
<li aria-current="page">Online on a Budget</li>
</ol>
</nav>
<p class="eyebrow">Small Business</p>
<h1 id="post-heading">Compete Online Without<br> a Big Budget</h1>
<p>You don't need $5,000 a month, you need to be consistent. Here's what actually works for Queensland small businesses.</p>
</div>
</section>
<section class="section">
<div class="container">
<div class="article-layout">
<div class="article">
<div class="article__meta">
<span class="article__tag">Small Business</span>
<span class="article__meta-sep">·</span>
<span>8 April 2026</span>
<span class="article__meta-sep">·</span>
<span>7 min read</span>
</div>
<p class="article__lead">If you've ever spoken to a digital marketing agency, you'll know how the conversation goes. They talk for forty minutes about brand strategy, content funnels, and performance metrics. Then they quote you $3,000 a month and wonder why you don't call back. I've sat on the other side of enough of those conversations to know the reputation online marketing has for being complicated and expensive suits the agencies selling it. The reality is different.</p>
<p>You don't need a big budget. You need to be consistent. Here's what I tell small businesses in Queensland actually works, and what's not worth your money.</p>
<div class="article-sign">
<div class="article-sign__number">1</div>
<h3>Start with your Google Business Profile, it's free</h3>
<p>If you run a local business and you haven't set up your Google Business Profile properly, that's the first thing I'd fix. Not tomorrow. Today. When someone searches "bookkeeper Ipswich" or "hairdresser Redcliffe," Google shows a map with three local businesses before it shows any websites. That map listing is your Google Business Profile. If yours isn't there, or it's half finished with no photos and no reviews, you're invisible in the most valuable spot on the page.</p>
</div>
<div class="article-tip">
<div class="article-tip__icon">
<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"/><line x1="12" y1="16" x2="12" y2="12"/><line x1="12" y1="8" x2="12.01" y2="8"/></svg>
</div>
<div class="article-tip__content">
<div class="article-tip__label">Tip</div>
<p>Fill in every field. Add your hours. Upload photos of your premises, your work, your team. Write a proper description of what you do and which suburbs you serve. Then ask every satisfied customer to leave you a Google review. It is important reply to every review, positive and negative. This is completely free. It takes a few hours to set up properly, I've done it plenty of times. And it will generate more enquiries than most paid advertising campaigns.</p>
</div>
</div>
<div class="article-sign">
<div class="article-sign__number">2</div>
<h3>Your website doesn't need to be fancy, it needs to be findable</h3>
<p>A lot of small business owners think they need a complete redesign to improve their online presence. Usually they don't. What they need is the right words on their existing pages. The right words means the words your customers actually type into Google. Not corporate descriptions of your services. The specific phrases people search for. I fix more sites by rewriting three pages than I ever have by redesigning them.</p>
</div>
<blockquote><p>"Blocked drain plumber Brisbane northside" is what someone types when their drain is blocked. Not "residential drainage solutions." If your website says "residential drainage solutions" and a competitor's site says "blocked drain plumber serving Brisbane's northside," they'll show up first every time.</p></blockquote>
<div class="article-sign">
<div class="article-sign__number">3</div>
<h3>Write about what you know, once a fortnight</h3>
<p>You don't need a professional copywriter or a content team. You need to write one short post every two weeks about something your customers regularly ask you. Every business owner I meet has a list of these questions. The plumber gets asked why the hot water system keeps failing. The accountant gets asked what home office expenses are actually deductible. The electrician gets asked whether they need to upgrade their switchboard before selling.</p>
</div>
<div class="article-tip">
<div class="article-tip__icon">
<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"/><line x1="12" y1="16" x2="12" y2="12"/><line x1="12" y1="8" x2="12.01" y2="8"/></svg>
</div>
<div class="article-tip__content">
<div class="article-tip__label">Tip</div>
<p>Keep it short, 400 to 600 words is plenty. Don't try to sound professional. Sound like you. One post a fortnight, published consistently over a year, is 26 pages of useful content that didn't exist before. Each one is another reason for Google to send people to your site.</p>
</div>
</div>
<div class="article-sign">
<div class="article-sign__number">4</div>
<h3>Pick one social media platform and actually use it</h3>
<p>You do not need to be on Facebook, Instagram, LinkedIn, TikTok, and YouTube. You need to be on one platform, the one where your actual customers spend time. For most tradies in Queensland, that's Facebook. Specifically, local community groups. Samford Valley Community, Dayboro &amp; District, Redcliffe Peninsula locals. These groups have thousands of members and people ask for recommendations constantly. I see it in my own local group every week. Be active in yours. Answer questions. Be helpful. Don't spam your services. Just be a useful presence.</p>
</div>
<div class="article-sign">
<div class="article-sign__number">5</div>
<h3>Email is still the best return on investment you'll find</h3>
<p>Most small businesses collect customer email addresses and then never use them. That's a waste. A simple email to your past customers once a month (once a month, not five times a week) reminding them you exist will generate repeat business. Not a fancy newsletter with graphics and sections. Just a short note from you. What you've been up to. Something useful or interesting. A gentle mention of your services.</p>
</div>
<div class="article-tip">
<div class="article-tip__icon">
<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"/><line x1="12" y1="16" x2="12" y2="12"/><line x1="12" y1="8" x2="12.01" y2="8"/></svg>
</div>
<div class="article-tip__content">
<div class="article-tip__label">Tip</div>
<p>Past customers already trust you. They've paid you before. Reminding them you're still there is far cheaper and far more effective than trying to find new customers through advertising. Mailchimp is free up to 500 contacts. You don't need anything more complicated than that to start. It's what I run for my own list.</p>
</div>
</div>
<h2>What not to spend money on</h2>
<div class="article-warning">
<div class="article-warning__icon">
<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z"/><line x1="12" y1="9" x2="12" y2="13"/><line x1="12" y1="17" x2="12.01" y2="17"/></svg>
</div>
<div class="article-warning__content">
<p><strong>Warning:</strong> This is just as important as what to spend on. Avoid: fancy SEO tools you don't understand (Ahrefs and Semrush cost $100–$400/month and most small business owners I speak to open them once and never go back); paid ads before your website converts (fix the site first, otherwise you're paying for leads that immediately leave); a redesign when you just need content (adding proper content does far more than a fresh design); and social media management from agencies. Generic posts get no engagement, your customers can tell it's not really you, and you're better off writing two posts a week yourself.</p>
</div>
</div>
<h2>The real secret is just showing up</h2>
<p>There isn't a hack. There isn't a tool that does it for you. The businesses I've watched win online are the ones who do small things consistently over a long period of time.</p>
<p>One post a fortnight. Monthly email to past customers. Regular Google business profile updates. Asking for reviews after every job. Replying to those reviews.</p>
<div class="article-takeaway">
<div class="article-takeaway__label">Key Point</div>
<p>None of it takes more than a couple of hours a week. None of it costs much money. But do it for six months and you'll be ahead of most small businesses in your area, the ones still waiting for a magic solution that doesn't exist. I've watched it happen.</p>
</div>
<div class="article-cta">
<h3>Want a plan that fits your budget?</h3>
<p>Tell me about your business and where you're at online. I'll put together a straightforward plan for what to tackle first. No commitment, no pitch deck, no $3,000 a month packages.</p>
<a href="../contact.html" class="btn btn-primary">Talk to Us, No Commitment</a>
</div>
</div>
<aside class="article-sidebar">
<div class="sidebar-card">
<h4>In this article</h4>
<a href="#" class="sidebar-card__link">Google Business Profile</a>
<a href="#" class="sidebar-card__link">Website that's findable</a>
<a href="#" class="sidebar-card__link">Content once a fortnight</a>
<a href="#" class="sidebar-card__link">One social platform done well</a>
<a href="#" class="sidebar-card__link">Email your past customers</a>
<a href="#" class="sidebar-card__link">What not to spend money on</a>
</div>
<div class="sidebar-cta">
<h4>Want a plan that fits your budget?</h4>
<p>No commitment, no pitch deck. Just a straight answer on what to tackle first.</p>
<a href="../contact.html" class="btn btn-primary btn-sm">Talk to Us</a>
</div>
<div class="sidebar-card">
<h4>Related reading</h4>
<a href="five-signs-your-website-costing-you-customers.html" class="sidebar-card__link">5 Signs Your Website Is Costing You Customers</a>
<a href="what-wordpress-care-plan-actually-includes.html" class="sidebar-card__link">What a WordPress Care Plan Actually Includes</a>
<a href="how-to-choose-right-wordpress-developer-australia.html" class="sidebar-card__link">How to Choose the Right WordPress Developer</a>
</div>
</aside>
</div>
</div>
</section>
<footer class="footer" aria-label="Site footer">
<div class="container">
<div class="footer__grid">
<div class="footer__brand">
<img src="../assets/images/logo-cropped.jpg" alt="HELP4BIS" width="140" height="38">
<p>Managed WordPress hosting and maintenance for Australian small businesses. Brisbane based, personal service, combining creative and strategic know how.</p>
<p style="margin-top:8px; font-size:12px; color:rgba(255,255,255,.55);">Dutch Digital Dynamics Pty Ltd · ABN 86 081 237 087</p>
</div>
<div class="footer__col">
<h4>Services</h4>
<ul class="footer__links">
<li><a href="../managed-wordpress.html">Tailored Website Management</a></li>
<li><a href="../care-plans.html">WP Care Plans</a></li>
<li><a href="../sos-fix.html">WP SOS Fix</a></li>
<li><a href="../ai-integration.html">AI Integration</a></li>
<li><a href="../plugin-development.html">Plugin Development</a></li>
</ul>
</div>
<div class="footer__col">
<h4>Company</h4>
<ul class="footer__links">
<li><a href="../about.html">About the Team</a></li>
<li><a href="../index.html#portfolio">Our Work</a></li>
<li><a href="index.html">Blog</a></li>
<li><a href="../contact.html">Contact</a></li>
</ul>
</div>
<div class="footer__col">
<h4>Contact</h4>
<ul class="footer__links">
<li><a href="mailto:project@help4bis.com">project@help4bis.com</a></li>
<li><a href="../contact.html">Submit a Brief</a></li>
</ul>
<p style="margin-top:16px; font-size:12px; color:rgba(255,255,255,.55);">
Brisbane, Queensland<br>Response within 24 business hours
</p>
</div>
</div>
<div class="footer__bottom">
<span>&copy; 2026 HELP4BIS, a trading name of Dutch Digital Dynamics Pty Ltd · ABN 86 081 237 087</span>
<span><a href="../privacy.html">Privacy</a> · <a href="../terms.html">Terms</a></span>
</div>
</div>
</footer>
<button id="back-to-top" aria-label="Back to top">
<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="18 15 12 9 6 15"/></svg>
</button>
<script src="../assets/js/main.js"></script>
<script src="/analytics/tracker.js" defer></script>
</body>
</html>
@@ -0,0 +1,280 @@
<!DOCTYPE html>
<!-- Version: 2.2.0 | Created: 2026-04-08 | Updated: 2026-08-16 -->
<html lang="en-AU">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>What a WordPress Care Plan Actually Includes (And Why You Need One) | HELP4BIS</title>
<meta name="description" content="Your WordPress site needs maintenance whether you know it or not. Here's what a care plan covers, what happens without one, and what you should expect to pay in Australia.">
<meta name="keywords" content="WordPress care plan Australia, WordPress maintenance plan, WordPress support Brisbane, WordPress security updates, website maintenance cost, WordPress backup service">
<meta name="author" content="HELP4BIS">
<meta name="publisher" content="Dutch Digital Dynamics Pty Ltd">
<meta name="copyright" content="Dutch Digital Dynamics Pty Ltd">
<meta name="language" content="en-AU">
<link rel="canonical" href="https://help4bis.com/blog/what-wordpress-care-plan-actually-includes.html">
<meta name="robots" content="index, follow">
<meta property="og:type" content="article">
<meta property="og:url" content="https://help4bis.com/blog/what-wordpress-care-plan-actually-includes.html">
<meta property="og:site_name" content="HELP4BIS">
<meta property="og:title" content="What a WordPress Care Plan Actually Includes (And Why You Need One)">
<meta property="og:description" content="Your WordPress site needs maintenance whether you know it or not. Here's what's included, what happens without one, and what to expect to pay.">
<meta property="og:image" content="https://help4bis.com/assets/images/og-social-card.jpg">
<meta property="og:locale" content="en_AU">
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:title" content="What a WordPress Care Plan Actually Includes">
<meta name="twitter:description" content="Your WordPress site needs maintenance whether you know it or not. Here's what's actually covered.">
<meta name="twitter:image" content="https://help4bis.com/assets/images/og-social-card.jpg">
<link rel="icon" type="image/jpeg" href="../assets/images/logo-favicon.jpg"> <link rel="stylesheet" href="../assets/css/style.css">
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "BlogPosting",
"headline": "What a WordPress Care Plan Actually Includes (And Why You Need One)",
"description": "Your WordPress site needs maintenance whether you know it or not. Here's what's included.",
"author": { "@type": "Organization", "name": "HELP4BIS", "url": "https://help4bis.com" },
"publisher": { "@type": "Organization", "name": "HELP4BIS", "logo": { "@type": "ImageObject", "url": "https://help4bis.com/assets/images/logo-cropped.jpg" } },
"datePublished": "2026-04-08",
"dateModified": "2026-04-08",
"mainEntityOfPage": "https://help4bis.com/blog/what-wordpress-care-plan-actually-includes.html"
}
</script>
</head>
<body>
<nav class="nav" role="navigation" aria-label="Main navigation">
<div class="container">
<div class="nav__inner">
<a class="nav__logo" href="../index.html" aria-label="HELP4BIS home">
<img src="../assets/images/logo-cropped.jpg" alt="HELP4BIS Logo" width="160" height="44">
</a>
<ul class="nav__links" id="nav-links" role="list">
<li class="nav__dropdown">
<button class="nav__trigger" aria-haspopup="true" aria-expanded="false">Services <svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"/></svg></button>
<ul class="nav__dropdown-menu" role="menu">
<li class="nav__menu-group">WordPress</li>
<li><a href="../managed-wordpress.html" role="menuitem">Tailored Website Management</a></li>
<li><a href="../care-plans.html" role="menuitem">WP Care Plans <span class="menu-price">from $49/mo</span></a></li>
<li><a href="../sos-fix.html" role="menuitem">WP SOS Fix <span class="menu-price">$97 flat</span></a></li>
<li><a href="../ai-integration.html" role="menuitem">AI Integration</a></li>
<li><a href="../plugin-development.html" role="menuitem">Custom Plugin Development</a></li> </ul>
</li>
<li><a href="../about.html">About</a></li>
<li><a href="../index.html#portfolio">Our Work</a></li>
<li><a href="../index.html#pricing">Pricing</a></li>
<li><a href="index.html">Blog</a></li>
<li><a href="../your-first-week-with-ai.html">AI Guide</a></li>
<li><a href="../contact.html">Contact</a></li>
<li class="nav__cta-mobile" aria-hidden="true">
<a href="../contact.html" class="btn btn-primary">Get Started</a>
<a href="../sos-fix.html" class="btn btn-secondary">SOS Fix $97</a>
</li>
</ul>
<div class="nav__cta">
<a href="../sos-fix.html" class="btn btn-secondary btn-sm">SOS Fix $97</a>
<a href="../contact.html" class="btn btn-primary btn-sm">Get Started</a>
</div>
<button class="nav__burger" id="nav-burger" aria-label="Open menu" aria-expanded="false" aria-controls="nav-links">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><line x1="3" y1="6" x2="21" y2="6"/><line x1="3" y1="12" x2="21" y2="12"/><line x1="3" y1="18" x2="21" y2="18"/></svg>
</button>
</div>
</div>
</nav>
<section class="page-hero" aria-labelledby="post-heading">
<div class="container">
<nav class="breadcrumb" aria-label="Breadcrumb">
<ol>
<li><a href="../index.html">Home</a></li>
<li><a href="index.html">Blog</a></li>
<li aria-current="page">WordPress Care Plans</li>
</ol>
</nav>
<p class="eyebrow">WordPress</p>
<h1 id="post-heading">What a WordPress Care Plan<br> Actually Includes</h1>
<p>Your WordPress site needs maintenance whether you know it or not. Here's what should be happening behind the scenes.</p>
</div>
</section>
<section class="section">
<div class="container">
<div class="article-layout">
<div class="article">
<div class="article__meta">
<span class="article__tag">WordPress</span>
<span class="article__meta-sep">·</span>
<span>8 April 2026</span>
<span class="article__meta-sep">·</span>
<span>5 min read</span>
</div>
<p class="article__lead">You built a WordPress website. Or someone built it for you. Either way, it's sitting there, doing its thing, and you haven't touched it in months. Maybe longer. That's a problem, and a care plan is the answer.</p>
<p>WordPress doesn't maintain itself. Behind that clean homepage, there are plugins that need updating, a database that's collecting junk, security patches that aren't being applied, and backups that probably aren't running. I know because I look at sites like this every week.</p>
<p>Eventually something breaks. The site goes down, gets hacked, or starts throwing errors at customers. Then it's an emergency. And emergencies cost more than maintenance ever would have.</p>
<h2>What's actually in a care plan</h2>
<p>A proper WordPress care plan isn't someone logging in once a month and clicking "update all." That approach breaks sites. Plugins conflict with each other. Theme updates override customistions. A bad update on a Friday afternoon can take your booking form down for an entire weekend before anyone notices.</p>
<p>Here's what I reckon should be happening on any site that matters to the business:</p>
<div class="article-sign">
<div class="article-sign__number">1</div>
<h3>Updates, but done properly</h3>
<p>WordPress core, plugins, and themes release updates constantly. Some are security patches. Some add features. Some break things. A good care plan tests updates in a staging environment before applying them to your live site, so if something goes wrong, I find out before your customers do.</p>
</div>
<div class="article-sign">
<div class="article-sign__number">2</div>
<h3>Backups that actually work</h3>
<p>Having a backup plugin installed doesn't mean you have backups. You need to know: where are they stored? Can you restore from them? Have you tested it? Daily backups stored offsite, with a tested restore process, is the bare minimum I'd accept for my own sites. If your host says "we do backups," ask them to restore last Tuesday's copy. Watch what happens.</p>
</div>
<div class="article-sign">
<div class="article-sign__number">3</div>
<h3>Security monitoring</h3>
<p>WordPress powers about 40% of the internet. That makes it a massive target. Brute force login attempts, malware injections, spam form submissions, these happen constantly. A care plan includes firewall rules, login protection, malware scanning, and someone actually looking at the results, whilst most cheap hosting leaves all of that to you.</p>
</div>
<div class="article-sign">
<div class="article-sign__number">4</div>
<h3>Performance checks</h3>
<p>Sites slow down over time. Database tables grow. Cache gets stale. Images pile up. A care plan includes periodic speed checks and cleanup, because a slow site loses visitors, and Google notices.</p>
</div>
<div class="article-sign">
<div class="article-sign__number">5</div>
<h3>Content edits</h3>
<p>Changed your phone number? Got a new service? Need to update your holiday hours? Most care plans include a number of small content edits per month. Enough for the routine changes that keep your site current without you needing to learn how WordPress works.</p>
</div>
<h2>What happens without one</h2>
<div class="article-warning">
<div class="article-warning__icon">
<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z"/><line x1="12" y1="9" x2="12" y2="13"/><line x1="12" y1="17" x2="12.01" y2="17"/></svg>
</div>
<div class="article-warning__content">
<p><strong>Warning:</strong> Nothing, for a while. That's the trap. It feels fine. Then one morning you get an email from a customer saying your site is showing pharmacy ads. Or your contact form hasn't been working for three weeks and nobody noticed. Or Google flags your site as "not secure" because your SSL expired. I've seen all of these. An emergency security cleanup runs $500 to $2,000 depending on how deep the hack went. A care plan that would have prevented it costs $49 to $99 a month.</p>
</div>
</div>
<h2>What should it cost?</h2>
<p>In Australia, WordPress care plans typically range from $49 to $200 per month depending on what's included. Here's my rough guide:</p>
<ul>
<li><strong>$40–60/month:</strong> Updates, backups, security monitoring. The essentials. Good for a simple business site that doesn't change much.</li>
<li><strong>$80–120/month:</strong> Everything above plus performance monitoring, uptime checks, content edits, and priority support. Right for businesses that rely on their site for leads.</li>
<li><strong>$150–250/month:</strong> Full managed service. Hosting included, unlimited content edits, advanced security, staging environments, monthly reporting. For businesses where the website is a revenue channel.</li>
</ul>
<div class="article-tip">
<div class="article-tip__icon">
<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"/><line x1="12" y1="16" x2="12" y2="12"/><line x1="12" y1="8" x2="12.01" y2="8"/></svg>
</div>
<div class="article-tip__content">
<div class="article-tip__label">Tip</div>
<p>If someone quotes you less than $30 a month, they're either using fully automated tools with no human oversight, or they're planning to upsell you later. If someone quotes you more than $300 for a basic small business site, they're overcharging you. I'd walk away from both.</p>
</div>
</div>
<h2>The question to ask</h2>
<blockquote><p>If your website went down right now, at 8pm on a Sunday, who would you call?</p></blockquote>
<div class="article-takeaway">
<div class="article-takeaway__label">Key Point</div>
<p>If the answer is "I don't know" or "I'd Google it and hope for the best," you don't have a care plan. You have a time bomb with a nice homepage.</p>
</div>
<div class="article-cta">
<h3>Need someone watching your site?</h3>
<p>My care plans start at $49/month. No lock in contracts. No jargon. Just a working, secure, updated WordPress site that doesn't keep you up at night.</p>
<a href="../care-plans.html" class="btn btn-primary">See Our Care Plans</a>
</div>
</div>
<aside class="article-sidebar">
<div class="sidebar-card">
<h4>In this article</h4>
<a href="#" class="sidebar-card__link">What's in a care plan</a>
<a href="#" class="sidebar-card__link">Updates done properly</a>
<a href="#" class="sidebar-card__link">Backups that work</a>
<a href="#" class="sidebar-card__link">Security monitoring</a>
<a href="#" class="sidebar-card__link">What it costs</a>
<a href="#" class="sidebar-card__link">The question to ask</a>
</div>
<div class="sidebar-cta">
<h4>Need someone watching your site?</h4>
<p>Our care plans start at $49/month. No lock in contracts, no jargon.</p>
<a href="../care-plans.html" class="btn btn-primary btn-sm">See Care Plans</a>
</div>
<div class="sidebar-card">
<h4>Related reading</h4>
<a href="five-signs-your-website-costing-you-customers.html" class="sidebar-card__link">5 Signs Your Website Is Costing You Customers</a>
<a href="small-business-compete-online-without-big-budget.html" class="sidebar-card__link">Compete Online Without a Big Budget</a>
<a href="how-to-choose-right-wordpress-developer-australia.html" class="sidebar-card__link">How to Choose the Right WordPress Developer</a>
</div>
</aside>
</div>
</div>
</section>
<footer class="footer" aria-label="Site footer">
<div class="container">
<div class="footer__grid">
<div class="footer__brand">
<img src="../assets/images/logo-cropped.jpg" alt="HELP4BIS" width="140" height="38">
<p>Managed WordPress hosting and maintenance for Australian small businesses. Brisbane based, personal service, combining creative and strategic know how.</p>
<p style="margin-top:8px; font-size:12px; color:rgba(255,255,255,.55);">Dutch Digital Dynamics Pty Ltd · ABN 86 081 237 087</p>
</div>
<div class="footer__col">
<h4>Services</h4>
<ul class="footer__links">
<li><a href="../managed-wordpress.html">Tailored Website Management</a></li>
<li><a href="../care-plans.html">WP Care Plans</a></li>
<li><a href="../sos-fix.html">WP SOS Fix</a></li>
<li><a href="../ai-integration.html">AI Integration</a></li>
<li><a href="../plugin-development.html">Plugin Development</a></li>
</ul>
</div>
<div class="footer__col">
<h4>Company</h4>
<ul class="footer__links">
<li><a href="../about.html">About the Team</a></li>
<li><a href="../index.html#portfolio">Our Work</a></li>
<li><a href="index.html">Blog</a></li>
<li><a href="../contact.html">Contact</a></li>
</ul>
</div>
<div class="footer__col">
<h4>Contact</h4>
<ul class="footer__links">
<li><a href="mailto:project@help4bis.com">project@help4bis.com</a></li>
<li><a href="../contact.html">Submit a Brief</a></li>
</ul>
<p style="margin-top:16px; font-size:12px; color:rgba(255,255,255,.55);">
Brisbane, Queensland<br>Response within 24 business hours
</p>
</div>
</div>
<div class="footer__bottom">
<span>&copy; 2026 HELP4BIS, a trading name of Dutch Digital Dynamics Pty Ltd · ABN 86 081 237 087</span>
<span><a href="../privacy.html">Privacy</a> · <a href="../terms.html">Terms</a></span>
</div>
</div>
</footer>
<button id="back-to-top" aria-label="Back to top">
<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="18 15 12 9 6 15"/></svg>
</button>
<script src="../assets/js/main.js"></script>
<script src="/analytics/tracker.js" defer></script>
</body>
</html>
@@ -0,0 +1,307 @@
<!DOCTYPE html>
<!-- Version: 2.2.0 | Created: 2026-04-08 | Updated: 2026-08-16 -->
<html lang="en-AU">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Why Most Tradie Websites in Brisbane Don't Get Leads | HELP4BIS</title>
<meta name="description" content="Your mate told you to get a website. You got one. It sits there doing nothing. Here's why, and what actually works for tradies in Brisbane and Southeast Queensland.">
<meta name="keywords" content="tradie website Brisbane, plumber website SEO, electrician website leads, trade business online presence, Brisbane tradie marketing, small business website Queensland">
<meta name="author" content="HELP4BIS">
<meta name="publisher" content="Dutch Digital Dynamics Pty Ltd">
<meta name="copyright" content="Dutch Digital Dynamics Pty Ltd">
<meta name="language" content="en-AU">
<meta name="revisit-after" content="7 days">
<link rel="canonical" href="https://help4bis.com/blog/why-most-tradie-websites-dont-get-leads.html">
<meta name="robots" content="index, follow">
<meta property="og:type" content="article">
<meta property="og:url" content="https://help4bis.com/blog/why-most-tradie-websites-dont-get-leads.html">
<meta property="og:site_name" content="HELP4BIS">
<meta property="og:title" content="Why Most Tradie Websites in Brisbane Don't Get Leads">
<meta property="og:description" content="Your mate told you to get a website. You got one. It sits there doing nothing. Here's why, and what actually works.">
<meta property="og:image" content="https://help4bis.com/assets/images/og-social-card.jpg">
<meta property="og:image:width" content="1200">
<meta property="og:image:height" content="630">
<meta property="og:locale" content="en_AU">
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:title" content="Why Most Tradie Websites in Brisbane Don't Get Leads">
<meta name="twitter:description" content="Your mate told you to get a website. You got one. It sits there doing nothing. Here's why.">
<meta name="twitter:image" content="https://help4bis.com/assets/images/og-social-card.jpg">
<link rel="icon" type="image/jpeg" href="../assets/images/logo-favicon.jpg"> <link rel="stylesheet" href="../assets/css/style.css">
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "BlogPosting",
"headline": "Why Most Tradie Websites in Brisbane Don't Get Leads",
"description": "Your mate told you to get a website. You got one. It sits there doing nothing. Here's why, and what actually works.",
"author": { "@type": "Organization", "name": "HELP4BIS", "url": "https://help4bis.com" },
"publisher": { "@type": "Organization", "name": "HELP4BIS", "logo": { "@type": "ImageObject", "url": "https://help4bis.com/assets/images/logo-cropped.jpg" } },
"datePublished": "2026-04-08",
"dateModified": "2026-04-08",
"mainEntityOfPage": "https://help4bis.com/blog/why-most-tradie-websites-dont-get-leads.html",
"image": "https://help4bis.com/assets/images/og-social-card.jpg"
}
</script>
</head>
<body>
<!-- ═══════════════════════════════════════════════
NAVIGATION
═══════════════════════════════════════════════ -->
<nav class="nav" role="navigation" aria-label="Main navigation">
<div class="container">
<div class="nav__inner">
<a class="nav__logo" href="../index.html" aria-label="HELP4BIS home">
<img src="../assets/images/logo-cropped.jpg" alt="HELP4BIS Logo" width="160" height="44">
</a>
<ul class="nav__links" id="nav-links" role="list">
<li class="nav__dropdown">
<button class="nav__trigger" aria-haspopup="true" aria-expanded="false">Services <svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"/></svg></button>
<ul class="nav__dropdown-menu" role="menu">
<li class="nav__menu-group">WordPress</li>
<li><a href="../managed-wordpress.html" role="menuitem">Tailored Website Management</a></li>
<li><a href="../care-plans.html" role="menuitem">WP Care Plans <span class="menu-price">from $49/mo</span></a></li>
<li><a href="../sos-fix.html" role="menuitem">WP SOS Fix <span class="menu-price">$97 flat</span></a></li>
<li><a href="../ai-integration.html" role="menuitem">AI Integration</a></li>
<li><a href="../plugin-development.html" role="menuitem">Custom Plugin Development</a></li> </ul>
</li>
<li><a href="../about.html">About</a></li>
<li><a href="../index.html#portfolio">Our Work</a></li>
<li><a href="../index.html#pricing">Pricing</a></li>
<li><a href="index.html">Blog</a></li>
<li><a href="../your-first-week-with-ai.html">AI Guide</a></li>
<li><a href="../contact.html">Contact</a></li>
<li class="nav__cta-mobile" aria-hidden="true">
<a href="../contact.html" class="btn btn-primary">Get Started</a>
<a href="../sos-fix.html" class="btn btn-secondary">SOS Fix $97</a>
</li>
</ul>
<div class="nav__cta">
<a href="../sos-fix.html" class="btn btn-secondary btn-sm">SOS Fix $97</a>
<a href="../contact.html" class="btn btn-primary btn-sm">Get Started</a>
</div>
<button class="nav__burger" id="nav-burger" aria-label="Open menu" aria-expanded="false" aria-controls="nav-links">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><line x1="3" y1="6" x2="21" y2="6"/><line x1="3" y1="12" x2="21" y2="12"/><line x1="3" y1="18" x2="21" y2="18"/></svg>
</button>
</div>
</div>
</nav>
<!-- ═══════════════════════════════════════════════
PAGE HERO
═══════════════════════════════════════════════ -->
<section class="page-hero" aria-labelledby="post-heading">
<div class="container">
<nav class="breadcrumb" aria-label="Breadcrumb">
<ol>
<li><a href="../index.html">Home</a></li>
<li><a href="index.html">Blog</a></li>
<li aria-current="page">Tradie Websites</li>
</ol>
</nav>
<p class="eyebrow">Local Business</p>
<h1 id="post-heading">Why Most Tradie Websites<br>in Brisbane Don't Get Leads</h1>
<p>Your mate told you to get a website. You got one. It sits there doing nothing. Here's why, and what actually works.</p>
</div>
</section>
<!-- ═══════════════════════════════════════════════
ARTICLE CONTENT
═══════════════════════════════════════════════ -->
<section class="section">
<div class="container">
<div class="article-layout">
<!-- Main article -->
<div class="article">
<div class="article__meta">
<span class="article__tag">Local Business</span>
<span class="article__meta-sep">·</span>
<span>8 April 2026</span>
<span class="article__meta-sep">·</span>
<span>6 min read</span>
</div>
<p class="article__lead">Someone told you to get a website. Maybe your accountant. Maybe your partner. Maybe that bloke at Bunnings who reckons he's a marketing guru because he watches YouTube. So you got one. Paid a few hundred bucks. Put your phone number on it, a photo of the ute, and called it done. Then nothing happened. I hear this story a lot.</p>
<h2>The real problem isn't the website</h2>
<p>Here's what actually happens when a homeowner in Dayboro needs a plumber at 7pm on a Wednesday. They don't open the Yellow Pages. They don't ask Facebook. They grab their phone and Google "plumber near me" or "emergency plumber Dayboro." I live in Dayboro, I've done exactly this myself.</p>
<p>Google shows them three results. Maybe five. The tradie who shows up in those results gets the call. Everyone else might as well not exist. And fixing that rarely means a full (re)-build of the site. Most of the time it means adding the right pages to the one you already have.</p>
<div class="article-takeaway">
<div class="article-takeaway__label">Key Point</div>
<p>Your website isn't getting leads because Google doesn't know it exists. Or worse, Google knows it exists but has no reason to show it to anyone. There's nothing on it. No content. No suburb names. No descriptions of what you actually do.</p>
</div>
<h2>What Google actually wants to see</h2>
<p>Google is not complicated. It wants to match what someone searches for with a page that answers their question. That's it. If someone searches "blocked drain Samford" and your website has a page that talks about fixing blocked drains in Samford, you're in the running. If your website just says "Dave's Plumbing, call us" with nothing else, you're invisible.</p>
<p>The tradies I see getting found online have a few things the rest don't:</p>
<div class="article-sign">
<div class="article-sign__number">1</div>
<h3>A Google Business Profile that's actually filled in</h3>
<p>Hours, services, photos of real jobs, replies to reviews. Not the half finished listing you set up three years ago and forget about. Google gives massive weight to a complete, active profile. It's free. Most tradies still don't bother.</p>
</div>
<div class="article-sign">
<div class="article-sign__number">2</div>
<h3>Separate pages for each service</h3>
<p>Not one page with a bullet list. "Hot water systems" gets its own page. "Blocked drains" gets its own page. "Gas fitting" gets its own page. Each one mentions the suburbs you work in. Google can only rank what exists. If you don't have a page about it, you won't show up for it.</p>
</div>
<div class="article-sign">
<div class="article-sign__number">3</div>
<h3>Regular content</h3>
<p>Even just a short post once a fortnight. "Why your hot water system fails in winter" or "3 signs your switchboard needs upgrading." Google rewards websites that show signs of life. A site that hasn't been touched in 18 months gets pushed down.</p>
</div>
<div class="article-sign">
<div class="article-sign__number">4</div>
<h3>Reviews from real customers</h3>
<p>If you've done 500 jobs and have 3 Google reviews, that's a problem. Reviews are social proof. They tell Google that real people use your business, and they tell homeowners that you're worth calling. Ask every happy customer to leave one. Make it easy.</p>
</div>
<h2>The time excuse</h2>
<p>The number one thing I hear from tradies is "I don't have time for that." Fair enough. You're on the tools from 6am. The last thing you want to do after a day of crawling under houses is write a blog post about tapware.</p>
<p>But your competitors are getting it done somehow. Not because they're sitting up at midnight writing articles. They're getting someone else to do it. An agency, a marketing person, a mate's kid who's good with computers. I've met all three.</p>
<div class="article-warning">
<div class="article-warning__icon">
<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z"/><line x1="12" y1="9" x2="12" y2="13"/><line x1="12" y1="17" x2="12.01" y2="17"/></svg>
</div>
<div class="article-warning__content">
<p><strong>The catch:</strong> Most agencies charge $2,000 to $5,000 a month. For a sole trader pulling in $150k before expenses, that's brutal. And half the time you can't even tell if it's working.</p>
</div>
</div>
<h2>What's changed in 2026</h2>
<p>Content doesn't cost what it used to. Not even close. The same quality blog post that a marketing agency would charge $300 to write can now be produced for a fraction of that, reviewed by someone who actually understands your trade, and published in the same day. I do this for my own sites and it works.</p>
<p>The tools have changed. The cost has dropped. The only thing that hasn't changed is that most tradies still aren't doing it.</p>
<div class="article-tip">
<div class="article-tip__icon">
<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"/><line x1="12" y1="16" x2="12" y2="12"/><line x1="12" y1="8" x2="12.01" y2="8"/></svg>
</div>
<div class="article-tip__content">
<div class="article-tip__label">Good news</div>
<p>While everyone else is still running on word of mouth alone, you can be the one who shows up on Google when their customer searches. From what I've seen the bar is low in most local trade categories.</p>
</div>
</div>
<h2>A simple test you can do right now</h2>
<p>Open your phone. Google your trade and your suburb. "Electrician Dayboro." "Builder Samford." "Painter Mount Glorious." See who shows up.</p>
<p>If it's not you, that's a lead you just lost to whoever is there.</p>
<p>Now do it once a week. Same search. Track whether you're showing up. In my experience that one habit tells you more about your online presence than any dashboard or analytics tool ever will.</p>
<blockquote>
<p>Every time someone in your area Googles your trade and you don't show up, that job goes to whoever does. It's not complicated. It's just maths.</p>
</blockquote>
<!-- CTA -->
<div class="article-cta">
<h3>Want to know where you stand?</h3>
<p>I'll audit your online presence (Google listing, website, search rankings) and tell you straight what's working and what's not. No fluff. No pitch deck.</p>
<a href="../contact.html" class="btn btn-primary">Get a Free Audit</a>
</div>
</div>
<!-- Sidebar -->
<aside class="article-sidebar">
<div class="sidebar-card">
<h4>In this article</h4>
<a href="#" class="sidebar-card__link">The real problem</a>
<a href="#" class="sidebar-card__link">What Google wants</a>
<a href="#" class="sidebar-card__link">The time excuse</a>
<a href="#" class="sidebar-card__link">What's changed in 2026</a>
<a href="#" class="sidebar-card__link">Test it yourself</a>
</div>
<div class="sidebar-cta">
<h4>Not showing up on Google?</h4>
<p>I help local trade businesses get found online. Brisbane based. No lock in contracts.</p>
<a href="../contact.html" class="btn btn-primary btn-sm">Talk to Us</a>
</div>
<div class="sidebar-card">
<h4>Related</h4>
<a href="five-signs-your-website-costing-you-customers.html" class="sidebar-card__link">5 Signs Your Website Is Costing You Customers</a>
<a href="small-business-compete-online-without-big-budget.html" class="sidebar-card__link">Compete Online Without a Big Budget</a>
<a href="what-wordpress-care-plan-actually-includes.html" class="sidebar-card__link">What a WordPress Care Plan Includes</a>
</div>
</aside>
</div>
</div>
</section>
<!-- ═══════════════════════════════════════════════
FOOTER
═══════════════════════════════════════════════ -->
<footer class="footer" aria-label="Site footer">
<div class="container">
<div class="footer__grid">
<div class="footer__brand">
<img src="../assets/images/logo-cropped.jpg" alt="HELP4BIS" width="140" height="38">
<p>Managed WordPress hosting and maintenance for Australian small businesses. Brisbane based, personal service, combining creative and strategic know how.</p>
<p style="margin-top:8px; font-size:12px; color:rgba(255,255,255,.55);">Dutch Digital Dynamics Pty Ltd · ABN 86 081 237 087</p>
</div>
<div class="footer__col">
<h4>Services</h4>
<ul class="footer__links">
<li><a href="../managed-wordpress.html">Tailored Website Management</a></li>
<li><a href="../care-plans.html">WP Care Plans</a></li>
<li><a href="../sos-fix.html">WP SOS Fix</a></li>
<li><a href="../ai-integration.html">AI Integration</a></li>
<li><a href="../plugin-development.html">Plugin Development</a></li>
</ul>
</div>
<div class="footer__col">
<h4>Company</h4>
<ul class="footer__links">
<li><a href="../about.html">About the Team</a></li>
<li><a href="../index.html#portfolio">Our Work</a></li>
<li><a href="index.html">Blog</a></li>
<li><a href="../contact.html">Contact</a></li>
</ul>
</div>
<div class="footer__col">
<h4>Contact</h4>
<ul class="footer__links">
<li><a href="mailto:project@help4bis.com">project@help4bis.com</a></li>
<li><a href="../contact.html">Submit a Brief</a></li>
</ul>
<p style="margin-top:16px; font-size:12px; color:rgba(255,255,255,.55);">
Brisbane, Queensland<br>Response within 24 business hours
</p>
</div>
</div>
<div class="footer__bottom">
<span>&copy; 2026 HELP4BIS, a trading name of Dutch Digital Dynamics Pty Ltd · ABN 86 081 237 087</span>
<span><a href="../privacy.html">Privacy</a> · <a href="../terms.html">Terms</a></span>
</div>
</div>
</footer>
<button id="back-to-top" aria-label="Back to top">
<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="18 15 12 9 6 15"/></svg>
</button>
<script src="../assets/js/main.js"></script>
<script src="/analytics/tracker.js" defer></script>
</body>
</html>
+823
View File
@@ -0,0 +1,823 @@
<!DOCTYPE html>
<!-- Version: 1.2.0 | Created: 2026-03-13 | Updated: 2026-08-16 -->
<html lang="en-AU">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>WordPress Care Plans Australia | From $49/month | HELP4BIS</title>
<meta name="description" content="WordPress maintenance plans for Australian small businesses. Plugin updates, backups, security monitoring, content edits. Month-to-month, no lock-in. From $49/month + GST.">
<meta name="keywords" content="WordPress care plans Australia, WordPress maintenance plan, WordPress support Australia, WordPress maintenance Brisbane, WordPress security monitoring, WordPress backup service, WordPress update service, small business WordPress maintenance">
<meta name="author" content="HELP4BIS">
<meta name="publisher" content="Dutch Digital Dynamics Pty Ltd">
<meta name="copyright" content="Dutch Digital Dynamics Pty Ltd">
<meta name="language" content="en-AU">
<meta name="revisit-after" content="7 days">
<meta name="category" content="WordPress Services, Web Development, Small Business Technology">
<meta name="classification" content="Business/Technology">
<meta name="coverage" content="Australia">
<meta name="distribution" content="global">
<meta name="rating" content="general">
<meta name="geo.region" content="AU-QLD">
<meta name="geo.placename" content="Brisbane, Queensland">
<meta name="geo.position" content="-27.4698;153.0251">
<meta name="ICBM" content="-27.4698, 153.0251">
<link rel="canonical" href="https://help4bis.com/care-plans.html">
<meta name="robots" content="index, follow">
<meta property="og:type" content="website">
<meta property="og:url" content="https://help4bis.com/care-plans.html">
<meta property="og:site_name" content="HELP4BIS">
<meta property="og:title" content="WordPress Care Plans Australia | From $49/month | HELP4BIS">
<meta property="og:description" content="WordPress maintenance plans for Australian small businesses. Plugin updates, backups, security monitoring, content edits. Month-to-month, no lock-in. From $49/month + GST.">
<meta property="og:image" content="https://help4bis.com/assets/images/og-social-card.jpg">
<meta property="og:image:width" content="1200">
<meta property="og:image:height" content="630">
<meta property="og:image:alt" content="HELP4BIS, WordPress services for Australian small businesses">
<meta property="og:locale" content="en_AU">
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:site" content="@help4bis">
<meta name="twitter:title" content="WordPress Care Plans Australia | From $49/month | HELP4BIS">
<meta name="twitter:description" content="WordPress maintenance plans for Australian small businesses. No contracts, no IT department required. From $49/month + GST.">
<meta name="twitter:image" content="https://help4bis.com/assets/images/og-social-card.jpg">
<meta name="twitter:image:alt" content="HELP4BIS">
<link rel="icon" type="image/jpeg" href="assets/images/logo-favicon.jpg">
<!-- Fonts -->
<!-- Icons (Lucide) -->
<link rel="stylesheet" href="assets/css/style.css">
<!-- JSON-LD Service Schema -->
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@graph": [
{
"@type": "Service",
"@id": "https://help4bis.com/care-plans.html#service",
"name": "WordPress Care Plans",
"description": "Monthly WordPress maintenance plans for Australian small businesses. Plugin updates, backups, security monitoring, and content edits. From $49/month + GST. Month-to-month, no lock-in.",
"provider": {"@id": "https://help4bis.com/#business"},
"areaServed": {"@type": "Country", "name": "Australia"},
"offers": [
{
"@type": "Offer",
"name": "Essentials Care Plan",
"description": "Monthly WordPress plugin updates, daily backups, security monitoring, uptime monitoring.",
"price": "49",
"priceCurrency": "AUD",
"priceSpecification": {
"@type": "UnitPriceSpecification",
"price": "49",
"priceCurrency": "AUD",
"unitText": "MONTH",
"billingDuration": "P1M"
},
"url": "https://help4bis.com/care-plans.html"
},
{
"@type": "Offer",
"name": "Business Care Plan",
"description": "All Essentials features plus priority support, minor content edits, and monthly performance report.",
"price": "99",
"priceCurrency": "AUD",
"priceSpecification": {
"@type": "UnitPriceSpecification",
"price": "99",
"priceCurrency": "AUD",
"unitText": "MONTH",
"billingDuration": "P1M"
},
"url": "https://help4bis.com/care-plans.html"
}
]
},
{
"@type": "WebPage",
"@id": "https://help4bis.com/care-plans.html#webpage",
"url": "https://help4bis.com/care-plans.html",
"name": "WordPress Care Plans Australia | From $49/month | HELP4BIS",
"isPartOf": {"@id": "https://help4bis.com/#website"},
"speakable": {
"@type": "SpeakableSpecification",
"cssSelector": ["h1", ".hero__lead", ".section-subtitle"]
},
"breadcrumb": {
"@type": "BreadcrumbList",
"itemListElement": [
{"@type": "ListItem", "position": 1, "name": "Home", "item": "https://help4bis.com/"},
{"@type": "ListItem", "position": 2, "name": "WordPress Care Plans", "item": "https://help4bis.com/care-plans.html"}
]
}
},
{
"@type": "FAQPage",
"@id": "https://help4bis.com/care-plans.html#faq",
"mainEntity": [
{
"@type": "Question",
"name": "Can I use a WordPress care plan with any hosting provider?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Yes, SiteGround, Kinsta, Cloudways, WP Engine, cPanel hosts, even GoDaddy. If it's WordPress, we can manage it. You can stay on your current host, or move to our Brisbane server, either way, the care plan price stays the same. We'll handle the migration if you want to move."
}
},
{
"@type": "Question",
"name": "What if a plugin update breaks my site?",
"acceptedAnswer": {
"@type": "Answer",
"text": "We test updates before applying them to your live site. If something breaks, we catch it first. If a conflict only appears on the live site (rare), we roll back and fix it, you get notified."
}
},
{
"@type": "Question",
"name": "What do minor content edits include in a WordPress care plan?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Text changes, image swaps, link updates, and small layout tweaks. Does NOT include new pages, redesigns, custom functionality, ecommerce changes, or SEO campaigns, those are quoted separately."
}
},
{
"@type": "Question",
"name": "Is there a minimum term for a WordPress care plan?",
"acceptedAnswer": {
"@type": "Answer",
"text": "For Essentials and Business: month-to-month, cancel any time with 30 days notice. No lock-in, no exit fees."
}
},
{
"@type": "Question",
"name": "Can I upgrade to a fully managed WordPress plan including hosting?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Yes. Tailored Website Management is a different product, we design, build, host, and manage everything. It's $300 for month one (work starts immediately), then $200/month. Care plans are for maintaining a site you already have."
}
},
{
"@type": "Question",
"name": "Do you offer annual billing with a discount?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Yes, pay annually upfront and get 2 months free (effectively a 17% discount). Email project@help4bis.com to arrange annual billing."
}
}
]
}
]
}
</script>
</head>
<body>
<!-- ═══════════════════════════════════════════════
NAVIGATION
═══════════════════════════════════════════════ -->
<nav class="nav" role="navigation" aria-label="Main navigation">
<div class="container">
<div class="nav__inner">
<a class="nav__logo" href="index.html" aria-label="HELP4BIS home">
<img src="assets/images/logo-cropped.jpg" alt="HELP4BIS Logo" width="160" height="44">
</a>
<ul class="nav__links" id="nav-links" role="list">
<!-- Services dropdown -->
<li class="nav__dropdown">
<button class="nav__trigger" aria-haspopup="true" aria-expanded="false">Services <svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"/></svg></button>
<ul class="nav__dropdown-menu" role="menu">
<li class="nav__menu-group">WordPress</li>
<li><a href="managed-wordpress.html" role="menuitem">Tailored Website Management</a></li>
<li><a href="care-plans.html" role="menuitem">WP Care Plans <span class="menu-price">from $49/mo</span></a></li>
<li><a href="sos-fix.html" role="menuitem">WP SOS Fix <span class="menu-price">$97 flat</span></a></li>
<li><a href="ai-integration.html" role="menuitem">AI Integration</a></li>
<li><a href="plugin-development.html" role="menuitem">Custom Plugin Development</a></li> </ul>
</li>
<li><a href="about.html">About</a></li>
<li><a href="index.html#portfolio">Our Work</a></li>
<li><a href="index.html#pricing">Pricing</a></li>
<li><a href="blog/index.html">Blog</a></li>
<li><a href="your-first-week-with-ai.html">AI Guide</a></li>
<li><a href="contact.html">Contact</a></li>
<!-- Mobile CTA (inside nav drawer) -->
<li class="nav__cta-mobile" aria-hidden="true">
<a href="contact.html" class="btn btn-primary">Get Started</a>
<a href="sos-fix.html" class="btn btn-secondary">SOS Fix, $97</a>
</li>
</ul>
<div class="nav__cta">
<a href="sos-fix.html" class="btn btn-secondary btn-sm">SOS Fix $97</a>
<a href="contact.html" class="btn btn-primary btn-sm">Get Started</a>
</div>
<button class="nav__burger" id="nav-burger" aria-label="Open menu" aria-expanded="false" aria-controls="nav-links">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><line x1="3" y1="12" x2="21" y2="12"/><line x1="3" y1="6" x2="21" y2="6"/><line x1="3" y1="18" x2="21" y2="18"/></svg>
</button>
</div>
</div>
</nav>
<!-- ═══════════════════════════════════════════════
PAGE HERO
═══════════════════════════════════════════════ -->
<section class="page-hero" aria-labelledby="hero-heading">
<div class="container">
<nav class="breadcrumb" aria-label="Breadcrumb">
<a href="index.html">Home</a>
<span aria-hidden="true">›</span>
<a href="index.html#services">Services</a>
<span aria-hidden="true">›</span>
WP Care Plans
</nav>
<p class="eyebrow">WP Care Plans</p>
<h1 id="hero-heading">Everything your small business website needs, handled.</h1>
<p>No contracts. No corporate processes. No IT department required.</p>
<p style="margin-top: 1rem; max-width: 680px;">We work exclusively with local tradies, small businesses, cafés, community groups, and owner-operators who just want their website to work, without headaches. If you run a Fortune 500 company, this isn't for you. If you run a plumbing business, bakery, landscaping service, or local shop, you're in the right place.</p>
</div>
</section>
<!-- ═══════════════════════════════════════════════
WHO THIS IS FOR / NOT FOR
═══════════════════════════════════════════════ -->
<section class="section section--alt" aria-labelledby="who-heading">
<div class="container">
<div class="services__grid" style="grid-template-columns: repeat(2, 1fr); max-width: 960px; margin: 0 auto;">
<div class="service-card reveal">
<div class="service-card__icon" aria-hidden="true">
<svg xmlns="http://www.w3.org/2000/svg" width="26" height="26" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"/></svg>
</div>
<h2 id="who-heading" style="font-size: 1.35rem;">Who this is for</h2>
<ul style="margin-top: 0.75rem; padding-left: 0; list-style: none; display: flex; flex-direction: column; gap: 0.5rem;">
<li style="display: flex; align-items: center; gap: 0.5rem;">
<svg xmlns="http://www.w3.org/2000/svg" width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="#16A34A" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"/></svg>
Tradies
</li>
<li style="display: flex; align-items: center; gap: 0.5rem;">
<svg xmlns="http://www.w3.org/2000/svg" width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="#16A34A" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"/></svg>
Local service businesses
</li>
<li style="display: flex; align-items: center; gap: 0.5rem;">
<svg xmlns="http://www.w3.org/2000/svg" width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="#16A34A" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"/></svg>
Cafés &amp; restaurants
</li>
<li style="display: flex; align-items: center; gap: 0.5rem;">
<svg xmlns="http://www.w3.org/2000/svg" width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="#16A34A" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"/></svg>
Retail shops
</li>
<li style="display: flex; align-items: center; gap: 0.5rem;">
<svg xmlns="http://www.w3.org/2000/svg" width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="#16A34A" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"/></svg>
Community organisations
</li>
<li style="display: flex; align-items: center; gap: 0.5rem;">
<svg xmlns="http://www.w3.org/2000/svg" width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="#16A34A" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"/></svg>
Owner-operators
</li>
<li style="display: flex; align-items: center; gap: 0.5rem;">
<svg xmlns="http://www.w3.org/2000/svg" width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="#16A34A" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"/></svg>
Mum-and-dad businesses
</li>
</ul>
<p style="margin-top: 1rem; font-weight: 500;">If you don't have an internal IT team, we're built for you.</p>
</div>
<div class="service-card reveal">
<div class="service-card__icon" aria-hidden="true">
<svg xmlns="http://www.w3.org/2000/svg" width="26" height="26" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><line x1="18" y1="6" x2="6" y2="18"/><line x1="6" y1="6" x2="18" y2="18"/></svg>
</div>
<h2 style="font-size: 1.35rem;">Who this is not for</h2>
<ul style="margin-top: 0.75rem; padding-left: 0; list-style: none; display: flex; flex-direction: column; gap: 0.5rem;">
<li style="display: flex; align-items: center; gap: 0.5rem;">
<svg xmlns="http://www.w3.org/2000/svg" width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="#D1D5DB" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><line x1="18" y1="6" x2="6" y2="18"/><line x1="6" y1="6" x2="18" y2="18"/></svg>
Enterprise organisations
</li>
<li style="display: flex; align-items: center; gap: 0.5rem;">
<svg xmlns="http://www.w3.org/2000/svg" width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="#D1D5DB" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><line x1="18" y1="6" x2="6" y2="18"/><line x1="6" y1="6" x2="18" y2="18"/></svg>
Large corporations
</li>
<li style="display: flex; align-items: center; gap: 0.5rem;">
<svg xmlns="http://www.w3.org/2000/svg" width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="#D1D5DB" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><line x1="18" y1="6" x2="6" y2="18"/><line x1="6" y1="6" x2="18" y2="18"/></svg>
Government departments
</li>
<li style="display: flex; align-items: center; gap: 0.5rem;">
<svg xmlns="http://www.w3.org/2000/svg" width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="#D1D5DB" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><line x1="18" y1="6" x2="6" y2="18"/><line x1="6" y1="6" x2="18" y2="18"/></svg>
Agencies managing multiple brands
</li>
<li style="display: flex; align-items: center; gap: 0.5rem;">
<svg xmlns="http://www.w3.org/2000/svg" width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="#D1D5DB" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><line x1="18" y1="6" x2="6" y2="18"/><line x1="6" y1="6" x2="18" y2="18"/></svg>
Companies with internal IT or web teams
</li>
<li style="display: flex; align-items: center; gap: 0.5rem;">
<svg xmlns="http://www.w3.org/2000/svg" width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="#D1D5DB" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><line x1="18" y1="6" x2="6" y2="18"/><line x1="6" y1="6" x2="18" y2="18"/></svg>
High-traffic enterprise platforms
</li>
</ul>
<p style="margin-top: 1rem; font-weight: 500; color: var(--grey-mid);">If your organisation requires vendor onboarding, procurement processes, security questionnaires, or legal review, we're not the right fit.</p>
</div>
</div>
</div>
</section>
<!-- ═══════════════════════════════════════════════
PRICING CARDS
═══════════════════════════════════════════════ -->
<section class="section" id="plans" aria-labelledby="pricing-heading">
<div class="container">
<div class="text-center mb-6">
<p class="eyebrow">Choose Your Plan</p>
<h2 id="pricing-heading">Simple, honest pricing. No hidden fees.</h2>
<p class="section-subtitle">Care plans manage the WordPress layer on your existing site. Keep your current host or move to our Brisbane server, same price either way. Need a site designed and built from scratch? See the third option below. No setup fee, care plans start immediately.</p>
</div>
<div class="text-center" style="margin-bottom:1.5rem;">
<div style="background:var(--light-grey,#F8F8F8); border:2px solid var(--ink); border-radius:10px; padding:0.75rem 1.5rem; display:inline-block;">
<span style="font-weight:700;">Pay annually, get 2 months free</span>
<span style="color:var(--grey-mid); font-size:14px;"> (17% saving). <a href="mailto:project@help4bis.com" class="inline-link">Email us to arrange.</a></span>
</div>
</div>
<div class="pricing__grid">
<!-- Essentials -->
<div class="pricing-card reveal">
<h3>Essentials</h3>
<p class="pricing-card__desc">For small businesses with an existing website that just need the WordPress layer managed. Keep your current host, or move to ours, same price.</p>
<div class="pricing-card__price">
<strong>$49</strong><span> AUD/month</span>
</div>
<ul class="pricing-card__features" role="list">
<li>
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="#16A34A" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"/></svg>
WordPress core, plugin &amp; theme updates
</li>
<li>
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="#16A34A" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"/></svg>
Daily offsite backups
</li>
<li>
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="#16A34A" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"/></svg>
Security monitoring
</li>
<li>
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="#16A34A" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"/></svg>
Uptime monitoring
</li>
<li>
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="#16A34A" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"/></svg>
Monthly health report
</li>
<li class="excluded">
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="#D1D5DB" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><line x1="18" y1="6" x2="6" y2="18"/><line x1="6" y1="6" x2="18" y2="18"/></svg>
Content edits
</li>
<li class="excluded">
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="#D1D5DB" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><line x1="18" y1="6" x2="6" y2="18"/><line x1="6" y1="6" x2="18" y2="18"/></svg>
Design changes
</li>
<li class="excluded">
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="#D1D5DB" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><line x1="18" y1="6" x2="6" y2="18"/><line x1="6" y1="6" x2="18" y2="18"/></svg>
New features
</li>
<li class="excluded">
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="#D1D5DB" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><line x1="18" y1="6" x2="6" y2="18"/><line x1="6" y1="6" x2="18" y2="18"/></svg>
Emergency recovery
</li>
</ul>
<a href="contact.html?service=care-plan" class="btn btn-secondary">Start with Essentials</a>
<p style="font-size:12px; color:var(--grey-mid); margin-top:0.5rem; margin-bottom:0;">* Site hack or critical failure? The <a href="sos-fix.html" class="inline-link">WP SOS Fix ($97)</a> covers emergency recovery.</p>
</div>
<!-- Business, FEATURED -->
<div class="pricing-card pricing-card--featured reveal">
<div class="pricing-card__badge">Most Popular</div>
<h3>Business</h3>
<p class="pricing-card__desc">Everything in Essentials, plus content edits and priority response. Keep your current host, or move to ours, same price.</p>
<div class="pricing-card__price">
<strong>$99</strong><span> AUD/month</span>
</div>
<ul class="pricing-card__features" role="list">
<li>
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="#16A34A" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"/></svg>
Everything in Essentials
</li>
<li>
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="#16A34A" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"/></svg>
1 hour of minor content edits per month
</li>
<li>
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="#16A34A" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"/></svg>
Google Search Console monitoring
</li>
<li>
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="#16A34A" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"/></svg>
Monthly performance check
</li>
<li>
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="#16A34A" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"/></svg>
Priority response (within 4 business hours)
</li>
<li class="excluded">
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="#D1D5DB" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><line x1="18" y1="6" x2="6" y2="18"/><line x1="6" y1="6" x2="18" y2="18"/></svg>
New pages or redesigns
</li>
<li class="excluded">
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="#D1D5DB" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><line x1="18" y1="6" x2="6" y2="18"/><line x1="6" y1="6" x2="18" y2="18"/></svg>
Custom functionality or ecommerce changes
</li>
</ul>
<p style="font-size: 13px; color: var(--grey-mid); margin-bottom: 0.5rem;">Minor edits include: text changes, image swaps, link updates, small layout tweaks. Unused time does not roll over. Up to 4 edit requests per month.</p>
<a href="contact.html?service=care-plan" class="btn btn-primary">Start with Business</a>
</div>
<!-- Tailored Website Management callout -->
<div class="pricing-card reveal" style="background: var(--ink); color: #fff; border-color: var(--ink);">
<p class="eyebrow" style="color: var(--red); margin-bottom: 0.25rem;">Don't have a site yet?</p>
<h3 style="color: #fff;">Need us to design and build it too?</h3>
<p style="color: rgba(255,255,255,0.75); margin-bottom: 1.25rem;">Care plans manage the WordPress layer on a site you already have. If you need a site designed and built from scratch, hosted on our Brisbane server, domain, email, the lot, that's Tailored Website Management.</p>
<div style="background: rgba(255,255,255,0.08); border-radius: 8px; padding: 1rem 1.25rem; margin-bottom: 1.25rem;">
<p style="font-size: 0.95rem; font-weight: 600; color: #fff; margin-bottom: 0.5rem;">Tailored Website Management</p>
<ul style="list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 0.4rem;">
<li style="font-size: 0.875rem; color: rgba(255,255,255,0.8);">&#x2714;&nbsp; We design and build your site</li>
<li style="font-size: 0.875rem; color: rgba(255,255,255,0.8);">&#x2714;&nbsp; Hosted on our Brisbane server</li>
<li style="font-size: 0.875rem; color: rgba(255,255,255,0.8);">&#x2714;&nbsp; Domain &amp; business email managed</li>
<li style="font-size: 0.875rem; color: rgba(255,255,255,0.8);">&#x2714;&nbsp; Premium plugins included</li>
<li style="font-size: 0.875rem; color: rgba(255,255,255,0.8);">&#x2714;&nbsp; Ongoing updates and edits</li>
</ul>
</div>
<p style="font-size: 0.8rem; color: rgba(255,255,255,0.55); margin-bottom: 1.25rem;">$300 month one, then $200/month. No lock-in.</p>
<a href="managed-wordpress.html" class="btn btn-primary">See Tailored Website Management</a>
</div>
</div>
<!-- WP SOS Fix callout -->
<div class="reveal" style="margin-top: 2.5rem; background: var(--light-grey, #F8F8F8); border: 2px solid var(--red); border-radius: var(--radius-lg, 12px); padding: 2rem; max-width: 720px; margin-left: auto; margin-right: auto;">
<div style="display: flex; flex-wrap: wrap; gap: 1.5rem; align-items: flex-start; justify-content: space-between;">
<div style="flex: 1; min-width: 260px;">
<p class="eyebrow" style="margin-bottom: 0.25rem;">One-off fix</p>
<h3 style="margin-bottom: 0.25rem;">WP SOS Fix, $97 flat</h3>
<p style="margin-bottom: 0.5rem;">Site down? White screen? Plugin conflict? We fix it, or you don't pay.</p>
<p style="font-size: 13px; color: var(--grey-mid);">Covers: site not loading, plugin conflicts, minor errors.<br>Does not cover: malware cleanup, full hack recovery, server issues, hosting problems, or complex rebuilds.</p>
</div>
<div style="display: flex; align-items: center;">
<a href="sos-fix.html" class="btn btn-primary">Get the SOS Fix</a>
</div>
</div>
</div>
<p class="text-center" style="font-size:13px; color:var(--grey-mid); margin-top:0.5rem;">All prices shown are exclusive of GST. GST (10%) applies to Australian clients.</p>
<p class="text-center mt-4" style="color:var(--grey-mid); font-size:15px;">
Not sure which plan? Email us, <a href="mailto:project@help4bis.com" class="inline-link">project@help4bis.com</a>, and we'll tell you honestly which one fits your situation. No upsell.
</p>
</div>
</section>
<!-- ═══════════════════════════════════════════════
WHAT WE DO EACH MONTH
═══════════════════════════════════════════════ -->
<section class="section section--alt" aria-labelledby="tasks-heading">
<div class="container">
<div class="text-center mb-6">
<p class="eyebrow">Every Single Month</p>
<h2 id="tasks-heading">What we actually do each month</h2>
<p class="section-subtitle">Not vague "monitoring", real maintenance, documented and reported.</p>
</div>
<div class="services__grid">
<div class="service-card reveal">
<div class="service-card__icon" aria-hidden="true">
<svg xmlns="http://www.w3.org/2000/svg" width="26" height="26" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="16 18 22 12 16 6"/><polyline points="8 6 2 12 8 18"/></svg>
</div>
<h3>Updates</h3>
<p>Every plugin, theme, and WordPress core update tested before applied to your live site. No surprises, no broken pages.</p>
</div>
<div class="service-card reveal">
<div class="service-card__icon" aria-hidden="true">
<svg xmlns="http://www.w3.org/2000/svg" width="26" height="26" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"/><polyline points="7 10 12 15 17 10"/><line x1="12" y1="15" x2="12" y2="3"/></svg>
</div>
<h3>Backups</h3>
<p>Daily backups stored off-server. 30-day retention. If something goes wrong, we can restore your site to any point in the last 30 days.</p>
</div>
<div class="service-card reveal">
<div class="service-card__icon" aria-hidden="true">
<svg xmlns="http://www.w3.org/2000/svg" width="26" height="26" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z"/></svg>
</div>
<h3>Security</h3>
<p>Daily malware scans, login protection, SSL monitoring, and firewall rules. If a scan flags anything, we investigate and resolve, you get notified by email.</p>
</div>
<div class="service-card reveal">
<div class="service-card__icon" aria-hidden="true">
<svg xmlns="http://www.w3.org/2000/svg" width="26" height="26" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"/><polyline points="14 2 14 8 20 8"/><line x1="16" y1="13" x2="8" y2="13"/><line x1="16" y1="17" x2="8" y2="17"/><polyline points="10 9 9 9 8 9"/></svg>
</div>
<h3>Reporting</h3>
<p>Monthly report showing what was done, site speed score, uptime percentage, and any recommendations. You always know exactly what's happening with your site.</p>
</div>
</div>
</div>
</section>
<!-- ═══════════════════════════════════════════════
HOW IT WORKS
═══════════════════════════════════════════════ -->
<section class="section" aria-labelledby="how-heading">
<div class="container">
<div class="text-center mb-6">
<p class="eyebrow">Getting Started</p>
<h2 id="how-heading">How it works</h2>
<p class="section-subtitle">Three steps. No phone call required.</p>
</div>
<div class="services__grid" style="grid-template-columns: repeat(3, 1fr); max-width: 900px; margin: 0 auto;">
<div class="service-card reveal" style="text-align: center; align-items: center;">
<div style="width: 56px; height: 56px; background: var(--red); border-radius: 50%; display: flex; align-items: center; justify-content: center; margin-bottom: var(--sp-3);">
<span style="font-family: var(--font-head); font-size: 22px; font-weight: 700; color: var(--white);">1</span>
</div>
<h3 style="font-size: 17px;">Submit your site details</h3>
<p>Send us your site URL, hosting provider, and WordPress admin access. We'll handle the rest.</p>
</div>
<div class="service-card reveal" style="text-align: center; align-items: center;">
<div style="width: 56px; height: 56px; background: var(--red); border-radius: 50%; display: flex; align-items: center; justify-content: center; margin-bottom: var(--sp-3);">
<span style="font-family: var(--font-head); font-size: 22px; font-weight: 700; color: var(--white);">2</span>
</div>
<h3 style="font-size: 17px;">We audit and start within 48 hours</h3>
<p>We audit your site, set up monitoring tools, configure backups, and start maintenance within 48 hours of receiving access.</p>
</div>
<div class="service-card reveal" style="text-align: center; align-items: center;">
<div style="width: 56px; height: 56px; background: var(--red); border-radius: 50%; display: flex; align-items: center; justify-content: center; margin-bottom: var(--sp-3);">
<span style="font-family: var(--font-head); font-size: 22px; font-weight: 700; color: var(--white);">3</span>
</div>
<h3 style="font-size: 17px;">Monthly reports, ongoing updates</h3>
<p>Receive your first monthly report and ongoing update notifications via email. You're always in the loop.</p>
</div>
</div>
</div>
</section>
<!-- ═══════════════════════════════════════════════
FAQ
═══════════════════════════════════════════════ -->
<section class="section section--alt" id="faq" aria-labelledby="faq-heading">
<div class="container">
<div class="text-center mb-6">
<p class="eyebrow">Questions</p>
<h2 id="faq-heading">Common questions about care plans</h2>
</div>
<div class="faq__list" role="list">
<details class="faq-item" role="listitem">
<summary class="faq-item__question">
Can I use this with any hosting provider?
<span class="faq-item__icon" aria-hidden="true">
<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><line x1="12" y1="5" x2="12" y2="19"/><line x1="5" y1="12" x2="19" y2="12"/></svg>
</span>
</summary>
<div class="faq-item__answer">
Yes, SiteGround, Kinsta, Cloudways, WP Engine, cPanel hosts, even GoDaddy. If it's WordPress, we can manage it. You can stay on your current host, or move to our Brisbane server, either way, the care plan price stays the same. We'll handle the migration if you want to move.
</div>
</details>
<details class="faq-item" role="listitem">
<summary class="faq-item__question">
What if a plugin update breaks my site?
<span class="faq-item__icon" aria-hidden="true">
<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><line x1="12" y1="5" x2="12" y2="19"/><line x1="5" y1="12" x2="19" y2="12"/></svg>
</span>
</summary>
<div class="faq-item__answer">
We test updates before applying them to your live site, that's best practise and it catches most conflicts before you ever see them. If something breaks, we catch it first. If a conflict only appears on the live site (rare), we roll back and fix it, you get notified.
</div>
</details>
<details class="faq-item" role="listitem">
<summary class="faq-item__question">
What do "minor content edits" include?
<span class="faq-item__icon" aria-hidden="true">
<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><line x1="12" y1="5" x2="12" y2="19"/><line x1="5" y1="12" x2="19" y2="12"/></svg>
</span>
</summary>
<div class="faq-item__answer">
Text changes, image swaps, link updates, and small layout tweaks. Does NOT include new pages, redesigns, custom functionality, ecommerce changes, or SEO campaigns, those are quoted separately.
</div>
</details>
<details class="faq-item" role="listitem">
<summary class="faq-item__question">
Is there a minimum term?
<span class="faq-item__icon" aria-hidden="true">
<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><line x1="12" y1="5" x2="12" y2="19"/><line x1="5" y1="12" x2="19" y2="12"/></svg>
</span>
</summary>
<div class="faq-item__answer">
For Essentials and Business: month-to-month, cancel any time with 30 days notice. No lock-in, no exit fees. For <a href="managed-wordpress.html">Tailored Website Management</a>: $300 covers month one, then $200/month, same deal from there, cancel with 30 days notice.
</div>
</details>
<details class="faq-item" role="listitem">
<summary class="faq-item__question">
Can I upgrade to a plan where you handle everything, including hosting?
<span class="faq-item__icon" aria-hidden="true">
<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><line x1="12" y1="5" x2="12" y2="19"/><line x1="5" y1="12" x2="19" y2="12"/></svg>
</span>
</summary>
<div class="faq-item__answer">
Yes. <a href="managed-wordpress.html">Tailored Website Management</a> is a different product, we design, build, host, and manage everything. It's $300 for month one (work starts immediately), then $200/month. Care plans are for maintaining a site you already have.
</div>
</details>
<details class="faq-item" role="listitem">
<summary class="faq-item__question">
Do you offer annual billing with a discount?
<span class="faq-item__icon" aria-hidden="true">
<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><line x1="12" y1="5" x2="12" y2="19"/><line x1="5" y1="12" x2="19" y2="12"/></svg>
</span>
</summary>
<div class="faq-item__answer">
Yes, pay annually upfront and get 2 months free (effectively a 17% discount). <a href="mailto:project@help4bis.com" class="inline-link">Email us</a> to arrange annual billing.
</div>
</details>
</div>
</div>
</section>
<!-- ═══════════════════════════════════════════════
TRUST SECTION, BUILT FOR SMALL BUSINESS
═══════════════════════════════════════════════ -->
<section class="section" aria-labelledby="trust-heading">
<div class="container">
<div class="text-center mb-6">
<p class="eyebrow">Why HELP4BIS</p>
<h2 id="trust-heading">Built for Small Business, Not Big Business</h2>
<p class="section-subtitle" style="max-width: 640px; margin: 0 auto;">Large corporations need large agencies. Small businesses need someone they can talk to. We focus on practical, fast solutions, not paperwork, meetings, and corporate processes. You deal directly with the people doing the work.</p>
</div>
<div class="services__grid" style="grid-template-columns: repeat(3, 1fr); max-width: 860px; margin: 0 auto;">
<div class="service-card reveal" style="text-align: center; align-items: center;">
<div class="service-card__icon" aria-hidden="true">
<svg xmlns="http://www.w3.org/2000/svg" width="26" height="26" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M21 10c0 7-9 13-9 13s-9-6-9-13a9 9 0 0 1 18 0z"/><circle cx="12" cy="10" r="3"/></svg>
</div>
<h3 style="font-size: 16px;">Brisbane-based</h3>
<p style="font-size: 14px;">We're local. Same time zone, same business culture, no outsourcing.</p>
</div>
<div class="service-card reveal" style="text-align: center; align-items: center;">
<div class="service-card__icon" aria-hidden="true">
<svg xmlns="http://www.w3.org/2000/svg" width="26" height="26" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z"/></svg>
</div>
<h3 style="font-size: 16px;">Plain English</h3>
<p style="font-size: 14px;">No jargon. We explain what we did and why, in language that makes sense.</p>
</div>
<div class="service-card reveal" style="text-align: center; align-items: center;">
<div class="service-card__icon" aria-hidden="true">
<svg xmlns="http://www.w3.org/2000/svg" width="26" height="26" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="4" width="18" height="18" rx="2" ry="2"/><line x1="16" y1="2" x2="16" y2="6"/><line x1="8" y1="2" x2="8" y2="6"/><line x1="3" y1="10" x2="21" y2="10"/></svg>
</div>
<h3 style="font-size: 16px;">No lock-in contracts</h3>
<p style="font-size: 14px;">Care plans are month-to-month from day one. Cancel with 30 days notice. Your site, your choice.</p>
</div>
<div class="service-card reveal" style="text-align: center; align-items: center;">
<div class="service-card__icon" aria-hidden="true">
<svg xmlns="http://www.w3.org/2000/svg" width="26" height="26" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><line x1="12" y1="1" x2="12" y2="23"/><path d="M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"/></svg>
</div>
<h3 style="font-size: 16px;">Predictable pricing</h3>
<p style="font-size: 14px;">Fixed monthly fee. No surprise invoices. You know exactly what you're paying.</p>
</div>
<div class="service-card reveal" style="text-align: center; align-items: center;">
<div class="service-card__icon" aria-hidden="true">
<svg xmlns="http://www.w3.org/2000/svg" width="26" height="26" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"/><polyline points="12 6 12 12 16 14"/></svg>
</div>
<h3 style="font-size: 16px;">Fast response times</h3>
<p style="font-size: 14px;">Priority response on the Business plan, within 4 business hours. No waiting days for a reply.</p>
</div>
<div class="service-card reveal" style="text-align: center; align-items: center;">
<div class="service-card__icon" aria-hidden="true">
<svg xmlns="http://www.w3.org/2000/svg" width="26" height="26" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M17 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2"/><circle cx="9" cy="7" r="4"/><path d="M23 21v-2a4 4 0 0 0-3-3.87"/><path d="M16 3.13a4 4 0 0 1 0 7.75"/></svg>
</div>
<h3 style="font-size: 16px;">Built for businesses without IT teams</h3>
<p style="font-size: 14px;">If you don't have internal technical support, that's exactly who we're here for.</p>
</div>
</div>
</div>
</section>
<!-- ═══════════════════════════════════════════════
CTA BAND
═══════════════════════════════════════════════ -->
<section class="cta-band" aria-labelledby="cta-heading">
<div class="container">
<div class="cta-band__content">
<p class="eyebrow" style="color:rgba(255,255,255,.5)">Ready to hand it over?</p>
<h2 id="cta-heading">WordPress maintenance that actually happens.</h2>
<p>Submit your site details and we'll have you covered by tomorrow.</p>
<div class="cta-band__actions">
<a href="contact.html?service=care-plan" class="btn btn-primary btn-lg">Start Your Care Plan</a>
<a href="mailto:project@help4bis.com" class="btn btn-outline-light btn-lg">Email Us First</a>
</div>
</div>
</div>
</section>
<!-- ═══════════════════════════════════════════════
FOOTER
═══════════════════════════════════════════════ -->
<footer class="footer" aria-label="Site footer">
<div class="container">
<div class="footer__grid">
<div class="footer__brand">
<img src="assets/images/logo-cropped.jpg" alt="HELP4BIS" width="140" height="38">
<p>Managed WordPress hosting and maintenance for Australian small businesses. Brisbane-based, personal service, WordPress specialist, Brisbane.</p>
<p style="font-size:13px; color:rgba(255,255,255,.4);">Dutch Digital Dynamics Pty Ltd · ABN 86 081 237 087</p>
</div>
<div class="footer__col">
<h4>Services</h4>
<ul class="footer__links">
<li><a href="managed-wordpress.html">Tailored Website Management</a></li>
<li><a href="care-plans.html">WP Care Plans</a></li>
<li><a href="sos-fix.html">WP SOS Fix</a></li>
<li><a href="ai-integration.html">AI Integration</a></li>
<li><a href="plugin-development.html">Plugin Development</a></li> </ul>
</div>
<div class="footer__col">
<h4>Company</h4>
<ul class="footer__links">
<li><a href="about.html">About Us</a></li>
<li><a href="index.html#portfolio">Our Work</a></li>
<li><a href="index.html#testimonials">Client Feedback</a></li>
<li><a href="blog/index.html">Blog</a></li>
<li><a href="contact.html">Contact</a></li>
</ul>
</div>
<div class="footer__col">
<h4>Contact</h4>
<ul class="footer__links">
<li><a href="mailto:project@help4bis.com">project@help4bis.com</a></li>
<li><a href="contact.html">Submit a Brief</a></li>
<li><a href="sos-fix.html">Emergency Fix</a></li>
</ul>
<p style="margin-top:1rem; font-size:13px; color:rgba(255,255,255,.4);">
Brisbane, Queensland<br>
Response within 24 business hours
</p>
</div>
</div>
<div class="footer__bottom">
<span>© 2026 HELP4BIS, a trading name of Dutch Digital Dynamics Pty Ltd · ABN 86 081 237 087</span>
<span>
<a href="privacy.html">Privacy Policy</a> ·
<a href="terms.html">Terms</a>
</span>
</div>
</div>
</footer>
<!-- Back to top -->
<button id="back-to-top" aria-label="Back to top" style="position:fixed;bottom:24px;right:24px;width:44px;height:44px;background:var(--red);border:none;border-radius:50%;color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .3s ease;box-shadow:var(--shadow-md);">
<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="18 15 12 9 6 15"/></svg>
</button>
<script src="assets/js/main.js"></script>
<script src="/analytics/tracker.js" defer></script>
<footer style="margin-top:48px;padding:24px;background:#f0f7f2;border-left:4px solid #18604A;border-radius:8px;font-family:'ABeeZee',sans-serif;font-size:1rem;line-height:1.65;color:#1A1A1A;">
<h3 style="font-family:'Poppins',sans-serif;color:#1A5C2E;font-size:1.1rem;margin:0 0 10px;">A few words from us</h3>
<p style="margin:0 0 8px;">We're not the big shops. We have time to sit down with you and find the best fit for your business, not the best fit for a templated process. Every client we work with is treated as if they're the only one on our desk, because for the time we're with them, they are.</p> <p style="margin:0 0 8px;">It means we're slower to start than a shop that sells you a package off the shelf. It also means we don't sell you a package off the shelf. You get a system that fits how you actually run your business, and you get to talk to the person who built it whenever you need to.</p>
<p style="margin:0;color:#555555;font-size:0.9rem;">Page updated 26/05/2026. Contact: <a href="mailto:project@help4bis.com" style="color:#18604A;">project@help4bis.com</a>.</p>
</footer>
</body>
</html>
+5
View File
@@ -0,0 +1,5 @@
{
"require": {
"phpmailer/phpmailer": "^7.0"
}
}
+101
View File
@@ -0,0 +1,101 @@
{
"_readme": [
"This file locks the dependencies of your project to a known state",
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically"
],
"content-hash": "826f515f5ef16946d3e3ee3e3205b25e",
"packages": [
{
"name": "phpmailer/phpmailer",
"version": "v7.0.2",
"source": {
"type": "git",
"url": "https://github.com/PHPMailer/PHPMailer.git",
"reference": "ebf1655bd5b99b3f97e1a3ec0a69e5f4cd7ea088"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/PHPMailer/PHPMailer/zipball/ebf1655bd5b99b3f97e1a3ec0a69e5f4cd7ea088",
"reference": "ebf1655bd5b99b3f97e1a3ec0a69e5f4cd7ea088",
"shasum": ""
},
"require": {
"ext-ctype": "*",
"ext-filter": "*",
"ext-hash": "*",
"php": ">=5.5.0"
},
"require-dev": {
"dealerdirect/phpcodesniffer-composer-installer": "^1.0",
"doctrine/annotations": "^1.2.6 || ^1.13.3",
"php-parallel-lint/php-console-highlighter": "^1.0.0",
"php-parallel-lint/php-parallel-lint": "^1.3.2",
"phpcompatibility/php-compatibility": "^10.0.0@dev",
"squizlabs/php_codesniffer": "^3.13.5",
"yoast/phpunit-polyfills": "^1.0.4"
},
"suggest": {
"decomplexity/SendOauth2": "Adapter for using XOAUTH2 authentication",
"directorytree/imapengine": "For uploading sent messages via IMAP, see gmail example",
"ext-imap": "Needed to support advanced email address parsing according to RFC822",
"ext-mbstring": "Needed to send email in multibyte encoding charset or decode encoded addresses",
"ext-openssl": "Needed for secure SMTP sending and DKIM signing",
"greew/oauth2-azure-provider": "Needed for Microsoft Azure XOAUTH2 authentication",
"hayageek/oauth2-yahoo": "Needed for Yahoo XOAUTH2 authentication",
"league/oauth2-google": "Needed for Google XOAUTH2 authentication",
"psr/log": "For optional PSR-3 debug logging",
"symfony/polyfill-mbstring": "To support UTF-8 if the Mbstring PHP extension is not enabled (^1.2)",
"thenetworg/oauth2-azure": "Needed for Microsoft XOAUTH2 authentication"
},
"type": "library",
"autoload": {
"psr-4": {
"PHPMailer\\PHPMailer\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"LGPL-2.1-only"
],
"authors": [
{
"name": "Marcus Bointon",
"email": "phpmailer@synchromedia.co.uk"
},
{
"name": "Jim Jagielski",
"email": "jimjag@gmail.com"
},
{
"name": "Andy Prevost",
"email": "codeworxtech@users.sourceforge.net"
},
{
"name": "Brent R. Matzelle"
}
],
"description": "PHPMailer is a full-featured email creation and transfer class for PHP",
"support": {
"issues": "https://github.com/PHPMailer/PHPMailer/issues",
"source": "https://github.com/PHPMailer/PHPMailer/tree/v7.0.2"
},
"funding": [
{
"url": "https://github.com/Synchro",
"type": "github"
}
],
"time": "2026-01-09T18:02:33+00:00"
}
],
"packages-dev": [],
"aliases": [],
"minimum-stability": "stable",
"stability-flags": {},
"prefer-stable": false,
"prefer-lowest": false,
"platform": {},
"platform-dev": {},
"plugin-api-version": "2.9.0"
}
+433
View File
@@ -0,0 +1,433 @@
<!DOCTYPE html>
<!-- Version: 1.2.0 | Created: 2026-03-13 | Updated: 2026-08-16 -->
<html lang="en-AU">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Contact HELP4BIS | Submit a Brief or Ask a Question</title>
<meta name="description" content="Submit a brief to HELP4BIS, no phone call required. Describe what your WordPress site needs and get a response within one business day. Based in Brisbane, serving all of Australia.">
<meta name="keywords" content="contact HELP4BIS, WordPress help Brisbane, WordPress support enquiry, managed WordPress quote Australia, submit WordPress brief, get WordPress quote, WordPress help small business">
<meta name="author" content="HELP4BIS">
<meta name="publisher" content="Dutch Digital Dynamics Pty Ltd">
<meta name="copyright" content="Dutch Digital Dynamics Pty Ltd">
<meta name="language" content="en-AU">
<meta name="revisit-after" content="7 days">
<meta name="category" content="WordPress Services, Web Development, Small Business Technology">
<meta name="classification" content="Business/Technology">
<meta name="coverage" content="Australia">
<meta name="distribution" content="global">
<meta name="rating" content="general">
<meta name="geo.region" content="AU-QLD">
<meta name="geo.placename" content="Brisbane, Queensland">
<meta name="geo.position" content="-27.4698;153.0251">
<meta name="ICBM" content="-27.4698, 153.0251">
<link rel="canonical" href="https://help4bis.com/contact.html">
<meta name="robots" content="index, follow">
<meta property="og:type" content="website">
<meta property="og:url" content="https://help4bis.com/contact.html">
<meta property="og:site_name" content="HELP4BIS">
<meta property="og:title" content="Contact HELP4BIS | Submit a Brief or Ask a Question">
<meta property="og:description" content="Submit a brief to HELP4BIS, no phone call required. Describe what your WordPress site needs and get a response within one business day.">
<meta property="og:image" content="https://help4bis.com/assets/images/og-social-card.jpg">
<meta property="og:image:width" content="1200">
<meta property="og:image:height" content="630">
<meta property="og:image:alt" content="HELP4BIS, WordPress services for Australian small businesses">
<meta property="og:locale" content="en_AU">
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:site" content="@help4bis">
<meta name="twitter:title" content="Contact HELP4BIS | Submit a Brief or Ask a Question">
<meta name="twitter:description" content="No phone call required. Tell us what you need and we'll respond within one business day with exactly what we recommend and what it costs.">
<meta name="twitter:image" content="https://help4bis.com/assets/images/og-social-card.jpg">
<meta name="twitter:image:alt" content="HELP4BIS">
<link rel="icon" type="image/jpeg" href="assets/images/logo-favicon.jpg">
<!-- Fonts -->
<!-- Icons (Lucide) -->
<link rel="stylesheet" href="assets/css/style.css">
<!-- JSON-LD Contact Schema -->
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@graph": [
{
"@type": "ContactPage",
"@id": "https://help4bis.com/contact.html#webpage",
"url": "https://help4bis.com/contact.html",
"name": "Contact HELP4BIS | Submit a Brief or Ask a Question",
"description": "Submit a brief to HELP4BIS. Response within one business day. No phone call required.",
"isPartOf": {"@id": "https://help4bis.com/#website"},
"about": {"@id": "https://help4bis.com/#business"},
"breadcrumb": {
"@type": "BreadcrumbList",
"itemListElement": [
{"@type": "ListItem", "position": 1, "name": "Home", "item": "https://help4bis.com/"},
{"@type": "ListItem", "position": 2, "name": "Contact", "item": "https://help4bis.com/contact.html"}
]
}
},
{
"@type": "Organization",
"@id": "https://help4bis.com/#business",
"name": "HELP4BIS",
"email": "project@help4bis.com",
"contactPoint": {
"@type": "ContactPoint",
"contactType": "customer service",
"email": "project@help4bis.com",
"areaServed": "AU",
"availableLanguage": "English"
}
}
]
}
</script>
</head>
<body>
<!-- ═══════════════════════════════════════════════
NAVIGATION
═══════════════════════════════════════════════ -->
<nav class="nav" role="navigation" aria-label="Main navigation">
<div class="container">
<div class="nav__inner">
<a class="nav__logo" href="index.html" aria-label="HELP4BIS home">
<img src="assets/images/logo-cropped.jpg" alt="HELP4BIS Logo" width="160" height="44">
</a>
<ul class="nav__links" id="nav-links" role="list">
<!-- Services dropdown -->
<li class="nav__dropdown">
<button class="nav__trigger" aria-haspopup="true" aria-expanded="false">Services <svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"/></svg></button>
<ul class="nav__dropdown-menu" role="menu">
<li class="nav__menu-group">WordPress</li>
<li><a href="managed-wordpress.html" role="menuitem">Tailored Website Management</a></li>
<li><a href="care-plans.html" role="menuitem">WP Care Plans <span class="menu-price">from $49/mo</span></a></li>
<li><a href="sos-fix.html" role="menuitem">WP SOS Fix <span class="menu-price">$97 flat</span></a></li>
<li><a href="ai-integration.html" role="menuitem">AI Integration</a></li>
<li><a href="plugin-development.html" role="menuitem">Custom Plugin Development</a></li> </ul>
</li>
<li><a href="about.html">About</a></li>
<li><a href="index.html#portfolio">Our Work</a></li>
<li><a href="index.html#pricing">Pricing</a></li>
<li><a href="blog/index.html">Blog</a></li>
<li><a href="your-first-week-with-ai.html">AI Guide</a></li>
<li><a href="contact.html">Contact</a></li>
<!-- Mobile CTA (inside nav drawer) -->
<li class="nav__cta-mobile" aria-hidden="true">
<a href="contact.html" class="btn btn-primary">Get Started</a>
<a href="sos-fix.html" class="btn btn-secondary">SOS Fix, $97</a>
</li>
</ul>
<div class="nav__cta">
<a href="sos-fix.html" class="btn btn-secondary btn-sm">SOS Fix $97</a>
<a href="contact.html" class="btn btn-primary btn-sm">Get Started</a>
</div>
<button class="nav__burger" id="nav-burger" aria-label="Open menu" aria-expanded="false" aria-controls="nav-links">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><line x1="3" y1="12" x2="21" y2="12"/><line x1="3" y1="6" x2="21" y2="6"/><line x1="3" y1="18" x2="21" y2="18"/></svg>
</button>
</div>
</div>
</nav>
<!-- ═══════════════════════════════════════════════
PAGE HERO
═══════════════════════════════════════════════ -->
<section class="page-hero" aria-labelledby="contact-heading">
<div class="container">
<nav class="breadcrumb" aria-label="Breadcrumb">
<ol>
<li><a href="index.html">Home</a></li>
<li aria-current="page">Contact</li>
</ol>
</nav>
<p class="eyebrow">Contact</p>
<h1 id="contact-heading">Tell us what you need. We'll respond within one business day.</h1>
<p class="hero__lead" style="max-width:620px;">No phone call required. Fill in the brief below and we'll come back with exactly what we recommend and what it costs. No obligation.</p>
</div>
</section>
<!-- ═══════════════════════════════════════════════
CONTACT, TWO COLUMN
═══════════════════════════════════════════════ -->
<section class="section section--alt" aria-label="Contact form">
<div class="container">
<div class="contact__grid">
<!-- LEFT: Intake Form -->
<div class="reveal">
<form class="intake-form" name="contact" method="POST" action="#" novalidate>
<div aria-hidden="true" style="position:absolute;left:-9999px;top:auto;width:1px;height:1px;overflow:hidden;">
<label for="hp-trap">Leave this field empty</label>
<input type="text" id="hp-trap" name="hp_trap" tabindex="-1" autocomplete="off" value="">
</div>
<div class="intake-form__fields">
<!-- Name + Email side by side -->
<div class="intake-form__row">
<div class="intake-form__field">
<label for="name">Your name <span aria-hidden="true" style="color:var(--red);">*</span></label>
<input type="text" id="name" name="name" required autocomplete="name" placeholder="Jane Smith">
</div>
<div class="intake-form__field">
<label for="email">Email address <span aria-hidden="true" style="color:var(--red);">*</span></label>
<input type="email" id="email" name="email" required autocomplete="email" placeholder="jane@yourcompany.com.au">
</div>
</div>
<div class="intake-form__field">
<label for="website">Website URL <span class="optional">(if you have one)</span></label>
<input type="url" id="website" name="website" autocomplete="url" placeholder="https://yoursite.com.au">
</div>
<div class="intake-form__field">
<label for="service">What do you need? <span aria-hidden="true" style="color:var(--red);">*</span></label>
<select id="service" name="service" required>
<option value="" disabled selected>Select a service…</option>
<option value="fix">Fix a broken WordPress site</option>
<option value="care-plan">Ongoing maintenance / care plan</option>
<option value="managed">Full managed WordPress hosting</option>
<option value="ai">AI integration</option>
<option value="plugin">Custom plugin development</option>
<option value="one-page">One-page website build</option>
<option value="other">Other / I'm not sure</option>
</select>
</div>
<div class="intake-form__field">
<label for="details">Tell us about it <span aria-hidden="true" style="color:var(--red);">*</span></label>
<textarea id="details" name="details" rows="6" required placeholder="Describe what's happening or what you're trying to achieve. The more detail, the faster we can help."></textarea>
</div>
<!-- Urgency + Referral side by side -->
<div class="intake-form__row">
<div class="intake-form__field">
<label for="urgency">How urgent?</label>
<select id="urgency" name="urgency">
<option value="" disabled selected>Select urgency…</option>
<option value="not-urgent">Not urgent, just planning</option>
<option value="fairly-soon">Fairly soon, next few weeks</option>
<option value="asap">ASAP, site has issues now</option>
</select>
</div>
<div class="intake-form__field">
<label for="referral">How did you find us?</label>
<select id="referral" name="referral">
<option value="" disabled selected>Select…</option>
<option value="google">Google search</option>
<option value="word-of-mouth">Word of mouth</option>
<option value="existing-client">Existing client</option>
<option value="other">Other</option>
</select>
</div>
</div>
<div class="intake-form__actions">
<button type="submit" class="btn btn-primary btn-lg">Send My Brief</button>
<p class="intake-form__privacy">No spam. No cold calls. Just a response within one business day.</p>
</div>
</div>
<!-- Success message (shown after submit) -->
<div class="intake-form__success" aria-live="polite">
<div class="intake-form__success-icon">
<svg xmlns="http://www.w3.org/2000/svg" width="28" height="28" viewBox="0 0 24 24" fill="none" stroke="#fff" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"/></svg>
</div>
<h3>Brief received.</h3>
<p style="color:var(--grey-600); margin-top:.5rem;">We'll come back with a recommendation and a price within one business day. No vague "it depends."</p>
</div>
</form>
</div>
<!-- RIGHT: Sticky info sidebar -->
<div class="reveal">
<div class="contact__sidebar">
<h3>What happens next</h3>
<ol class="contact__steps">
<li class="contact__step">
<span class="contact__step-num">1</span>
<span class="contact__step-text">We read your brief and look at your site within one business day.</span>
</li>
<li class="contact__step">
<span class="contact__step-num">2</span>
<span class="contact__step-text">We respond with a clear recommendation and a price, no vague "it depends."</span>
</li>
<li class="contact__step">
<span class="contact__step-num">3</span>
<span class="contact__step-text">You decide. No pressure, no retainer required just to get an answer.</span>
</li>
</ol>
<hr class="contact__divider">
<ul class="contact__meta">
<li class="contact__meta-item">
<svg xmlns="http://www.w3.org/2000/svg" width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M4 4h16c1.1 0 2 .9 2 2v12c0 1.1-.9 2-2 2H4c-1.1 0-2-.9-2-2V6c0-1.1.9-2 2-2z"/><polyline points="22,6 12,13 2,6"/></svg>
<span><strong>Email:</strong> <a href="mailto:project@help4bis.com">project@help4bis.com</a></span>
</li>
<li class="contact__meta-item">
<svg xmlns="http://www.w3.org/2000/svg" width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"/><polyline points="12 6 12 12 16 14"/></svg>
<span><strong>Hours:</strong> Mon–Fri, 8am–6pm AEST</span>
</li>
<li class="contact__meta-item">
<svg xmlns="http://www.w3.org/2000/svg" width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"/></svg>
<span><strong>Response:</strong> Within 1 business day, guaranteed</span>
</li>
<li class="contact__meta-item">
<svg xmlns="http://www.w3.org/2000/svg" width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M21 10c0 7-9 13-9 13s-9-6-9-13a9 9 0 0 1 18 0z"/><circle cx="12" cy="10" r="3"/></svg>
<span><strong>Location:</strong> Brisbane, Queensland, same office, every time</span>
</li>
</ul>
<p class="contact__note">All project work is delivered async, no mandatory calls. If you'd prefer a call, just say so in your brief.</p>
</div>
</div>
</div>
</div>
</section>
<!-- ═══════════════════════════════════════════════
FAQ
═══════════════════════════════════════════════ -->
<section class="section" aria-labelledby="faq-heading">
<div class="container">
<div class="text-center mb-6">
<p class="eyebrow">Questions</p>
<h2 id="faq-heading">Common questions before getting in touch</h2>
</div>
<div class="faq__list" role="list">
<details class="faq-item reveal" role="listitem">
<summary class="faq-item__question">
Do you take on new clients?
<span class="faq-item__icon" aria-hidden="true">
<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><line x1="12" y1="5" x2="12" y2="19"/><line x1="5" y1="12" x2="19" y2="12"/></svg>
</span>
</summary>
<div class="faq-item__answer">
Yes, we take on a limited number of new managed WordPress clients each month to ensure quality of service. Care plans and one-off fixes have no waitlist.
</div>
</details>
<details class="faq-item reveal" role="listitem">
<summary class="faq-item__question">
What if I just want a quick question answered?
<span class="faq-item__icon" aria-hidden="true">
<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><line x1="12" y1="5" x2="12" y2="19"/><line x1="5" y1="12" x2="19" y2="12"/></svg>
</span>
</summary>
<div class="faq-item__answer">
Email <a href="mailto:project@help4bis.com" class="inline-link">project@help4bis.com</a>. We answer genuine questions even if you're not a client yet.
</div>
</details>
<details class="faq-item reveal" role="listitem">
<summary class="faq-item__question">
I'm already a client. How do I log a support request?
<span class="faq-item__icon" aria-hidden="true">
<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><line x1="12" y1="5" x2="12" y2="19"/><line x1="5" y1="12" x2="19" y2="12"/></svg>
</span>
</summary>
<div class="faq-item__answer">
Existing clients use the client portal link sent when you signed up. If you've lost it, email us at <a href="mailto:project@help4bis.com" class="inline-link">project@help4bis.com</a>.
</div>
</details>
</div>
</div>
</section>
<!-- ═══════════════════════════════════════════════
FOOTER
═══════════════════════════════════════════════ -->
<footer class="footer" aria-label="Site footer">
<div class="container">
<div class="footer__grid">
<div class="footer__brand">
<img src="assets/images/logo-cropped.jpg" alt="HELP4BIS" width="140" height="38">
<p>Managed WordPress hosting and maintenance for Australian small businesses. Brisbane-based, personal service, WordPress specialist, Brisbane.</p>
<p style="font-size:13px; color:rgba(255,255,255,.4);">Dutch Digital Dynamics Pty Ltd · ABN 86 081 237 087</p>
</div>
<div class="footer__col">
<h4>Services</h4>
<ul class="footer__links">
<li><a href="managed-wordpress.html">Tailored Website Management</a></li>
<li><a href="care-plans.html">WP Care Plans</a></li>
<li><a href="sos-fix.html">WP SOS Fix</a></li>
<li><a href="ai-integration.html">AI Integration</a></li>
<li><a href="plugin-development.html">Plugin Development</a></li> </ul>
</div>
<div class="footer__col">
<h4>Company</h4>
<ul class="footer__links">
<li><a href="about.html">About Us</a></li>
<li><a href="index.html#portfolio">Our Work</a></li>
<li><a href="index.html#testimonials">Client Feedback</a></li>
<li><a href="blog/index.html">Blog</a></li>
<li><a href="contact.html">Contact</a></li>
</ul>
</div>
<div class="footer__col">
<h4>Contact</h4>
<ul class="footer__links">
<li><a href="mailto:project@help4bis.com">project@help4bis.com</a></li>
<li><a href="contact.html">Submit a Brief</a></li>
<li><a href="sos-fix.html">Emergency Fix</a></li>
</ul>
<p style="margin-top:1rem; font-size:13px; color:rgba(255,255,255,.4);">
Brisbane, Queensland<br>
Response within 24 business hours
</p>
</div>
</div>
<div class="footer__bottom">
<span>© 2026 HELP4BIS, a trading name of Dutch Digital Dynamics Pty Ltd · ABN 86 081 237 087</span>
<span>
<a href="privacy.html">Privacy Policy</a> ·
<a href="terms.html">Terms</a>
</span>
</div>
</div>
</footer>
<!-- Back to top -->
<button id="back-to-top" aria-label="Back to top">
<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="18 15 12 9 6 15"/></svg>
</button>
<script src="assets/js/main.js"></script>
<script src="/analytics/tracker.js" defer></script>
<footer style="margin-top:48px;padding:24px;background:#f0f7f2;border-left:4px solid #18604A;border-radius:8px;font-family:'ABeeZee',sans-serif;font-size:1rem;line-height:1.65;color:#1A1A1A;">
<h3 style="font-family:'Poppins',sans-serif;color:#1A5C2E;font-size:1.1rem;margin:0 0 10px;">A few words from us</h3>
<p style="margin:0 0 8px;">We're not the big shops. We have time to sit down with you and find the best fit for your business, not the best fit for a templated process. Every client we work with is treated as if they're the only one on our desk, because for the time we're with them, they are.</p> <p style="margin:0 0 8px;">It means we're slower to start than a shop that sells you a package off the shelf. It also means we don't sell you a package off the shelf. You get a system that fits how you actually run your business, and you get to talk to the person who built it whenever you need to.</p>
<p style="margin:0;color:#555555;font-size:0.9rem;">Page updated 26/05/2026. Contact: <a href="mailto:project@help4bis.com" style="color:#18604A;">project@help4bis.com</a>.</p>
</footer>
</body>
</html>
+117
View File
@@ -0,0 +1,117 @@
<?php
/**
* HELP4BIS Contact Form Handler
* Receives JSON POST from main.js, sends via local mail transport (sendmail).
* Handles fields from contact.html and sos-fix.html.
* MAIL_TO/MAIL_FROM can be overridden via /home/help4bis/.env if present.
*/
header('Content-Type: application/json');
header('Access-Control-Allow-Origin: https://help4bis.com');
header('Access-Control-Allow-Methods: POST');
// Only accept POST
if ($_SERVER['REQUEST_METHOD'] !== 'POST') {
http_response_code(405);
echo json_encode(['ok' => false, 'error' => 'Method not allowed']);
exit;
}
// Load .env
$env = [];
$envFile = '/home/help4bis/.env';
if (file_exists($envFile)) {
foreach (file($envFile, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES) as $line) {
if (str_starts_with(trim($line), '#') || !str_contains($line, '=')) continue;
[$key, $val] = explode('=', $line, 2);
$env[trim($key)] = trim($val);
}
}
// Parse JSON body
$data = json_decode(file_get_contents('php://input'), true);
if (!$data) {
// Fall back to form-encoded
$data = $_POST;
}
// Spam check (cockpit #164). Bots fill the hidden hp_trap field or post straight to this
// handler without the fill time the page script adds, or submit faster than a person can type.
// Answer ok so the bot learns nothing, send nothing, and leave one log line to measure with.
$fillMs = $data['fill_ms'] ?? null;
if (!empty($data['hp_trap']) || !is_numeric($fillMs) || (float)$fillMs < 3000) {
error_log('HELP4BIS contact form: spam dropped (' . (!empty($data['hp_trap']) ? 'honeypot' : (!is_numeric($fillMs) ? 'no fill time' : 'too fast')) . ')');
echo json_encode(['ok' => true]);
exit;
}
// Sanitise and validate required fields
$name = trim(strip_tags($data['name'] ?? ''));
$email = trim(strip_tags($data['email'] ?? ''));
$service = trim(strip_tags($data['service'] ?? ''));
$budget = trim(strip_tags($data['budget'] ?? ''));
$timeline = trim(strip_tags($data['timeline'] ?? ''));
// Message field — normalise across all forms
$message = trim(strip_tags($data['message'] ?? $data['details'] ?? $data['description'] ?? ''));
// sos-fix.html specific fields
$source = trim(strip_tags($data['source'] ?? ''));
$url = trim(strip_tags($data['url'] ?? ''));
$issue_type = trim(strip_tags($data['issue_type'] ?? ''));
$wp_access = trim(strip_tags($data['wp_access'] ?? ''));
$urgency = trim(strip_tags($data['urgency'] ?? ''));
if (!$name || !$email || !filter_var($email, FILTER_VALIDATE_EMAIL)) {
http_response_code(422);
echo json_encode(['ok' => false, 'error' => 'Name and a valid email address are required.']);
exit;
}
// Build email subject
$subject = $source === 'sos-fix'
? "SOS Fix request from {$name}" . ($issue_type ? " — {$issue_type}" : '')
: "New brief from {$name}" . ($service ? " — {$service}" : '');
// Build email body
$body = "Name: {$name}\n";
$body .= "Email: {$email}\n";
if ($source) $body .= "Source: {$source}\n";
if ($url) $body .= "Website: {$url}\n";
if ($service) $body .= "Service: {$service}\n";
if ($issue_type) $body .= "Issue type: {$issue_type}\n";
if ($budget) $body .= "Budget: {$budget}\n";
if ($timeline) $body .= "Timeline: {$timeline}\n";
if ($wp_access) $body .= "WP access: {$wp_access}\n";
if ($urgency) $body .= "Urgency: {$urgency}\n";
$body .= "\n--- Message ---\n{$message}\n";
// PHPMailer
require __DIR__ . '/vendor/autoload.php';
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;
$mail = new PHPMailer(true);
try {
$mail->isMail();
$mail->setFrom($env['MAIL_FROM'] ?? 'project@help4bis.com', $env['SMTP_FROM_NAME'] ?? 'HELP4BIS');
$mail->addAddress($env['MAIL_TO'] ?? 'project@help4bis.com');
$mail->addReplyTo($email, $name);
$mail->Subject = $subject;
$mail->Body = $body;
$mail->send();
echo json_encode(['ok' => true]);
} catch (Exception $e) {
error_log('HELP4BIS contact form mailer error: ' . $mail->ErrorInfo);
http_response_code(500);
echo json_encode(['ok' => false, 'error' => 'Mail could not be sent. Please email project@help4bis.com directly.']);
}
+332
View File
@@ -0,0 +1,332 @@
<!DOCTYPE html>
<!-- Version: 1.1.0 | Created: 2026-06-14 | Updated: 2026-08-16 -->
<!-- Garden Data MCP product page for help4bis.com. Reuses site nav/footer/CSS (assets/css/style.css, assets/js/main.js). -->
<!-- Reading level target: grade 9 (short sentences, plain words, concrete examples). -->
<!-- Facts verified live 2026-06-14 against mcp.help4bis.com: 7 tools, 133,135 price records, 76 veg, 4 retailers since 3 Jul 2025, 79 veg x 7 zones, 100 crop economics. Tiers: trial 100, casual 2,000, standard 20,000, pro 100,000 calls/mo. Dollar prices NOT set yet (Stripe pending) so the page says "on request", it does not invent prices. -->
<html lang="en-AU">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Garden Data MCP, Live Australian Veg Prices &amp; Planting Data for AI Agents | HELP4BIS</title>
<meta name="description" content="A paid data service that feeds live Australian vegetable prices, grow-vs-buy numbers, and what-to-plant-now data straight to AI assistants. Connect any MCP-ready agent at mcp.help4bis.com.">
<meta name="keywords" content="MCP server Australia, garden data API, Australian vegetable prices API, AI agent data feed, what to plant now API, grow vs buy data, MCP tools, AI assistant data Australia">
<meta name="author" content="HELP4BIS">
<meta name="publisher" content="Dutch Digital Dynamics Pty Ltd">
<meta name="language" content="en-AU">
<meta name="geo.region" content="AU-QLD">
<meta name="geo.placename" content="Brisbane, Queensland">
<link rel="canonical" href="https://help4bis.com/garden-data-mcp.html">
<meta name="robots" content="index, follow">
<meta property="og:type" content="website">
<meta property="og:url" content="https://help4bis.com/garden-data-mcp.html">
<meta property="og:site_name" content="HELP4BIS">
<meta property="og:title" content="Garden Data MCP, Live Australian Veg Prices &amp; Planting Data for AI Agents">
<meta property="og:description" content="A paid data service that feeds live Australian vegetable prices and planting data straight to AI assistants. Connect any MCP-ready agent.">
<meta property="og:locale" content="en_AU">
<link rel="icon" type="image/jpeg" href="assets/images/logo-favicon.jpg">
<link rel="stylesheet" href="assets/css/style.css">
<style>
/* Page-specific styles. Brand green #18604A, reusing site tokens where possible. */
.mcp-hero{background:linear-gradient(135deg,#18604A 0%,#0f4536 100%);color:#fff;padding:64px 0;}
.mcp-hero h1{font-size:clamp(28px,5vw,46px);line-height:1.15;margin:0 0 16px;font-weight:800;}
.mcp-hero p.lede{font-size:clamp(17px,2.4vw,21px);line-height:1.6;max-width:760px;margin:0 0 28px;opacity:.95;}
.mcp-hero .endpoint{display:inline-block;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.25);
border-radius:8px;padding:10px 16px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:15px;}
.mcp-section{padding:48px 0;}
.mcp-section h2{font-size:clamp(22px,3.4vw,32px);margin:0 0 8px;color:#18604A;}
.mcp-section h2 + p.sub{color:#5a6b63;font-size:17px;margin:0 0 28px;max-width:720px;}
.mcp-callout{background:#f0f7f2;border-left:4px solid #18604A;border-radius:8px;padding:20px 22px;margin:22px 0;
font-size:16px;line-height:1.7;color:#1A1A1A;}
.tool-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:18px;margin-top:24px;}
.tool-card{border:1px solid #e0e8e3;border-radius:12px;padding:22px;background:#fff;}
.tool-card h3{margin:0 0 4px;font-size:18px;color:#18604A;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;}
.tool-card .plain{font-weight:700;color:#1A1A1A;margin:0 0 8px;font-size:16px;}
.tool-card p{margin:0 0 8px;font-size:15px;line-height:1.6;color:#36433d;}
.tool-card .eg{font-size:14px;color:#5a6b63;font-style:italic;}
.stat-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:16px;margin-top:24px;}
.stat{background:#fff;border:1px solid #e0e8e3;border-radius:12px;padding:20px;text-align:center;}
.stat .num{font-size:30px;font-weight:800;color:#18604A;line-height:1;}
.stat .lbl{font-size:14px;color:#5a6b63;margin-top:6px;}
.tier-table{width:100%;border-collapse:collapse;margin-top:20px;font-size:15px;}
.tier-table th,.tier-table td{padding:12px 14px;border-bottom:1px solid #e6ece9;text-align:left;}
.tier-table th{background:#f0f7f2;color:#18604A;}
.step{display:flex;gap:14px;margin:0 0 18px;}
.step .n{flex:0 0 32px;height:32px;border-radius:50%;background:#18604A;color:#fff;font-weight:700;
display:flex;align-items:center;justify-content:center;}
.step .body{font-size:16px;line-height:1.6;}
pre.code{background:#0f1f1a;color:#d6efe4;border-radius:10px;padding:16px 18px;overflow-x:auto;
font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:14px;line-height:1.55;}
.faq h3{font-size:18px;color:#18604A;margin:22px 0 6px;}
.faq p{font-size:16px;line-height:1.7;margin:0;color:#36433d;}
</style>
</head>
<body>
<!-- NAVIGATION (shared site nav) -->
<nav class="nav" role="navigation" aria-label="Main navigation">
<div class="container">
<div class="nav__inner">
<a class="nav__logo" href="index.html" aria-label="HELP4BIS home">
<img src="assets/images/logo-cropped.jpg" alt="HELP4BIS Logo" width="160" height="44">
</a>
<ul class="nav__links" id="nav-links" role="list">
<li><a href="about.html">About</a></li>
<li><a href="index.html#portfolio">Our Work</a></li>
<li><a href="index.html#pricing">Pricing</a></li>
<li><a href="your-first-week-with-ai.html">AI Guide</a></li>
<li><a href="contact.html">Contact</a></li>
</ul>
<div class="nav__cta">
<a href="contact.html" class="btn btn-primary btn-sm">Get a key</a>
</div>
<button class="nav__burger" id="nav-burger" aria-label="Open menu" aria-expanded="false" aria-controls="nav-links">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><line x1="3" y1="12" x2="21" y2="12"/><line x1="3" y1="6" x2="21" y2="6"/><line x1="3" y1="18" x2="21" y2="18"/></svg>
</button>
</div>
</div>
</nav>
<!-- HERO -->
<header class="mcp-hero">
<div class="container">
<h1>Garden Data MCP</h1>
<p class="lede">Live Australian vegetable prices, grow-or-buy numbers, and what-to-plant-now data, fed straight to an AI assistant. One connection, real data, updated every day.</p>
<span class="endpoint">https://mcp.help4bis.com</span>
</div>
</header>
<!-- WHAT IS IT -->
<section class="mcp-section">
<div class="container">
<h2>What is this, in plain words?</h2>
<p class="sub">If you've ever asked an AI assistant a question and got an answer that was out of date, this fixes that for one topic: Australian home gardening and veg prices.</p>
<p>AI assistants like ChatGPT and Claude are good at writing and explaining. But they have a weak spot. They don't know today's facts. They can't tell you what a kilo of tomatoes costs at Coles this week, or whether it is the right week to plant carrots in Brisbane. That information was never in their training, and it changes all the time.</p>
<p>An <strong>MCP server</strong> fixes that. MCP stands for Model Context Protocol. Think of it as a power point on the wall, but for data. It is a standard shape of plug. Any AI assistant that knows the shape can plug in and pull fresh facts when it needs them.</p>
<div class="mcp-callout">
<strong>A simple example.</strong> Someone tells their AI assistant, "Help me plan a cheap veggie patch in Brisbane." On its own, the AI would guess. Plugged into Garden Data MCP, the AI asks our service, "What is worth growing in Brisbane right now?" We answer with real prices and real planting dates. The person gets a useful answer instead of a guess.
</div>
<p>We built this service, we run it, and we keep the data fresh. You connect your AI assistant to it with a key. The AI does the talking whilst we do the facts.</p>
</div>
</section>
<!-- WHO IS IT FOR -->
<section class="mcp-section" style="background:#f7faf8;">
<div class="container">
<h2>Who is it for?</h2>
<p class="sub">Anyone building something with an AI assistant who needs real Australian garden and grocery data inside it.</p>
<div class="tool-grid">
<div class="tool-card">
<p class="plain">App and tool builders</p>
<p>You are building a garden app, a meal planner, or a budgeting tool with an AI inside it. You want it to know real prices and planting dates without scraping the data yourself.</p>
</div>
<div class="tool-card">
<p class="plain">AI agent makers</p>
<p>You build AI agents that do tasks for people. A "plan my garden" agent or a "save money on groceries" agent needs live local data to be any good.</p>
</div>
<div class="tool-card">
<p class="plain">Researchers and writers</p>
<p>You need Australian veg price history or planting data, and you'd rather ask one clean service than gather it the hard way.</p>
</div>
</div>
</div>
</section>
<!-- THE TOOLS -->
<section class="mcp-section">
<div class="container">
<h2>The seven tools it gives an AI</h2>
<p class="sub">Each tool is one job the AI can ask us to do. The names in green are the exact tool names. The bold line is what it does in plain English.</p>
<div class="tool-grid">
<div class="tool-card">
<h3>current_veg_price</h3>
<p class="plain">Today's price for a vegetable.</p>
<p>Gives the average price per kilo across the supermarkets, the price at each one, and how much it has changed in the last 30 days.</p>
<p class="eg">Ask: "What does broccoli cost right now?"</p>
</div>
<div class="tool-card">
<h3>veg_price_history</h3>
<p class="plain">The price trend over time.</p>
<p>Gives the daily average price going back up to a year. Good for answering "is this cheaper or dearer than usual?"</p>
<p class="eg">Ask: "Are tomatoes a good buy this week, or wait?"</p>
</div>
<div class="tool-card">
<h3>whats_in_season</h3>
<p class="plain">What you can plant this month.</p>
<p>Give it a postcode or climate zone. It lists the vegetables you can plant now, and whether to sow seeds, plant seedlings, or start in trays.</p>
<p class="eg">Ask: "What can I plant in postcode 4521 this month?"</p>
</div>
<div class="tool-card">
<h3>grow_vs_buy</h3>
<p class="plain">Is it worth growing instead of buying?</p>
<p>Takes the live shop price, the amount one plant gives, and the seed cost, then works out the dollar value of growing it yourself.</p>
<p class="eg">Ask: "Is it worth growing my own capsicum?"</p>
</div>
<div class="tool-card">
<h3>cheapest_to_grow_now</h3>
<p class="plain">The best-value things to plant right now.</p>
<p>Crosses "what you can plant this month" with "what's dear at the shops". The top of the list is expensive to buy and plantable today. No other data service does this.</p>
<p class="eg">Ask: "What are the smartest things to plant in Brisbane right now?"</p>
</div>
<div class="tool-card">
<h3>pest_risk</h3>
<p class="plain">Pests on the rise near you.</p>
<p>For a postcode, it lists the pests whose risk is up over the next 7 days, worked out from the weather and the forecast.</p>
<p class="eg">Ask: "What pests should I watch for at my place?"</p>
</div>
<div class="tool-card">
<h3>frost_risk</h3>
<p class="plain">Frost and weather for planting calls.</p>
<p>Gives the current weather and the forecast for a postcode, so the AI can warn you before you plant something a frost would kill.</p>
<p class="eg">Ask: "Is it safe to plant out my seedlings this week?"</p>
</div>
</div>
</div>
</section>
<!-- THE DATA -->
<section class="mcp-section" style="background:#f7faf8;">
<div class="container">
<h2>The data behind it</h2>
<p class="sub">The tools are only as good as the data underneath. Here's what's under the bonnet, and it's real.</p>
<div class="stat-row">
<div class="stat"><div class="num">133,000+</div><div class="lbl">price records, and growing daily</div></div>
<div class="stat"><div class="num">76</div><div class="lbl">vegetables tracked</div></div>
<div class="stat"><div class="num">4</div><div class="lbl">supermarkets (Aldi, Coles, IGA, Woolworths)</div></div>
<div class="stat"><div class="num">7</div><div class="lbl">Australian climate zones for planting</div></div>
</div>
<div class="mcp-callout">
<strong>Prices</strong> are collected every day across the four big supermarkets and have been since July 2025, so the history is real, not made up. <strong>Planting dates</strong> cover 79 vegetables across all seven Australian climate zones, on the southern-hemisphere calendar (so no upside-down American advice). <strong>Grow-or-buy numbers</strong> cover 100 crops with real yields and seed costs.
</div>
<p>One honest note. The pest and frost tools rely on weather and forecast data, and pest coverage is strongest for supported postcodes. Where we don't have the data for a spot, the tool says so plainly instead of guessing. We'd rather give you nothing than give you a made-up answer.</p>
</div>
</section>
<!-- HOW TO CONNECT -->
<section class="mcp-section">
<div class="container">
<h2>How you connect</h2>
<p class="sub">If you can use an MCP-ready AI assistant or build with one, connecting takes a few minutes.</p>
<div class="step"><div class="n">1</div><div class="body"><strong>Get a key.</strong> You email us and we give you an access key. Nothing works without a valid key, so your usage is yours alone.</div></div>
<div class="step"><div class="n">2</div><div class="body"><strong>Point your AI at our address.</strong> The service lives at <code>https://mcp.help4bis.com</code>. You add it as an MCP server in your AI tool and paste your key in the header.</div></div>
<div class="step"><div class="n">3</div><div class="body"><strong>Ask away.</strong> Your AI can now call any of the seven tools whenever a question needs real garden or price data. You do not call them by hand. The AI decides when it needs them.</div></div>
<p style="margin-top:24px;">For builders, the key goes in a standard header, like this:</p>
<pre class="code">Authorization: Bearer your-key-here
POST https://mcp.help4bis.com/mcp</pre>
<p style="font-size:15px;color:#5a6b63;">If that line means nothing to you, don't worry. It's for developers. Most people just paste the address and the key into their AI tool's settings and it works.</p>
</div>
</section>
<!-- TIERS / PRICING -->
<section class="mcp-section" style="background:#f7faf8;">
<div class="container">
<h2>Plans</h2>
<p class="sub">You pick a plan by how many calls a month you need. One "call" is one question your AI sends to one tool.</p>
<table class="tier-table">
<thead><tr><th>Plan</th><th>Calls per month</th><th>Good for</th></tr></thead>
<tbody>
<tr><td><strong>Trial</strong></td><td>100</td><td>Trying it out and testing your setup</td></tr>
<tr><td><strong>Casual</strong></td><td>2,000</td><td>A small app or a personal project</td></tr>
<tr><td><strong>Standard</strong></td><td>20,000</td><td>A live app with real users</td></tr>
<tr><td><strong>Pro</strong></td><td>100,000</td><td>A busy product or a team of agents</td></tr>
</tbody>
</table>
<p style="margin-top:18px;">Prices are set per plan. To get a key and the current price for the plan you want, <a href="contact.html"><strong>send us a quick message</strong></a> and tell us roughly how you plan to use it. We will set you up.</p>
</div>
</section>
<!-- FAQ -->
<section class="mcp-section">
<div class="container faq">
<h2>Common questions</h2>
<h3>Do I need to be a programmer?</h3>
<p>No, not to use it. If your AI tool supports MCP servers, you paste in the address and your key. Building a whole app around it does take some coding, but using the service doesn't.</p>
<h3>Is the data really live?</h3>
<p>The prices update every day. When your AI asks for a price, it gets the most recent one we have, not an old guess. The planting dates are seasonal and the weather is current.</p>
<h3>Is it only for Australia?</h3>
<p>Yes. The prices are from Australian supermarkets and the planting calendar uses Australian climate zones. It's built for here, on purpose.</p>
<h3>What happens if I go over my plan's calls?</h3>
<p>The service pauses your key for the rest of the month rather than charging you a surprise bill. You can move up a plan any time.</p>
<h3>Who is behind it?</h3>
<p>HELP4BIS, a Brisbane business that has been collecting this data daily and running the systems for years. The same data powers our own gardening website, so it's data we use ourselves, not a side experiment.</p>
</div>
</section>
<!-- CTA -->
<section class="mcp-hero" style="padding:48px 0;">
<div class="container" style="text-align:center;">
<h1 style="font-size:clamp(24px,4vw,34px);">Want a key?</h1>
<p class="lede" style="margin:0 auto 24px;">Tell us how you want to use it and we'll get you connected.</p>
<a href="contact.html" class="btn btn-primary">Get in touch</a>
</div>
</section>
<!-- FOOTER (shared site footer) -->
<footer class="footer" aria-label="Site footer">
<div class="container">
<div class="footer__grid">
<div class="footer__brand">
<img src="assets/images/logo-cropped.jpg" alt="HELP4BIS" width="140" height="38">
<p>Managed WordPress, custom plugins, and data services for Australian small businesses. Brisbane-based, personal service.</p>
<p style="font-size:13px; color:rgba(255,255,255,.4);">Dutch Digital Dynamics Pty Ltd · ABN 86 081 237 087</p>
</div>
<div class="footer__col">
<h4>Services</h4>
<ul class="footer__links">
<li><a href="managed-wordpress.html">Website Management</a></li>
<li><a href="ai-integration.html">AI Integration</a></li>
<li><a href="plugin-development.html">Plugin Development</a></li>
<li><a href="garden-data-mcp.html">Garden Data MCP</a></li>
</ul>
</div>
<div class="footer__col">
<h4>Company</h4>
<ul class="footer__links">
<li><a href="about.html">About Us</a></li>
<li><a href="index.html#portfolio">Our Work</a></li>
<li><a href="contact.html">Contact</a></li>
</ul>
</div>
<div class="footer__col">
<h4>Contact</h4>
<ul class="footer__links">
<li><a href="mailto:project@help4bis.com">project@help4bis.com</a></li>
<li><a href="contact.html">Submit a Brief</a></li>
</ul>
<p style="margin-top:1rem; font-size:13px; color:rgba(255,255,255,.4);">Brisbane, Queensland<br>Response within 24 business hours</p>
</div>
</div>
<div class="footer__bottom">
<span>© 2026 HELP4BIS, a trading name of Dutch Digital Dynamics Pty Ltd · ABN 86 081 237 087</span>
<span><a href="privacy.html">Privacy Policy</a> · <a href="terms.html">Terms</a></span>
</div>
</div>
</footer>
<script src="assets/js/main.js"></script>
<script src="/analytics/tracker.js" defer></script>
</body>
</html>
+963
View File
@@ -0,0 +1,963 @@
<!DOCTYPE html>
<!-- Version: 1.6.0 | Updated: 2026-08-16 -->
<html lang="en-AU">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>HELP4BIS | Managed WordPress Services for Australian Small Businesses</title>
<meta name="description" content="WordPress care plans, managed hosting, AI integration and custom plugins for Australian small businesses. Brisbane-based, personal service, from $49/month. No lock-in.">
<meta name="keywords" content="managed WordPress Brisbane, WordPress care plans Australia, WordPress maintenance small business, WordPress support Queensland, AI integration WordPress, custom WordPress plugins, website management Brisbane, WordPress hosting Australia">
<meta name="author" content="HELP4BIS">
<meta name="publisher" content="Dutch Digital Dynamics Pty Ltd">
<meta name="copyright" content="Dutch Digital Dynamics Pty Ltd">
<meta name="language" content="en-AU">
<meta name="revisit-after" content="7 days">
<meta name="category" content="WordPress Services, Web Development, Small Business Technology">
<meta name="classification" content="Business/Technology">
<meta name="coverage" content="Australia">
<meta name="distribution" content="global">
<meta name="rating" content="general">
<meta name="geo.region" content="AU-QLD">
<meta name="geo.placename" content="Brisbane, Queensland">
<meta name="geo.position" content="-27.4698;153.0251">
<meta name="ICBM" content="-27.4698, 153.0251">
<link rel="canonical" href="https://help4bis.com/">
<meta name="robots" content="index, follow">
<meta property="og:type" content="website">
<meta property="og:url" content="https://help4bis.com/">
<meta property="og:site_name" content="HELP4BIS">
<meta property="og:title" content="HELP4BIS | Managed WordPress Services for Australian Small Businesses">
<meta property="og:description" content="WordPress care plans, managed hosting, AI integration and custom plugins for Australian small businesses. Brisbane-based, personal service, from $49/month. No lock-in.">
<meta property="og:image" content="https://help4bis.com/assets/images/og-social-card.jpg">
<meta property="og:image:width" content="1200">
<meta property="og:image:height" content="630">
<meta property="og:image:alt" content="HELP4BIS, WordPress services for Australian small businesses">
<meta property="og:locale" content="en_AU">
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:site" content="@help4bis">
<meta name="twitter:title" content="HELP4BIS | Managed WordPress Services for Australian Small Businesses">
<meta name="twitter:description" content="WordPress care plans, managed hosting, AI integration and custom plugins for Australian small businesses. From $49/month. Brisbane-based.">
<meta name="twitter:image" content="https://help4bis.com/assets/images/og-social-card.jpg">
<meta name="twitter:image:alt" content="HELP4BIS">
<link rel="icon" type="image/jpeg" href="assets/images/logo-favicon.jpg"> <link rel="stylesheet" href="assets/css/style.css">
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@graph": [
{
"@type": "LocalBusiness",
"@id": "https://help4bis.com/#business",
"name": "HELP4BIS",
"alternateName": "Dutch Digital Dynamics Pty Ltd",
"legalName": "Dutch Digital Dynamics Pty Ltd",
"taxID": "86 081 237 087",
"url": "https://help4bis.com",
"logo": "https://help4bis.com/assets/images/logo-cropped.jpg",
"image": "https://help4bis.com/assets/images/logo-cropped.jpg",
"description": "WordPress care plans, managed website services, AI integration, and custom plugin development for Australian small businesses.",
"email": "project@help4bis.com",
"address": {
"@type": "PostalAddress",
"addressLocality": "Brisbane",
"addressRegion": "Queensland",
"addressCountry": "AU"
},
"areaServed": {
"@type": "Country",
"name": "Australia"
},
"priceRange": "$$",
"currenciesAccepted": "AUD",
"paymentAccepted": "Credit Card, Bank Transfer",
"hasMap": "https://maps.google.com/?q=Brisbane,QLD,Australia",
"sameAs": []
},
{
"@type": "WebSite",
"@id": "https://help4bis.com/#website",
"url": "https://help4bis.com",
"name": "HELP4BIS",
"description": "WordPress services for Australian small businesses",
"publisher": {"@id": "https://help4bis.com/#business"},
"inLanguage": "en-AU"
},
{
"@type": "WebPage",
"@id": "https://help4bis.com/#webpage",
"url": "https://help4bis.com/",
"name": "HELP4BIS | Managed WordPress Services for Australian Small Businesses",
"isPartOf": {"@id": "https://help4bis.com/#website"},
"about": {"@id": "https://help4bis.com/#business"},
"speakable": {
"@type": "SpeakableSpecification",
"cssSelector": ["h1", ".hero__lead", ".section-subtitle"]
}
},
{
"@type": "FAQPage",
"@id": "https://help4bis.com/#faq",
"mainEntity": [
{
"@type": "Question",
"name": "What's the difference between Managed WordPress and a Care Plan?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Managed WordPress is the all-in-one service, hosting on our Brisbane server, design, unlimited minor edits, domain, email, and all maintenance. A Care Plan is maintenance-only: you keep your current hosting provider and we manage the WordPress layer on top of it. Care Plans start at $49/month; full managed is $200/month."
}
},
{
"@type": "Question",
"name": "My site is broken right now. How quickly can you fix it?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Submit a brief via the WP SOS Fix page and we'll get to it within 24 business hours. The flat rate is $97 for a single issue ($197 for complex/multiple issues). No hourly billing, no call required."
}
},
{
"@type": "Question",
"name": "Do you work with businesses outside Brisbane?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Yes, all services are delivered remotely via email and an online portal. We work with clients across Queensland, New South Wales, Victoria, and Western Australia."
}
},
{
"@type": "Question",
"name": "I'm on Squarespace or Wix. Can you migrate me to WordPress?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Yes. Migration is included free with the Fully Managed plan. Typical turnaround is 3–5 business days."
}
},
{
"@type": "Question",
"name": "What if I want to cancel?",
"acceptedAnswer": {
"@type": "Answer",
"text": "All plans are month-to-month. Give us 30 days notice and we'll help migrate your site to wherever you're going. No lock-in, no exit fees, no held-hostage domain."
}
}
]
}
]
}
</script>
</head>
<body>
<!-- ═══════════════════════════════════════════════
NAVIGATION
═══════════════════════════════════════════════ -->
<nav class="nav" role="navigation" aria-label="Main navigation">
<div class="container">
<div class="nav__inner">
<a class="nav__logo" href="index.html" aria-label="HELP4BIS home">
<img src="assets/images/logo-cropped.jpg" alt="HELP4BIS Logo" width="160" height="44">
</a>
<ul class="nav__links" id="nav-links" role="list">
<li class="nav__dropdown">
<button class="nav__trigger" aria-haspopup="true" aria-expanded="false">Services <svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"/></svg></button>
<ul class="nav__dropdown-menu" role="menu">
<li class="nav__menu-group">WordPress</li>
<li><a href="managed-wordpress.html" role="menuitem">Tailored Website Management</a></li>
<li><a href="care-plans.html" role="menuitem">WP Care Plans <span class="menu-price">from $49/mo</span></a></li>
<li><a href="sos-fix.html" role="menuitem">WP SOS Fix <span class="menu-price">$97 flat</span></a></li>
<li><a href="ai-integration.html" role="menuitem">AI Integration</a></li>
<li><a href="plugin-development.html" role="menuitem">Custom Plugin Development</a></li> </ul>
</li>
<li><a href="about.html">About</a></li>
<li><a href="#portfolio">Our Work</a></li>
<li><a href="#pricing">Pricing</a></li>
<li><a href="blog/index.html">Blog</a></li>
<li><a href="your-first-week-with-ai.html">AI Guide</a></li>
<li><a href="contact.html">Contact</a></li>
<li class="nav__cta-mobile" aria-hidden="true">
<a href="contact.html" class="btn btn-primary">Get Started</a>
<a href="sos-fix.html" class="btn btn-secondary">SOS Fix, $97</a>
</li>
</ul>
<div class="nav__cta">
<a href="sos-fix.html" class="btn btn-secondary btn-sm">SOS Fix $97</a>
<a href="contact.html" class="btn btn-primary btn-sm">Get Started</a>
</div>
<button class="nav__burger" id="nav-burger" aria-label="Open menu" aria-expanded="false" aria-controls="nav-links">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><line x1="3" y1="6" x2="21" y2="6"/><line x1="3" y1="12" x2="21" y2="12"/><line x1="3" y1="18" x2="21" y2="18"/></svg>
</button>
</div>
</div>
</nav>
<!-- ═══════════════════════════════════════════════
HERO
═══════════════════════════════════════════════ -->
<section class="hero" aria-labelledby="hero-heading">
<div class="hero__grid-bg" aria-hidden="true"></div>
<div class="container">
<div class="hero__inner">
<div class="hero__content">
<div class="hero__label">
<svg xmlns="http://www.w3.org/2000/svg" width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z"/></svg>
Brisbane-Based · Australian-Owned
</div>
<h1 id="hero-heading">
Your WordPress.<br>
Handled by a <span class="accent">Real Person.</span>
</h1>
<p class="hero__lead">
One monthly fee. Brisbane servers. You deal with me directly, not a helpdesk, not an offshore team. Just fast, personal service from someone who actually cares.
</p>
<div class="hero__actions">
<a href="#pricing" class="btn btn-primary btn-lg">See Plans &amp; Pricing</a>
<a href="sos-fix.html" class="btn btn-outline-light btn-lg">Site Broken? $97 Fix</a>
</div>
<div class="hero__trust">
<div class="hero__trust-item">
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"/></svg>
No lock-in contracts
</div>
<div class="hero__trust-item">
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"/></svg>
Elementor Pro included*
</div>
<div class="hero__trust-item">
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"/></svg>
24-hour response guarantee
</div>
</div>
</div>
<div class="hero__visual">
<!-- Floating proof card (top right) -->
<div class="hero__proof-card" aria-hidden="true">
<div class="hero__proof-stars">★★★★★</div>
<p class="hero__proof-quote">"Fixed in under two hours. Couldn't believe it."</p>
<span class="hero__proof-author">Shane W., Ipswich</span>
</div>
<div class="hero__photo-frame">
<img src="assets/images/DanielleBLattaBW1000sqr.jpg"
alt="Danielle Latta, Founder of HELP4BIS, Managed WordPress specialist"
width="600" height="450">
</div>
<!-- Floating experience badge (bottom left) -->
<div class="hero__badge">
<div class="hero__badge-icon">
<svg xmlns="http://www.w3.org/2000/svg" width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z"/></svg>
</div>
<div class="hero__badge-text">
<strong>10+ Years</strong>
<span>WordPress &amp; Web Design</span>
</div>
</div>
</div>
</div>
</div>
<!-- Wave into stats -->
<div class="hero-bottom" aria-hidden="true">
<svg viewBox="0 0 1440 56" preserveAspectRatio="none" xmlns="http://www.w3.org/2000/svg">
<path d="M0,56 L0,24 Q360,0 720,24 Q1080,48 1440,24 L1440,56 Z" fill="#101828"/>
</svg>
</div>
</section>
<!-- ═══════════════════════════════════════════════
STATS STRIP
═══════════════════════════════════════════════ -->
<section class="stats" aria-label="Key statistics">
<div class="container">
<div class="stats__grid">
<div class="stats__item">
<strong>20+</strong>
<span>Years Experience</span>
</div>
<div class="stats__item">
<strong>24hr</strong>
<span>Response Guarantee</span>
</div>
<div class="stats__item">
<strong>No</strong>
<span>Lock-In Contracts</span>
</div>
<div class="stats__item">
<strong>100%</strong>
<span>Australian-Based</span>
</div>
</div>
</div>
</section>
<!-- ═══════════════════════════════════════════════
FEATURE STRIP
═══════════════════════════════════════════════ -->
<div class="feature-strip" aria-label="Included features">
<div class="container">
<div class="feature-strip__grid">
<div class="feature-strip__item">
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"/></svg>
Daily Backups
</div>
<div class="feature-strip__item">
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"/></svg>
Malware Scanning
</div>
<div class="feature-strip__item">
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"/></svg>
Plugin &amp; Theme Updates
</div>
<div class="feature-strip__item">
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"/></svg>
SSL &amp; Security
</div>
<div class="feature-strip__item">
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"/></svg>
Free Domain &amp; Email*
</div>
<div class="feature-strip__item">
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"/></svg>
Premium plugins, corporate licence included
</div>
</div>
<p style="text-align:center; font-size:12px; color:var(--grey-mid); margin-top:0.75rem;">* Free domain, email &amp; Elementor Pro included with Tailored Website Management. Not included in Care Plans.</p>
</div>
</div>
<!-- ═══════════════════════════════════════════════
SERVICES, BENTO GRID
═══════════════════════════════════════════════ -->
<section class="section" id="services" aria-labelledby="services-heading">
<div class="container">
<div class="text-center mb-8">
<p class="eyebrow">What We Do</p>
<h2 id="services-heading">Everything your website needs.</h2>
<p class="section-subtitle">One provider. Every service. All handled.</p>
</div>
<div class="services__bento stagger">
<!-- Tailored Website Management, FEATURED (8 cols) -->
<div class="bento-card bento-card--featured">
<div class="bento-glow" aria-hidden="true"></div>
<div class="bento-icon bento-icon--dark">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="2" y="3" width="20" height="14" rx="2"/><line x1="8" y1="21" x2="16" y2="21"/><line x1="12" y1="17" x2="12" y2="21"/></svg>
</div>
<h3>Tailored Website Management</h3>
<p class="bento-lead">Full-service managed hosting, built around your business. Need a shop? We build a shop. Booking form? Done. Every site is set up for what your business actually does, not a generic template.</p>
<div class="bento-price">$200<span> AUD/month</span></div>
<ul class="bento-features">
<li><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"/></svg> Brisbane hosting + domain + email included</li>
<li><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"/></svg> Premium plugins under our corporate licence</li>
<li><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"/></svg> Unlimited minor edits · 24hr response</li>
<li><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"/></svg> $300 setup · then month-to-month, no lock-in</li>
</ul>
<a href="managed-wordpress.html" class="btn btn-primary">See What's Included</a>
</div>
<!-- SOS Fix (4 cols) -->
<div class="bento-card bento-card--sos">
<div class="bento-icon bento-icon--red">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.77-3.77a6 6 0 0 1-7.94 7.94l-6.91 6.91a2.12 2.12 0 0 1-3-3l6.91-6.91a6 6 0 0 1 7.94-7.94l-3.76 3.76z"/></svg>
</div>
<span class="bento-price-badge">$97 Flat Rate</span>
<h3>WP SOS Fix</h3>
<p>Site down. White screen. Hacked. Plugin conflict. Submit a brief and we'll fix it within 24 business hours. One flat rate, no hourly surprises.</p>
<a href="sos-fix.html" class="btn btn-primary" style="margin-top:var(--sp-4)">Fix My Site Now</a>
</div>
<!-- Care Plans -->
<div class="bento-card bento-card--wide">
<div class="bento-icon bento-icon--blue">
<svg xmlns="http://www.w3.org/2000/svg" width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M22 12h-4l-3 9L9 3l-3 9H2"/></svg>
</div>
<span class="bento-price-badge">From $49/month</span>
<h3>WP Care Plans</h3>
<p>Already have hosting? We manage your WordPress layer, updates, backups, security, performance. Keep your host, add professional management.</p>
<a href="care-plans.html" class="btn btn-secondary" style="margin-top:var(--sp-4)">See Plans</a>
</div>
<!-- AI Integration -->
<div class="bento-card bento-card--wide">
<div class="bento-icon bento-icon--purple">
<svg xmlns="http://www.w3.org/2000/svg" width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="11" width="18" height="11" rx="2"/><path d="M7 11V7a5 5 0 0 1 10 0v4"/></svg>
</div>
<span class="bento-price-badge">From $297</span>
<h3>AI Integration</h3>
<p>Add a chatbot trained on your FAQs, an AI content assistant, or automated lead qualification, all running on your WordPress site.</p>
<a href="ai-integration.html" class="btn btn-secondary" style="margin-top:var(--sp-4)">Learn More</a>
</div>
<!-- Plugin Development -->
<div class="bento-card bento-card--wide">
<div class="bento-icon bento-icon--green">
<svg xmlns="http://www.w3.org/2000/svg" width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="16 18 22 12 16 6"/><polyline points="8 6 2 12 8 18"/></svg>
</div>
<span class="bento-price-badge">From $297</span>
<h3>Custom Plugins</h3>
<p>Need WordPress to do something it doesn't do out of the box? We build custom plugins, API connectors, booking integrations, WooCommerce extensions.</p>
<a href="plugin-development.html" class="btn btn-secondary" style="margin-top:var(--sp-4)">Learn More</a>
</div>
<!-- One-Page Website -->
<div class="bento-card bento-card--wide">
<div class="bento-icon bento-icon--grey">
<svg xmlns="http://www.w3.org/2000/svg" width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M13 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V9z"/><polyline points="13 2 13 9 20 9"/></svg>
</div>
<span class="bento-price-badge">$300 setup + $49/mo</span>
<h3>One-Page Website</h3>
<p>Tradies, cafés, community groups. A clean, fast one-page site that actually works. Setup, hosting, and maintenance in one affordable package.</p>
<a href="contact.html?service=one-page" class="btn btn-secondary" style="margin-top:var(--sp-4)">Get a Quote</a>
</div>
<!-- App Development -->
<div class="bento-card bento-card--wide">
<div class="bento-icon bento-icon--purple">
<svg xmlns="http://www.w3.org/2000/svg" width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="5" y="2" width="14" height="20" rx="2"/><line x1="12" y1="18" x2="12.01" y2="18"/></svg>
</div>
<span class="bento-price-badge">On request</span>
<h3>App Development</h3>
<p>Need more than a website? We build progressive web apps and mobile apps, cross-platform, real data, real functionality. Membership platforms, community tools, that sort of thing.</p>
<a href="contact.html?service=app" class="btn btn-secondary" style="margin-top:var(--sp-4)">Talk to Us</a>
</div>
<!-- Functional Design Specification -->
<div class="bento-card bento-card--wide">
<div class="bento-icon bento-icon--amber" style="background:rgba(245,158,11,.1);color:var(--amber);">
<svg xmlns="http://www.w3.org/2000/svg" width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"/><polyline points="14 2 14 8 20 8"/><line x1="16" y1="13" x2="8" y2="13"/><line x1="16" y1="17" x2="8" y2="17"/><polyline points="10 9 9 9 8 9"/></svg>
</div>
<span class="bento-price-badge">On request</span>
<h3>Functional Design Spec</h3>
<p>We write the full specification for your website or application, functional requirements, business logic, data flows, which you can hand to any developer to build.</p>
<a href="contact.html?service=spec" class="btn btn-secondary" style="margin-top:var(--sp-4)">Ask About This</a>
</div>
</div>
</div>
</section>
<!-- ═══════════════════════════════════════════════
WHY HELP4BIS
═══════════════════════════════════════════════ -->
<section class="section section--alt" aria-labelledby="why-heading">
<div class="container">
<div class="why__grid">
<div class="why__image reveal">
<img src="assets/images/DanielleBLattaBW1000sqr.jpg"
alt="Danielle Latta, HELP4BIS founder"
width="520" height="650">
</div>
<div class="why__content reveal">
<p class="eyebrow">Why HELP4BIS</p>
<h2 id="why-heading">A graphic designer and a problem-solver. In your corner.</h2>
<p class="large">Danielle has built her own businesses online. She knows what it takes to be found, to look credible, and to convert visitors into paying customers, because she's done it herself. She works from Brisbane with modern AI tooling assisting the repetitive parts, whilst a real person decides what's right for your site and stands behind the result.</p>
<p>Most "managed WordPress" providers are platforms. You get a ticket number, a bot, and a response time measured in days. HELP4BIS is a real person who cares whether your website actually works for your business, and Danielle is your one point of contact, every time.</p>
<ul class="why__points">
<li>
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"/></svg>
Brisbane-based, not outsourced, not offshore
</li>
<li>
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"/></svg>
Brisbane data centre, your data stays in Australia
</li>
<li>
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"/></svg>
Premium plugins under our corporate licence, no extra cost
</li>
<li>
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"/></svg>
24-hour response, not "within 5 business days"
</li>
<li>
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"/></svg>
Month-to-month after setup, no lock-in contracts
</li>
</ul>
<a href="about.html" class="btn btn-primary">Meet the Team</a>
</div>
</div>
</div>
</section>
<!-- ═══════════════════════════════════════════════
PORTFOLIO
═══════════════════════════════════════════════ -->
<section class="section" id="portfolio" aria-labelledby="portfolio-heading">
<div class="container">
<div class="text-center mb-8">
<p class="eyebrow">Our Work</p>
<h2 id="portfolio-heading">Websites. Platforms. Apps.</h2>
<p class="section-subtitle">Local tradies, community groups, membership platforms and mobile apps: a selection of what we've built and manage.</p>
</div>
<div class="portfolio__grid stagger">
<a href="work/dayboro-au.html" class="portfolio-card" style="text-decoration:none;color:inherit;">
<div class="portfolio-card__image">
<img src="assets/images/port-dayboro.jpg" alt="Dayboro.au, Weather Platform + Membership" loading="lazy">
</div>
<div class="portfolio-card__info">
<h4>Dayboro.au</h4>
<span>Weather Platform · Membership + Custom Plugins</span>
</div>
</a>
<a href="work/gardenbuddy-au.html" class="portfolio-card" style="text-decoration:none;color:inherit;">
<div class="portfolio-card__image">
<img src="assets/images/port-gardenbuddy.jpg" alt="GardenBuddy.au, Australian national garden management platform" loading="lazy">
</div>
<div class="portfolio-card__info">
<h4>GardenBuddy.au</h4>
<span>National Garden Platform · Membership + Climate Zones</span>
</div>
</a>
<a href="work/localbuddy-au.html" class="portfolio-card" style="text-decoration:none;color:inherit;">
<div class="portfolio-card__image">
<img src="assets/images/port-localbuddy.png" alt="LocalBuddy, Australian Community Platform" loading="lazy">
</div>
<div class="portfolio-card__info">
<h4>LocalBuddy</h4>
<span>Community Platform · Custom Development</span>
</div>
</a>
<a href="work/m8chat-au.html" class="portfolio-card" style="text-decoration:none;color:inherit;">
<div class="portfolio-card__image">
<img src="assets/images/port-m8chat.png" alt="M8Chat, Secure Communications Platform" loading="lazy">
</div>
<div class="portfolio-card__info">
<h4>M8Chat</h4>
<span>Secure Chat Platform · WordPress + Matrix</span>
</div>
</a>
<div class="portfolio-card">
<div class="portfolio-card__image">
<img src="assets/images/port-app-dayboro.png" alt="Dayboro Buddy, Progressive Web App" loading="lazy">
</div>
<div class="portfolio-card__info">
<h4>Dayboro Buddy</h4>
<span>Progressive Web App · Flutter</span>
</div>
</div>
<a href="work/rds-ink.html" class="portfolio-card" style="text-decoration:none;color:inherit;">
<div class="portfolio-card__image">
<img src="assets/images/rds-managed-wordpress.jpg" alt="Running Duck Studio, Managed WordPress" loading="lazy">
</div>
<div class="portfolio-card__info">
<h4>Running Duck Studio</h4>
<span>Art Gallery · WooCommerce + AR App</span>
</div>
</a>
<a href="work/nightcap-nm.html" class="portfolio-card" style="text-decoration:none;color:inherit;">
<div class="portfolio-card__image">
<img src="assets/images/port-nightcap.png" alt="Nightcap Natural Medicine, WordPress" loading="lazy">
</div>
<div class="portfolio-card__info">
<h4>Nightcap Natural Medicine</h4>
<span>Health Practice · Managed WordPress</span>
</div>
</a>
<a href="work/crohamhurst-app.html" class="portfolio-card" style="text-decoration:none;color:inherit;">
<div class="portfolio-card__image">
<img src="assets/images/port-crohamhurst.png" alt="Crohamhurst, Gann Cycle Analysis SaaS" loading="lazy">
</div>
<div class="portfolio-card__info">
<h4>Crohamhurst</h4>
<span>Gann Research · Cycle Analysis SaaS</span>
</div>
</a>
<div class="portfolio-card">
<div class="portfolio-card__image">
<img src="assets/images/port-vio.png" alt="Visual Image Photo, Photography Portfolio" loading="lazy">
</div>
<div class="portfolio-card__info">
<h4>Visual Image Photo</h4>
<span>Photography · Portfolio + WooCommerce</span>
</div>
</div>
<div class="portfolio-card">
<div class="portfolio-card__image">
<img src="assets/images/port-artgallery.png" alt="Dayboro Art Gallery, Community Website" loading="lazy">
</div>
<div class="portfolio-card__info">
<h4>Dayboro Art Gallery</h4>
<span>Arts &amp; Culture · Community Website</span>
</div>
</div>
<div class="portfolio-card">
<div class="portfolio-card__image">
<img src="assets/images/port-dogtraining.png" alt="Above &amp; Beyond Dog Training, WordPress" loading="lazy">
</div>
<div class="portfolio-card__info">
<h4>Above &amp; Beyond Dog Training</h4>
<span>Pet Services · WordPress + Store</span>
</div>
</div>
<div class="portfolio-card">
<div class="portfolio-card__image">
<img src="assets/images/port-stald.png" alt="Stald. Photography Zine WooCommerce" loading="lazy">
</div>
<div class="portfolio-card__info">
<h4>Stald.</h4>
<span>Photography Zine · WooCommerce</span>
</div>
</div>
<a href="work/tawnytrails.html" class="portfolio-card" style="text-decoration:none;color:inherit;">
<div class="portfolio-card__image">
<img src="assets/images/tawny-trails.jpg" alt="Tawny Trails, Managed WordPress" loading="lazy">
</div>
<div class="portfolio-card__info">
<h4>Tawny Trails</h4>
<span>Tourism &amp; Experiences · Managed WordPress</span>
</div>
</a>
<div class="portfolio-card">
<div class="portfolio-card__image">
<img src="assets/images/mineral-water-direct.jpg" alt="Mineral Water Direct, WooCommerce" loading="lazy">
</div>
<div class="portfolio-card__info">
<h4>Mineral Water Direct</h4>
<span>eCommerce · WooCommerce</span>
</div>
</div>
</div>
<p class="text-center mt-6" style="color:var(--grey-400); font-size:14px;">
A small selection. We've built and managed many more, <a href="contact.html" class="inline-link">ask us about your industry</a>.
</p>
<p class="text-center mt-4" style="font-size:15px; color:var(--grey-mid);">
Interested in seeing more? <a href="contact.html" class="inline-link">Get in touch</a>, we're happy to share live examples relevant to your industry.
</p>
</div>
</section>
<!-- ═══════════════════════════════════════════════
PRICING
═══════════════════════════════════════════════ -->
<section class="section section--alt" id="pricing" aria-labelledby="pricing-heading">
<div class="container">
<div class="text-center mb-8">
<p class="eyebrow">Transparent Pricing</p>
<h2 id="pricing-heading">One price. No hidden fees.</h2>
<p class="section-subtitle">Month-to-month after setup. No lock-in. No surprises.</p>
</div>
<div class="pricing__grid">
<!-- Essentials -->
<div class="pricing-card reveal">
<h3>Essentials</h3>
<p class="pricing-card__desc">For businesses with existing hosting who need maintenance handled.</p>
<div class="pricing-card__price"><strong>$49</strong><span> AUD/month</span></div>
<ul class="pricing-card__features" role="list">
<li><svg xmlns="http://www.w3.org/2000/svg" width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="#22C55E" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"/></svg> WordPress core, plugin &amp; theme updates</li>
<li><svg xmlns="http://www.w3.org/2000/svg" width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="#22C55E" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"/></svg> Daily offsite backups</li>
<li><svg xmlns="http://www.w3.org/2000/svg" width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="#22C55E" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"/></svg> Security scan &amp; malware monitoring</li>
<li><svg xmlns="http://www.w3.org/2000/svg" width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="#22C55E" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"/></svg> Uptime monitoring</li>
<li><svg xmlns="http://www.w3.org/2000/svg" width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="#22C55E" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"/></svg> Monthly health report</li>
<li class="excluded"><svg xmlns="http://www.w3.org/2000/svg" width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="#CBD5E1" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><line x1="18" y1="6" x2="6" y2="18"/><line x1="6" y1="6" x2="18" y2="18"/></svg> Content edits</li>
<li class="excluded"><svg xmlns="http://www.w3.org/2000/svg" width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="#CBD5E1" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><line x1="18" y1="6" x2="6" y2="18"/><line x1="6" y1="6" x2="18" y2="18"/></svg> SEO monitoring</li>
</ul>
<a href="care-plans.html" class="btn btn-secondary">Start with Essentials</a>
</div>
<!-- Business, FEATURED -->
<div class="pricing-card pricing-card--featured reveal">
<div class="pricing-card__badge">Most Popular</div>
<h3>Business</h3>
<p class="pricing-card__desc">The complete care package for growing businesses.</p>
<div class="pricing-card__price"><strong>$99</strong><span> AUD/month</span></div>
<ul class="pricing-card__features" role="list">
<li><svg xmlns="http://www.w3.org/2000/svg" width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="#22C55E" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"/></svg> Everything in Essentials</li>
<li><svg xmlns="http://www.w3.org/2000/svg" width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="#22C55E" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"/></svg> 1 hour content edits per month</li>
<li><svg xmlns="http://www.w3.org/2000/svg" width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="#22C55E" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"/></svg> Google Search Console monitoring</li>
<li><svg xmlns="http://www.w3.org/2000/svg" width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="#22C55E" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"/></svg> Performance optimisation check</li>
<li><svg xmlns="http://www.w3.org/2000/svg" width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="#22C55E" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"/></svg> Priority 24-hour response</li>
<li><svg xmlns="http://www.w3.org/2000/svg" width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="#22C55E" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"/></svg> Detailed monthly report</li>
<li class="excluded"><svg xmlns="http://www.w3.org/2000/svg" width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="rgba(255,255,255,.2)" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><line x1="18" y1="6" x2="6" y2="18"/><line x1="6" y1="6" x2="18" y2="18"/></svg> Monthly SEO audit</li>
</ul>
<a href="care-plans.html" class="btn btn-primary">Start with Business</a>
</div>
<!-- Fully Managed -->
<div class="pricing-card reveal">
<h3>Fully Managed</h3>
<p class="pricing-card__desc">All-in-one hosting, design tailored to your business, and ongoing management. <strong style="color:var(--ink);">$300 setup fee,</strong> then month-to-month.</p>
<div class="pricing-card__price"><strong>$200</strong><span> AUD/month</span></div>
<ul class="pricing-card__features" role="list">
<li><svg xmlns="http://www.w3.org/2000/svg" width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="#22C55E" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"/></svg> Everything in Business plan</li>
<li><svg xmlns="http://www.w3.org/2000/svg" width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="#22C55E" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"/></svg> Brisbane hosting + domain + email included</li>
<li><svg xmlns="http://www.w3.org/2000/svg" width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="#22C55E" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"/></svg> Premium plugins (corporate licence)</li>
<li><svg xmlns="http://www.w3.org/2000/svg" width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="#22C55E" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"/></svg> Unlimited minor content edits</li>
<li><svg xmlns="http://www.w3.org/2000/svg" width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="#22C55E" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"/></svg> Free site migration</li>
<li><svg xmlns="http://www.w3.org/2000/svg" width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="#22C55E" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"/></svg> Website tailored to your business needs</li>
</ul>
<a href="managed-wordpress.html" class="btn btn-secondary">Get Fully Managed</a>
</div>
</div>
<p class="text-center mt-4" style="color:var(--grey-400); font-size:14px;">
Not sure which plan? <a href="contact.html" class="inline-link">Send us a message</a>, we'll tell you honestly.
</p>
<p class="text-center" style="font-size:13px; color:var(--grey-mid); margin-top:1rem;">All prices shown are exclusive of GST. GST (10%) applies to all services.</p>
</div>
</section>
<!-- ═══════════════════════════════════════════════
TESTIMONIALS
═══════════════════════════════════════════════ -->
<section class="section" id="testimonials" aria-labelledby="testimonials-heading">
<div class="container">
<div class="text-center mb-8">
<p class="eyebrow">Client Feedback</p>
<h2 id="testimonials-heading">What clients actually say.</h2>
</div>
<div class="testimonials__grid">
<div class="testimonial-card reveal">
<div class="testimonial-card__stars" aria-label="5 stars">★★★★★</div>
<p class="testimonial-card__text">"I had no idea what was wrong with my site, it just stopped working after a plugin update. HELP4BIS fixed it within a few hours and explained exactly what happened. Couldn't be happier."</p>
<div class="testimonial-card__author">
<div class="testimonial-card__avatar" aria-hidden="true">S</div>
<div>
<strong>Shane W.</strong>
<span>Electrician, Ipswich</span>
</div>
</div>
</div>
<div class="testimonial-card reveal">
<div class="testimonial-card__stars" aria-label="5 stars">★★★★★</div>
<p class="testimonial-card__text">"We moved our WooCommerce store from a cheap host to HELP4BIS and the difference is night and day. Site loads faster, no more random errors, and I know someone real is watching it."</p>
<div class="testimonial-card__author">
<div class="testimonial-card__avatar" aria-hidden="true">L</div>
<div>
<strong>Lisa C.</strong>
<span>Online Retailer, Toowoomba</span>
</div>
</div>
</div>
<div class="testimonial-card reveal">
<div class="testimonial-card__stars" aria-label="5 stars">★★★★★</div>
<p class="testimonial-card__text">"After two offshore developers who disappeared, HELP4BIS was a breath of fresh air. Transparent, fast, and everything they said they'd do, they did. Our site's been solid for two years now."</p>
<div class="testimonial-card__author">
<div class="testimonial-card__avatar" aria-hidden="true">D</div>
<div>
<strong>David K.</strong>
<span>Financial Planner, Brisbane</span>
</div>
</div>
</div>
</div>
</div>
</section>
<!-- ═══════════════════════════════════════════════
FAQ
═══════════════════════════════════════════════ -->
<section class="section section--alt" id="faq" aria-labelledby="faq-heading">
<div class="container">
<div class="text-center mb-8">
<p class="eyebrow">Questions</p>
<h2 id="faq-heading">The questions we get asked most.</h2>
</div>
<div class="faq__list" role="list">
<details class="faq-item" role="listitem">
<summary class="faq-item__question">
What's the difference between Managed WordPress and a Care Plan?
<span class="faq-item__icon" aria-hidden="true">
<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><line x1="12" y1="5" x2="12" y2="19"/><line x1="5" y1="12" x2="19" y2="12"/></svg>
</span>
</summary>
<div class="faq-item__answer">
Managed WordPress is the all-in-one service, hosting on our Brisbane server, design, unlimited minor edits, domain, email, and all maintenance. A Care Plan is maintenance-only: you keep your current hosting provider and we manage the WordPress layer on top of it. Care Plans start at $49/month; full managed is $200/month.
</div>
</details>
<details class="faq-item" role="listitem">
<summary class="faq-item__question">
My site is broken right now. How quickly can you fix it?
<span class="faq-item__icon" aria-hidden="true">
<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><line x1="12" y1="5" x2="12" y2="19"/><line x1="5" y1="12" x2="19" y2="12"/></svg>
</span>
</summary>
<div class="faq-item__answer">
Submit a brief via the <a href="sos-fix.html" class="inline-link">WP SOS Fix page</a> and we'll get to it within 24 business hours. The flat rate is $97 for a single issue ($197 for complex/multiple issues). No hourly billing, no call required.
</div>
</details>
<details class="faq-item" role="listitem">
<summary class="faq-item__question">
Do you work with businesses outside Brisbane?
<span class="faq-item__icon" aria-hidden="true">
<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><line x1="12" y1="5" x2="12" y2="19"/><line x1="5" y1="12" x2="19" y2="12"/></svg>
</span>
</summary>
<div class="faq-item__answer">
Yes, all services are delivered remotely via email and an online portal. The only Brisbane-specific advantage is the server location (lower latency for Australian visitors). We work with clients across Queensland, New South Wales, Victoria, and Western Australia.
</div>
</details>
<details class="faq-item" role="listitem">
<summary class="faq-item__question">
I'm on Squarespace / Wix. Can you migrate me to WordPress?
<span class="faq-item__icon" aria-hidden="true">
<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><line x1="12" y1="5" x2="12" y2="19"/><line x1="5" y1="12" x2="19" y2="12"/></svg>
</span>
</summary>
<div class="faq-item__answer">
Yes. Migration is included free with the Fully Managed plan. Typical turnaround is 3–5 business days.
</div>
</details>
<details class="faq-item" role="listitem">
<summary class="faq-item__question">
What if I want to cancel?
<span class="faq-item__icon" aria-hidden="true">
<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><line x1="12" y1="5" x2="12" y2="19"/><line x1="5" y1="12" x2="19" y2="12"/></svg>
</span>
</summary>
<div class="faq-item__answer">
All plans are month-to-month. Give us 30 days notice and we'll help migrate your site to wherever you're going. No lock-in, no exit fees, no held-hostage domain.
</div>
</details>
</div>
</div>
</section>
<!-- ═══════════════════════════════════════════════
FREE GUIDE STRIP
═══════════════════════════════════════════════ -->
<section class="section" style="padding-top:0;">
<div class="container">
<div style="background: var(--red-subtle); border: 1px solid rgba(232,53,42,.15); border-radius: var(--r-xl); padding: var(--sp-6); display:flex; align-items:center; justify-content:space-between; gap: var(--sp-5); flex-wrap:wrap;">
<div>
<p class="eyebrow" style="margin-bottom:6px;">Free Guide</p>
<h3 style="font-family:var(--font-head); font-size:20px; margin-bottom:4px; color:var(--ink);">New to AI? Start with the beginner's checklist.</h3>
<p style="color:var(--grey-600); font-size:14.5px; margin:0; max-width:520px;">A plain-English, step-by-step guide for your first week with an AI chat assistant. No sign-up, no jargon.</p>
</div>
<a href="your-first-week-with-ai.html" class="btn btn-primary">Read the Guide</a>
</div>
</div>
</section>
<!-- ═══════════════════════════════════════════════
CTA BAND
═══════════════════════════════════════════════ -->
<section class="cta-band" aria-labelledby="cta-heading">
<div class="container">
<div class="cta-band__content">
<p class="eyebrow" style="color:rgba(255,255,255,.35)">Ready to hand it over?</p>
<h2 id="cta-heading">Your website, handled. From today.</h2>
<p>Send us a brief. No phone call required. We'll respond within one business day with exactly what we recommend and what it costs.</p>
<div class="cta-band__actions">
<a href="contact.html" class="btn btn-primary btn-lg">Get Started</a>
<a href="sos-fix.html" class="btn btn-outline-light btn-lg">SOS Fix $97</a>
</div>
</div>
</div>
</section>
<!-- ═══════════════════════════════════════════════
FOOTER
═══════════════════════════════════════════════ -->
<footer class="footer" aria-label="Site footer">
<div class="container">
<div class="footer__grid">
<div class="footer__brand">
<img src="assets/images/logo-cropped.jpg" alt="HELP4BIS" width="140" height="38">
<p>Managed WordPress hosting and maintenance for Australian small businesses. Brisbane-based, personal service, WordPress specialist, Brisbane.</p>
<p style="margin-top:8px; font-size:12px; color:rgba(255,255,255,.25);">Dutch Digital Dynamics Pty Ltd · ABN 86 081 237 087</p>
</div>
<div class="footer__col">
<h4>Services</h4>
<ul class="footer__links">
<li><a href="managed-wordpress.html">Tailored Website Management</a></li>
<li><a href="care-plans.html">WP Care Plans</a></li>
<li><a href="sos-fix.html">WP SOS Fix</a></li>
<li><a href="ai-integration.html">AI Integration</a></li>
<li><a href="plugin-development.html">Plugin Development</a></li> </ul>
</div>
<div class="footer__col">
<h4>Company</h4>
<ul class="footer__links">
<li><a href="about.html">About the Team</a></li>
<li><a href="#portfolio">Our Work</a></li>
<li><a href="#testimonials">Client Feedback</a></li>
<li><a href="blog/index.html">Blog</a></li>
<li><a href="contact.html">Contact</a></li>
</ul>
</div>
<div class="footer__col">
<h4>Contact</h4>
<ul class="footer__links">
<li><a href="mailto:project@help4bis.com">project@help4bis.com</a></li>
<li><a href="contact.html">Submit a Brief</a></li>
<li><a href="sos-fix.html">Emergency Fix</a></li>
</ul>
<p style="margin-top:16px; font-size:12px; color:rgba(255,255,255,.3);">
Brisbane, Queensland<br>Response within 24 business hours
</p>
</div>
</div>
<div class="footer__bottom">
<span>© 2026 HELP4BIS, a trading name of Dutch Digital Dynamics Pty Ltd · ABN 86 081 237 087</span>
<span><a href="privacy.html">Privacy</a> · <a href="terms.html">Terms</a></span>
</div>
</div>
</footer>
<button id="back-to-top" aria-label="Back to top">
<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="18 15 12 9 6 15"/></svg>
</button>
<script src="assets/js/main.js"></script>
<script src="/analytics/tracker.js" defer></script>
<footer style="margin-top:48px;padding:24px;background:#f0f7f2;border-left:4px solid #18604A;border-radius:8px;font-family:'ABeeZee',sans-serif;font-size:1rem;line-height:1.65;color:#1A1A1A;">
<h3 style="font-family:'Poppins',sans-serif;color:#1A5C2E;font-size:1.1rem;margin:0 0 10px;">A few words from us</h3>
<p style="margin:0 0 8px;">We're not the big shops. We have time to sit down with you and find the best fit for your business, not the best fit for a templated process. Every client we work with is treated as if they're the only one on our desk, because for the time we're with them, they are.</p> <p style="margin:0 0 8px;">It means we're slower to start than a shop that sells you a package off the shelf. It also means we don't sell you a package off the shelf. You get a system that fits how you actually run your business, and you get to talk to the person who built it whenever you need to.</p>
<p style="margin:0;color:#555555;font-size:0.9rem;">Page updated 26/05/2026. Contact: <a href="mailto:project@help4bis.com" style="color:#18604A;">project@help4bis.com</a>.</p>
</footer>
</body>
</html>
+752
View File
@@ -0,0 +1,752 @@
<!DOCTYPE html>
<!-- Version: 1.2.0 | Created: 2026-03-13 | Updated: 2026-08-16 -->
<html lang="en-AU">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Tailored Website Management Brisbane | $300 Setup + $200/mo | HELP4BIS</title>
<meta name="description" content="Your WordPress website designed, built, hosted, and managed for a flat fee. $300 setup, then $200/month. Brisbane servers, month-to-month, no lock-in contract. Includes WooCommerce.">
<meta name="keywords" content="managed WordPress Brisbane, website management small business, WordPress hosting all inclusive, tailored website management Queensland, small business website management Australia, WooCommerce management Brisbane, WordPress all inclusive hosting, website managed service Australia">
<meta name="author" content="HELP4BIS">
<meta name="publisher" content="Dutch Digital Dynamics Pty Ltd">
<meta name="copyright" content="Dutch Digital Dynamics Pty Ltd">
<meta name="language" content="en-AU">
<meta name="revisit-after" content="7 days">
<meta name="category" content="WordPress Services, Web Development, Small Business Technology">
<meta name="classification" content="Business/Technology">
<meta name="coverage" content="Australia">
<meta name="distribution" content="global">
<meta name="rating" content="general">
<meta name="geo.region" content="AU-QLD">
<meta name="geo.placename" content="Brisbane, Queensland">
<meta name="geo.position" content="-27.4698;153.0251">
<meta name="ICBM" content="-27.4698, 153.0251">
<link rel="canonical" href="https://help4bis.com/managed-wordpress.html">
<meta name="robots" content="index, follow">
<meta property="og:type" content="website">
<meta property="og:url" content="https://help4bis.com/managed-wordpress.html">
<meta property="og:site_name" content="HELP4BIS">
<meta property="og:title" content="Tailored Website Management | $300 Setup + $200/mo | HELP4BIS Brisbane">
<meta property="og:description" content="Your WordPress website designed, built, hosted, and managed for a flat fee. $300 setup, then $200/month. Brisbane servers, month-to-month, no lock-in. WooCommerce included.">
<meta property="og:image" content="https://help4bis.com/assets/images/og-social-card.jpg">
<meta property="og:image:width" content="1200">
<meta property="og:image:height" content="630">
<meta property="og:image:alt" content="HELP4BIS, WordPress services for Australian small businesses">
<meta property="og:locale" content="en_AU">
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:site" content="@help4bis">
<meta name="twitter:title" content="Tailored Website Management Brisbane | HELP4BIS">
<meta name="twitter:description" content="$300 setup. $200/month. Your WordPress site designed, hosted, and managed. WooCommerce included. Small businesses only.">
<meta name="twitter:image" content="https://help4bis.com/assets/images/og-social-card.jpg">
<meta name="twitter:image:alt" content="HELP4BIS">
<link rel="icon" type="image/jpeg" href="assets/images/logo-favicon.jpg">
<!-- Fonts -->
<!-- Icons (Lucide) -->
<link rel="stylesheet" href="assets/css/style.css">
<!-- Structured data, Service schema -->
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@graph": [
{
"@type": "Service",
"@id": "https://help4bis.com/managed-wordpress.html#service",
"name": "Tailored Website Management for Small Businesses",
"description": "Website designed, built, hosted, and managed for Australian small businesses. $300 setup fee, then $200/month. Includes Brisbane hosting, domain, email, Elementor Pro, WPForms Pro, RankMath Pro, unlimited minor edits, daily backups, security monitoring, WooCommerce setup, and full WordPress management. Month-to-month. No lock-in.",
"provider": {"@id": "https://help4bis.com/#business"},
"areaServed": {"@type": "Country", "name": "Australia"},
"serviceType": "Managed Website Services",
"offers": [
{
"@type": "Offer",
"name": "Month One (Setup + First Month)",
"description": "Includes website design, build, domain setup, Brisbane hosting, email, WooCommerce setup if required, and full WordPress configuration.",
"price": "300.00",
"priceCurrency": "AUD",
"url": "https://help4bis.com/managed-wordpress.html"
},
{
"@type": "Offer",
"name": "Ongoing Monthly Management",
"description": "Monthly hosting, maintenance, daily backups, security monitoring, plugin updates, and unlimited minor content edits.",
"price": "200.00",
"priceCurrency": "AUD",
"priceSpecification": {
"@type": "UnitPriceSpecification",
"price": "200.00",
"priceCurrency": "AUD",
"unitText": "MONTH",
"billingDuration": "P1M"
},
"url": "https://help4bis.com/managed-wordpress.html"
}
]
},
{
"@type": "WebPage",
"@id": "https://help4bis.com/managed-wordpress.html#webpage",
"url": "https://help4bis.com/managed-wordpress.html",
"name": "Tailored Website Management Brisbane | $300 Setup + $200/mo | HELP4BIS",
"isPartOf": {"@id": "https://help4bis.com/#website"},
"breadcrumb": {
"@type": "BreadcrumbList",
"itemListElement": [
{"@type": "ListItem", "position": 1, "name": "Home", "item": "https://help4bis.com/"},
{"@type": "ListItem", "position": 2, "name": "Tailored Website Management", "item": "https://help4bis.com/managed-wordpress.html"}
]
}
}
]
}
</script>
</head>
<body>
<!-- ═══════════════════════════════════════════════
NAVIGATION
═══════════════════════════════════════════════ -->
<nav class="nav" role="navigation" aria-label="Main navigation">
<div class="container">
<div class="nav__inner">
<a class="nav__logo" href="index.html" aria-label="HELP4BIS home">
<img src="assets/images/logo-cropped.jpg" alt="HELP4BIS Logo" width="160" height="44">
</a>
<ul class="nav__links" id="nav-links" role="list">
<!-- Services dropdown -->
<li class="nav__dropdown">
<button class="nav__trigger" aria-haspopup="true" aria-expanded="false">Services <svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"/></svg></button>
<ul class="nav__dropdown-menu" role="menu">
<li class="nav__menu-group">WordPress</li>
<li><a href="managed-wordpress.html" role="menuitem">Tailored Website Management</a></li>
<li><a href="care-plans.html" role="menuitem">WP Care Plans <span class="menu-price">from $49/mo</span></a></li>
<li><a href="sos-fix.html" role="menuitem">WP SOS Fix <span class="menu-price">$97 flat</span></a></li>
<li><a href="ai-integration.html" role="menuitem">AI Integration</a></li>
<li><a href="plugin-development.html" role="menuitem">Custom Plugin Development</a></li> </ul>
</li>
<li><a href="about.html">About</a></li>
<li><a href="index.html#portfolio">Our Work</a></li>
<li><a href="index.html#pricing">Pricing</a></li>
<li><a href="blog/index.html">Blog</a></li>
<li><a href="your-first-week-with-ai.html">AI Guide</a></li>
<li><a href="contact.html">Contact</a></li>
<!-- Mobile CTA (inside nav drawer) -->
<li class="nav__cta-mobile" aria-hidden="true">
<a href="contact.html" class="btn btn-primary">Get Started</a>
<a href="sos-fix.html" class="btn btn-secondary">SOS Fix, $97</a>
</li>
</ul>
<div class="nav__cta">
<a href="sos-fix.html" class="btn btn-secondary btn-sm">SOS Fix $97</a>
<a href="contact.html" class="btn btn-primary btn-sm">Get Started</a>
</div>
<button class="nav__burger" id="nav-burger" aria-label="Open menu" aria-expanded="false" aria-controls="nav-links">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><line x1="3" y1="12" x2="21" y2="12"/><line x1="3" y1="6" x2="21" y2="6"/><line x1="3" y1="18" x2="21" y2="18"/></svg>
</button>
</div>
</div>
</nav>
<!-- ═══════════════════════════════════════════════
PAGE HERO
═══════════════════════════════════════════════ -->
<section class="page-hero" aria-labelledby="mwp-heading">
<div class="container">
<nav class="breadcrumb" aria-label="Breadcrumb">
<ol>
<li><a href="index.html">Home</a></li>
<li><a href="#services">Services</a></li>
<li aria-current="page">Tailored Website Management</li>
</ol>
</nav>
<p class="eyebrow">Tailored Website Management</p>
<h1 id="mwp-heading">Your website. Designed, built, hosted, and managed. We handle all of it.</h1>
<p class="hero__lead" style="max-width:660px;">$300 gets you started, that covers month one: design, build, hosting setup, and everything configured. From month two it's $200/month. Month-to-month, no lock-in.</p>
<div class="hero__actions">
<a href="contact.html" class="btn btn-primary btn-lg">Get Started: $300 Month One</a>
<a href="care-plans.html" class="btn btn-secondary btn-lg">Compare Care Plans</a>
</div>
</div>
</section>
<!-- ═══════════════════════════════════════════════
HOW THE PRICING WORKS
═══════════════════════════════════════════════ -->
<section class="section" id="pricing" aria-labelledby="pricing-heading">
<div class="container">
<div class="text-center mb-6">
<p class="eyebrow">Simple Pricing</p>
<h2 id="pricing-heading">How it works, no surprises</h2>
</div>
<div class="why__grid reveal" style="align-items:start;">
<!-- Step 1: Setup -->
<div style="background:var(--grey-50); border-radius:16px; padding:2rem; border:1px solid var(--border);">
<div style="display:flex; align-items:center; gap:1rem; margin-bottom:1.25rem;">
<div style="width:48px; height:48px; background:var(--red); border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:20px; font-weight:700; color:#fff; font-family:var(--font-head); flex-shrink:0;">1</div>
<div>
<div style="font-weight:700; font-size:18px; color:var(--ink); font-family:var(--font-head);">Month one: $300</div>
<div style="font-size:14px; color:var(--text-muted);">We start immediately. Design and build happens this month.</div>
</div>
</div>
<p style="color:var(--text-muted); margin-bottom:1rem;">You pay $300, we get to work. This month covers the full design, build, and setup, your brief, your brand, your pages. We configure hosting, email, domain, and all plugins, whilst you get on with running your business. You approve the site before it goes live.</p>
<ul class="why__points" style="font-size:14px;">
<li>
<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"/></svg>
Full website designed to your brief
</li>
<li>
<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"/></svg>
Hosting, domain, email configured on our Brisbane server
</li>
<li>
<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"/></svg>
All premium plugins installed and configured
</li>
<li>
<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"/></svg>
You approve before it goes live
</li>
</ul>
</div>
<!-- Step 2: Monthly from month two -->
<div style="background:var(--ink); border-radius:16px; padding:2rem; color:#fff;">
<div style="display:flex; align-items:center; gap:1rem; margin-bottom:1.25rem;">
<div style="width:48px; height:48px; background:var(--red); border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:20px; font-weight:700; color:#fff; font-family:var(--font-head); flex-shrink:0;">2</div>
<div>
<div style="font-weight:700; font-size:18px; color:#fff; font-family:var(--font-head);">From month two: $200/month</div>
<div style="font-size:14px; color:rgba(255,255,255,.5);">Month-to-month. No contract. Cancel with 30 days notice.</div>
</div>
</div>
<p style="color:rgba(255,255,255,.7); margin-bottom:1rem;">$200/month covers everything ongoing, hosting, management, premium plugin licences, unlimited minor content edits. One invoice. Nothing extra.</p>
<ul style="list-style:none; padding:0; margin:0; font-size:14px; display:flex; flex-direction:column; gap:.6rem;">
<li style="display:flex; align-items:flex-start; gap:.5rem; color:rgba(255,255,255,.85);">
<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="#4ade80" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" style="flex-shrink:0; margin-top:2px;"><polyline points="20 6 9 17 4 12"/></svg>
Hosting, SSL, backups, uptime monitoring
</li>
<li style="display:flex; align-items:flex-start; gap:.5rem; color:rgba(255,255,255,.85);">
<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="#4ade80" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" style="flex-shrink:0; margin-top:2px;"><polyline points="20 6 9 17 4 12"/></svg>
WordPress updates, security, performance
</li>
<li style="display:flex; align-items:flex-start; gap:.5rem; color:rgba(255,255,255,.85);">
<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="#4ade80" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" style="flex-shrink:0; margin-top:2px;"><polyline points="20 6 9 17 4 12"/></svg>
Premium plugin licences (covered under our corporate licence)
</li>
<li style="display:flex; align-items:flex-start; gap:.5rem; color:rgba(255,255,255,.85);">
<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="#4ade80" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" style="flex-shrink:0; margin-top:2px;"><polyline points="20 6 9 17 4 12"/></svg>
Unlimited minor content edits (text, images, prices, see fair use policy in FAQ)
</li>
<li style="display:flex; align-items:flex-start; gap:.5rem; color:rgba(255,255,255,.85);">
<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="#4ade80" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" style="flex-shrink:0; margin-top:2px;"><polyline points="20 6 9 17 4 12"/></svg>
Direct email contact, 24-hour response
</li>
</ul>
</div>
</div>
<p style="font-size:13px; color:var(--grey-mid); margin-top:0.5rem;">All prices shown are exclusive of GST. GST (10%) applies to Australian clients.</p>
</div>
</section>
<!-- ═══════════════════════════════════════════════
WHAT'S INCLUDED, 3-COLUMN GRID
═══════════════════════════════════════════════ -->
<section class="section section--alt" id="included" aria-labelledby="included-heading">
<div class="container">
<div class="text-center mb-6">
<p class="eyebrow">Everything Covered</p>
<h2 id="included-heading">What's included, every month</h2>
<p class="section-subtitle">One fee covers the entire stack. No surprise add-ons. No annual renewals to manage.</p>
</div>
<div class="services__grid">
<!-- Hosting & Infrastructure -->
<div class="service-card reveal">
<div class="service-card__icon" aria-hidden="true">
<svg xmlns="http://www.w3.org/2000/svg" width="26" height="26" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="2" y="2" width="20" height="8" rx="2" ry="2"/><rect x="2" y="14" width="20" height="8" rx="2" ry="2"/><line x1="6" y1="6" x2="6.01" y2="6"/><line x1="6" y1="18" x2="6.01" y2="18"/></svg>
</div>
<h3>Hosting &amp; Infrastructure</h3>
<ul class="why__points" style="margin-top:1rem;">
<li>
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"/></svg>
Brisbane-based server, fast Australian load times
</li>
<li>
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"/></svg>
SSL certificate, automated renewal
</li>
<li>
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"/></svg>
Server-level caching for fast load times
</li>
<li>
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"/></svg>
Daily offsite backups, 30-day retention
</li>
<li>
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"/></svg>
Uptime monitoring, alerts within 5 minutes
</li>
</ul>
</div>
<!-- WordPress Management -->
<div class="service-card reveal">
<div class="service-card__icon" aria-hidden="true">
<svg xmlns="http://www.w3.org/2000/svg" width="26" height="26" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M22 12h-4l-3 9L9 3l-3 9H2"/></svg>
</div>
<h3>WordPress Management</h3>
<ul class="why__points" style="margin-top:1rem;">
<li>
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"/></svg>
Core, plugin, and theme updates, tested before applying
</li>
<li>
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"/></svg>
Malware scanning and security monitoring
</li>
<li>
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"/></svg>
Monthly performance audit
</li>
<li>
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"/></svg>
Database optimisation
</li>
<li>
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"/></svg>
Google Search Console monitoring
</li>
</ul>
</div>
<!-- What You Get -->
<div class="service-card reveal">
<div class="service-card__icon" aria-hidden="true">
<svg xmlns="http://www.w3.org/2000/svg" width="26" height="26" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"/></svg>
</div>
<h3>Your Business Tools</h3>
<ul class="why__points" style="margin-top:1rem;">
<li>
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"/></svg>
Domain name (standard.com.au or.com)
</li>
<li>
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"/></svg>
5 professional email addresses (@yourdomain)
</li>
<li>
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"/></svg>
Elementor Pro, page builder
</li>
<li>
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"/></svg>
WPForms Pro, contact and enquiry forms
</li>
<li>
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"/></svg>
RankMath Pro, SEO
</li>
<li>
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"/></svg>
Unlimited minor content edits (text, images, prices, see fair use policy in FAQ)
</li>
</ul>
</div>
</div>
<!-- Plugin licence note -->
<div class="reveal" style="max-width:780px; margin:2.5rem auto 0; background:var(--grey-50); border:1px solid var(--border); border-radius:12px; padding:1.25rem 1.5rem; display:flex; align-items:flex-start; gap:1rem;">
<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="var(--red)" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" style="flex-shrink:0; margin-top:2px;"><circle cx="12" cy="12" r="10"/><line x1="12" y1="8" x2="12" y2="12"/><line x1="12" y1="16" x2="12.01" y2="16"/></svg>
<p style="margin:0; font-size:14px; color:var(--text-muted);"><strong style="color:var(--ink);">Plugin licence note:</strong> Elementor Pro, WPForms Pro, and RankMath Pro are licensed under HELP4BIS's corporate account. Those licences stay with us, they don't transfer to you if you leave. If you move your site elsewhere, you'd need to purchase your own plugin licences. <a href="#exit-options" class="inline-link">See exit options below.</a></p>
</div>
</div>
</section>
<!-- ═══════════════════════════════════════════════
WOOCOMMERCE CALLOUT
═══════════════════════════════════════════════ -->
<section class="section" aria-labelledby="woo-heading">
<div class="container">
<div style="max-width:780px; margin:0 auto; background:var(--ink); border-radius:16px; padding:2.5rem; color:#fff;" class="reveal">
<p class="eyebrow" style="color:rgba(255,255,255,.4);">Online Shop</p>
<h2 id="woo-heading" style="color:#fff; margin-bottom:1rem;">Need a WooCommerce shop?</h2>
<p style="color:rgba(255,255,255,.75); margin-bottom:1.5rem;">WooCommerce setup is included in the build, shop pages, product categories, checkout flow, payment gateway setup. Once it's live, <strong style="color:#fff;">you manage your own products</strong>: add new products, update prices, manage stock levels, process orders. We handle everything else.</p>
<div style="display:grid; grid-template-columns:1fr 1fr; gap:1rem; margin-bottom:1.5rem;">
<div>
<div style="font-weight:600; color:#4ade80; font-size:14px; margin-bottom:.5rem; display:flex; align-items:center; gap:.4rem;">
<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="#4ade80" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"/></svg>
We build
</div>
<ul style="list-style:none; padding:0; margin:0; font-size:14px; color:rgba(255,255,255,.7); display:flex; flex-direction:column; gap:.4rem;">
<li>Shop structure and categories</li>
<li>Checkout and payment setup</li>
<li>Product page templates</li>
<li>Tax and shipping rules</li>
</ul>
</div>
<div>
<div style="font-weight:600; color:rgba(255,255,255,.5); font-size:14px; margin-bottom:.5rem; display:flex; align-items:center; gap:.4rem;">
<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="rgba(255,255,255,.5)" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><line x1="18" y1="6" x2="6" y2="18"/><line x1="6" y1="6" x2="18" y2="18"/></svg>
You manage
</div>
<ul style="list-style:none; padding:0; margin:0; font-size:14px; color:rgba(255,255,255,.7); display:flex; flex-direction:column; gap:.4rem;">
<li>Adding and editing products</li>
<li>Setting your own prices</li>
<li>Stock levels and inventory</li>
<li>Processing your own orders</li>
</ul>
</div>
</div>
<p style="color:rgba(255,255,255,.5); font-size:13px; margin:0;">WooCommerce setup is included for small retailers: a café selling gift vouchers, a tradie selling merchandise, a studio selling class passes. <strong style="color:rgba(255,255,255,.7);">Not for large catalogues of 200+ products.</strong></p>
</div>
</div>
</section>
<!-- ═══════════════════════════════════════════════
EXIT OPTIONS, WHEN THE SITE IS DONE
═══════════════════════════════════════════════ -->
<section class="section section--alt" id="exit-options" aria-labelledby="exit-heading">
<div class="container">
<div class="text-center mb-6">
<p class="eyebrow">Your Choice</p>
<h2 id="exit-heading">When the website is done, two paths forward</h2>
<p class="section-subtitle">Once your site is live and you're happy with it, you're not locked in. Here's what your options are.</p>
</div>
<div class="why__grid reveal" style="align-items:start;">
<!-- Option A: Stay -->
<div style="background:#fff; border-radius:16px; padding:2rem; border:2px solid #16a34a; box-shadow:var(--shadow-sm);">
<div style="display:flex; align-items:center; gap:.75rem; margin-bottom:1rem;">
<div style="width:40px; height:40px; background:#16a34a; border-radius:50%; display:flex; align-items:center; justify-content:center; flex-shrink:0;">
<svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="#fff" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"/></svg>
</div>
<h3 style="margin:0; color:var(--ink);">Option A, Stay managed</h3>
</div>
<p style="color:var(--text-muted); margin-bottom:1rem;">Keep the $200/month arrangement. Everything stays covered, hosting, updates, security, premium plugins, content edits. You never think about the website again. Most clients choose this.</p>
<ul class="why__points" style="font-size:14px;">
<li>
<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"/></svg>
Month-to-month, cancel any time with 30 days notice
</li>
<li>
<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"/></svg>
Premium plugin licences continue to be covered
</li>
<li>
<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"/></svg>
Ongoing support and edits included
</li>
</ul>
</div>
<!-- Option B: Buy out -->
<div style="background:#fff; border-radius:16px; padding:2rem; border:1px solid var(--border); box-shadow:var(--shadow-sm);">
<div style="display:flex; align-items:center; gap:.75rem; margin-bottom:1rem;">
<div style="width:40px; height:40px; background:var(--grey-50); border:1px solid var(--border); border-radius:50%; display:flex; align-items:center; justify-content:center; flex-shrink:0;">
<svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="var(--ink)" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"/><polyline points="7 10 12 15 17 10"/><line x1="12" y1="15" x2="12" y2="3"/></svg>
</div>
<h3 style="margin:0; color:var(--ink);">Option B, Buy out and take the site</h3>
</div>
<p style="color:var(--text-muted); margin-bottom:1rem;">Pay a $2,000 one-time fee and take the site with you to any host you choose. You own the WordPress install, the content, and the design files outright.</p>
<ul class="why__points" style="font-size:14px; margin-bottom:1.25rem;">
<li>
<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"/></svg>
Full export of your WordPress site
</li>
<li>
<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"/></svg>
All content and design files transferred to you
</li>
<li>
<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"/></svg>
Migration assistance to your new host
</li>
</ul>
<!-- Plugin licence warning -->
<div style="background:#fff7ed; border:1px solid #fed7aa; border-radius:8px; padding:1rem; font-size:13px; color:#9a3412;">
<strong>Important:</strong> The premium plugin licences (Elementor Pro, WPForms Pro, RankMath Pro) remain with HELP4BIS. They don't transfer. If you want to keep using those plugins, you'll need to purchase your own licences, approximately $300–$400/year total. We'll give you the deactivated plugins so you can reactivate under your own account.
</div>
</div>
</div>
</div>
</section>
<!-- ═══════════════════════════════════════════════
IS THIS RIGHT FOR YOU
═══════════════════════════════════════════════ -->
<section class="section" aria-labelledby="rightforyou-heading">
<div class="container">
<div class="text-center mb-6">
<p class="eyebrow">Fit Check</p>
<h2 id="rightforyou-heading">Is this right for you?</h2>
<p class="section-subtitle">This service is designed for small businesses, not enterprise, not large eCommerce.</p>
</div>
<div class="why__grid reveal">
<div style="background:#fff; border-radius:12px; padding:2rem; box-shadow:var(--shadow-sm);">
<h3 style="color:#16a34a; display:flex; align-items:center; gap:.5rem; margin-bottom:1.25rem;">
<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="#16a34a" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"/></svg>
YES, this is for you if:
</h3>
<ul class="why__points">
<li>
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="#16a34a" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"/></svg>
You're a tradie, café, beauty business, fitness studio, or similar small operator
</li>
<li>
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="#16a34a" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"/></svg>
You want zero tech involvement, one invoice, everything handled
</li>
<li>
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="#16a34a" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"/></svg>
You need a professional site that makes your phone ring
</li>
<li>
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="#16a34a" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"/></svg>
You want hosting, email, domain, and maintenance as one predictable cost
</li>
<li>
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="#16a34a" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"/></svg>
You want premium plugin features without the annual bills
</li>
</ul>
</div>
<div style="background:#fff; border-radius:12px; padding:2rem; box-shadow:var(--shadow-sm);">
<h3 style="color:var(--red); display:flex; align-items:center; gap:.5rem; margin-bottom:1.25rem;">
<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="var(--red)" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><line x1="18" y1="6" x2="6" y2="18"/><line x1="6" y1="6" x2="18" y2="18"/></svg>
NOT right for you if:
</h3>
<ul class="why__points">
<li>
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="var(--grey-mid)" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><line x1="18" y1="6" x2="6" y2="18"/><line x1="6" y1="6" x2="18" y2="18"/></svg>
You're a large retailer with 200+ products, not our target client
</li>
<li>
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="var(--grey-mid)" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><line x1="18" y1="6" x2="6" y2="18"/><line x1="6" y1="6" x2="18" y2="18"/></svg>
You need enterprise-level infrastructure, staging environments, or dev team access
</li>
<li>
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="var(--grey-mid)" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><line x1="18" y1="6" x2="6" y2="18"/><line x1="6" y1="6" x2="18" y2="18"/></svg>
You're a developer who wants SSH access, <a href="contact.html" class="inline-link">ask us about a custom arrangement</a>
</li>
<li>
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="var(--grey-mid)" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><line x1="18" y1="6" x2="6" y2="18"/><line x1="6" y1="6" x2="18" y2="18"/></svg>
You're on a tight budget, the <a href="care-plans.html" class="inline-link">Care Plans start at $49/month</a> with your own hosting
</li>
</ul>
</div>
</div>
</div>
</section>
<!-- ═══════════════════════════════════════════════
FAQ
═══════════════════════════════════════════════ -->
<section class="section section--alt" aria-labelledby="faq-heading">
<div class="container">
<div class="text-center mb-6">
<p class="eyebrow">Questions</p>
<h2 id="faq-heading">Common questions</h2>
</div>
<div class="faq__list" role="list">
<details class="faq-item reveal" role="listitem">
<summary class="faq-item__question">
Why is there a setup fee?
<span class="faq-item__icon" aria-hidden="true">
<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><line x1="12" y1="5" x2="12" y2="19"/><line x1="5" y1="12" x2="19" y2="12"/></svg>
</span>
</summary>
<div class="faq-item__answer">
$300 is month one, you pay it, we start immediately. That covers the full design and build: structuring the site, setting up hosting on our Brisbane server, configuring email, installing all plugins, and getting everything to the point where you approve it. From month two it's $200/month. The work starts the day we receive payment, not when the site goes live.
</div>
</details>
<details class="faq-item reveal" role="listitem">
<summary class="faq-item__question">
What happens to my existing site content?
<span class="faq-item__icon" aria-hidden="true">
<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><line x1="12" y1="5" x2="12" y2="19"/><line x1="5" y1="12" x2="19" y2="12"/></svg>
</span>
</summary>
<div class="faq-item__answer">
We migrate everything, pages, posts, images, forms. Nothing is lost in the move.
</div>
</details>
<details class="faq-item reveal" role="listitem">
<summary class="faq-item__question">
Can I keep my existing domain and email?
<span class="faq-item__icon" aria-hidden="true">
<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><line x1="12" y1="5" x2="12" y2="19"/><line x1="5" y1="12" x2="19" y2="12"/></svg>
</span>
</summary>
<div class="faq-item__answer">
Yes. Domain and email are included but not mandatory. If you have existing services you're happy with, keep them, we'll work around them.
</div>
</details>
<details class="faq-item reveal" role="listitem">
<summary class="faq-item__question">
Do I own the website?
<span class="faq-item__icon" aria-hidden="true">
<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><line x1="12" y1="5" x2="12" y2="19"/><line x1="5" y1="12" x2="19" y2="12"/></svg>
</span>
</summary>
<div class="faq-item__answer">
You own your content, your pages, images, and copy are yours. If you choose the $2,000 buyout option, you take the full WordPress installation with you. The premium plugin licences (Elementor Pro, WPForms Pro, RankMath Pro) stay with HELP4BIS and don't transfer, if you move, you'd need to purchase your own plugin licences separately.
</div>
</details>
<details class="faq-item reveal" role="listitem">
<summary class="faq-item__question">
What's NOT included in the $200/month?
<span class="faq-item__icon" aria-hidden="true">
<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><line x1="12" y1="5" x2="12" y2="19"/><line x1="5" y1="12" x2="19" y2="12"/></svg>
</span>
</summary>
<div class="faq-item__answer">
New page designs beyond the initial build, custom plugin development, paid advertising management, and content writing. These are quoted separately. Minor content edits (text changes, image swaps, price updates) are included. WooCommerce setup for small catalogues is included in the build.
</div>
</details>
<details class="faq-item reveal" role="listitem">
<summary class="faq-item__question">
Can I add WooCommerce?
<span class="faq-item__icon" aria-hidden="true">
<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><line x1="12" y1="5" x2="12" y2="19"/><line x1="5" y1="12" x2="19" y2="12"/></svg>
</span>
</summary>
<div class="faq-item__answer">
Yes, for small catalogues. We build the shop structure: categories, product page templates, checkout, payment gateway, and tax/shipping rules. Once it's set up, you manage your own products, add them, update prices, handle stock and orders yourself. We don't manage product catalogues on an ongoing basis. If you need a large catalogue (200+ products) managed for you, this isn't the right service.
</div>
</details>
</div>
</div>
</section>
<!-- ═══════════════════════════════════════════════
CTA BAND
═══════════════════════════════════════════════ -->
<section class="cta-band" aria-labelledby="cta-heading">
<div class="container">
<div class="cta-band__content">
<p class="eyebrow" style="color:rgba(255,255,255,.5)">One monthly fee. No tech headaches. No lock-in.</p>
<h2 id="cta-heading">Your website, completely handled.</h2>
<p>Send us a brief. We'll come back within one business day with exactly what we recommend and what it costs. No obligation.</p>
<div class="cta-band__actions">
<a href="contact.html" class="btn btn-primary btn-lg">Get Started: $300 Month One</a>
<a href="care-plans.html" class="btn btn-outline-light btn-lg">Compare Care Plans</a>
</div>
<p style="font-size:14px; color:rgba(255,255,255,0.6); margin-top:0.75rem;">Want to see examples of sites we've built? <a href="index.html#portfolio" style="color:rgba(255,255,255,0.85); text-decoration:underline;">View our portfolio →</a></p>
</div>
</div>
</section>
<!-- ═══════════════════════════════════════════════
FOOTER
═══════════════════════════════════════════════ -->
<footer class="footer" aria-label="Site footer">
<div class="container">
<div class="footer__grid">
<div class="footer__brand">
<img src="assets/images/logo-cropped.jpg" alt="HELP4BIS" width="140" height="38">
<p>Tailored website management for Australian small businesses. Brisbane-based, personal service, WordPress specialist, Brisbane.</p>
<p style="font-size:13px; color:rgba(255,255,255,.4);">Dutch Digital Dynamics Pty Ltd · ABN 86 081 237 087</p>
</div>
<div class="footer__col">
<h4>Services</h4>
<ul class="footer__links">
<li><a href="managed-wordpress.html">Tailored Website Management</a></li>
<li><a href="care-plans.html">WP Care Plans</a></li>
<li><a href="sos-fix.html">WP SOS Fix</a></li>
<li><a href="ai-integration.html">AI Integration</a></li>
<li><a href="plugin-development.html">Plugin Development</a></li> </ul>
</div>
<div class="footer__col">
<h4>Company</h4>
<ul class="footer__links">
<li><a href="about.html">About Us</a></li>
<li><a href="index.html#portfolio">Our Work</a></li>
<li><a href="index.html#testimonials">Client Feedback</a></li>
<li><a href="blog/index.html">Blog</a></li>
<li><a href="contact.html">Contact</a></li>
</ul>
</div>
<div class="footer__col">
<h4>Contact</h4>
<ul class="footer__links">
<li><a href="mailto:project@help4bis.com">project@help4bis.com</a></li>
<li><a href="contact.html">Submit a Brief</a></li>
<li><a href="sos-fix.html">Emergency Fix</a></li>
</ul>
<p style="margin-top:1rem; font-size:13px; color:rgba(255,255,255,.4);">
Brisbane, Queensland<br>
Response within 24 business hours
</p>
</div>
</div>
<div class="footer__bottom">
<span>© 2026 HELP4BIS, a trading name of Dutch Digital Dynamics Pty Ltd · ABN 86 081 237 087</span>
<span>
<a href="privacy.html">Privacy Policy</a> ·
<a href="terms.html">Terms</a>
</span>
</div>
</div>
</footer>
<!-- Back to top -->
<button id="back-to-top" aria-label="Back to top" style="position:fixed;bottom:24px;right:24px;width:44px;height:44px;background:var(--red);border:none;border-radius:50%;color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .3s ease;box-shadow:var(--shadow-md);">
<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="18 15 12 9 6 15"/></svg>
</button>
<script src="assets/js/main.js"></script>
<script src="/analytics/tracker.js" defer></script>
<footer style="margin-top:48px;padding:24px;background:#f0f7f2;border-left:4px solid #18604A;border-radius:8px;font-family:'ABeeZee',sans-serif;font-size:1rem;line-height:1.65;color:#1A1A1A;">
<h3 style="font-family:'Poppins',sans-serif;color:#1A5C2E;font-size:1.1rem;margin:0 0 10px;">A few words from us</h3>
<p style="margin:0 0 8px;">We're not the big shops. We have time to sit down with you and find the best fit for your business, not the best fit for a templated process. Every client we work with is treated as if they're the only one on our desk, because for the time we're with them, they are.</p> <p style="margin:0 0 8px;">It means we're slower to start than a shop that sells you a package off the shelf. It also means we don't sell you a package off the shelf. You get a system that fits how you actually run your business, and you get to talk to the person who build it whenever you need to.</p>
<p style="margin:0;color:#555555;font-size:0.9rem;">Page updated 26/05/2026. Contact: <a href="mailto:project@help4bis.com" style="color:#18604A;">project@help4bis.com</a>.</p>
</footer>
</body>
</html>
+744
View File
@@ -0,0 +1,744 @@
<!DOCTYPE html>
<!-- Version: 1.2.0 | Created: 2026-03-13 | Updated: 2026-08-16 -->
<html lang="en-AU">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Custom WordPress Plugin Development | Project-Priced | HELP4BIS</title>
<meta name="description" content="Custom WordPress plugins built to a fixed scope and price. Form-to-API integrations, WooCommerce extensions, admin dashboards. From $497 AUD. 3–14 day delivery. HELP4BIS, Brisbane.">
<meta name="keywords" content="custom WordPress plugin development Brisbane, WordPress plugin developer Australia, WordPress form API integration, WooCommerce custom extension, WordPress API connector, fixed price plugin development, custom Elementor widget, WordPress admin plugin">
<meta name="author" content="HELP4BIS">
<meta name="publisher" content="Dutch Digital Dynamics Pty Ltd">
<meta name="copyright" content="Dutch Digital Dynamics Pty Ltd">
<meta name="language" content="en-AU">
<meta name="revisit-after" content="7 days">
<meta name="category" content="WordPress Services, Web Development, Custom Development">
<meta name="classification" content="Business/Technology">
<meta name="coverage" content="Australia">
<meta name="distribution" content="global">
<meta name="rating" content="general">
<meta name="geo.region" content="AU-QLD">
<meta name="geo.placename" content="Brisbane, Queensland">
<meta name="geo.position" content="-27.4698;153.0251">
<meta name="ICBM" content="-27.4698, 153.0251">
<link rel="canonical" href="https://help4bis.com/plugin-development.html">
<meta name="robots" content="index, follow">
<meta property="og:type" content="website">
<meta property="og:url" content="https://help4bis.com/plugin-development.html">
<meta property="og:site_name" content="HELP4BIS">
<meta property="og:title" content="Custom WordPress Plugin Development | Project-Priced | HELP4BIS Brisbane">
<meta property="og:description" content="Custom WordPress plugins built to a fixed scope and price. Form-to-API integrations, WooCommerce extensions, API connectors. From $497 AUD. HELP4BIS, Brisbane.">
<meta property="og:image" content="https://help4bis.com/assets/images/og-social-card.jpg">
<meta property="og:image:width" content="1200">
<meta property="og:image:height" content="630">
<meta property="og:image:alt" content="HELP4BIS, WordPress services for Australian small businesses">
<meta property="og:locale" content="en_AU">
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:site" content="@help4bis">
<meta name="twitter:title" content="Custom WordPress Plugin Development | Project-Priced | HELP4BIS">
<meta name="twitter:description" content="Defined scope, project pricing. Custom WordPress plugins from $497. Delivered in 3–14 days. Brisbane-based developer.">
<meta name="twitter:image" content="https://help4bis.com/assets/images/og-social-card.jpg">
<meta name="twitter:image:alt" content="HELP4BIS">
<link rel="icon" type="image/jpeg" href="assets/images/logo-favicon.jpg">
<!-- Fonts -->
<!-- Icons (Lucide) -->
<link rel="stylesheet" href="assets/css/style.css">
<!-- Structured data, Service schema -->
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@graph": [
{
"@type": "Service",
"@id": "https://help4bis.com/plugin-development.html#service",
"name": "Custom WordPress Plugin Development",
"description": "Custom WordPress plugins built to a fixed scope and price. Form-to-API integrations, WooCommerce extensions, custom Elementor widgets, Zapier connectors, admin dashboards, and reporting plugins. Delivered in 3–14 business days. 50% deposit, 50% on delivery. Full source code ownership.",
"provider": {"@id": "https://help4bis.com/#business"},
"areaServed": {"@type": "Country", "name": "Australia"},
"serviceType": "Custom WordPress Plugin Development",
"offers": [
{
"@type": "Offer",
"name": "WordPress Form to API Integration Plugin",
"description": "Connect WordPress forms (WPForms, Gravity Forms, Contact Form 7) to external APIs, CRMs, or data stores.",
"priceCurrency": "AUD",
"priceSpecification": {
"@type": "PriceSpecification",
"minPrice": "497",
"maxPrice": "997",
"priceCurrency": "AUD"
},
"url": "https://help4bis.com/plugin-development.html"
},
{
"@type": "Offer",
"name": "WooCommerce Custom Extension",
"description": "Custom WooCommerce functionality: custom product types, checkout fields, pricing rules, or fulfilment integrations.",
"priceCurrency": "AUD",
"priceSpecification": {
"@type": "PriceSpecification",
"minPrice": "797",
"maxPrice": "1497",
"priceCurrency": "AUD"
},
"url": "https://help4bis.com/plugin-development.html"
},
{
"@type": "Offer",
"name": "Custom WordPress Admin Dashboard or Reporting Plugin",
"description": "Custom admin screens, data reporting, or business logic plugins built to your specification.",
"priceCurrency": "AUD",
"priceSpecification": {
"@type": "PriceSpecification",
"minPrice": "997",
"maxPrice": "1997",
"priceCurrency": "AUD"
},
"url": "https://help4bis.com/plugin-development.html"
}
]
},
{
"@type": "WebPage",
"@id": "https://help4bis.com/plugin-development.html#webpage",
"url": "https://help4bis.com/plugin-development.html",
"name": "Custom WordPress Plugin Development | Project-Priced | HELP4BIS",
"isPartOf": {"@id": "https://help4bis.com/#website"},
"breadcrumb": {
"@type": "BreadcrumbList",
"itemListElement": [
{"@type": "ListItem", "position": 1, "name": "Home", "item": "https://help4bis.com/"},
{"@type": "ListItem", "position": 2, "name": "Custom Plugin Development", "item": "https://help4bis.com/plugin-development.html"}
]
}
},
{
"@type": "FAQPage",
"@id": "https://help4bis.com/plugin-development.html#faq",
"mainEntity": [
{
"@type": "Question",
"name": "Will a custom WordPress plugin work with future WordPress updates?",
"acceptedAnswer": {
"@type": "Answer",
"text": "We build to current WordPress and PHP standards. Plugins are tested against the latest WordPress version before delivery. If a core WordPress update breaks the plugin within 30 days of delivery, we fix it for free."
}
},
{
"@type": "Question",
"name": "Do I own the custom WordPress plugin code?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Yes. You receive the full source code as part of delivery. No licensing fee, no subscription required. The code is yours outright."
}
},
{
"@type": "Question",
"name": "Can you maintain the WordPress plugin after delivery?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Yes, we offer a maintenance add-on for $49/month per plugin. This covers compatibility updates and minor tweaks as WordPress evolves. Quoted separately at delivery."
}
},
{
"@type": "Question",
"name": "What information do I need to provide for a custom plugin brief?",
"acceptedAnswer": {
"@type": "Answer",
"text": "The intake form asks for: what the plugin should do, what external systems it connects to, your PHP version (found in Tools > Site Health in WordPress admin), and what hosting provider you use. The more precise your brief, the more accurate the quote."
}
}
]
}
]
}
</script>
</head>
<body>
<!-- ═══════════════════════════════════════════════
NAVIGATION
═══════════════════════════════════════════════ -->
<nav class="nav" role="navigation" aria-label="Main navigation">
<div class="container">
<div class="nav__inner">
<a class="nav__logo" href="index.html" aria-label="HELP4BIS home">
<img src="assets/images/logo-cropped.jpg" alt="HELP4BIS Logo" width="160" height="44">
</a>
<ul class="nav__links" id="nav-links" role="list">
<!-- Services dropdown -->
<li class="nav__dropdown">
<button class="nav__trigger" aria-haspopup="true" aria-expanded="false">Services <svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"/></svg></button>
<ul class="nav__dropdown-menu" role="menu">
<li class="nav__menu-group">WordPress</li>
<li><a href="managed-wordpress.html" role="menuitem">Tailored Website Management</a></li>
<li><a href="care-plans.html" role="menuitem">WP Care Plans <span class="menu-price">from $49/mo</span></a></li>
<li><a href="sos-fix.html" role="menuitem">WP SOS Fix <span class="menu-price">$97 flat</span></a></li>
<li><a href="ai-integration.html" role="menuitem">AI Integration</a></li>
<li><a href="plugin-development.html" role="menuitem">Custom Plugin Development</a></li> </ul>
</li>
<li><a href="about.html">About</a></li>
<li><a href="index.html#portfolio">Our Work</a></li>
<li><a href="index.html#pricing">Pricing</a></li>
<li><a href="blog/index.html">Blog</a></li>
<li><a href="your-first-week-with-ai.html">AI Guide</a></li>
<li><a href="contact.html">Contact</a></li>
<!-- Mobile CTA (inside nav drawer) -->
<li class="nav__cta-mobile" aria-hidden="true">
<a href="contact.html" class="btn btn-primary">Get Started</a>
<a href="sos-fix.html" class="btn btn-secondary">SOS Fix, $97</a>
</li>
</ul>
<div class="nav__cta">
<a href="sos-fix.html" class="btn btn-secondary btn-sm">SOS Fix $97</a>
<a href="contact.html" class="btn btn-primary btn-sm">Get Started</a>
</div>
<button class="nav__burger" id="nav-burger" aria-label="Open menu" aria-expanded="false" aria-controls="nav-links">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><line x1="3" y1="12" x2="21" y2="12"/><line x1="3" y1="6" x2="21" y2="6"/><line x1="3" y1="18" x2="21" y2="18"/></svg>
</button>
</div>
</div>
</nav>
<!-- ═══════════════════════════════════════════════
PAGE HERO
═══════════════════════════════════════════════ -->
<section class="page-hero" aria-labelledby="plugin-heading">
<div class="container">
<nav class="breadcrumb" aria-label="Breadcrumb">
<ol>
<li><a href="index.html">Home</a></li>
<li><a href="index.html#services">Services</a></li>
<li aria-current="page">Custom Plugin Development</li>
</ol>
</nav>
<p class="eyebrow">Custom Plugin Development</p>
<h1 id="plugin-heading">WordPress needs to do something it doesn't do. We build it.</h1>
<p class="hero__lead" style="max-width:680px;">Defined scope, project-priced, delivered async. No hourly billing uncertainty. Submit a brief within the defined scope and receive a fixed quote before work starts.</p>
<div class="hero__actions">
<a href="contact.html?service=plugin" class="btn btn-primary btn-lg">Submit a Plugin Brief</a>
<a href="#pricing" class="btn btn-secondary btn-lg">View Pricing</a>
</div>
</div>
</section>
<!-- ═══════════════════════════════════════════════
FIXED-SCOPE PLUGIN PACKAGES
═══════════════════════════════════════════════ -->
<section class="section" id="pricing" aria-labelledby="pricing-heading">
<div class="container">
<div class="text-center mb-6">
<p class="eyebrow">Fixed-Scope Plugin Packages</p>
<h2 id="pricing-heading">One brief. One price. One working plugin.</h2>
<p class="section-subtitle">Every package has a defined scope. Price is confirmed before work starts. No surprises.</p>
</div>
<div class="services__grid" id="packages-grid">
<!-- WordPress Form API Integration -->
<div class="service-card reveal">
<div class="service-card__icon" aria-hidden="true">
<svg xmlns="http://www.w3.org/2000/svg" width="26" height="26" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"/><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"/></svg>
</div>
<h3>WordPress Form API Integration</h3>
<p>Connect any WordPress contact form to an external API or CRM. New submission triggers: add contact to CRM, send data to a booking system, create an invoice in Xero/MYOB, or push to any REST API endpoint.</p>
<div class="service-card__price">$497–$997 <span>AUD</span></div>
<ul class="why__points" style="margin-top:1rem; font-size:14px;">
<li>
<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"/></svg>
One API endpoint, one form
</li>
<li>
<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"/></svg>
Webhook or REST call with error handling
</li>
<li>
<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"/></svg>
Timeline: 3 - 5 business days
</li>
</ul>
<a href="contact.html?service=plugin" class="btn btn-secondary btn-sm" style="margin-top:1.25rem;">Get This Plugin</a>
</div>
<!-- WooCommerce Custom Extension -->
<div class="service-card reveal">
<div class="service-card__icon" aria-hidden="true">
<svg xmlns="http://www.w3.org/2000/svg" width="26" height="26" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="9" cy="21" r="1"/><circle cx="20" cy="21" r="1"/><path d="M1 1h4l2.68 13.39a2 2 0 0 0 2 1.61h9.72a2 2 0 0 0 2-1.61L23 6H6"/></svg>
</div>
<h3>WooCommerce Custom Extension</h3>
<p>Add functionality WooCommerce doesn't have out of the box. Custom shipping rules, dynamic pricing, custom product fields, conditional checkout behaviour.</p>
<div class="service-card__price">$797–$1,497 <span>AUD</span></div>
<ul class="why__points" style="margin-top:1rem; font-size:14px;">
<li>
<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"/></svg>
One extension feature
</li>
<li>
<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"/></svg>
Tested on staging before live deploy
</li>
<li>
<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"/></svg>
Timeline: 5 - 10 business days
</li>
</ul>
<a href="contact.html?service=plugin" class="btn btn-secondary btn-sm" style="margin-top:1.25rem;">Get This Plugin</a>
</div>
<!-- Custom Elementor Widget -->
<div class="service-card reveal">
<div class="service-card__icon" aria-hidden="true">
<svg xmlns="http://www.w3.org/2000/svg" width="26" height="26" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="3" width="7" height="7"/><rect x="14" y="3" width="7" height="7"/><rect x="14" y="14" width="7" height="7"/><rect x="3" y="14" width="7" height="7"/></svg>
</div>
<h3>Custom Elementor Widget</h3>
<p>A bespoke Elementor widget that does exactly what you need. Dynamic content display, custom map integration, specialised product grid, custom calculator.</p>
<div class="service-card__price">$297–$597 <span>AUD</span></div>
<ul class="why__points" style="margin-top:1rem; font-size:14px;">
<li>
<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"/></svg>
One widget type, up to 8 configurable settings
</li>
<li>
<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"/></svg>
Works within Elementor editor
</li>
<li>
<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"/></svg>
Timeline: 2 - 4 business days
</li>
</ul>
<a href="contact.html?service=plugin" class="btn btn-secondary btn-sm" style="margin-top:1.25rem;">Get This Plugin</a>
</div>
<!-- WordPress-to-Zapier Connector -->
<div class="service-card reveal">
<div class="service-card__icon" aria-hidden="true">
<svg xmlns="http://www.w3.org/2000/svg" width="26" height="26" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="22 12 18 12 15 21 9 3 6 12 2 12"/></svg>
</div>
<h3>WordPress-to-Zapier Connector</h3>
<p>Send WordPress or WooCommerce data to Zapier via a custom webhook. Triggers: new user, new post, new order, form submission, custom event.</p>
<div class="service-card__price">$197–$397 <span>AUD</span></div>
<ul class="why__points" style="margin-top:1rem; font-size:14px;">
<li>
<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"/></svg>
One trigger type
</li>
<li>
<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"/></svg>
Webhook payload defined before build starts
</li>
<li>
<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"/></svg>
Timeline: 1 - 2 business days
</li>
</ul>
<a href="contact.html?service=plugin" class="btn btn-secondary btn-sm" style="margin-top:1.25rem;">Get This Plugin</a>
</div>
<!-- Custom Admin Dashboard -->
<div class="service-card reveal">
<div class="service-card__icon" aria-hidden="true">
<svg xmlns="http://www.w3.org/2000/svg" width="26" height="26" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="3" width="7" height="9"/><rect x="14" y="3" width="7" height="5"/><rect x="14" y="12" width="7" height="9"/><rect x="3" y="16" width="7" height="5"/></svg>
</div>
<h3>Custom Admin Dashboard</h3>
<p>A custom WordPress admin page showing data your business needs. Sales summaries, pending task lists, form submission counts, external API data pulled directly into the WP dashboard.</p>
<div class="service-card__price">$497–$997 <span>AUD</span></div>
<ul class="why__points" style="margin-top:1rem; font-size:14px;">
<li>
<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"/></svg>
One admin page, up to 6 data widgets
</li>
<li>
<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"/></svg>
Role-based access control
</li>
<li>
<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"/></svg>
Timeline: 3 - 7 business days
</li>
</ul>
<a href="contact.html?service=plugin" class="btn btn-secondary btn-sm" style="margin-top:1.25rem;">Get This Plugin</a>
</div>
<!-- Custom Reporting Plugin -->
<div class="service-card reveal">
<div class="service-card__icon" aria-hidden="true">
<svg xmlns="http://www.w3.org/2000/svg" width="26" height="26" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><line x1="18" y1="20" x2="18" y2="10"/><line x1="12" y1="20" x2="12" y2="4"/><line x1="6" y1="20" x2="6" y2="14"/></svg>
</div>
<h3>Custom Reporting Plugin</h3>
<p>A complete reporting plugin pulling WooCommerce, form, and custom data into a clean admin interface. Export to CSV. Filterable by date range.</p>
<div class="service-card__price">$997–$1,997 <span>AUD</span></div>
<ul class="why__points" style="margin-top:1rem; font-size:14px;">
<li>
<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"/></svg>
Up to 5 report types, CSV export
</li>
<li>
<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"/></svg>
Date range filtering
</li>
<li>
<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"/></svg>
Timeline: 7 - 14 business days
</li>
</ul>
<a href="contact.html?service=plugin" class="btn btn-secondary btn-sm" style="margin-top:1.25rem;">Get This Plugin</a>
</div>
</div>
<p class="text-center" style="font-size:13px; color:var(--grey-mid); margin-top:1rem;">All prices shown are exclusive of GST. GST (10%) applies to Australian clients.</p>
<div style="background: var(--light-grey, #F8F8F8); border-left: 4px solid var(--ink); border-radius: 8px; padding: 1rem 1.25rem; max-width: 600px; margin: 2rem auto 0;">
<p style="font-weight:600; margin-bottom:0.25rem;">Payment terms</p>
<p style="font-size:14px; color:var(--grey-mid); margin:0;">50% deposit on brief approval. 50% on delivery. We send a payment link via email, no invoicing system, no accounts team.</p>
</div>
</div>
</section>
<!-- ═══════════════════════════════════════════════
HOW PLUGIN PROJECTS WORK
═══════════════════════════════════════════════ -->
<section class="section section--alt" aria-labelledby="process-heading">
<div class="container">
<div class="text-center mb-6">
<p class="eyebrow">The Process</p>
<h2 id="process-heading">How plugin projects work</h2>
<p class="section-subtitle">Four steps from brief to delivered plugin. Async. No calls required.</p>
</div>
<div class="services__grid" style="grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));">
<div class="service-card reveal" style="position:relative;">
<div style="position:absolute; top:1.5rem; right:1.5rem; font-size:2.5rem; font-weight:700; color:var(--red); opacity:.15; line-height:1;">01</div>
<div class="service-card__icon" aria-hidden="true">
<svg xmlns="http://www.w3.org/2000/svg" width="26" height="26" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7"/><path d="M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z"/></svg>
</div>
<h3>Submit your brief</h3>
<p>Use the intake form to describe what WordPress should do, what it connects to, and your site environment. It is important include the PHP version and the plugins in use.</p>
</div>
<div class="service-card reveal" style="position:relative;">
<div style="position:absolute; top:1.5rem; right:1.5rem; font-size:2.5rem; font-weight:700; color:var(--red); opacity:.15; line-height:1;">02</div>
<div class="service-card__icon" aria-hidden="true">
<svg xmlns="http://www.w3.org/2000/svg" width="26" height="26" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><line x1="12" y1="1" x2="12" y2="23"/><path d="M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"/></svg>
</div>
<h3>Receive a fixed quote within your package range</h3>
<p>We assess scope and send a confirmed price within 1 business day. Nothing costs a cent more than the quoted price, work only starts once you approve it.</p>
</div>
<div class="service-card reveal" style="position:relative;">
<div style="position:absolute; top:1.5rem; right:1.5rem; font-size:2.5rem; font-weight:700; color:var(--red); opacity:.15; line-height:1;">03</div>
<div class="service-card__icon" aria-hidden="true">
<svg xmlns="http://www.w3.org/2000/svg" width="26" height="26" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="16 18 22 12 16 6"/><polyline points="8 6 2 12 8 18"/></svg>
</div>
<h3>Build, test, and review</h3>
<p>We build and test on a staging site. You review the result. One round of revisions based on your feedback is included in every package.</p>
</div>
<div class="service-card reveal" style="position:relative;">
<div style="position:absolute; top:1.5rem; right:1.5rem; font-size:2.5rem; font-weight:700; color:var(--red); opacity:.15; line-height:1;">04</div>
<div class="service-card__icon" aria-hidden="true">
<svg xmlns="http://www.w3.org/2000/svg" width="26" height="26" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M22 11.08V12a10 10 0 1 1-5.93-9.14"/><polyline points="22 4 12 14.01 9 11.01"/></svg>
</div>
<h3>Delivered with a 30-day warranty</h3>
<p>Plugin delivered as a.zip file, installed on your live site, with a 30-day bug warranty. If something we built breaks within 30 days of delivery, we fix it for free.</p>
</div>
</div>
</div>
</section>
<!-- ═══════════════════════════════════════════════
IN SCOPE / OUT OF SCOPE
═══════════════════════════════════════════════ -->
<section class="section" aria-labelledby="scope-heading">
<div class="container">
<div class="text-center mb-6">
<p class="eyebrow">Scope Clarity</p>
<h2 id="scope-heading">What's in scope, and what isn't</h2>
<p class="section-subtitle">Fixed-price work requires defined scope. Here's exactly what that means.</p>
</div>
<div class="why__grid" style="grid-template-columns: 1fr 1fr; gap: 2rem; align-items:start;">
<div class="service-card reveal" style="background:#fff; border: 2px solid #e5e7eb;">
<h3 style="color:var(--ink); margin-bottom:1rem;">
<span style="color:#16A34A; margin-right:.5rem;">&#10003;</span> In scope
</h3>
<ul class="why__points">
<li>
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="#16A34A" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"/></svg>
Single-purpose plugins with a clearly defined input/output
</li>
<li>
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="#16A34A" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"/></svg>
Integration with one external API or service
</li>
<li>
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="#16A34A" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"/></svg>
One round of revisions based on your feedback
</li>
<li>
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="#16A34A" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"/></svg>
Code that follows WordPress coding standards
</li>
<li>
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="#16A34A" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"/></svg>
Basic documentation, what the plugin does, how to use the admin settings
</li>
</ul>
</div>
<div class="service-card reveal" style="background: #f9fafb; border: 2px solid #e5e7eb;">
<h3 style="color:var(--ink); margin-bottom:1rem;">
<span style="color:#CC2929; margin-right:.5rem;">&#10007;</span> Out of scope
</h3>
<ul class="why__points">
<li>
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="#9ca3af" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><line x1="18" y1="6" x2="6" y2="18"/><line x1="6" y1="6" x2="18" y2="18"/></svg>
Building a SaaS product or multi-tenant application
</li>
<li>
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="#9ca3af" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><line x1="18" y1="6" x2="6" y2="18"/><line x1="6" y1="6" x2="18" y2="18"/></svg>
Complex machine learning or AI model training
</li>
<li>
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="#9ca3af" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><line x1="18" y1="6" x2="6" y2="18"/><line x1="6" y1="6" x2="18" y2="18"/></svg>
Plugins that require new server infrastructure
</li>
<li>
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="#9ca3af" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><line x1="18" y1="6" x2="6" y2="18"/><line x1="6" y1="6" x2="18" y2="18"/></svg>
Support for edge cases not specified in the original brief
</li>
<li>
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="#9ca3af" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><line x1="18" y1="6" x2="6" y2="18"/><line x1="6" y1="6" x2="18" y2="18"/></svg>
Ongoing maintenance (that's a Care Plan)
</li>
</ul>
<p style="margin-top:1.25rem; font-size:14px; color:var(--grey-mid);">If your requirement is out of scope, we'll say so when we review the brief, and suggest an alternative where we can.</p>
</div>
</div>
</div>
</section>
<!-- ═══════════════════════════════════════════════
RECENT PROJECTS
═══════════════════════════════════════════════ -->
<section class="section" aria-labelledby="projects-heading">
<div class="container">
<div class="text-center mb-6">
<p class="eyebrow">Recent Projects</p>
<h2 id="projects-heading">What we've built</h2>
<p class="section-subtitle">A sample of recent plugin projects. Client names withheld by request.</p>
</div>
<div class="services__grid">
<div class="service-card reveal">
<div class="service-card__icon" aria-hidden="true">
<svg xmlns="http://www.w3.org/2000/svg" width="26" height="26" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"/><polyline points="14 2 14 8 20 8"/><line x1="16" y1="13" x2="8" y2="13"/><line x1="16" y1="17" x2="8" y2="17"/><polyline points="10 9 9 9 8 9"/></svg>
</div>
<h3>Quote calculator for a trade business</h3>
<p>A local electrician needed customers to self-calculate job costs before booking. We built a multi-step form that calculates based on service type, size, and postcode, emails the customer a summary and the business a lead notification.</p>
<p style="font-size:14px; color:var(--grey-mid); margin-top:0.75rem;">Delivered in 5 days &middot; ~$650</p>
</div>
<div class="service-card reveal">
<div class="service-card__icon" aria-hidden="true">
<svg xmlns="http://www.w3.org/2000/svg" width="26" height="26" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="2" y="7" width="20" height="14" rx="2" ry="2"/><path d="M16 21V5a2 2 0 0 0-2-2h-4a2 2 0 0 0-2 2v16"/></svg>
</div>
<h3>Wholesale price list for a supplier</h3>
<p>A Brisbane building supplies company needed a password-protected product catalogue with pricing that changed based on the logged-in customer's discount tier. Integrated with their existing user roles.</p>
<p style="font-size:14px; color:var(--grey-mid); margin-top:0.75rem;">Delivered in 9 days &middot; ~$1,100</p>
</div>
<div class="service-card reveal">
<div class="service-card__icon" aria-hidden="true">
<svg xmlns="http://www.w3.org/2000/svg" width="26" height="26" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07A19.5 19.5 0 0 1 4.69 12 19.79 19.79 0 0 1 1.63 3.44 2 2 0 0 1 3.6 1.26h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L7.91 8.5a16 16 0 0 0 6 6l.94-.94a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 21.73 16z"/></svg>
</div>
<h3>Booking sync for a therapy clinic</h3>
<p>A small allied health clinic needed their WordPress enquiry forms to push directly into their practice management system via API, eliminating manual data entry. We built the connector and a lightweight admin dashboard to monitor sync status.</p>
<p style="font-size:14px; color:var(--grey-mid); margin-top:0.75rem;">Delivered in 12 days &middot; ~$1,350</p>
</div>
</div>
</div>
</section>
<!-- ═══════════════════════════════════════════════
FAQ
═══════════════════════════════════════════════ -->
<section class="section section--alt" id="faq" aria-labelledby="faq-heading">
<div class="container">
<div class="text-center mb-6">
<p class="eyebrow">Questions</p>
<h2 id="faq-heading">Plugin project FAQs</h2>
</div>
<div class="faq__list" role="list">
<details class="faq-item" role="listitem">
<summary class="faq-item__question">
Will the plugin work with future WordPress updates?
<span class="faq-item__icon" aria-hidden="true">
<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><line x1="12" y1="5" x2="12" y2="19"/><line x1="5" y1="12" x2="19" y2="12"/></svg>
</span>
</summary>
<div class="faq-item__answer">
We build to current WordPress and PHP standards. Plugins are tested against the latest WordPress version before delivery. If a core WordPress update breaks the plugin within 30 days of delivery, we fix it for free.
</div>
</details>
<details class="faq-item" role="listitem">
<summary class="faq-item__question">
Do I own the plugin code?
<span class="faq-item__icon" aria-hidden="true">
<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><line x1="12" y1="5" x2="12" y2="19"/><line x1="5" y1="12" x2="19" y2="12"/></svg>
</span>
</summary>
<div class="faq-item__answer">
Yes. You receive the full source code as part of delivery. No licensing fee, no subscription required. The code is yours outright.
</div>
</details>
<details class="faq-item" role="listitem">
<summary class="faq-item__question">
Can you maintain the plugin after delivery?
<span class="faq-item__icon" aria-hidden="true">
<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><line x1="12" y1="5" x2="12" y2="19"/><line x1="5" y1="12" x2="19" y2="12"/></svg>
</span>
</summary>
<div class="faq-item__answer">
Yes, we offer a maintenance add-on for $49/month per plugin. This covers compatibility updates and minor tweaks as WordPress evolves. Quoted separately at delivery.
</div>
</details>
<details class="faq-item" role="listitem">
<summary class="faq-item__question">
What information do I need to provide?
<span class="faq-item__icon" aria-hidden="true">
<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><line x1="12" y1="5" x2="12" y2="19"/><line x1="5" y1="12" x2="19" y2="12"/></svg>
</span>
</summary>
<div class="faq-item__answer">
The intake form asks for: what the plugin should do, what external systems it connects to, your PHP version (found in Tools &gt; Site Health in WordPress admin), and what hosting provider you use. The more precise your brief, the more accurate the quote.
</div>
</details>
</div>
</div>
</section>
<!-- ═══════════════════════════════════════════════
CTA BAND
═══════════════════════════════════════════════ -->
<section class="cta-band" aria-labelledby="cta-heading">
<div class="container">
<div class="cta-band__content">
<p class="eyebrow" style="color:rgba(255,255,255,.5)">Ready to build?</p>
<h2 id="cta-heading">Tell us what WordPress needs to do.</h2>
<p>Submit a brief and we'll confirm scope and price within one business day. No calls required. No commitment until you approve the quote.</p>
<div class="cta-band__actions">
<a href="contact.html?service=plugin" class="btn btn-primary btn-lg">Submit a Plugin Brief</a>
<a href="care-plans.html" class="btn btn-outline-light btn-lg">View Care Plans</a>
</div>
</div>
</div>
</section>
<!-- ═══════════════════════════════════════════════
FOOTER
═══════════════════════════════════════════════ -->
<footer class="footer" aria-label="Site footer">
<div class="container">
<div class="footer__grid">
<div class="footer__brand">
<img src="assets/images/logo-cropped.jpg" alt="HELP4BIS" width="140" height="38">
<p>Managed WordPress hosting and maintenance for Australian small businesses. Brisbane-based, personal service, WordPress specialist, Brisbane.</p>
<p style="font-size:13px; color:rgba(255,255,255,.4);">Dutch Digital Dynamics Pty Ltd · ABN 86 081 237 087</p>
</div>
<div class="footer__col">
<h4>Services</h4>
<ul class="footer__links">
<li><a href="managed-wordpress.html">Tailored Website Management</a></li>
<li><a href="care-plans.html">WP Care Plans</a></li>
<li><a href="sos-fix.html">WP SOS Fix</a></li>
<li><a href="ai-integration.html">AI Integration</a></li>
<li><a href="plugin-development.html">Plugin Development</a></li> </ul>
</div>
<div class="footer__col">
<h4>Company</h4>
<ul class="footer__links">
<li><a href="about.html">About Us</a></li>
<li><a href="index.html#portfolio">Our Work</a></li>
<li><a href="index.html#testimonials">Client Feedback</a></li>
<li><a href="blog/index.html">Blog</a></li>
<li><a href="contact.html">Contact</a></li>
</ul>
</div>
<div class="footer__col">
<h4>Contact</h4>
<ul class="footer__links">
<li><a href="mailto:project@help4bis.com">project@help4bis.com</a></li>
<li><a href="contact.html">Submit a Brief</a></li>
<li><a href="sos-fix.html">Emergency Fix</a></li>
</ul>
<p style="margin-top:1rem; font-size:13px; color:rgba(255,255,255,.4);">
Brisbane, Queensland<br>
Response within 24 business hours
</p>
</div>
</div>
<div class="footer__bottom">
<span>© 2026 HELP4BIS, a trading name of Dutch Digital Dynamics Pty Ltd · ABN 86 081 237 087</span>
<span>
<a href="privacy.html">Privacy Policy</a> ·
<a href="terms.html">Terms</a>
</span>
</div>
</div>
</footer>
<!-- Back to top -->
<button id="back-to-top" aria-label="Back to top" style="position:fixed;bottom:24px;right:24px;width:44px;height:44px;background:var(--red);border:none;border-radius:50%;color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .3s ease;box-shadow:var(--shadow-md);">
<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="18 15 12 9 6 15"/></svg>
</button>
<script src="assets/js/main.js"></script>
<script src="/analytics/tracker.js" defer></script>
<footer style="margin-top:48px;padding:24px;background:#f0f7f2;border-left:4px solid #18604A;border-radius:8px;font-family:'ABeeZee',sans-serif;font-size:1rem;line-height:1.65;color:#1A1A1A;">
<h3 style="font-family:'Poppins',sans-serif;color:#1A5C2E;font-size:1.1rem;margin:0 0 10px;">A few words from us</h3>
<p style="margin:0 0 8px;">We're not the big shops. We have time to sit down with you and find the best fit for your business, not the best fit for a templated process. Every client we work with is treated as if they're the only one on our desk, because for the time we're with them, they are.</p> <p style="margin:0 0 8px;">It means we're slower to start than a shop that sells you a package off the shelf. It also means we don't sell you a package off the shelf. You get a system that fits how you actually run your business, and you get to talk to the person who built it whenever you need to.</p>
<p style="margin:0;color:#555555;font-size:0.9rem;">Page updated 26/05/2026. Contact: <a href="mailto:project@help4bis.com" style="color:#18604A;">project@help4bis.com</a>.</p>
</footer>
</body>
</html>
+645
View File
@@ -0,0 +1,645 @@
<!DOCTYPE html>
<!-- Version: 1.2.0 | Created: 2026-05-13 | Updated: 2026-08-16 -->
<html lang="en-AU">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Pricing | WordPress Services for Australian Small Businesses | HELP4BIS</title>
<meta name="description" content="Transparent pricing for HELP4BIS WordPress services. Care plans from $49/month, SOS Fix at $97 flat, Tailored Website Management at $200/month. No lock-in, Brisbane-based, plain English.">
<meta name="keywords" content="WordPress pricing Australia, WordPress care plan price, managed WordPress Brisbane price, WordPress maintenance cost, WordPress emergency fix price, small business website pricing">
<meta name="author" content="HELP4BIS">
<meta name="publisher" content="Dutch Digital Dynamics Pty Ltd">
<meta name="copyright" content="Dutch Digital Dynamics Pty Ltd">
<meta name="language" content="en-AU">
<meta name="revisit-after" content="7 days">
<meta name="category" content="WordPress Services, Web Development, Small Business Technology">
<meta name="classification" content="Business/Technology">
<meta name="coverage" content="Australia">
<meta name="distribution" content="global">
<meta name="rating" content="general">
<meta name="geo.region" content="AU-QLD">
<meta name="geo.placename" content="Brisbane, Queensland">
<meta name="geo.position" content="-27.4698;153.0251">
<meta name="ICBM" content="-27.4698, 153.0251">
<link rel="canonical" href="https://help4bis.com/pricing/">
<meta name="robots" content="index, follow">
<meta property="og:type" content="website">
<meta property="og:url" content="https://help4bis.com/pricing/">
<meta property="og:site_name" content="HELP4BIS">
<meta property="og:title" content="Pricing | WordPress Services for Australian Small Businesses | HELP4BIS">
<meta property="og:description" content="Transparent pricing for HELP4BIS WordPress services. Care plans from $49/month, SOS Fix at $97 flat, Tailored Website Management at $200/month. No lock-in.">
<meta property="og:image" content="https://help4bis.com/assets/images/og-social-card.jpg">
<meta property="og:image:width" content="1200">
<meta property="og:image:height" content="630">
<meta property="og:image:alt" content="HELP4BIS, WordPress services for Australian small businesses">
<meta property="og:locale" content="en_AU">
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:site" content="@help4bis">
<meta name="twitter:title" content="Pricing | HELP4BIS WordPress Services">
<meta name="twitter:description" content="Transparent pricing. Care plans from $49/month, SOS Fix $97, Tailored Website Management $200/month. No lock-in.">
<meta name="twitter:image" content="https://help4bis.com/assets/images/og-social-card.jpg">
<meta name="twitter:image:alt" content="HELP4BIS">
<link rel="icon" type="image/jpeg" href="/assets/images/logo-favicon.jpg">
<!-- Fonts -->
<!-- Icons (Lucide) -->
<link rel="stylesheet" href="/assets/css/style.css">
<!-- JSON-LD: Pricing overview + Breadcrumb -->
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@graph": [
{
"@type": "WebPage",
"@id": "https://help4bis.com/pricing/#webpage",
"url": "https://help4bis.com/pricing/",
"name": "Pricing | HELP4BIS WordPress Services",
"isPartOf": {"@id": "https://help4bis.com/#website"},
"speakable": {
"@type": "SpeakableSpecification",
"cssSelector": ["h1", ".hero__lead", ".section-subtitle"]
},
"breadcrumb": {
"@type": "BreadcrumbList",
"itemListElement": [
{"@type": "ListItem", "position": 1, "name": "Home", "item": "https://help4bis.com/"},
{"@type": "ListItem", "position": 2, "name": "Pricing", "item": "https://help4bis.com/pricing/"}
]
}
},
{
"@type": "OfferCatalog",
"@id": "https://help4bis.com/pricing/#catalog",
"name": "HELP4BIS WordPress Services",
"provider": {"@id": "https://help4bis.com/#business"},
"itemListElement": [
{
"@type": "Offer",
"name": "WP SOS Fix",
"description": "One-off emergency WordPress fix. Site down, white screen, plugin conflict. Flat fee, fixed or you don't pay.",
"price": "97",
"priceCurrency": "AUD",
"url": "https://help4bis.com/sos-fix.html"
},
{
"@type": "Offer",
"name": "Care Plan, Essentials",
"description": "Monthly WordPress plugin updates, daily backups, security monitoring, uptime monitoring. Keep your current host.",
"price": "49",
"priceCurrency": "AUD",
"priceSpecification": {
"@type": "UnitPriceSpecification",
"price": "49",
"priceCurrency": "AUD",
"unitText": "MONTH",
"billingDuration": "P1M"
},
"url": "https://help4bis.com/care-plans.html"
},
{
"@type": "Offer",
"name": "Care Plan, Business",
"description": "Everything in Essentials plus minor content edits and priority response within 4 business hours.",
"price": "99",
"priceCurrency": "AUD",
"priceSpecification": {
"@type": "UnitPriceSpecification",
"price": "99",
"priceCurrency": "AUD",
"unitText": "MONTH",
"billingDuration": "P1M"
},
"url": "https://help4bis.com/care-plans.html"
},
{
"@type": "Offer",
"name": "Tailored Website Management",
"description": "We design, build, host, and manage your site end to end. $300 month one, then $200 per month.",
"price": "200",
"priceCurrency": "AUD",
"priceSpecification": {
"@type": "UnitPriceSpecification",
"price": "200",
"priceCurrency": "AUD",
"unitText": "MONTH",
"billingDuration": "P1M"
},
"url": "https://help4bis.com/managed-wordpress.html"
}
]
}
]
}
</script>
</head>
<body>
<!-- ═══════════════════════════════════════════════
NAVIGATION
═══════════════════════════════════════════════ -->
<nav class="nav" role="navigation" aria-label="Main navigation">
<div class="container">
<div class="nav__inner">
<a class="nav__logo" href="/index.html" aria-label="HELP4BIS home">
<img src="/assets/images/logo-cropped.jpg" alt="HELP4BIS Logo" width="160" height="44">
</a>
<ul class="nav__links" id="nav-links" role="list">
<li class="nav__dropdown">
<button class="nav__trigger" aria-haspopup="true" aria-expanded="false">Services <svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"/></svg></button>
<ul class="nav__dropdown-menu" role="menu">
<li class="nav__menu-group">WordPress</li>
<li><a href="/managed-wordpress.html" role="menuitem">Tailored Website Management</a></li>
<li><a href="/care-plans.html" role="menuitem">WP Care Plans <span class="menu-price">from $49/mo</span></a></li>
<li><a href="/sos-fix.html" role="menuitem">WP SOS Fix <span class="menu-price">$97 flat</span></a></li>
<li><a href="/ai-integration.html" role="menuitem">AI Integration</a></li>
<li><a href="/plugin-development.html" role="menuitem">Custom Plugin Development</a></li> </ul>
</li>
<li><a href="/about.html">About</a></li>
<li><a href="/index.html#portfolio">Our Work</a></li>
<li><a href="/pricing/" aria-current="page">Pricing</a></li>
<li><a href="/blog/index.html">Blog</a></li>
<li><a href="/your-first-week-with-ai.html">AI Guide</a></li>
<li><a href="/contact.html">Contact</a></li>
<li class="nav__cta-mobile" aria-hidden="true">
<a href="/contact.html" class="btn btn-primary">Get Started</a>
<a href="/sos-fix.html" class="btn btn-secondary">SOS Fix, $97</a>
</li>
</ul>
<div class="nav__cta">
<a href="/sos-fix.html" class="btn btn-secondary btn-sm">SOS Fix $97</a>
<a href="/contact.html" class="btn btn-primary btn-sm">Get Started</a>
</div>
<button class="nav__burger" id="nav-burger" aria-label="Open menu" aria-expanded="false" aria-controls="nav-links">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><line x1="3" y1="12" x2="21" y2="12"/><line x1="3" y1="6" x2="21" y2="6"/><line x1="3" y1="18" x2="21" y2="18"/></svg>
</button>
</div>
</div>
</nav>
<!-- ═══════════════════════════════════════════════
PAGE HERO
═══════════════════════════════════════════════ -->
<section class="page-hero" aria-labelledby="hero-heading">
<div class="container">
<nav class="breadcrumb" aria-label="Breadcrumb">
<ol>
<li><a href="/index.html">Home</a></li>
<li aria-current="page">Pricing</li>
</ol>
</nav>
<p class="eyebrow">Pricing</p>
<h1 id="hero-heading">Transparent pricing. No surprises.</h1>
<p class="hero__lead" style="max-width: 680px;">Four ways we work with Australian small businesses. Pick the one that fits today, change later if your needs change. Month-to-month on everything except the one-off SOS Fix.</p>
<p style="margin-top: 1rem; max-width: 680px;">All prices below are in AUD and exclude GST (10% added for Australian clients).</p>
</div>
</section>
<!-- ═══════════════════════════════════════════════
PRICING OVERVIEW, FOUR CARDS
═══════════════════════════════════════════════ -->
<section class="section" id="plans" aria-labelledby="pricing-heading">
<div class="container">
<div class="text-center mb-6">
<p class="eyebrow">All Services At A Glance</p>
<h2 id="pricing-heading">Choose what you need today</h2>
<p class="section-subtitle">If you don't have a site yet, start with Tailored Website Management. If you have one and it's broken right now, the SOS Fix. If it works and you want it kept working, a Care Plan. Click any card for full details.</p>
</div>
<div class="pricing__grid" style="grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 1.5rem;">
<!-- WP SOS Fix -->
<div class="pricing-card reveal" style="border-color: var(--red);">
<p class="eyebrow" style="color: var(--red); margin-bottom: 0.25rem;">One-off fix</p>
<h3>WP SOS Fix</h3>
<p class="pricing-card__desc">Site down, white screen, plugin conflict, or "it was working yesterday". We diagnose and fix, or you don't pay.</p>
<div class="pricing-card__price">
<strong>$97</strong><span> AUD flat</span>
</div>
<ul class="pricing-card__features" role="list">
<li>
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="#16A34A" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"/></svg>
Diagnosis included
</li>
<li>
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="#16A34A" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"/></svg>
Most fixes done same business day
</li>
<li>
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="#16A34A" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"/></svg>
No fix, no fee
</li>
<li class="excluded">
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="#D1D5DB" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><line x1="18" y1="6" x2="6" y2="18"/><line x1="6" y1="6" x2="18" y2="18"/></svg>
Malware cleanup / full hack recovery
</li>
<li class="excluded">
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="#D1D5DB" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><line x1="18" y1="6" x2="6" y2="18"/><line x1="6" y1="6" x2="18" y2="18"/></svg>
Server / hosting issues
</li>
</ul>
<a href="/sos-fix.html" class="btn btn-secondary">See SOS Fix details</a>
</div>
<!-- Care Plan, Essentials -->
<div class="pricing-card reveal">
<p class="eyebrow" style="margin-bottom: 0.25rem;">Monthly maintenance</p>
<h3>Care Plan, Essentials</h3>
<p class="pricing-card__desc">Keep your existing site updated, backed up, and monitored. Works with any host. Month-to-month, no lock-in.</p>
<div class="pricing-card__price">
<strong>$49</strong><span> AUD/month</span>
</div>
<ul class="pricing-card__features" role="list">
<li>
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="#16A34A" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"/></svg>
WordPress core, plugin &amp; theme updates
</li>
<li>
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="#16A34A" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"/></svg>
Daily offsite backups, 30-day retention
</li>
<li>
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="#16A34A" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"/></svg>
Security &amp; uptime monitoring
</li>
<li>
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="#16A34A" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"/></svg>
Monthly health report
</li>
<li class="excluded">
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="#D1D5DB" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><line x1="18" y1="6" x2="6" y2="18"/><line x1="6" y1="6" x2="18" y2="18"/></svg>
Content edits
</li>
</ul>
<a href="/care-plans.html#plans" class="btn btn-secondary">See Care Plan details</a>
</div>
<!-- Care Plan, Business, FEATURED -->
<div class="pricing-card pricing-card--featured reveal">
<div class="pricing-card__badge">Most Popular</div>
<p class="eyebrow" style="margin-bottom: 0.25rem;">Monthly maintenance + edits</p>
<h3>Care Plan, Business</h3>
<p class="pricing-card__desc">Everything in Essentials, plus an hour of minor content edits each month and priority response within 4 business hours.</p>
<div class="pricing-card__price">
<strong>$99</strong><span> AUD/month</span>
</div>
<ul class="pricing-card__features" role="list">
<li>
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="#16A34A" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"/></svg>
Everything in Essentials
</li>
<li>
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="#16A34A" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"/></svg>
1 hour of content edits per month
</li>
<li>
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="#16A34A" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"/></svg>
Priority response, 4 business hours
</li>
<li>
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="#16A34A" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"/></svg>
Google Search Console monitoring
</li>
<li>
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="#16A34A" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"/></svg>
Monthly performance check
</li>
</ul>
<a href="/care-plans.html#plans" class="btn btn-primary">See Care Plan details</a>
</div>
<!-- Tailored Website Management -->
<div class="pricing-card reveal" style="background: var(--ink); color: #fff; border-color: var(--ink);">
<p class="eyebrow" style="color: var(--red); margin-bottom: 0.25rem;">Full service, no site needed</p>
<h3 style="color: #fff;">Tailored Website Management</h3>
<p class="pricing-card__desc" style="color: rgba(255,255,255,0.75);">We design, build, host, and manage everything. Domain, business email, premium plugins, ongoing updates. You focus on your business.</p>
<div class="pricing-card__price">
<strong style="color: #fff;">$200</strong><span style="color: rgba(255,255,255,0.7);"> AUD/month</span>
</div>
<p style="color: rgba(255,255,255,0.55); font-size: 0.8rem; margin-top: -0.5rem; margin-bottom: 0.75rem;">Month one is $300, that covers the build and migration. Then $200/month, no lock-in.</p>
<ul class="pricing-card__features" role="list" style="color: rgba(255,255,255,0.85);">
<li>
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="#16A34A" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"/></svg>
Site designed &amp; built for you
</li>
<li>
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="#16A34A" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"/></svg>
Hosted on our Brisbane server
</li>
<li>
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="#16A34A" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"/></svg>
Domain &amp; business email managed
</li>
<li>
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="#16A34A" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"/></svg>
Premium plugins included
</li>
<li>
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="#16A34A" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"/></svg>
Ongoing updates &amp; minor edits
</li>
</ul>
<a href="/managed-wordpress.html" class="btn btn-primary">See Tailored Management details</a>
</div>
</div>
<div class="text-center" style="margin-top: 2.5rem;">
<div style="background: var(--light-grey, #F8F8F8); border: 2px solid var(--ink); border-radius: 10px; padding: 0.75rem 1.5rem; display: inline-block;">
<span style="font-weight: 700;">Pay annually on Care Plans, get 2 months free</span>
<span style="color: var(--grey-mid); font-size: 14px;"> (17% saving). <a href="mailto:project@help4bis.com" class="inline-link">Email us to arrange.</a></span>
</div>
</div>
<p class="text-center" style="font-size: 13px; color: var(--grey-mid); margin-top: 1rem;">All prices shown are exclusive of GST. GST (10%) applies to Australian clients.</p>
</div>
</section>
<!-- ═══════════════════════════════════════════════
QUICK COMPARISON, WHICH ONE FOR ME?
═══════════════════════════════════════════════ -->
<section class="section section--alt" aria-labelledby="which-heading">
<div class="container">
<div class="text-center mb-6">
<p class="eyebrow">Not Sure Which?</p>
<h2 id="which-heading">Quick guide</h2>
<p class="section-subtitle">If you can answer "yes" to one of these, you've got your starting point.</p>
</div>
<div class="services__grid" style="grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); max-width: 1080px; margin: 0 auto;">
<div class="service-card reveal">
<div class="service-card__icon" aria-hidden="true">
<svg xmlns="http://www.w3.org/2000/svg" width="26" height="26" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"/><line x1="12" y1="8" x2="12" y2="12"/><line x1="12" y1="16" x2="12.01" y2="16"/></svg>
</div>
<h3 style="font-size: 1.15rem;">My site is broken right now</h3>
<p>Start with the <a href="/sos-fix.html" class="inline-link"><strong>$97 SOS Fix</strong></a>. Flat fee, fixed today, no obligation after.</p>
</div>
<div class="service-card reveal">
<div class="service-card__icon" aria-hidden="true">
<svg xmlns="http://www.w3.org/2000/svg" width="26" height="26" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z"/></svg>
</div>
<h3 style="font-size: 1.15rem;">My site works, I want it kept working</h3>
<p><a href="/care-plans.html" class="inline-link"><strong>Care Plan, Essentials at $49/mo</strong></a> covers the monthly maintenance and backups.</p>
</div>
<div class="service-card reveal">
<div class="service-card__icon" aria-hidden="true">
<svg xmlns="http://www.w3.org/2000/svg" width="26" height="26" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"/><polyline points="14 2 14 8 20 8"/><line x1="16" y1="13" x2="8" y2="13"/><line x1="16" y1="17" x2="8" y2="17"/></svg>
</div>
<h3 style="font-size: 1.15rem;">I also want content changes done for me</h3>
<p><a href="/care-plans.html" class="inline-link"><strong>Care Plan, Business at $99/mo</strong></a> includes an hour of minor edits each month, priority response.</p>
</div>
<div class="service-card reveal">
<div class="service-card__icon" aria-hidden="true">
<svg xmlns="http://www.w3.org/2000/svg" width="26" height="26" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M3 9l9-7 9 7v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z"/><polyline points="9 22 9 12 15 12 15 22"/></svg>
</div>
<h3 style="font-size: 1.15rem;">I don't have a website yet</h3>
<p><a href="/managed-wordpress.html" class="inline-link"><strong>Tailored Website Management at $200/mo</strong></a> handles design, build, hosting, the lot. $300 month one.</p>
</div>
</div>
<p class="text-center mt-4" style="color: var(--grey-mid); font-size: 15px; max-width: 640px; margin-left: auto; margin-right: auto;">
Still unsure? <a href="mailto:project@help4bis.com" class="inline-link">Email us at project@help4bis.com</a> with a one-line description of what you have (or don't have) and we'll tell you honestly which option fits. No sales call.
</p>
</div>
</section>
<!-- ═══════════════════════════════════════════════
WHAT'S INCLUDED IN EVERY PRICE
═══════════════════════════════════════════════ -->
<section class="section" aria-labelledby="included-heading">
<div class="container">
<div class="text-center mb-6">
<p class="eyebrow">Standard On Every Plan</p>
<h2 id="included-heading">What you always get</h2>
<p class="section-subtitle">Whether you pay $49 or $200, these are non-negotiable.</p>
</div>
<div class="services__grid">
<div class="service-card reveal">
<div class="service-card__icon" aria-hidden="true">
<svg xmlns="http://www.w3.org/2000/svg" width="26" height="26" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M21 10c0 7-9 13-9 13s-9-6-9-13a9 9 0 0 1 18 0z"/><circle cx="12" cy="10" r="3"/></svg>
</div>
<h3>Brisbane-based</h3>
<p>You deal directly with the person doing the work. Same time zone, same business culture, no outsourcing, no call centre.</p>
</div>
<div class="service-card reveal">
<div class="service-card__icon" aria-hidden="true">
<svg xmlns="http://www.w3.org/2000/svg" width="26" height="26" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="4" width="18" height="18" rx="2" ry="2"/><line x1="16" y1="2" x2="16" y2="6"/><line x1="8" y1="2" x2="8" y2="6"/><line x1="3" y1="10" x2="21" y2="10"/></svg>
</div>
<h3>No lock-in contracts</h3>
<p>Care plans and Tailored Management are month-to-month from day one. Cancel any time with 30 days notice. No exit fees.</p>
</div>
<div class="service-card reveal">
<div class="service-card__icon" aria-hidden="true">
<svg xmlns="http://www.w3.org/2000/svg" width="26" height="26" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><line x1="12" y1="1" x2="12" y2="23"/><path d="M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"/></svg>
</div>
<h3>Fixed monthly fee</h3>
<p>You know what you'll pay each month before you sign up. No surprise invoices, no metered "support tokens", no hourly rates.</p>
</div>
<div class="service-card reveal">
<div class="service-card__icon" aria-hidden="true">
<svg xmlns="http://www.w3.org/2000/svg" width="26" height="26" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z"/></svg>
</div>
<h3>Plain English</h3>
<p>No jargon. We explain what we did and why in language that makes sense, in writing, so you can read it later.</p>
</div>
</div>
</div>
</section>
<!-- ═══════════════════════════════════════════════
FAQ, PRICING-FOCUSED
═══════════════════════════════════════════════ -->
<section class="section section--alt" id="faq" aria-labelledby="faq-heading">
<div class="container">
<div class="text-center mb-6">
<p class="eyebrow">Pricing Questions</p>
<h2 id="faq-heading">Common questions about pricing</h2>
</div>
<div class="faq__list" role="list">
<details class="faq-item" role="listitem">
<summary class="faq-item__question">
Is there a setup fee?
<span class="faq-item__icon" aria-hidden="true">
<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><line x1="12" y1="5" x2="12" y2="19"/><line x1="5" y1="12" x2="19" y2="12"/></svg>
</span>
</summary>
<div class="faq-item__answer">
No setup fee on Care Plans or the SOS Fix. Tailored Website Management has $300 in month one (which covers the build and migration) then $200/month from month two onwards.
</div>
</details>
<details class="faq-item" role="listitem">
<summary class="faq-item__question">
Do you accept credit card, or invoice only?
<span class="faq-item__icon" aria-hidden="true">
<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><line x1="12" y1="5" x2="12" y2="19"/><line x1="5" y1="12" x2="19" y2="12"/></svg>
</span>
</summary>
<div class="faq-item__answer">
Both. Credit card via Stripe for monthly billing, or bank transfer / invoice if you prefer end-of-month settlement. Australian clients get a GST-compliant tax invoice either way.
</div>
</details>
<details class="faq-item" role="listitem">
<summary class="faq-item__question">
Can I change plans later?
<span class="faq-item__icon" aria-hidden="true">
<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><line x1="12" y1="5" x2="12" y2="19"/><line x1="5" y1="12" x2="19" y2="12"/></svg>
</span>
</summary>
<div class="faq-item__answer">
Yes. Start on Essentials, upgrade to Business when you need content edits. Move from a Care Plan to Tailored Website Management if you decide you want us to host as well. No fee for switching.
</div>
</details>
<details class="faq-item" role="listitem">
<summary class="faq-item__question">
Is GST included in the prices on this page?
<span class="faq-item__icon" aria-hidden="true">
<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><line x1="12" y1="5" x2="12" y2="19"/><line x1="5" y1="12" x2="19" y2="12"/></svg>
</span>
</summary>
<div class="faq-item__answer">
No. Prices on this page are exclusive of GST. GST (10%) is added for Australian clients at checkout and shows on every tax invoice.
</div>
</details>
<details class="faq-item" role="listitem">
<summary class="faq-item__question">
Do you offer discounts for annual billing?
<span class="faq-item__icon" aria-hidden="true">
<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><line x1="12" y1="5" x2="12" y2="19"/><line x1="5" y1="12" x2="19" y2="12"/></svg>
</span>
</summary>
<div class="faq-item__answer">
Yes, on Care Plans. Pay 12 months up front and get 2 months free (17% saving). <a href="mailto:project@help4bis.com" class="inline-link">Email us</a> to arrange annual billing.
</div>
</details>
<details class="faq-item" role="listitem">
<summary class="faq-item__question">
What if the SOS Fix can't fix my problem?
<span class="faq-item__icon" aria-hidden="true">
<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><line x1="12" y1="5" x2="12" y2="19"/><line x1="5" y1="12" x2="19" y2="12"/></svg>
</span>
</summary>
<div class="faq-item__answer">
You don't pay. The SOS Fix is "no fix, no fee". If we can't resolve the issue we explain what we found, point you to who can (or what hosting / specialist step is needed), and refund any deposit. The $97 is for the fix, not the look.
</div>
</details>
</div>
</div>
</section>
<!-- ═══════════════════════════════════════════════
CTA BAND
═══════════════════════════════════════════════ -->
<section class="cta-band" aria-labelledby="cta-heading">
<div class="container">
<div class="cta-band__content">
<p class="eyebrow" style="color: rgba(255,255,255,.5)">Ready when you are</p>
<h2 id="cta-heading">Pick the one that fits today.</h2>
<p>If you're not sure, send us a one-line email. We'll point you to the right plan, honestly.</p>
<div class="cta-band__actions">
<a href="/contact.html" class="btn btn-primary btn-lg">Get Started</a>
<a href="mailto:project@help4bis.com" class="btn btn-outline-light btn-lg">Email Us First</a>
</div>
</div>
</div>
</section>
<!-- ═══════════════════════════════════════════════
FOOTER
═══════════════════════════════════════════════ -->
<footer class="footer" aria-label="Site footer">
<div class="container">
<div class="footer__grid">
<div class="footer__brand">
<img src="/assets/images/logo-cropped.jpg" alt="HELP4BIS" width="140" height="38">
<p>Managed WordPress hosting and maintenance for Australian small businesses. Brisbane-based, personal service, WordPress specialist, Brisbane.</p>
<p style="font-size: 13px; color: rgba(255,255,255,.4);">Dutch Digital Dynamics Pty Ltd · ABN 86 081 237 087</p>
</div>
<div class="footer__col">
<h4>Services</h4>
<ul class="footer__links">
<li><a href="/managed-wordpress.html">Tailored Website Management</a></li>
<li><a href="/care-plans.html">WP Care Plans</a></li>
<li><a href="/sos-fix.html">WP SOS Fix</a></li>
<li><a href="/ai-integration.html">AI Integration</a></li>
<li><a href="/plugin-development.html">Plugin Development</a></li> </ul>
</div>
<div class="footer__col">
<h4>Company</h4>
<ul class="footer__links">
<li><a href="/about.html">About Us</a></li>
<li><a href="/index.html#portfolio">Our Work</a></li>
<li><a href="/index.html#testimonials">Client Feedback</a></li>
<li><a href="/blog/index.html">Blog</a></li>
<li><a href="/contact.html">Contact</a></li>
</ul>
</div>
<div class="footer__col">
<h4>Contact</h4>
<ul class="footer__links">
<li><a href="mailto:project@help4bis.com">project@help4bis.com</a></li>
<li><a href="/contact.html">Submit a Brief</a></li>
<li><a href="/sos-fix.html">Emergency Fix</a></li>
</ul>
<p style="margin-top: 1rem; font-size: 13px; color: rgba(255,255,255,.4);">
Brisbane, Queensland<br>
Response within 24 business hours
</p>
</div>
</div>
<div class="footer__bottom">
<span>© 2026 HELP4BIS, a trading name of Dutch Digital Dynamics Pty Ltd · ABN 86 081 237 087</span>
<span>
<a href="/privacy.html">Privacy Policy</a> ·
<a href="/terms.html">Terms</a>
</span>
</div>
</div>
</footer>
<!-- Back to top -->
<button id="back-to-top" aria-label="Back to top" style="position:fixed;bottom:24px;right:24px;width:44px;height:44px;background:var(--red);border:none;border-radius:50%;color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .3s ease;box-shadow:var(--shadow-md);">
<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="18 15 12 9 6 15"/></svg>
</button>
<script src="/assets/js/main.js"></script>
<script src="/analytics/tracker.js" defer></script>
</body>
</html>
+270
View File
@@ -0,0 +1,270 @@
<!DOCTYPE html>
<!-- Version: 1.2.0 | Created: 2026-03-13 | Updated: 2026-08-16 -->
<html lang="en-AU">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Privacy Policy | HELP4BIS, Dutch Digital Dynamics Pty Ltd</title>
<meta name="description" content="Privacy Policy for HELP4BIS, Dutch Digital Dynamics Pty Ltd (ABN 86 081 237 087). How we collect, use, and protect your personal information under the Australian Privacy Act 1988.">
<meta name="author" content="HELP4BIS">
<meta name="publisher" content="Dutch Digital Dynamics Pty Ltd">
<meta name="robots" content="noindex, nofollow">
<link rel="canonical" href="https://help4bis.com/privacy.html">
<!-- JSON-LD WebPage Schema -->
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "WebPage",
"@id": "https://help4bis.com/privacy.html#webpage",
"url": "https://help4bis.com/privacy.html",
"name": "Privacy Policy | HELP4BIS",
"description": "Privacy Policy for HELP4BIS, Dutch Digital Dynamics Pty Ltd. Australian Privacy Act 1988 compliance.",
"isPartOf": {"@id": "https://help4bis.com/#website"},
"breadcrumb": {
"@type": "BreadcrumbList",
"itemListElement": [
{"@type": "ListItem", "position": 1, "name": "Home", "item": "https://help4bis.com/"},
{"@type": "ListItem", "position": 2, "name": "Privacy Policy", "item": "https://help4bis.com/privacy.html"}
]
}
}
</script>
<link rel="icon" type="image/jpeg" href="assets/images/logo-favicon.jpg">
<!-- Fonts -->
<!-- Icons (Lucide) -->
<link rel="stylesheet" href="assets/css/style.css">
</head>
<body>
<!-- ═══════════════════════════════════════════════
NAVIGATION
═══════════════════════════════════════════════ -->
<nav class="nav" role="navigation" aria-label="Main navigation">
<div class="container">
<div class="nav__inner">
<a class="nav__logo" href="index.html" aria-label="HELP4BIS home">
<img src="assets/images/logo-cropped.jpg" alt="HELP4BIS Logo" width="160" height="44">
</a>
<ul class="nav__links" id="nav-links" role="list">
<!-- Services dropdown -->
<li class="nav__dropdown">
<button class="nav__trigger" aria-haspopup="true" aria-expanded="false">Services <svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"/></svg></button>
<ul class="nav__dropdown-menu" role="menu">
<li class="nav__menu-group">WordPress</li>
<li><a href="managed-wordpress.html" role="menuitem">Tailored Website Management</a></li>
<li><a href="care-plans.html" role="menuitem">WP Care Plans <span class="menu-price">from $49/mo</span></a></li>
<li><a href="sos-fix.html" role="menuitem">WP SOS Fix <span class="menu-price">$97 flat</span></a></li>
<li><a href="ai-integration.html" role="menuitem">AI Integration</a></li>
<li><a href="plugin-development.html" role="menuitem">Custom Plugin Development</a></li> </ul>
</li>
<li><a href="about.html">About</a></li>
<li><a href="index.html#portfolio">Our Work</a></li>
<li><a href="index.html#pricing">Pricing</a></li>
<li><a href="blog/index.html">Blog</a></li>
<li><a href="your-first-week-with-ai.html">AI Guide</a></li>
<li><a href="contact.html">Contact</a></li>
<!-- Mobile CTA (inside nav drawer) -->
<li class="nav__cta-mobile" aria-hidden="true">
<a href="contact.html" class="btn btn-primary">Get Started</a>
<a href="sos-fix.html" class="btn btn-secondary">SOS Fix, $97</a>
</li>
</ul>
<div class="nav__cta">
<a href="sos-fix.html" class="btn btn-secondary btn-sm">SOS Fix $97</a>
<a href="contact.html" class="btn btn-primary btn-sm">Get Started</a>
</div>
<button class="nav__burger" id="nav-burger" aria-label="Open menu" aria-expanded="false" aria-controls="nav-links">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><line x1="3" y1="12" x2="21" y2="12"/><line x1="3" y1="6" x2="21" y2="6"/><line x1="3" y1="18" x2="21" y2="18"/></svg>
</button>
</div>
</div>
</nav>
<!-- ═══════════════════════════════════════════════
PAGE HERO
═══════════════════════════════════════════════ -->
<section class="page-hero" aria-labelledby="privacy-heading">
<div class="container">
<nav class="breadcrumb" aria-label="Breadcrumb">
<ol>
<li><a href="index.html">Home</a></li>
<li aria-current="page">Privacy Policy</li>
</ol>
</nav>
<p class="eyebrow">Legal</p>
<h1 id="privacy-heading">Privacy Policy</h1>
<p class="hero__lead" style="max-width:620px;">How HELP4BIS collects, uses, and protects your personal information in accordance with the Australian Privacy Act 1988. Last reviewed: March 2026.</p>
</div>
</section>
<!-- ═══════════════════════════════════════════════
PRIVACY CONTENT
═══════════════════════════════════════════════ -->
<section class="section" aria-labelledby="privacy-content-heading">
<div class="container">
<div style="max-width:760px; margin:0 auto;">
<h2 id="privacy-content-heading">1. Who we are</h2>
<p>This website is operated by <strong>Dutch Digital Dynamics Pty Ltd</strong> (ABN 86 081 237 087), trading as <strong>HELP4BIS</strong>, based in Brisbane, Queensland, Australia.</p>
<p>We provide managed WordPress services, care plans, custom plugin development, and AI integration services to Australian small businesses.</p>
<p>For all privacy enquiries, contact us at: <a href="mailto:project@help4bis.com" class="inline-link">project@help4bis.com</a></p>
<h2>2. What personal information we collect</h2>
<p>We collect personal information only when you submit a contact form or service brief on this website. The information collected is:</p>
<ul>
<li>Your name</li>
<li>Your email address</li>
<li>Your website URL (optional)</li>
<li>Your service type and budget range</li>
<li>The content of your message or enquiry</li>
</ul>
<p>We do not collect sensitive information as defined under the Privacy Act (health, financial, or biometric data). We do not collect payment card details through this website.</p>
<h2>3. How we collect it</h2>
<p>Personal information is collected only through contact forms on this website when you actively submit them. We do not collect personal information automatically through cookies, web analytics, or tracking scripts.</p>
<p>The only external service this website connects to is Google Fonts (see Section 7 below).</p>
<h2>4. Why we collect it</h2>
<p>We collect your personal information solely to:</p>
<ul>
<li>Respond to your service enquiry</li>
<li>Assess whether we can assist with the services you have requested</li>
<li>Deliver contracted services where a service agreement is established</li>
</ul>
<p>We do not use your information for marketing, profiling, or any purpose unrelated to your enquiry or service engagement.</p>
<h2>5. How we store it</h2>
<p>Contact form submissions are delivered directly to our email inbox and stored within our email system. We do not maintain a customer relationship management (CRM) database. We do not use third-party CRM platforms, mailing list tools, or marketing automation software.</p>
<p>Email is stored on servers located in Australia or within jurisdictions with privacy protections equivalent to Australian law. Access to our email is restricted to authorised personnel only and protected by strong passwords and two-factor authentication.</p>
<p>We retain enquiry correspondence for a period consistent with normal business record-keeping requirements, generally seven years, in accordance with Australian tax and business law obligations.</p>
<h2>6. Who we share it with</h2>
<p>We do not sell, rent, trade, or share your personal information with any third party for commercial or marketing purposes.</p>
<p>The only circumstances in which we would disclose your personal information to a third party are:</p>
<ul>
<li>Where required to do so by Australian law or a court order</li>
<li>Where you have given your explicit consent for a specific disclosure</li>
</ul>
<h2>7. Google Fonts</h2>
<p>This website loads fonts from Google's servers (fonts.googleapis.com). When your browser requests a font file, Google's servers log your IP address as part of that HTTP request. No personal data is passed from us to Google, this is a direct request from your browser to Google's infrastructure, not data we collect or transmit.</p>
<p>For Google's privacy policy, see <a href="https://policies.google.com/privacy" class="inline-link" target="_blank" rel="noopener noreferrer">policies.google.com/privacy</a>.</p>
<h2>8. Cookies</h2>
<p>We do not use tracking cookies, advertising cookies, or analytics cookies on this website. We do not use Google Analytics, Meta Pixel, or any other third-party analytics or advertising script. No cookie consent banner is required because we set no cookies.</p>
<h2>9. Your rights under Australian law</h2>
<p>Under the <strong>Australian Privacy Act 1988</strong> and the <strong>Australian Privacy Principles (APPs)</strong>, you have the following rights in relation to personal information we hold about you:</p>
<ul>
<li><strong>Access:</strong> You may request access to the personal information we hold about you.</li>
<li><strong>Correction:</strong> You may request that we correct personal information that is inaccurate, out of date, incomplete, irrelevant, or misleading.</li>
<li><strong>Complaint:</strong> You may make a complaint if you believe we have mishandled your personal information.</li>
</ul>
<p>To exercise any of these rights, contact us at <a href="mailto:project@help4bis.com" class="inline-link">project@help4bis.com</a>. We will respond within a timeframe and in any case within 30 days.</p>
<h2>10. Privacy complaints</h2>
<p>If you have a complaint about how we have handled your personal information, please contact us first at <a href="mailto:project@help4bis.com" class="inline-link">project@help4bis.com</a>. We will investigate your complaint and respond within 30 days.</p>
<p>If you are not satisfied with our response, you may lodge a complaint with the <strong>Office of the Australian Information Commissioner (OAIC)</strong>:</p>
<ul>
<li>Website: <a href="https://www.oaic.gov.au" class="inline-link" target="_blank" rel="noopener noreferrer">oaic.gov.au</a></li>
<li>Phone: 1300 363 992</li>
<li>Online complaint form available at oaic.gov.au</li>
</ul>
<h2>11. Contact for privacy matters</h2>
<p>All privacy enquiries, access requests, and correction requests should be directed to:</p>
<p>
<strong>HELP4BIS, Dutch Digital Dynamics Pty Ltd</strong><br>
Brisbane, Queensland, Australia<br>
Email: <a href="mailto:project@help4bis.com" class="inline-link">project@help4bis.com</a>
</p>
<h2>12. Changes to this policy</h2>
<p>We may update this Privacy Policy from time to time. Any material changes will be posted on this page. We recommend checking this page periodically.</p>
<p style="font-size:14px; color:#6b7280; margin-top:2rem;"><em>Last reviewed: March 2026</em></p>
</div>
</div>
</section>
<!-- ═══════════════════════════════════════════════
FOOTER
═══════════════════════════════════════════════ -->
<footer class="footer" aria-label="Site footer">
<div class="container">
<div class="footer__grid">
<div class="footer__brand">
<img src="assets/images/logo-cropped.jpg" alt="HELP4BIS" width="140" height="38">
<p>Managed WordPress hosting and maintenance for Australian small businesses. Brisbane-based, personal service, WordPress specialist, Brisbane.</p>
<p style="font-size:13px; color:rgba(255,255,255,.4);">Dutch Digital Dynamics Pty Ltd · ABN 86 081 237 087</p>
</div>
<div class="footer__col">
<h4>Services</h4>
<ul class="footer__links">
<li><a href="managed-wordpress.html">Tailored Website Management</a></li>
<li><a href="care-plans.html">WP Care Plans</a></li>
<li><a href="sos-fix.html">WP SOS Fix</a></li>
<li><a href="ai-integration.html">AI Integration</a></li>
<li><a href="plugin-development.html">Plugin Development</a></li> </ul>
</div>
<div class="footer__col">
<h4>Company</h4>
<ul class="footer__links">
<li><a href="about.html">About Us</a></li>
<li><a href="index.html#portfolio">Our Work</a></li>
<li><a href="index.html#testimonials">Client Feedback</a></li>
<li><a href="blog/index.html">Blog</a></li>
<li><a href="contact.html">Contact</a></li>
</ul>
</div>
<div class="footer__col">
<h4>Contact</h4>
<ul class="footer__links">
<li><a href="mailto:project@help4bis.com">project@help4bis.com</a></li>
<li><a href="contact.html">Submit a Brief</a></li>
<li><a href="sos-fix.html">Emergency Fix</a></li>
</ul>
<p style="margin-top:1rem; font-size:13px; color:rgba(255,255,255,.4);">
Brisbane, Queensland<br>
Response within 24 business hours
</p>
</div>
</div>
<div class="footer__bottom">
<span>© 2026 HELP4BIS, a trading name of Dutch Digital Dynamics Pty Ltd · ABN 86 081 237 087</span>
<span>
<a href="privacy.html">Privacy Policy</a> ·
<a href="terms.html">Terms</a>
</span>
</div>
</div>
</footer>
<!-- Back to top -->
<button id="back-to-top" aria-label="Back to top" style="position:fixed;bottom:24px;right:24px;width:44px;height:44px;background:var(--red);border:none;border-radius:50%;color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .3s ease;box-shadow:var(--shadow-md);">
<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="18 15 12 9 6 15"/></svg>
</button>
<script src="assets/js/main.js"></script>
<script src="/analytics/tracker.js" defer></script>
</body>
</html>
+6
View File
@@ -0,0 +1,6 @@
User-agent: *
Allow: /
Disallow: /wp-admin/
Disallow: /assets/
Sitemap: https://help4bis.com/sitemap.xml
+679
View File
@@ -0,0 +1,679 @@
<!DOCTYPE html>
<!-- Version: 1.3.0 | Created: 2026-07-12 | Updated: 2026-08-16 -->
<html lang="en-AU">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Your Second Week With AI: Master Prompts, System Prompts & Custom GPTs | HELP4BIS</title>
<meta name="description" content="Finished the beginner checklist? Here's the advanced toolkit: master prompts, system prompts, the seven control words, projects, and custom GPTs. Plain English.">
<meta name="keywords" content="master prompt, system prompt, AI custom instructions, custom GPT, ChatGPT projects, advanced AI prompting, prompt engineering for beginners">
<meta name="author" content="HELP4BIS">
<meta name="publisher" content="Dutch Digital Dynamics Pty Ltd">
<meta name="copyright" content="Dutch Digital Dynamics Pty Ltd">
<meta name="language" content="en-AU">
<meta name="robots" content="index, follow">
<link rel="canonical" href="https://help4bis.com/second-week-with-ai.html">
<meta property="og:type" content="article">
<meta property="og:url" content="https://help4bis.com/second-week-with-ai.html">
<meta property="og:site_name" content="HELP4BIS">
<meta property="og:title" content="Your Second Week With AI: The Advanced Toolkit">
<meta property="og:description" content="Master prompts, system prompts, the seven control words, projects, and custom GPTs, explained in plain English.">
<meta property="og:image" content="https://help4bis.com/assets/images/og-social-card.jpg">
<meta property="og:locale" content="en_AU">
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:title" content="Your Second Week With AI: The Advanced Toolkit">
<meta name="twitter:description" content="Master prompts, system prompts, the seven control words, projects, and custom GPTs, explained in plain English.">
<meta name="twitter:image" content="https://help4bis.com/assets/images/og-social-card.jpg">
<link rel="icon" type="image/jpeg" href="assets/images/logo-favicon.jpg">
<link rel="stylesheet" href="assets/css/style.css">
<style>
/* Second Week With AI, page extras */
.progress-row {
display: flex; align-items: center; gap: var(--sp-3);
margin-bottom: var(--sp-6);
max-width: 720px;
}
.progress-track {
flex: 1; height: 8px; border-radius: var(--r-full);
background: var(--grey-100); overflow: hidden;
}
.progress-fill {
height: 100%; width: 0%; border-radius: var(--r-full);
background: linear-gradient(90deg, var(--green), #16a34a);
transition: width .4s var(--ease-out);
}
.progress-label {
font-family: var(--font-head); font-size: 13px; font-weight: 700;
color: var(--grey-600); white-space: nowrap; font-variant-numeric: tabular-nums;
}
@media (prefers-reduced-motion: reduce) { .progress-fill { transition: none; } }
.step-item__left {
display: flex; align-items: center; gap: var(--sp-3);
flex: 1; min-width: 0;
}
.step-num {
flex-shrink: 0; width: 32px; height: 32px; border-radius: 50%;
background: var(--grey-50); border: 1.5px solid var(--grey-200);
color: var(--red); font-family: var(--font-head); font-weight: 800;
font-size: 14px; display: flex; align-items: center; justify-content: center;
font-variant-numeric: tabular-nums; transition: all .22s ease;
}
.faq-item:has(.step-check:checked) .step-num {
background: var(--green); color: var(--white); border-color: transparent;
}
.faq-item:has(.step-check:checked) .step-item__left { opacity: .55; }
.step-item__right { display: flex; align-items: center; gap: var(--sp-3); flex-shrink: 0; }
.step-check { width: 20px; height: 20px; accent-color: var(--green); cursor: pointer; }
.prompt-box {
background: var(--grey-50); border: 1px solid var(--grey-100);
border-radius: var(--r-md); padding: 14px 16px;
display: flex; gap: 12px; align-items: flex-start; margin: var(--sp-3) 0;
max-width: 640px;
}
.prompt-box p {
margin: 0; font-size: 14.5px; line-height: 1.6; color: var(--grey-800);
flex: 1; font-style: italic;
}
.prompt-copy {
flex-shrink: 0; font-family: var(--font-head); font-size: 11px; font-weight: 700;
letter-spacing: .05em; text-transform: uppercase; background: var(--white);
color: var(--red); border: 1.5px solid var(--grey-200); border-radius: var(--r-sm);
padding: 7px 12px; cursor: pointer; transition: all var(--trans);
}
.prompt-copy:hover { border-color: var(--red); background: var(--red-subtle); }
.prompt-copy:focus-visible { outline: 2px solid var(--red); outline-offset: 2px; }
.why-callout {
border-left: 3px solid var(--red); background: var(--red-subtle);
padding: 12px 16px; border-radius: 0 var(--r-md) var(--r-md) 0;
margin: var(--sp-3) 0; font-size: 14.5px; color: var(--grey-800); max-width: 640px;
}
.why-callout strong {
display: block; font-family: var(--font-head); font-size: 11px;
letter-spacing: .08em; text-transform: uppercase; color: var(--red); margin-bottom: 4px;
}
.keyword-grid {
display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
gap: var(--sp-3); margin: var(--sp-4) 0; max-width: 720px;
}
.keyword-card {
background: var(--grey-50); border: 1px solid var(--grey-100);
border-radius: var(--r-md); padding: 14px 16px;
}
.keyword-card .kw-num {
display: inline-flex; align-items: center; justify-content: center;
width: 22px; height: 22px; border-radius: 50%; background: var(--white);
border: 1.5px solid var(--grey-200); color: var(--red);
font-family: var(--font-head); font-weight: 800; font-size: 11px;
margin-right: 8px; font-variant-numeric: tabular-nums;
}
.keyword-card dt {
display: inline; font-family: var(--font-head); font-weight: 700;
font-size: 14.5px; color: var(--ink);
}
.keyword-card dd { margin: 6px 0 0; font-size: 13.5px; line-height: 1.55; color: var(--grey-600); }
.ladder {
display: flex; flex-direction: column; gap: 0; max-width: 640px; margin: var(--sp-4) 0;
}
.ladder-step {
display: flex; gap: var(--sp-3); align-items: flex-start;
padding: 14px 0; border-bottom: 1px solid var(--grey-100);
}
.ladder-step:last-child { border-bottom: none; }
.ladder-tier {
flex-shrink: 0; font-family: var(--font-head); font-weight: 800; font-size: 11px;
letter-spacing: .06em; text-transform: uppercase; color: var(--white);
background: var(--ink); border-radius: var(--r-sm); padding: 4px 8px; margin-top: 2px;
white-space: nowrap;
}
.ladder-step h4 { font-family: var(--font-head); font-size: 15px; margin: 0 0 2px; color: var(--ink); }
.ladder-step p { margin: 0; font-size: 14px; color: var(--grey-600); }
.glossary-grid {
display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
gap: var(--sp-3); margin-top: var(--sp-5);
}
.glossary-card {
background: var(--grey-50); border: 1px solid var(--grey-100);
border-radius: var(--r-lg); padding: 18px 20px;
}
.glossary-card dt {
font-family: var(--font-head); font-weight: 800; font-size: 15px;
color: var(--red); margin-bottom: 4px;
}
.glossary-card dd { margin: 0; font-size: 14px; line-height: 1.6; color: var(--grey-600); }
.prereq-banner {
display: flex; align-items: center; justify-content: space-between; gap: var(--sp-4);
background: var(--grey-50); border: 1px solid var(--grey-100); border-radius: var(--r-lg);
padding: var(--sp-4) var(--sp-5); margin-bottom: var(--sp-8); flex-wrap: wrap;
}
.prereq-banner p { margin: 0; font-size: 14.5px; color: var(--grey-600); max-width: 460px; }
.prereq-banner strong { color: var(--ink); }
</style>
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@graph": [
{
"@type": "WebPage",
"@id": "https://help4bis.com/second-week-with-ai.html#webpage",
"url": "https://help4bis.com/second-week-with-ai.html",
"name": "Your Second Week With AI: Master Prompts, System Prompts & Custom GPTs",
"isPartOf": {"@id": "https://help4bis.com/#website"},
"breadcrumb": {
"@type": "BreadcrumbList",
"itemListElement": [
{"@type": "ListItem", "position": 1, "name": "Home", "item": "https://help4bis.com/"},
{"@type": "ListItem", "position": 2, "name": "Your First Week With AI", "item": "https://help4bis.com/your-first-week-with-ai.html"},
{"@type": "ListItem", "position": 3, "name": "Your Second Week With AI", "item": "https://help4bis.com/second-week-with-ai.html"}
]
}
},
{
"@type": "HowTo",
"@id": "https://help4bis.com/second-week-with-ai.html#howto",
"name": "Your Second Week With AI",
"description": "The advanced toolkit for someone comfortable with basic AI prompting: master prompts, system prompts, the seven control words, projects, custom instructions, and custom GPTs.",
"step": [
{"@type": "HowToStep", "name": "Give it a memory: the master prompt", "text": "Write one document that introduces who you are, so every new chat starts with the right background already in place."},
{"@type": "HowToStep", "name": "Turn your best prompts into system prompts", "text": "Save a reusable instruction set for tasks you do often, instead of rebuilding the prompt from scratch each time."},
{"@type": "HowToStep", "name": "Learn the seven control words", "text": "Add specific control words to a prompt, such as constraints first and format as, to get more reliable answers."},
{"@type": "HowToStep", "name": "Store context once: projects", "text": "Keep background files and notes in one place so you stop repeating the same context in every message."},
{"@type": "HowToStep", "name": "Set your defaults: custom instructions", "text": "Tell the AI your standing preferences once so every reply follows them automatically."},
{"@type": "HowToStep", "name": "Package it up: custom GPTs", "text": "Turn a working system prompt into a saved assistant that other people can use without writing prompts themselves."},
{"@type": "HowToStep", "name": "Build them in this order", "text": "Start personal, then repeatable, then ongoing, then shareable, rather than trying everything on day one."}
]
}
]
}
</script>
</head>
<body>
<!-- ═══════════════════════════════════════════════
NAVIGATION
═══════════════════════════════════════════════ -->
<nav class="nav" role="navigation" aria-label="Main navigation">
<div class="container">
<div class="nav__inner">
<a class="nav__logo" href="index.html" aria-label="HELP4BIS home">
<img src="assets/images/logo-cropped.jpg" alt="HELP4BIS Logo" width="160" height="44">
</a>
<ul class="nav__links" id="nav-links" role="list">
<li class="nav__dropdown">
<button class="nav__trigger" aria-haspopup="true" aria-expanded="false">Services <svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"/></svg></button>
<ul class="nav__dropdown-menu" role="menu">
<li class="nav__menu-group">WordPress</li>
<li><a href="managed-wordpress.html" role="menuitem">Tailored Website Management</a></li>
<li><a href="care-plans.html" role="menuitem">WP Care Plans <span class="menu-price">from $49/mo</span></a></li>
<li><a href="sos-fix.html" role="menuitem">WP SOS Fix <span class="menu-price">$97 flat</span></a></li>
<li><a href="ai-integration.html" role="menuitem">AI Integration</a></li>
<li><a href="plugin-development.html" role="menuitem">Custom Plugin Development</a></li> </ul>
</li>
<li><a href="about.html">About</a></li>
<li><a href="index.html#portfolio">Our Work</a></li>
<li><a href="index.html#pricing">Pricing</a></li>
<li><a href="blog/index.html">Blog</a></li>
<li><a href="your-first-week-with-ai.html">AI Guide</a></li>
<li><a href="contact.html">Contact</a></li>
<li class="nav__cta-mobile" aria-hidden="true">
<a href="contact.html" class="btn btn-primary">Get Started</a>
<a href="sos-fix.html" class="btn btn-secondary">SOS Fix, $97</a>
</li>
</ul>
<div class="nav__cta">
<a href="sos-fix.html" class="btn btn-secondary btn-sm">SOS Fix, $97</a>
<a href="contact.html" class="btn btn-primary btn-sm">Get Started</a>
</div>
<button class="nav__burger" id="nav-burger" aria-label="Open menu" aria-expanded="false" aria-controls="nav-links">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><line x1="3" y1="12" x2="21" y2="12"/><line x1="3" y1="6" x2="21" y2="6"/><line x1="3" y1="18" x2="21" y2="18"/></svg>
</button>
</div>
</div>
</nav>
<!-- ═══════════════════════════════════════════════
PAGE HERO
═══════════════════════════════════════════════ -->
<section class="page-hero" aria-labelledby="hero-heading">
<div class="container">
<nav class="breadcrumb" aria-label="Breadcrumb">
<ol>
<li><a href="index.html">Home</a></li>
<li><a href="your-first-week-with-ai.html">Part One</a></li>
<li aria-current="page">Part Two</li>
</ol>
</nav>
<p class="eyebrow">Free Guide, Part Two</p>
<h1 id="hero-heading">Your Second Week With AI</h1>
<p>You've sent your first messages, corrected a few answers, learned to check the ones that matter. This is where an AI chat stops being a box you type into and starts being a system that already knows who you are, so you stop explaining yourself from scratch every time.</p>
</div>
</section>
<!-- ═══════════════════════════════════════════════
STEPS
═══════════════════════════════════════════════ -->
<section class="section" aria-labelledby="steps-heading">
<div class="container">
<div class="prereq-banner">
<p><strong>New here?</strong> This page assumes you've already sent a few messages and know how to write a plain, specific request. If that's not you yet, start with the beginner checklist first.</p>
<a href="your-first-week-with-ai.html" class="btn btn-secondary btn-sm">Start With Part One</a>
</div>
<p class="eyebrow">The Toolkit</p>
<h2 id="steps-heading">Seven upgrades, in the right order</h2>
<p class="section-subtitle">None of these are required. They're what turns "I use AI sometimes" into "AI already knows my business before I've typed a word."</p>
<div class="progress-row" aria-live="polite" style="margin-top: var(--sp-6);">
<span class="progress-label" id="progressLabel">0 of 7 done</span>
<span class="progress-track"><span class="progress-fill" id="progressFill"></span></span>
</div>
<div class="faq__list" role="list" id="stepList">
<details class="faq-item" role="listitem" open>
<summary class="faq-item__question">
<span class="step-item__left">
<span class="step-num">1</span>
<span>Give it a memory: the master prompt</span>
</span>
<span class="step-item__right">
<input type="checkbox" class="step-check" aria-label="Mark step 1 done" onclick="event.stopPropagation()">
<span class="faq-item__icon" aria-hidden="true">
<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><line x1="12" y1="5" x2="12" y2="19"/><line x1="5" y1="12" x2="19" y2="12"/></svg>
</span>
</span>
</summary>
<div class="faq-item__answer">
<p>Right now, every new chat starts from zero. The AI does not know your business, your role, your customers, or how you like things written, unless you type it out again. A master prompt fixes that: one document you keep and paste in (or upload) that answers the basics once. Our own one covers who we are, what we sell and how we write, in a single page.</p>
<ul>
<li>What you do, and who you do it for</li>
<li>Your products, services, or role in one or two lines</li>
<li>The tone you write in, and the tone you hate</li>
<li>Anything it should never suggest or assume</li>
</ul>
<div class="prompt-box">
<p>Interview me so you can write a one-page master prompt about my business and how I like things written. Ask one question at a time.</p>
<button class="prompt-copy" onclick="copyPrompt(this)">Copy</button>
</div>
<div class="why-callout">
<strong>Why this matters</strong>
You will use this document constantly. Save it somewhere you can find in ten seconds, a notes app, a pinned document, whatever you already use, and paste it in at the start of any chat where the background actually matters.
</div>
</div>
</details>
<details class="faq-item" role="listitem">
<summary class="faq-item__question">
<span class="step-item__left">
<span class="step-num">2</span>
<span>Turn your best prompts into system prompts</span>
</span>
<span class="step-item__right">
<input type="checkbox" class="step-check" aria-label="Mark step 2 done" onclick="event.stopPropagation()">
<span class="faq-item__icon" aria-hidden="true">
<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><line x1="12" y1="5" x2="12" y2="19"/><line x1="5" y1="12" x2="19" y2="12"/></svg>
</span>
</span>
</summary>
<div class="faq-item__answer">
<p>A master prompt says who you are. A system prompt says how to do one particular job, every time, the same way. If you catch yourself writing a similar request over and over, weekly emails, meeting notes, social captions, that task is worth turning into a saved instruction set.</p>
<ol>
<li>Get the output right once, correcting it back and forth until it's actually good.</li>
<li>Ask the AI to write down the instructions that would produce that same result directly, no back and forth.</li>
<li>Save those instructions somewhere. Next time, paste them in first, then add only what's different this time.</li>
</ol>
<div class="prompt-box">
<p>Based on everything we just went back and forth on, write me a reusable instruction set that would get me straight to this result next time, without the corrections.</p>
<button class="prompt-copy" onclick="copyPrompt(this)">Copy</button>
</div>
</div>
</details>
<details class="faq-item" role="listitem">
<summary class="faq-item__question">
<span class="step-item__left">
<span class="step-num">3</span>
<span>Learn the seven control words</span>
</span>
<span class="step-item__right">
<input type="checkbox" class="step-check" aria-label="Mark step 3 done" onclick="event.stopPropagation()">
<span class="faq-item__icon" aria-hidden="true">
<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><line x1="12" y1="5" x2="12" y2="19"/><line x1="5" y1="12" x2="19" y2="12"/></svg>
</span>
</span>
</summary>
<div class="faq-item__answer">
<p>In part one you learned Role, Context, Command, and Format. These seven go further, drop any of them into a prompt and the answer usually gets noticeably more useful. I reach for the constraint one most.</p>
<dl class="keyword-grid">
<div class="keyword-card">
<dt><span class="kw-num">1</span>Act as</dt>
<dd>"Act as a skeptical accountant." Sets the expertise and voice the answer comes from.</dd>
</div>
<div class="keyword-card">
<dt><span class="kw-num">2</span>Deep research</dt>
<dd>Asks the AI to actually look things up and show sources, instead of answering from memory alone.</dd>
</div>
<div class="keyword-card">
<dt><span class="kw-num">3</span>First principles</dt>
<dd>"Explain this from first principles." Forces a from-scratch answer instead of a recycled cliché.</dd>
</div>
<div class="keyword-card">
<dt><span class="kw-num">4</span>Devil's advocate</dt>
<dd>"Now argue against this." Surfaces the risks and holes in your own plan before you commit to it.</dd>
</div>
<div class="keyword-card">
<dt><span class="kw-num">5</span>Constraints first</dt>
<dd>State your budget, deadline, and tools before you ask for the answer, not after.</dd>
</div>
<div class="keyword-card">
<dt><span class="kw-num">6</span>Format as</dt>
<dd>Table, checklist, plain text, JSON. Say the shape you need before you get an answer in the wrong one.</dd>
</div>
<div class="keyword-card">
<dt><span class="kw-num">7</span>Verify and cite</dt>
<dd>"Verify this and cite your sources." Pushes back on confident-sounding guesses (see part one, step 5).</dd>
</div>
</dl>
<div class="why-callout">
<strong>Where to start</strong>
If you only add two, add constraints first and format as. Those two alone usually fix most of what makes an answer feel almost right but not quite usable.
</div>
</div>
</details>
<details class="faq-item" role="listitem">
<summary class="faq-item__question">
<span class="step-item__left">
<span class="step-num">4</span>
<span>Store context once: projects</span>
</span>
<span class="step-item__right">
<input type="checkbox" class="step-check" aria-label="Mark step 4 done" onclick="event.stopPropagation()">
<span class="faq-item__icon" aria-hidden="true">
<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><line x1="12" y1="5" x2="12" y2="19"/><line x1="5" y1="12" x2="19" y2="12"/></svg>
</span>
</span>
</summary>
<div class="faq-item__answer">
<p>Most AI chat tools now let you group related conversations into a folder that holds shared files and background, sometimes called a project or a workspace. Instead of pasting the same brand guide, pricing sheet, or report into every new chat, you upload it once and every conversation inside that folder can see it. This one is my favourite of the seven.</p>
<ul>
<li>One project per ongoing thing: your business, a specific client, a big report you're building over weeks</li>
<li>Drop in the documents that keep coming up: brand guide, past examples, notes from calls</li>
<li>Your prompts inside that project can get shorter, the background is already there</li>
</ul>
<div class="why-callout">
<strong>Worth checking</strong>
This feature usually sits on a paid plan, and the exact name and limits vary between AI tools. Check what your specific one offers before you build a habit around it.
</div>
</div>
</details>
<details class="faq-item" role="listitem">
<summary class="faq-item__question">
<span class="step-item__left">
<span class="step-num">5</span>
<span>Set your defaults: custom instructions</span>
</span>
<span class="step-item__right">
<input type="checkbox" class="step-check" aria-label="Mark step 5 done" onclick="event.stopPropagation()">
<span class="faq-item__icon" aria-hidden="true">
<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><line x1="12" y1="5" x2="12" y2="19"/><line x1="5" y1="12" x2="19" y2="12"/></svg>
</span>
</span>
</summary>
<div class="faq-item__answer">
<p>Many AI tools have a settings page where you can set standing preferences that apply to every conversation, not just the current one. Look for something called "custom instructions" or "personalisation" in your account settings. Worth setting:</p>
<ul>
<li>Your preferred tone (blunt, warm, formal, whatever fits how you actually talk)</li>
<li>Your default format (short answers, bullet points, no unnecessary preamble)</li>
<li>What to do when it's not sure, guess and flag it, or ask you first</li>
</ul>
<p>I set this once in my own account, and every future chat starts already tuned to how I like things.</p>
</div>
</details>
<details class="faq-item" role="listitem">
<summary class="faq-item__question">
<span class="step-item__left">
<span class="step-num">6</span>
<span>Package it up: custom GPTs</span>
</span>
<span class="step-item__right">
<input type="checkbox" class="step-check" aria-label="Mark step 6 done" onclick="event.stopPropagation()">
<span class="faq-item__icon" aria-hidden="true">
<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><line x1="12" y1="5" x2="12" y2="19"/><line x1="5" y1="12" x2="19" y2="12"/></svg>
</span>
</span>
</summary>
<div class="faq-item__answer">
<p>Once a system prompt reliably gets you the same good result, some AI tools let you save it as a standalone assistant with its own name and icon, sometimes called a custom GPT or a custom assistant. Anyone with access can use it without knowing how to prompt at all, they just answer its questions.</p>
<p>Good candidates: a client-intake assistant that always asks the same questions in the same order, a first-draft-email writer trained on your voice, a support assistant that only answers from your own documentation.</p>
<div class="why-callout">
<strong>Why this matters</strong>
This is the step where AI stops being something only you know how to use, and becomes a tool the rest of your team can use too, without training.
</div>
</div>
</details>
<details class="faq-item" role="listitem">
<summary class="faq-item__question">
<span class="step-item__left">
<span class="step-num">7</span>
<span>Build them in this order</span>
</span>
<span class="step-item__right">
<input type="checkbox" class="step-check" aria-label="Mark step 7 done" onclick="event.stopPropagation()">
<span class="faq-item__icon" aria-hidden="true">
<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><line x1="12" y1="5" x2="12" y2="19"/><line x1="5" y1="12" x2="19" y2="12"/></svg>
</span>
</span>
</summary>
<div class="faq-item__answer">
<p>Trying to build all six at once is how this whole page ends up ignored. Do them in this order instead, I have ordered them so each one makes the next one easier.</p>
<div class="ladder">
<div class="ladder-step">
<span class="ladder-tier">First</span>
<div><h4>Master prompt + custom instructions</h4><p>Just for you. I write mine in twenty minutes flat and it still runs under every chat I start. Pays off in every single one after.</p></div>
</div>
<div class="ladder-step">
<span class="ladder-tier">Then</span>
<div><h4>One system prompt</h4><p>Pick the task you repeat most often and turn it into a saved instruction set.</p></div>
</div>
<div class="ladder-step">
<span class="ladder-tier">Then</span>
<div><h4>One project</h4><p>Somewhere ongoing, a client, a business area, that keeps needing the same background.</p></div>
</div>
<div class="ladder-step">
<span class="ladder-tier">Last</span>
<div><h4>A custom GPT</h4><p>Only once you have a system prompt good enough that someone else could run it.</p></div>
</div>
</div>
</div>
</details>
</div>
</div>
</section>
<!-- ═══════════════════════════════════════════════
GLOSSARY
═══════════════════════════════════════════════ -->
<section class="section section--dark" aria-labelledby="glossary-heading">
<div class="container">
<p class="eyebrow">Reference, Not A Step</p>
<h2 id="glossary-heading">A few more words you'll hit</h2>
<p class="section-subtitle" style="color: rgba(255,255,255,.55);">Part one covered prompt, model, hallucination, context, and token. These pick up where that left off.</p>
<dl class="glossary-grid">
<div class="glossary-card">
<dt>Master prompt</dt>
<dd>A single document introducing who you are, so any chat can be given your background in one paste.</dd>
</div>
<div class="glossary-card">
<dt>System prompt</dt>
<dd>A saved instruction set for a specific, repeatable task, so you stop rebuilding the same request from scratch.</dd>
</div>
<div class="glossary-card">
<dt>Custom instructions</dt>
<dd>Standing preferences set once in your account, applied automatically to every future conversation.</dd>
</div>
<div class="glossary-card">
<dt>Project / workspace</dt>
<dd>A folder of related chats that all share the same uploaded background files.</dd>
</div>
<div class="glossary-card">
<dt>Custom GPT</dt>
<dd>A system prompt packaged into a standalone assistant that someone else can use without writing prompts.</dd>
</div>
<div class="glossary-card">
<dt>Control word</dt>
<dd>A short instruction, like "constraints first" or "format as", that changes how the AI approaches the whole answer.</dd>
</div>
</dl>
</div>
</section>
<!-- ═══════════════════════════════════════════════
PART THREE TEASER
═══════════════════════════════════════════════ -->
<section class="section" style="padding-top:0;">
<div class="container">
<div style="background: var(--grey-50); border: 1px solid var(--grey-100); border-radius: var(--r-xl); padding: var(--sp-6); display:flex; align-items:center; justify-content:space-between; gap: var(--sp-5); flex-wrap:wrap;">
<div>
<p class="eyebrow" style="margin-bottom:6px;">Once The Toolkit Is Built</p>
<h3 style="font-family:var(--font-head); font-size:20px; margin-bottom:4px; color:var(--ink);">Ready for week three?</h3>
<p style="color:var(--grey-600); font-size:14.5px; margin:0; max-width:520px;">A deeper interview about your goals and skills, finding your blind spots, a real roadmap, and a profile brief that carries it all into every chat. Still free.</p>
</div>
<a href="third-week-with-ai.html" class="btn btn-secondary">Read Part Three</a>
</div>
</div>
</section>
<!-- ═══════════════════════════════════════════════
CTA BAND
═══════════════════════════════════════════════ -->
<section class="cta-band" aria-labelledby="cta-heading">
<div class="container">
<div class="cta-band__content">
<p class="eyebrow" style="color:rgba(255,255,255,.5)">Rather someone just built this for you?</p>
<h2 id="cta-heading">We set up the master prompts, system prompts, and custom GPTs. You just use them.</h2>
<p>If you'd rather skip building this yourself, submit a brief and we'll tell you what fits your business and what it costs.</p>
<div class="cta-band__actions">
<a href="contact.html?service=ai" class="btn btn-primary btn-lg">Submit a Brief</a>
<a href="ai-integration.html" class="btn btn-outline-light btn-lg">See AI Integration</a>
</div>
</div>
</div>
</section>
<!-- ═══════════════════════════════════════════════
FOOTER
═══════════════════════════════════════════════ -->
<footer class="footer" aria-label="Site footer">
<div class="container">
<div class="footer__grid">
<div class="footer__brand">
<img src="assets/images/logo-cropped.jpg" alt="HELP4BIS" width="140" height="38">
<p>Managed WordPress hosting and maintenance for Australian small businesses. Brisbane-based, personal service, WordPress specialist, Brisbane.</p>
<p style="font-size:13px; color:rgba(255,255,255,.4);">Dutch Digital Dynamics Pty Ltd &middot; ABN 86 081 237 087</p>
</div>
<div class="footer__col">
<h4>Services</h4>
<ul class="footer__links">
<li><a href="managed-wordpress.html">Tailored Website Management</a></li>
<li><a href="care-plans.html">WP Care Plans</a></li>
<li><a href="sos-fix.html">WP SOS Fix</a></li>
<li><a href="ai-integration.html">AI Integration</a></li>
<li><a href="plugin-development.html">Plugin Development</a></li> </ul>
</div>
<div class="footer__col">
<h4>Company</h4>
<ul class="footer__links">
<li><a href="about.html">About Us</a></li>
<li><a href="index.html#portfolio">Our Work</a></li>
<li><a href="blog/index.html">Blog</a></li>
<li><a href="your-first-week-with-ai.html">Free AI Guide</a></li>
<li><a href="contact.html">Contact</a></li>
</ul>
</div>
<div class="footer__col">
<h4>Contact</h4>
<ul class="footer__links">
<li><a href="mailto:project@help4bis.com">project@help4bis.com</a></li>
<li><a href="contact.html">Submit a Brief</a></li>
<li><a href="sos-fix.html">Emergency Fix</a></li>
</ul>
<p style="margin-top:1rem; font-size:13px; color:rgba(255,255,255,.4);">
Brisbane, Queensland<br>
Response within 24 business hours
</p>
</div>
</div>
<div class="footer__bottom">
<span>&copy; 2026 HELP4BIS, a trading name of Dutch Digital Dynamics Pty Ltd &middot; ABN 86 081 237 087</span>
<span>
<a href="privacy.html">Privacy Policy</a> &middot;
<a href="terms.html">Terms</a>
</span>
</div>
</div>
</footer>
<button id="back-to-top" aria-label="Back to top" style="position:fixed;bottom:24px;right:24px;width:44px;height:44px;background:var(--red);border:none;border-radius:50%;color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .3s ease;box-shadow:var(--shadow-md);">
<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="18 15 12 9 6 15"/></svg>
</button>
<script src="assets/js/main.js"></script>
<script src="/analytics/tracker.js" defer></script>
<script>
(function () {
var boxes = document.querySelectorAll('.step-check');
var label = document.getElementById('progressLabel');
var fill = document.getElementById('progressFill');
function update() {
var total = boxes.length;
var done = document.querySelectorAll('.step-check:checked').length;
label.textContent = done + ' of ' + total + ' done';
fill.style.width = (total ? (done / total * 100) : 0) + '%';
}
boxes.forEach(function (box) { box.addEventListener('change', update); });
update();
})();
function copyPrompt(btn) {
var text = btn.previousElementSibling.textContent;
var original = btn.textContent;
function done(ok) {
btn.textContent = ok ? 'Copied' : 'Select & copy';
setTimeout(function () { btn.textContent = original; }, 1500);
}
if (navigator.clipboard && navigator.clipboard.writeText) {
navigator.clipboard.writeText(text).then(function () { done(true); }, function () { done(false); });
} else {
done(false);
}
}
</script>
</body>
</html>
+200
View File
@@ -0,0 +1,200 @@
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>https://help4bis.com/</loc>
<lastmod>2026-04-08</lastmod>
<changefreq>weekly</changefreq>
<priority>1.0</priority>
</url>
<url>
<loc>https://help4bis.com/managed-wordpress.html</loc>
<lastmod>2026-03-13</lastmod>
<changefreq>monthly</changefreq>
<priority>0.9</priority>
</url>
<url>
<loc>https://help4bis.com/care-plans.html</loc>
<lastmod>2026-03-13</lastmod>
<changefreq>monthly</changefreq>
<priority>0.9</priority>
</url>
<url>
<loc>https://help4bis.com/sos-fix.html</loc>
<lastmod>2026-03-13</lastmod>
<changefreq>monthly</changefreq>
<priority>0.9</priority>
</url>
<url>
<loc>https://help4bis.com/ai-integration.html</loc>
<lastmod>2026-03-13</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://help4bis.com/your-first-week-with-ai.html</loc>
<lastmod>2026-07-12</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://help4bis.com/second-week-with-ai.html</loc>
<lastmod>2026-07-12</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://help4bis.com/third-week-with-ai.html</loc>
<lastmod>2026-07-12</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://help4bis.com/plugin-development.html</loc>
<lastmod>2026-03-13</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://help4bis.com/about.html</loc>
<lastmod>2026-03-13</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://help4bis.com/contact.html</loc>
<lastmod>2026-03-13</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://help4bis.com/blog/</loc>
<lastmod>2026-04-08</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://help4bis.com/blog/why-most-tradie-websites-dont-get-leads.html</loc>
<lastmod>2026-04-08</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://help4bis.com/blog/five-signs-your-website-costing-you-customers.html</loc>
<lastmod>2026-04-08</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://help4bis.com/blog/what-wordpress-care-plan-actually-includes.html</loc>
<lastmod>2026-04-08</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://help4bis.com/blog/small-business-compete-online-without-big-budget.html</loc>
<lastmod>2026-04-08</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://help4bis.com/pricing.html</loc>
<lastmod>2026-05-26</lastmod>
<changefreq>monthly</changefreq>
<priority>0.9</priority>
</url>
<url>
<loc>https://help4bis.com/garden-data-mcp.html</loc>
<lastmod>2026-06-14</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://help4bis.com/work/dayboro-au.html</loc>
<lastmod>2026-05-26</lastmod>
<changefreq>yearly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://help4bis.com/work/gardenbuddy-au.html</loc>
<lastmod>2026-05-26</lastmod>
<changefreq>yearly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://help4bis.com/work/localbuddy-au.html</loc>
<lastmod>2026-05-26</lastmod>
<changefreq>yearly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://help4bis.com/work/m8chat-au.html</loc>
<lastmod>2026-05-26</lastmod>
<changefreq>yearly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://help4bis.com/work/nightcap-nm.html</loc>
<lastmod>2026-05-26</lastmod>
<changefreq>yearly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://help4bis.com/work/rds-ink.html</loc>
<lastmod>2026-05-26</lastmod>
<changefreq>yearly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://help4bis.com/work/tawnytrails.html</loc>
<lastmod>2026-05-26</lastmod>
<changefreq>yearly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://help4bis.com/work/crohamhurst-app.html</loc>
<lastmod>2026-05-26</lastmod>
<changefreq>yearly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://help4bis.com/privacy.html</loc>
<lastmod>2026-03-13</lastmod>
<changefreq>yearly</changefreq>
<priority>0.3</priority>
</url>
<url>
<loc>https://help4bis.com/terms.html</loc>
<lastmod>2026-03-13</lastmod>
<changefreq>yearly</changefreq>
<priority>0.3</priority>
</url>
</urlset>
+750
View File
@@ -0,0 +1,750 @@
<!DOCTYPE html>
<!-- Version: 1.2.0 | Created: 2026-03-13 | Updated: 2026-08-16 -->
<html lang="en-AU">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>WordPress SOS Fix $97 Flat | 24-Hour Turnaround | HELP4BIS</title>
<meta name="description" content="WordPress site broken? $97 flat rate, 24-hour turnaround. White screens, plugin conflicts, hacked sites, broken checkouts, fixed or no charge. HELP4BIS, Brisbane.">
<meta name="keywords" content="WordPress emergency fix Australia, WordPress SOS fix, WordPress broken site fix, WordPress white screen fix, WordPress hack recovery, WordPress support Australia, WordPress urgent repair Brisbane, emergency WordPress help">
<meta name="author" content="HELP4BIS">
<meta name="publisher" content="Dutch Digital Dynamics Pty Ltd">
<meta name="copyright" content="Dutch Digital Dynamics Pty Ltd">
<meta name="language" content="en-AU">
<meta name="revisit-after" content="7 days">
<meta name="category" content="WordPress Services, Emergency Support, Small Business Technology">
<meta name="classification" content="Business/Technology">
<meta name="coverage" content="Australia">
<meta name="distribution" content="global">
<meta name="rating" content="general">
<meta name="geo.region" content="AU-QLD">
<meta name="geo.placename" content="Brisbane, Queensland">
<meta name="geo.position" content="-27.4698;153.0251">
<meta name="ICBM" content="-27.4698, 153.0251">
<link rel="canonical" href="https://help4bis.com/sos-fix.html">
<meta name="robots" content="index, follow">
<meta property="og:type" content="website">
<meta property="og:url" content="https://help4bis.com/sos-fix.html">
<meta property="og:site_name" content="HELP4BIS">
<meta property="og:title" content="WordPress SOS Fix $97 Flat | 24-Hour Turnaround | HELP4BIS">
<meta property="og:description" content="WordPress site broken? $97 flat rate, 24-hour turnaround. White screens, plugin conflicts, hacked sites, fixed or no charge. Submit a brief now.">
<meta property="og:image" content="https://help4bis.com/assets/images/og-social-card.jpg">
<meta property="og:image:width" content="1200">
<meta property="og:image:height" content="630">
<meta property="og:image:alt" content="HELP4BIS, WordPress services for Australian small businesses">
<meta property="og:locale" content="en_AU">
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:site" content="@help4bis">
<meta name="twitter:title" content="WordPress SOS Fix $97 Flat | 24-Hour Turnaround | HELP4BIS">
<meta name="twitter:description" content="WordPress site broken? $97 flat, 24-hour turnaround. Fixed or no charge. No hourly billing. Submit a brief.">
<meta name="twitter:image" content="https://help4bis.com/assets/images/og-social-card.jpg">
<meta name="twitter:image:alt" content="HELP4BIS">
<link rel="icon" type="image/jpeg" href="assets/images/logo-favicon.jpg">
<!-- Fonts -->
<!-- Icons (Lucide) -->
<link rel="stylesheet" href="assets/css/style.css">
<style>
/* SOS page overrides */
.sos-hero {
background: var(--ink);
padding: var(--sp-10) 0 var(--sp-8);
border-bottom: 1px solid rgba(255,255,255,.08);
}
.sos-hero .breadcrumb a,
.sos-hero .breadcrumb {
color: rgba(255,255,255,.5);
}
.sos-hero .breadcrumb a:hover { color: var(--white); }
.sos-hero .eyebrow { color: var(--red); }
.sos-hero h1 { color: var(--white); }
.sos-hero .hero-lead {
font-size: 20px;
color: rgba(255,255,255,.7);
max-width: 640px;
margin-bottom: var(--sp-5);
line-height: 1.6;
}
.sos-stats {
display: flex;
gap: var(--sp-6);
flex-wrap: wrap;
margin-top: var(--sp-3);
}
.sos-stat {
display: flex;
flex-direction: column;
}
.sos-stat strong {
font-family: var(--font-head);
font-size: 28px;
font-weight: 700;
color: var(--white);
line-height: 1;
}
.sos-stat span {
font-size: 14px;
color: rgba(255,255,255,.5);
margin-top: 4px;
}
.sos-stat-divider {
width: 1px;
background: rgba(255,255,255,.15);
align-self: stretch;
}
/* Fixes list, 2 column */
.fixes-grid {
display: grid;
grid-template-columns: repeat(2, 1fr);
gap: var(--sp-1) var(--sp-6);
max-width: 700px;
margin: 0 auto;
}
@media (max-width: 640px) {
.fixes-grid { grid-template-columns: 1fr; }
}
/* Pricing side-by-side */
.pricing-two {
display: grid;
grid-template-columns: repeat(2, 1fr);
gap: var(--sp-3);
max-width: 760px;
margin: 0 auto;
}
@media (max-width: 640px) {
.pricing-two { grid-template-columns: 1fr; }
}
.no-pay-note {
text-align: center;
margin-top: var(--sp-4);
font-size: 17px;
font-family: var(--font-head);
font-weight: 600;
color: var(--ink);
}
</style>
<!-- JSON-LD Service Schema -->
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@graph": [
{
"@type": "Service",
"@id": "https://help4bis.com/sos-fix.html#service",
"name": "WordPress SOS Fix",
"description": "Emergency WordPress repair service. Flat rate $97 AUD for a single issue. 24-hour turnaround. Covers white screen of death, plugin conflicts, hacked sites, broken WooCommerce checkout, and more. Fix delivered or no charge.",
"provider": {"@id": "https://help4bis.com/#business"},
"areaServed": {"@type": "Country", "name": "Australia"},
"offers": {
"@type": "Offer",
"name": "WordPress SOS Fix, Single Issue",
"description": "Diagnosis, resolution, Loom video walkthrough, and written fix summary. 24-hour turnaround. Fix delivered or no charge.",
"price": "97",
"priceCurrency": "AUD",
"url": "https://help4bis.com/sos-fix.html"
}
},
{
"@type": "WebPage",
"@id": "https://help4bis.com/sos-fix.html#webpage",
"url": "https://help4bis.com/sos-fix.html",
"name": "WordPress SOS Fix $97 Flat | 24-Hour Turnaround | HELP4BIS",
"isPartOf": {"@id": "https://help4bis.com/#website"},
"speakable": {
"@type": "SpeakableSpecification",
"cssSelector": ["h1", ".hero__lead", ".section-subtitle"]
},
"breadcrumb": {
"@type": "BreadcrumbList",
"itemListElement": [
{"@type": "ListItem", "position": 1, "name": "Home", "item": "https://help4bis.com/"},
{"@type": "ListItem", "position": 2, "name": "WordPress SOS Fix", "item": "https://help4bis.com/sos-fix.html"}
]
}
},
{
"@type": "FAQPage",
"@id": "https://help4bis.com/sos-fix.html#faq",
"mainEntity": [
{
"@type": "Question",
"name": "How do I give you access to my WordPress site securely?",
"acceptedAnswer": {
"@type": "Answer",
"text": "After submitting the form, we'll email you a secure link to submit your WordPress admin credentials. We use LastPass Send or a similar zero-knowledge vault for credential sharing, your password is never stored in email."
}
},
{
"@type": "Question",
"name": "What if my site doesn't use WordPress?",
"acceptedAnswer": {
"@type": "Answer",
"text": "We specialise in WordPress. For Squarespace, Wix, or other platforms, we may not be able to help, contact us first at project@help4bis.com and we'll be upfront about whether we can assist."
}
},
{
"@type": "Question",
"name": "What if the WordPress fix takes longer than 24 hours?",
"acceptedAnswer": {
"@type": "Answer",
"text": "We'll email you with an update if it's going to take longer, and confirm the reason. Complex hacks and database corruption can take up to 48 hours. You'll always know where things stand."
}
},
{
"@type": "Question",
"name": "Do you offer ongoing WordPress maintenance after the emergency fix?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Yes, at the end of the fix summary we'll include a recommendation for whether your site would benefit from a WordPress Care Plan. No pressure, it's there if it makes sense for your situation."
}
}
]
}
]
}
</script>
</head>
<body>
<!-- ═══════════════════════════════════════════════
NAVIGATION
═══════════════════════════════════════════════ -->
<nav class="nav" role="navigation" aria-label="Main navigation">
<div class="container">
<div class="nav__inner">
<a class="nav__logo" href="index.html" aria-label="HELP4BIS home">
<img src="assets/images/logo-cropped.jpg" alt="HELP4BIS Logo" width="160" height="44">
</a>
<ul class="nav__links" id="nav-links" role="list">
<!-- Services dropdown -->
<li class="nav__dropdown">
<button class="nav__trigger" aria-haspopup="true" aria-expanded="false">Services <svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"/></svg></button>
<ul class="nav__dropdown-menu" role="menu">
<li class="nav__menu-group">WordPress</li>
<li><a href="managed-wordpress.html" role="menuitem">Tailored Website Management</a></li>
<li><a href="care-plans.html" role="menuitem">WP Care Plans <span class="menu-price">from $49/mo</span></a></li>
<li><a href="sos-fix.html" role="menuitem">WP SOS Fix <span class="menu-price">$97 flat</span></a></li>
<li><a href="ai-integration.html" role="menuitem">AI Integration</a></li>
<li><a href="plugin-development.html" role="menuitem">Custom Plugin Development</a></li> </ul>
</li>
<li><a href="about.html">About</a></li>
<li><a href="index.html#portfolio">Our Work</a></li>
<li><a href="index.html#pricing">Pricing</a></li>
<li><a href="blog/index.html">Blog</a></li>
<li><a href="your-first-week-with-ai.html">AI Guide</a></li>
<li><a href="contact.html">Contact</a></li>
<!-- Mobile CTA (inside nav drawer) -->
<li class="nav__cta-mobile" aria-hidden="true">
<a href="contact.html" class="btn btn-primary">Get Started</a>
<a href="sos-fix.html" class="btn btn-secondary">SOS Fix, $97</a>
</li>
</ul>
<div class="nav__cta">
<a href="sos-fix.html" class="btn btn-secondary btn-sm">SOS Fix $97</a>
<a href="contact.html" class="btn btn-primary btn-sm">Get Started</a>
</div>
<button class="nav__burger" id="nav-burger" aria-label="Open menu" aria-expanded="false" aria-controls="nav-links">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><line x1="3" y1="12" x2="21" y2="12"/><line x1="3" y1="6" x2="21" y2="6"/><line x1="3" y1="18" x2="21" y2="18"/></svg>
</button>
</div>
</div>
</nav>
<!-- ═══════════════════════════════════════════════
SOS HERO (navy background)
═══════════════════════════════════════════════ -->
<section class="sos-hero" aria-labelledby="sos-hero-heading">
<div class="container">
<nav class="breadcrumb" aria-label="Breadcrumb">
<a href="index.html">Home</a>
<span aria-hidden="true">›</span>
<a href="index.html#services">Services</a>
<span aria-hidden="true">›</span>
<span style="color:rgba(255,255,255,.5)">WP SOS Fix</span>
</nav>
<p class="eyebrow">Emergency WordPress Fix</p>
<h1 id="sos-hero-heading">Something broke.<br>We'll fix it in 24 hours.</h1>
<p class="hero-lead">White screen. Plugin conflict. Hacked site. Email not sending. Broken checkout. Submit a brief, flat rate, no hourly surprises.</p>
<div class="sos-stats">
<div class="sos-stat">
<strong>$97 flat</strong>
<span>single issue</span>
</div>
<div class="sos-stat-divider" aria-hidden="true"></div>
<div class="sos-stat">
<strong>24hr</strong>
<span>business hours turnaround</span>
</div>
</div>
</div>
</section>
<!-- ═══════════════════════════════════════════════
INTAKE FORM, first, before everything else
═══════════════════════════════════════════════ -->
<section class="section section--alt" id="fix-form" aria-labelledby="form-heading">
<div class="container">
<div class="text-center mb-6">
<p class="eyebrow">Get It Fixed</p>
<h2 id="form-heading">Submit your fix request</h2>
<p class="section-subtitle">Tell us what's broken. We'll get to it today.</p>
</div>
<div class="contact__grid">
<!-- Form card -->
<div class="intake-form-card">
<form class="intake-form" action="/contact.php" method="POST" novalidate aria-label="Fix request form">
<input type="hidden" name="source" value="sos-fix">
<div aria-hidden="true" style="position:absolute;left:-9999px;top:auto;width:1px;height:1px;overflow:hidden;">
<label for="hp-trap">Leave this field empty</label>
<input type="text" id="hp-trap" name="hp_trap" tabindex="-1" autocomplete="off" value="">
</div>
<div class="intake-form__row">
<div class="intake-form__field">
<label for="fix-name">Your name <span aria-hidden="true" style="color:var(--red)">*</span></label>
<input type="text" id="fix-name" name="name" required autocomplete="name" placeholder="Your full name">
</div>
<div class="intake-form__field">
<label for="fix-email">Email address <span aria-hidden="true" style="color:var(--red)">*</span></label>
<input type="email" id="fix-email" name="email" required autocomplete="email" placeholder="you@yourbusiness.com.au">
</div>
</div>
<div class="intake-form__field">
<label for="fix-url">Website URL <span aria-hidden="true" style="color:var(--red)">*</span></label>
<input type="url" id="fix-url" name="url" required placeholder="https://yourwebsite.com.au">
</div>
<div class="intake-form__field">
<label for="fix-type">What's happening? <span aria-hidden="true" style="color:var(--red)">*</span></label>
<select id="fix-type" name="issue_type" required>
<option value="" disabled selected>Select the issue type</option>
<option value="white-screen">White screen / blank page</option>
<option value="plugin-conflict">Plugin or theme conflict</option>
<option value="hacked">Site has been hacked / defaced</option>
<option value="email">Email not working</option>
<option value="woocommerce">Checkout / WooCommerce broken</option>
<option value="slow">Site is very slow</option>
<option value="admin-lockout">Can't log in to WordPress admin</option>
<option value="other">Something else</option>
</select>
</div>
<div class="intake-form__field">
<label for="fix-description">Describe the problem</label>
<textarea id="fix-description" name="description" rows="5" placeholder="When did this start? What changed before it broke? Any error messages you can see? The more detail, the faster we can fix it."></textarea>
</div>
<div class="intake-form__row">
<div class="intake-form__field">
<label for="fix-access">WordPress admin access</label>
<select id="fix-access" name="wp_access">
<option value="will-provide">I'll provide it securely after submitting</option>
<option value="dont-have">I don't have it</option>
<option value="need-help">I need help with that too</option>
</select>
</div>
<div class="intake-form__field">
<label for="fix-urgency">Urgency</label>
<select id="fix-urgency" name="urgency">
<option value="" disabled selected>Select urgency…</option>
<option value="losing-customers">Yes, losing customers right now</option>
<option value="fairly-urgent">Fairly urgent, need it today</option>
<option value="not-emergency">Not an emergency</option>
</select>
</div>
</div>
<div class="intake-form__actions">
<button type="submit" class="btn btn-primary" style="width:100%; justify-content:center; font-size:16px; padding:18px 32px; margin-top:8px;">
Submit My Fix Request →
</button>
</div>
<p style="text-align:center; margin-top:var(--sp-2); font-size:14px; color:var(--grey-mid);">
Flat rate: <strong>$97 AUD</strong> for a single issue. Complex / multiple issues: <strong>$197 AUD</strong>. We confirm which applies before starting any work.
</p>
<p style="font-size:13px; color:var(--grey-mid); margin-top:0.5rem; text-align:center;">+ GST. All prices exclusive of GST.</p>
</form>
</div>
<!-- Sidebar -->
<div class="contact__sidebar">
<h3 style="color:#fff; font-size:18px; margin-bottom:1.25rem;">What you get</h3>
<div class="contact__steps">
<div class="contact__step">
<span class="contact__step-num">1</span>
<div>
<strong>Diagnosis + fix</strong>
<p>We find the root cause and resolve it, not just the symptom.</p>
</div>
</div>
<div class="contact__step">
<span class="contact__step-num">2</span>
<div>
<strong>Loom video walkthrough</strong>
<p>Screen recording explaining what was found and exactly what we did.</p>
</div>
</div>
<div class="contact__step">
<span class="contact__step-num">3</span>
<div>
<strong>Written fix summary</strong>
<p>Plain-English written report for your records.</p>
</div>
</div>
<div class="contact__step">
<span class="contact__step-num">4</span>
<div>
<strong>7-day follow-up warranty</strong>
<p>If the same issue returns within 7 days, we fix it again at no charge.</p>
</div>
</div>
</div>
<div class="contact__meta" style="margin-top:1.5rem;">
<p style="font-size:15px; color:rgba(255,255,255,.9); font-weight:600; margin-bottom:.25rem;">Pricing</p>
<p style="font-size:14px; color:rgba(255,255,255,.6); margin:0;">Single issue: <strong style="color:#fff;">$97 AUD</strong></p>
<p style="font-size:14px; color:rgba(255,255,255,.6); margin:.25rem 0 0;">Complex / multiple: <strong style="color:#fff;">$197 AUD</strong></p>
<p style="font-size:13px; color:rgba(255,255,255,.45); margin-top:.75rem;">If we can't fix it, you don't pay.</p>
<p style="font-size:13px; color:rgba(255,255,255,.5); margin-top:.75rem;">After reviewing your brief, we'll send a payment link via email. Work starts once payment is confirmed.</p>
</div>
</div>
</div>
</div>
</section>
<!-- ═══════════════════════════════════════════════
COMMON FIXES
═══════════════════════════════════════════════ -->
<section class="section" aria-labelledby="fixes-heading">
<div class="container">
<div class="text-center mb-6">
<p class="eyebrow">We've Seen It All</p>
<h2 id="fixes-heading">Common fixes we handle every week</h2>
</div>
<ul class="fixes-grid why__points" role="list" style="list-style:none;">
<li>
<svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="#16A34A" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"/></svg>
WordPress white screen of death
</li>
<li>
<svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="#16A34A" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"/></svg>
Plugin conflict after update
</li>
<li>
<svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="#16A34A" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"/></svg>
Hacked / defaced WordPress site
</li>
<li>
<svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="#16A34A" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"/></svg>
SSL certificate errors
</li>
<li>
<svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="#16A34A" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"/></svg>
Email not sending from WordPress
</li>
<li>
<svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="#16A34A" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"/></svg>
WooCommerce checkout broken
</li>
<li>
<svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="#16A34A" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"/></svg>
Can't access wp-admin
</li>
<li>
<svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="#16A34A" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"/></svg>
404 errors after migration
</li>
<li>
<svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="#16A34A" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"/></svg>
Slow site after plugin install
</li>
<li>
<svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="#16A34A" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"/></svg>
Images or media not loading
</li>
<li>
<svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="#16A34A" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"/></svg>
Contact form not delivering
</li>
<li>
<svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="#16A34A" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"/></svg>
Database connection errors
</li>
</ul>
</div>
</section>
<!-- ═══════════════════════════════════════════════
PRICING, NO SURPRISES
═══════════════════════════════════════════════ -->
<section class="section section--alt" aria-labelledby="pricing-heading">
<div class="container">
<div class="text-center mb-6">
<p class="eyebrow">Transparent Pricing</p>
<h2 id="pricing-heading">Pricing, no surprises</h2>
<p class="section-subtitle">We confirm the price before we start. Always.</p>
</div>
<div class="pricing-two">
<!-- Standard Fix -->
<div class="pricing-card reveal">
<h3>Standard Fix</h3>
<p class="pricing-card__desc">Single issue. Most problems fall here.</p>
<div class="pricing-card__price">
<strong>$97</strong><span> AUD</span>
</div>
<ul class="pricing-card__features" role="list">
<li>
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="#16A34A" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"/></svg>
Single issue
</li>
<li>
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="#16A34A" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"/></svg>
Diagnosis + fix
</li>
<li>
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="#16A34A" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"/></svg>
Loom video walkthrough
</li>
<li>
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="#16A34A" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"/></svg>
Written fix summary
</li>
<li>
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="#16A34A" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"/></svg>
24-hour turnaround
</li>
<li>
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="#16A34A" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"/></svg>
7-day follow-up warranty
</li>
</ul>
<a href="#fix-form" class="btn btn-secondary">Submit a Fix Request</a>
</div>
<!-- Complex Fix, Featured -->
<div class="pricing-card pricing-card--featured reveal">
<div class="pricing-card__badge">Complex Issues</div>
<h3>Complex Fix</h3>
<p class="pricing-card__desc">Multiple related issues or complex root cause.</p>
<div class="pricing-card__price">
<strong>$197</strong><span> AUD</span>
</div>
<ul class="pricing-card__features" role="list">
<li>
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="#16A34A" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"/></svg>
Multiple related issues or complex root cause
</li>
<li>
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="#16A34A" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"/></svg>
We confirm before starting if your issue qualifies
</li>
<li>
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="#16A34A" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"/></svg>
Same deliverables as Standard Fix
</li>
<li>
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="#16A34A" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"/></svg>
Up to 48 hours for complex issues
</li>
<li>
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="#16A34A" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"/></svg>
Includes a recommendations report
</li>
</ul>
<a href="#fix-form" class="btn btn-primary">Submit a Fix Request</a>
</div>
</div>
<p class="no-pay-note">If we can't fix it, you don't pay.</p>
<p style="font-size:13px; color:var(--grey-mid); margin-top:0.5rem; text-align:center;">+ GST. All prices exclusive of GST.</p>
</div>
</section>
<!-- ═══════════════════════════════════════════════
FAQ
═══════════════════════════════════════════════ -->
<section class="section" id="faq" aria-labelledby="faq-heading">
<div class="container">
<div class="text-center mb-6">
<p class="eyebrow">Questions</p>
<h2 id="faq-heading">Common questions</h2>
</div>
<div class="faq__list" role="list">
<details class="faq-item" role="listitem">
<summary class="faq-item__question">
How do I give you access to my site securely?
<span class="faq-item__icon" aria-hidden="true">
<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><line x1="12" y1="5" x2="12" y2="19"/><line x1="5" y1="12" x2="19" y2="12"/></svg>
</span>
</summary>
<div class="faq-item__answer">
After submitting the form, we'll email you a secure link to submit your WordPress admin credentials. We use LastPass Send or a similar zero-knowledge vault for credential sharing, your password is never stored in email.
</div>
</details>
<details class="faq-item" role="listitem">
<summary class="faq-item__question">
What if my site doesn't use WordPress?
<span class="faq-item__icon" aria-hidden="true">
<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><line x1="12" y1="5" x2="12" y2="19"/><line x1="5" y1="12" x2="19" y2="12"/></svg>
</span>
</summary>
<div class="faq-item__answer">
We specialise in WordPress. For Squarespace, Wix, or other platforms, we may not be able to help, <a href="mailto:project@help4bis.com" class="inline-link">contact us first</a> and we'll be upfront about whether we can assist.
</div>
</details>
<details class="faq-item" role="listitem">
<summary class="faq-item__question">
What if the fix takes longer than 24 hours?
<span class="faq-item__icon" aria-hidden="true">
<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><line x1="12" y1="5" x2="12" y2="19"/><line x1="5" y1="12" x2="19" y2="12"/></svg>
</span>
</summary>
<div class="faq-item__answer">
We'll email you with an update if it's going to take longer, and confirm the reason. Complex hacks and database corruption can take up to 48 hours. You'll always know where things stand.
</div>
</details>
<details class="faq-item" role="listitem">
<summary class="faq-item__question">
Do you offer ongoing maintenance after the fix?
<span class="faq-item__icon" aria-hidden="true">
<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><line x1="12" y1="5" x2="12" y2="19"/><line x1="5" y1="12" x2="19" y2="12"/></svg>
</span>
</summary>
<div class="faq-item__answer">
Yes, at the end of the fix summary we'll include a recommendation for whether your site would benefit from a <a href="care-plans.html" class="inline-link">care plan</a>. No pressure, it's there if it makes sense for your situation.
</div>
</details>
</div>
</div>
</section>
<!-- ═══════════════════════════════════════════════
CTA BAND
═══════════════════════════════════════════════ -->
<section class="cta-band" aria-labelledby="cta-heading">
<div class="container">
<div class="cta-band__content">
<p class="eyebrow" style="color:rgba(255,255,255,.5)">Site broken right now?</p>
<h2 id="cta-heading">Submit the brief above. We'll get to it today.</h2>
<p>Flat rate. No hourly billing. No call required. Just tell us what's broken.</p>
<div class="cta-band__actions">
<a href="#fix-form" class="btn btn-primary btn-lg">Submit Fix Request</a>
<a href="care-plans.html" class="btn btn-outline-light btn-lg">See Care Plans</a>
</div>
</div>
</div>
</section>
<!-- ═══════════════════════════════════════════════
FOOTER
═══════════════════════════════════════════════ -->
<footer class="footer" aria-label="Site footer">
<div class="container">
<div class="footer__grid">
<div class="footer__brand">
<img src="assets/images/logo-cropped.jpg" alt="HELP4BIS" width="140" height="38">
<p>Managed WordPress hosting and maintenance for Australian small businesses. Brisbane-based, personal service, WordPress specialist, Brisbane.</p>
<p style="font-size:13px; color:rgba(255,255,255,.4);">Dutch Digital Dynamics Pty Ltd · ABN 86 081 237 087</p>
</div>
<div class="footer__col">
<h4>Services</h4>
<ul class="footer__links">
<li><a href="managed-wordpress.html">Tailored Website Management</a></li>
<li><a href="care-plans.html">WP Care Plans</a></li>
<li><a href="sos-fix.html">WP SOS Fix</a></li>
<li><a href="ai-integration.html">AI Integration</a></li>
<li><a href="plugin-development.html">Plugin Development</a></li> </ul>
</div>
<div class="footer__col">
<h4>Company</h4>
<ul class="footer__links">
<li><a href="about.html">About Us</a></li>
<li><a href="index.html#portfolio">Our Work</a></li>
<li><a href="index.html#testimonials">Client Feedback</a></li>
<li><a href="blog/index.html">Blog</a></li>
<li><a href="contact.html">Contact</a></li>
</ul>
</div>
<div class="footer__col">
<h4>Contact</h4>
<ul class="footer__links">
<li><a href="mailto:project@help4bis.com">project@help4bis.com</a></li>
<li><a href="contact.html">Submit a Brief</a></li>
<li><a href="sos-fix.html">Emergency Fix</a></li>
</ul>
<p style="margin-top:1rem; font-size:13px; color:rgba(255,255,255,.4);">
Brisbane, Queensland<br>
Response within 24 business hours
</p>
</div>
</div>
<div class="footer__bottom">
<span>© 2026 HELP4BIS, a trading name of Dutch Digital Dynamics Pty Ltd · ABN 86 081 237 087</span>
<span>
<a href="privacy.html">Privacy Policy</a> ·
<a href="terms.html">Terms</a>
</span>
</div>
</div>
</footer>
<!-- Back to top -->
<button id="back-to-top" class="back-to-top" aria-label="Back to top">
<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="18 15 12 9 6 15"/></svg>
</button>
<script src="assets/js/main.js"></script>
<script src="/analytics/tracker.js" defer></script>
<footer style="margin-top:48px;padding:24px;background:#f0f7f2;border-left:4px solid #18604A;border-radius:8px;font-family:'ABeeZee',sans-serif;font-size:1rem;line-height:1.65;color:#1A1A1A;">
<h3 style="font-family:'Poppins',sans-serif;color:#1A5C2E;font-size:1.1rem;margin:0 0 10px;">A few words from us</h3>
<p style="margin:0 0 8px;">We're not the big shops. We have time to sit down with you and find the best fit for your business, not the best fit for a templated process. Every client we work with is treated as if they're the only one on our desk, because for the time we're with them, they are.</p> <p style="margin:0 0 8px;">It means we're slower to start than a shop that sells you a package off the shelf. It also means we don't sell you a package off the shelf. You get a system that fits how you actually run your business, and you get to talk to the person who built it whenever you need to.</p>
<p style="margin:0;color:#555555;font-size:0.9rem;">Page updated 26/05/2026. Contact: <a href="mailto:project@help4bis.com" style="color:#18604A;">project@help4bis.com</a>.</p>
</footer>
</body>
</html>
+1873
View File
File diff suppressed because it is too large Load Diff
+279
View File
@@ -0,0 +1,279 @@
<!DOCTYPE html>
<!-- Version: 1.2.0 | Created: 2026-03-13 | Updated: 2026-08-16 -->
<html lang="en-AU">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Terms of Service | HELP4BIS, Dutch Digital Dynamics Pty Ltd</title>
<meta name="description" content="Terms of Service for HELP4BIS, Dutch Digital Dynamics Pty Ltd (ABN 86 081 237 087). Month-to-month contracts, 30 days cancellation notice. Queensland law applies.">
<meta name="author" content="HELP4BIS">
<meta name="publisher" content="Dutch Digital Dynamics Pty Ltd">
<meta name="robots" content="noindex, nofollow">
<link rel="canonical" href="https://help4bis.com/terms.html">
<!-- JSON-LD WebPage Schema -->
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "WebPage",
"@id": "https://help4bis.com/terms.html#webpage",
"url": "https://help4bis.com/terms.html",
"name": "Terms of Service | HELP4BIS",
"description": "Terms of Service for HELP4BIS, Dutch Digital Dynamics Pty Ltd (ABN 86 081 237 087). Queensland law applies.",
"isPartOf": {"@id": "https://help4bis.com/#website"},
"breadcrumb": {
"@type": "BreadcrumbList",
"itemListElement": [
{"@type": "ListItem", "position": 1, "name": "Home", "item": "https://help4bis.com/"},
{"@type": "ListItem", "position": 2, "name": "Terms of Service", "item": "https://help4bis.com/terms.html"}
]
}
}
</script>
<link rel="icon" type="image/jpeg" href="assets/images/logo-favicon.jpg">
<!-- Fonts -->
<!-- Icons (Lucide) -->
<link rel="stylesheet" href="assets/css/style.css">
</head>
<body>
<!-- ═══════════════════════════════════════════════
NAVIGATION
═══════════════════════════════════════════════ -->
<nav class="nav" role="navigation" aria-label="Main navigation">
<div class="container">
<div class="nav__inner">
<a class="nav__logo" href="index.html" aria-label="HELP4BIS home">
<img src="assets/images/logo-cropped.jpg" alt="HELP4BIS Logo" width="160" height="44">
</a>
<ul class="nav__links" id="nav-links" role="list">
<!-- Services dropdown -->
<li class="nav__dropdown">
<button class="nav__trigger" aria-haspopup="true" aria-expanded="false">Services <svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"/></svg></button>
<ul class="nav__dropdown-menu" role="menu">
<li class="nav__menu-group">WordPress</li>
<li><a href="managed-wordpress.html" role="menuitem">Tailored Website Management</a></li>
<li><a href="care-plans.html" role="menuitem">WP Care Plans <span class="menu-price">from $49/mo</span></a></li>
<li><a href="sos-fix.html" role="menuitem">WP SOS Fix <span class="menu-price">$97 flat</span></a></li>
<li><a href="ai-integration.html" role="menuitem">AI Integration</a></li>
<li><a href="plugin-development.html" role="menuitem">Custom Plugin Development</a></li> </ul>
</li>
<li><a href="about.html">About</a></li>
<li><a href="index.html#portfolio">Our Work</a></li>
<li><a href="index.html#pricing">Pricing</a></li>
<li><a href="blog/index.html">Blog</a></li>
<li><a href="your-first-week-with-ai.html">AI Guide</a></li>
<li><a href="contact.html">Contact</a></li>
<!-- Mobile CTA (inside nav drawer) -->
<li class="nav__cta-mobile" aria-hidden="true">
<a href="contact.html" class="btn btn-primary">Get Started</a>
<a href="sos-fix.html" class="btn btn-secondary">SOS Fix, $97</a>
</li>
</ul>
<div class="nav__cta">
<a href="sos-fix.html" class="btn btn-secondary btn-sm">SOS Fix $97</a>
<a href="contact.html" class="btn btn-primary btn-sm">Get Started</a>
</div>
<button class="nav__burger" id="nav-burger" aria-label="Open menu" aria-expanded="false" aria-controls="nav-links">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><line x1="3" y1="12" x2="21" y2="12"/><line x1="3" y1="6" x2="21" y2="6"/><line x1="3" y1="18" x2="21" y2="18"/></svg>
</button>
</div>
</div>
</nav>
<!-- ═══════════════════════════════════════════════
PAGE HERO
═══════════════════════════════════════════════ -->
<section class="page-hero" aria-labelledby="terms-heading">
<div class="container">
<nav class="breadcrumb" aria-label="Breadcrumb">
<ol>
<li><a href="index.html">Home</a></li>
<li aria-current="page">Terms of Service</li>
</ol>
</nav>
<p class="eyebrow">Legal</p>
<h1 id="terms-heading">Terms of Service</h1>
<p class="hero__lead" style="max-width:620px;">The terms under which HELP4BIS delivers services to clients. Month-to-month, no lock-in. Last updated: March 2026.</p>
</div>
</section>
<!-- ═══════════════════════════════════════════════
TERMS CONTENT
═══════════════════════════════════════════════ -->
<section class="section" aria-labelledby="terms-content-heading">
<div class="container">
<div style="max-width:760px; margin:0 auto;">
<h2 id="terms-content-heading">1. Parties</h2>
<p>These Terms of Service ("Terms") are a binding agreement between <strong>Dutch Digital Dynamics Pty Ltd</strong> (ABN 86 081 237 087), trading as <strong>HELP4BIS</strong> ("HELP4BIS", "we", "us", "our"), based in Brisbane, Queensland, Australia, and the individual or entity engaging our services ("you", "the client").</p>
<p>By engaging any service described on this website, you agree to these Terms.</p>
<p>Contact: <a href="mailto:project@help4bis.com" class="inline-link">project@help4bis.com</a></p>
<h2>2. Services</h2>
<p>HELP4BIS provides the following services. Full detail of inclusions and exclusions is described on the relevant service pages:</p>
<ul>
<li><strong><a href="care-plans.html" class="inline-link">WP Care Plans</a></strong>, Essentials ($49 + GST/month) and Business ($99 + GST/month). Ongoing managed WordPress maintenance on a month-to-month basis.</li>
<li><strong><a href="managed-wordpress.html" class="inline-link">Tailored Website Management</a></strong>, $300 + GST in month one, then $200 + GST/month ongoing. Includes site build or migration, ongoing management, and WooCommerce setup for small product catalogues.</li>
<li><strong><a href="ai-integration.html" class="inline-link">AI Integration</a></strong>, packages from $497 + GST to $1,497 + GST. Scoped per project prior to commencement.</li>
<li><strong><a href="plugin-development.html" class="inline-link">Custom Plugin Development</a></strong>, from $497 + GST to $1,997 + GST. Fixed price per agreed scope.</li>
<li><strong><a href="sos-fix.html" class="inline-link">WP SOS Fix</a></strong>, $97 + GST flat fee. Single-issue emergency fix.</li>
</ul>
<p>All service descriptions on this website are subject to these Terms. Where a separate written scope of works or service agreement is provided, that document applies in addition to these Terms.</p>
<h2>3. Pricing and GST</h2>
<p>Dutch Digital Dynamics Pty Ltd is registered for GST. All prices displayed on this website are exclusive of GST unless expressly stated otherwise. GST at the current rate (10%) will be added to all invoices.</p>
<p>Prices for ongoing services (Care Plans, Tailored Website Management) may be changed by HELP4BIS with a minimum of 30 days written notice by email. Continued use of the service after the effective date of a price change constitutes acceptance of the new pricing.</p>
<h2>4. Payment terms</h2>
<h3>Care Plans</h3>
<p>Care Plans are invoiced monthly in advance by email. Payment is due within 7 days of the invoice date. Services commence once the first payment is received.</p>
<h3>Tailored Website Management</h3>
<p>The month-one fee of $300 + GST is due in full before any work commences. Subsequent monthly fees of $200 + GST are invoiced monthly in advance and due within 7 days of the invoice date.</p>
<h3>Custom Plugin Development</h3>
<p>A deposit of 50% of the agreed project fee is due within 7 days of brief approval. The remaining 50% is due within 7 days of project delivery. Work commences on receipt of the cleared deposit and does not continue if payment is overdue.</p>
<h3>AI Integration</h3>
<p>Payment terms are confirmed in the project scope. Where not otherwise specified, the same 50% deposit / 50% on delivery schedule applies as for Custom Plugin Development.</p>
<h3>WP SOS Fix</h3>
<p>A payment link is provided after reviewing your brief. Work commences only on receipt of cleared payment. The fee is non-refundable once work has commenced.</p>
<h3>Failed payments</h3>
<p>If a payment is not received within 14 days of the invoice due date, services may be suspended without further notice. Services will be resumed promptly on receipt of cleared payment. If payment remains outstanding for 30 days beyond the due date, HELP4BIS reserves the right to terminate the service agreement and recover outstanding amounts.</p>
<h2>5. Cancellation</h2>
<h3>Care Plans and Tailored Website Management</h3>
<p>Either party may cancel an ongoing service by providing 30 days written notice by email to <a href="mailto:project@help4bis.com" class="inline-link">project@help4bis.com</a>. Cancellation takes effect at the end of the current billing month following the 30-day notice period. No refund is provided for partial months already billed.</p>
<h3>WP SOS Fix</h3>
<p>The WP SOS Fix fee is non-refundable once work has commenced. If work has not yet commenced, contact us promptly and we will consider a refund at our discretion.</p>
<h3>Custom Plugin Development and AI Integration</h3>
<p>If you cancel a project after the deposit has been paid and work has commenced, the deposit is non-refundable. If HELP4BIS is unable to complete the agreed scope, the deposit will be refunded in full.</p>
<h2>6. Intellectual property</h2>
<p><strong>Client content:</strong> All content you provide, including text, images, logos, branding, and business data, remains your property at all times. HELP4BIS claims no ownership over content you supply.</p>
<p><strong>Custom code:</strong> All custom code written by HELP4BIS (plugins, themes, integrations) remains the intellectual property of HELP4BIS until payment is received in full. On receipt of full payment, HELP4BIS grants you a perpetual, non-exclusive licence to use that code on your website. This licence does not include the right to on-sell or sublicence the code to third parties.</p>
<p><strong>Premium plugin licences:</strong> Licences for premium third-party plugins held under HELP4BIS's corporate licence (such as Elementor Pro, WPForms Pro, or RankMath Pro) are provided as part of the service and do not transfer to you on cancellation. You are responsible for acquiring your own licence for any such plugin if you wish to continue using it after the service ends.</p>
<h2>7. Data ownership and export on cancellation</h2>
<p>Your website content, pages, posts, images, products, and database records, is your property. On cancellation of Tailored Website Management or any ongoing service, HELP4BIS will provide a complete WordPress export (database and files) within 14 days of your written cancellation request.</p>
<p>Care Plans clients hosting on external infrastructure retain full control of their hosting environment and site files throughout the engagement.</p>
<h2>8. Limitation of liability</h2>
<p>HELP4BIS will not be liable for any business loss, lost revenue, lost data, or consequential damage arising from:</p>
<ul>
<li>Website downtime caused by hosting providers, DNS providers, or third-party services outside our direct control</li>
<li>Security breaches, hacking, or malware affecting your website or hosting environment</li>
<li>Interruption to services caused by circumstances beyond our control</li>
<li>Decisions made by you on the basis of information or recommendations provided by HELP4BIS</li>
</ul>
<p>To the maximum extent permitted by applicable law, HELP4BIS's total liability to you in connection with any service is limited to the total fees paid by you in the 30 days preceding the event giving rise to the claim.</p>
<p>Nothing in these Terms limits liability that cannot be excluded by law, including liability under the Australian Consumer Law.</p>
<h2>9. Warranties</h2>
<p>HELP4BIS warrants that services will be delivered with skill, care, and diligence. We do not warrant that:</p>
<ul>
<li>Your website will achieve any particular business outcome (search ranking, traffic, conversions)</li>
<li>Your website will be entirely free from security vulnerabilities at all times, WordPress and its plugins are subject to ongoing security disclosures that are outside our control</li>
<li>Third-party plugins, themes, or services will remain available or functional</li>
</ul>
<p>Where services are supplied to a consumer within the meaning of the Australian Consumer Law, our services come with guarantees that cannot be excluded.</p>
<h2>10. Governing law</h2>
<p>These Terms are governed by and construed in accordance with the laws of Queensland, Australia. Both parties submit to the non-exclusive jurisdiction of the courts of Queensland for any dispute arising in connection with these Terms or any service provided under them.</p>
<h2>11. Changes to these Terms</h2>
<p>HELP4BIS may update these Terms from time to time. Material changes will be communicated to active clients by email with a minimum of 30 days notice before the new Terms take effect. Continued use of any service after the effective date of updated Terms constitutes acceptance.</p>
<p>These Terms were last updated: March 2026.</p>
<p style="font-size:14px; color:#6b7280; margin-top:2rem;"><em>Last updated: March 2026</em></p>
</div>
</div>
</section>
<!-- ═══════════════════════════════════════════════
FOOTER
═══════════════════════════════════════════════ -->
<footer class="footer" aria-label="Site footer">
<div class="container">
<div class="footer__grid">
<div class="footer__brand">
<img src="assets/images/logo-cropped.jpg" alt="HELP4BIS" width="140" height="38">
<p>Managed WordPress hosting and maintenance for Australian small businesses. Brisbane-based, personal service, WordPress specialist, Brisbane.</p>
<p style="font-size:13px; color:rgba(255,255,255,.4);">Dutch Digital Dynamics Pty Ltd · ABN 86 081 237 087</p>
</div>
<div class="footer__col">
<h4>Services</h4>
<ul class="footer__links">
<li><a href="managed-wordpress.html">Tailored Website Management</a></li>
<li><a href="care-plans.html">WP Care Plans</a></li>
<li><a href="sos-fix.html">WP SOS Fix</a></li>
<li><a href="ai-integration.html">AI Integration</a></li>
<li><a href="plugin-development.html">Plugin Development</a></li> </ul>
</div>
<div class="footer__col">
<h4>Company</h4>
<ul class="footer__links">
<li><a href="about.html">About Us</a></li>
<li><a href="index.html#portfolio">Our Work</a></li>
<li><a href="index.html#testimonials">Client Feedback</a></li>
<li><a href="blog/index.html">Blog</a></li>
<li><a href="contact.html">Contact</a></li>
</ul>
</div>
<div class="footer__col">
<h4>Contact</h4>
<ul class="footer__links">
<li><a href="mailto:project@help4bis.com">project@help4bis.com</a></li>
<li><a href="contact.html">Submit a Brief</a></li>
<li><a href="sos-fix.html">Emergency Fix</a></li>
</ul>
<p style="margin-top:1rem; font-size:13px; color:rgba(255,255,255,.4);">
Brisbane, Queensland<br>
Response within 24 business hours
</p>
</div>
</div>
<div class="footer__bottom">
<span>© 2026 HELP4BIS, a trading name of Dutch Digital Dynamics Pty Ltd · ABN 86 081 237 087</span>
<span>
<a href="privacy.html">Privacy Policy</a> ·
<a href="terms.html">Terms</a>
</span>
</div>
</div>
</footer>
<!-- Back to top -->
<button id="back-to-top" aria-label="Back to top" style="position:fixed;bottom:24px;right:24px;width:44px;height:44px;background:var(--red);border:none;border-radius:50%;color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .3s ease;box-shadow:var(--shadow-md);">
<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="18 15 12 9 6 15"/></svg>
</button>
<script src="assets/js/main.js"></script>
<script src="/analytics/tracker.js" defer></script>
</body>
</html>
+592
View File
@@ -0,0 +1,592 @@
<!DOCTYPE html>
<!-- Version: 2.1.0 | Created: 2026-07-12 | Updated: 2026-08-16 -->
<html lang="en-AU">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Your Third Week With AI: Find Your Goals, Skills & Blind Spots | HELP4BIS</title>
<meta name="description" content="You know the mechanics and the toolkit. Now make it yours: a deep interview about your goals and skills, finding your blind spots, and a real roadmap. Plain English.">
<meta name="keywords" content="AI goals interview, AI blind spot check, AI skills assessment, AI profile brief, AI roadmap for business, 30 60 90 day plan with AI">
<meta name="author" content="HELP4BIS">
<meta name="publisher" content="Dutch Digital Dynamics Pty Ltd">
<meta name="copyright" content="Dutch Digital Dynamics Pty Ltd">
<meta name="language" content="en-AU">
<meta name="robots" content="index, follow">
<link rel="canonical" href="https://help4bis.com/third-week-with-ai.html">
<meta property="og:type" content="article">
<meta property="og:url" content="https://help4bis.com/third-week-with-ai.html">
<meta property="og:site_name" content="HELP4BIS">
<meta property="og:title" content="Your Third Week With AI: Find Your Goals, Skills & Blind Spots">
<meta property="og:description" content="A deep interview about your goals and skills, finding your blind spots, and a real roadmap, explained in plain English.">
<meta property="og:image" content="https://help4bis.com/assets/images/og-social-card.jpg">
<meta property="og:locale" content="en_AU">
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:title" content="Your Third Week With AI: Find Your Goals, Skills & Blind Spots">
<meta name="twitter:description" content="A deep interview about your goals and skills, finding your blind spots, and a real roadmap, explained in plain English.">
<meta name="twitter:image" content="https://help4bis.com/assets/images/og-social-card.jpg">
<link rel="icon" type="image/jpeg" href="assets/images/logo-favicon.jpg">
<link rel="stylesheet" href="assets/css/style.css">
<style>
/* Third Week With AI, page extras */
.progress-row {
display: flex; align-items: center; gap: var(--sp-3);
margin-bottom: var(--sp-6);
max-width: 720px;
}
.progress-track {
flex: 1; height: 8px; border-radius: var(--r-full);
background: var(--grey-100); overflow: hidden;
}
.progress-fill {
height: 100%; width: 0%; border-radius: var(--r-full);
background: linear-gradient(90deg, var(--green), #16a34a);
transition: width .4s var(--ease-out);
}
.progress-label {
font-family: var(--font-head); font-size: 13px; font-weight: 700;
color: var(--grey-600); white-space: nowrap; font-variant-numeric: tabular-nums;
}
@media (prefers-reduced-motion: reduce) { .progress-fill { transition: none; } }
.step-item__left {
display: flex; align-items: center; gap: var(--sp-3);
flex: 1; min-width: 0;
}
.step-num {
flex-shrink: 0; width: 32px; height: 32px; border-radius: 50%;
background: var(--grey-50); border: 1.5px solid var(--grey-200);
color: var(--red); font-family: var(--font-head); font-weight: 800;
font-size: 14px; display: flex; align-items: center; justify-content: center;
font-variant-numeric: tabular-nums; transition: all .22s ease;
}
.faq-item:has(.step-check:checked) .step-num {
background: var(--green); color: var(--white); border-color: transparent;
}
.faq-item:has(.step-check:checked) .step-item__left { opacity: .55; }
.step-item__right { display: flex; align-items: center; gap: var(--sp-3); flex-shrink: 0; }
.step-check { width: 20px; height: 20px; accent-color: var(--green); cursor: pointer; }
.prompt-box {
background: var(--grey-50); border: 1px solid var(--grey-100);
border-radius: var(--r-md); padding: 14px 16px;
display: flex; gap: 12px; align-items: flex-start; margin: var(--sp-3) 0;
max-width: 640px;
}
.prompt-box p {
margin: 0; font-size: 14.5px; line-height: 1.6; color: var(--grey-800);
flex: 1; font-style: italic;
}
.prompt-copy {
flex-shrink: 0; font-family: var(--font-head); font-size: 11px; font-weight: 700;
letter-spacing: .05em; text-transform: uppercase; background: var(--white);
color: var(--red); border: 1.5px solid var(--grey-200); border-radius: var(--r-sm);
padding: 7px 12px; cursor: pointer; transition: all var(--trans);
}
.prompt-copy:hover { border-color: var(--red); background: var(--red-subtle); }
.prompt-copy:focus-visible { outline: 2px solid var(--red); outline-offset: 2px; }
.why-callout {
border-left: 3px solid var(--red); background: var(--red-subtle);
padding: 12px 16px; border-radius: 0 var(--r-md) var(--r-md) 0;
margin: var(--sp-3) 0; font-size: 14.5px; color: var(--grey-800); max-width: 640px;
}
.why-callout strong {
display: block; font-family: var(--font-head); font-size: 11px;
letter-spacing: .08em; text-transform: uppercase; color: var(--red); margin-bottom: 4px;
}
.reveal-grid {
display: grid; grid-template-columns: 1fr 1fr; gap: var(--sp-3);
max-width: 640px; margin: var(--sp-4) 0;
}
@media (max-width: 560px) { .reveal-grid { grid-template-columns: 1fr; } }
.reveal-card {
background: var(--grey-50); border: 1px solid var(--grey-100);
border-radius: var(--r-md); padding: 14px 16px;
}
.reveal-card .tag {
display: inline-block; font-family: var(--font-head); font-size: 10px;
font-weight: 800; letter-spacing: .06em; text-transform: uppercase;
color: var(--red); margin-bottom: 6px;
}
.reveal-card h4 { font-family: var(--font-head); font-size: 14px; margin: 0 0 4px; color: var(--ink); }
.reveal-card p { margin: 0; font-size: 13px; color: var(--grey-600); line-height: 1.55; }
.ladder {
display: flex; flex-direction: column; gap: 0; max-width: 640px; margin: var(--sp-4) 0;
}
.ladder-step {
display: flex; gap: var(--sp-3); align-items: flex-start;
padding: 14px 0; border-bottom: 1px solid var(--grey-100);
}
.ladder-step:last-child { border-bottom: none; }
.ladder-tier {
flex-shrink: 0; font-family: var(--font-head); font-weight: 800; font-size: 11px;
letter-spacing: .06em; text-transform: uppercase; color: var(--white);
background: var(--ink); border-radius: var(--r-sm); padding: 4px 8px; margin-top: 2px;
white-space: nowrap;
}
.ladder-step h4 { font-family: var(--font-head); font-size: 15px; margin: 0 0 2px; color: var(--ink); }
.ladder-step p { margin: 0; font-size: 14px; color: var(--grey-600); }
.glossary-grid {
display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
gap: var(--sp-3); margin-top: var(--sp-5);
}
.glossary-card {
background: var(--grey-50); border: 1px solid var(--grey-100);
border-radius: var(--r-lg); padding: 18px 20px;
}
.glossary-card dt {
font-family: var(--font-head); font-weight: 800; font-size: 15px;
color: var(--red); margin-bottom: 4px;
}
.glossary-card dd { margin: 0; font-size: 14px; line-height: 1.6; color: var(--grey-600); }
.prereq-banner {
display: flex; align-items: center; justify-content: space-between; gap: var(--sp-4);
background: var(--grey-50); border: 1px solid var(--grey-100); border-radius: var(--r-lg);
padding: var(--sp-4) var(--sp-5); margin-bottom: var(--sp-8); flex-wrap: wrap;
}
.prereq-banner p { margin: 0; font-size: 14.5px; color: var(--grey-600); max-width: 460px; }
.prereq-banner strong { color: var(--ink); }
.prereq-banner .prereq-links { display: flex; gap: 8px; flex-wrap: wrap; }
</style>
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@graph": [
{
"@type": "WebPage",
"@id": "https://help4bis.com/third-week-with-ai.html#webpage",
"url": "https://help4bis.com/third-week-with-ai.html",
"name": "Your Third Week With AI: Build Your Profile & Roadmap",
"isPartOf": {"@id": "https://help4bis.com/#website"},
"breadcrumb": {
"@type": "BreadcrumbList",
"itemListElement": [
{"@type": "ListItem", "position": 1, "name": "Home", "item": "https://help4bis.com/"},
{"@type": "ListItem", "position": 2, "name": "Your First Week With AI", "item": "https://help4bis.com/your-first-week-with-ai.html"},
{"@type": "ListItem", "position": 3, "name": "Your Second Week With AI", "item": "https://help4bis.com/second-week-with-ai.html"},
{"@type": "ListItem", "position": 4, "name": "Your Third Week With AI", "item": "https://help4bis.com/third-week-with-ai.html"}
]
}
},
{
"@type": "HowTo",
"@id": "https://help4bis.com/third-week-with-ai.html#howto",
"name": "Your Third Week With AI",
"description": "Turning general AI skills into a personal setup: a deep interview about your goals and skills, finding your blind spots, a profile brief, a real roadmap, and a weekly check-in habit.",
"step": [
{"@type": "HowToStep", "name": "Let it interview you", "text": "Answer a structured set of questions about your goals, values, strengths, and weaknesses so AI can build a fuller picture of you."},
{"@type": "HowToStep", "name": "Find what you can't see yourself", "text": "Feed it real samples of your own writing or work and ask what patterns, strengths, or blind spots show up that you might have missed."},
{"@type": "HowToStep", "name": "Turn one goal into a real roadmap", "text": "State a specific goal and ask AI to design a 30, 60, and 90-day plan with concrete action items."},
{"@type": "HowToStep", "name": "Write your profile brief", "text": "Combine the interview, the blind spots, and the roadmap into one document that travels with you into any chat."},
{"@type": "HowToStep", "name": "Run a weekly check-in", "text": "Review what worked and what didn't each week, and update the profile brief accordingly."}
]
}
]
}
</script>
</head>
<body>
<!-- ═══════════════════════════════════════════════
NAVIGATION
═══════════════════════════════════════════════ -->
<nav class="nav" role="navigation" aria-label="Main navigation">
<div class="container">
<div class="nav__inner">
<a class="nav__logo" href="index.html" aria-label="HELP4BIS home">
<img src="assets/images/logo-cropped.jpg" alt="HELP4BIS Logo" width="160" height="44">
</a>
<ul class="nav__links" id="nav-links" role="list">
<li class="nav__dropdown">
<button class="nav__trigger" aria-haspopup="true" aria-expanded="false">Services <svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"/></svg></button>
<ul class="nav__dropdown-menu" role="menu">
<li class="nav__menu-group">WordPress</li>
<li><a href="managed-wordpress.html" role="menuitem">Tailored Website Management</a></li>
<li><a href="care-plans.html" role="menuitem">WP Care Plans <span class="menu-price">from $49/mo</span></a></li>
<li><a href="sos-fix.html" role="menuitem">WP SOS Fix <span class="menu-price">$97 flat</span></a></li>
<li><a href="ai-integration.html" role="menuitem">AI Integration</a></li>
<li><a href="plugin-development.html" role="menuitem">Custom Plugin Development</a></li> </ul>
</li>
<li><a href="about.html">About</a></li>
<li><a href="index.html#portfolio">Our Work</a></li>
<li><a href="index.html#pricing">Pricing</a></li>
<li><a href="blog/index.html">Blog</a></li>
<li><a href="your-first-week-with-ai.html">AI Guide</a></li>
<li><a href="contact.html">Contact</a></li>
<li class="nav__cta-mobile" aria-hidden="true">
<a href="contact.html" class="btn btn-primary">Get Started</a>
<a href="sos-fix.html" class="btn btn-secondary">SOS Fix, $97</a>
</li>
</ul>
<div class="nav__cta">
<a href="sos-fix.html" class="btn btn-secondary btn-sm">SOS Fix, $97</a>
<a href="contact.html" class="btn btn-primary btn-sm">Get Started</a>
</div>
<button class="nav__burger" id="nav-burger" aria-label="Open menu" aria-expanded="false" aria-controls="nav-links">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><line x1="3" y1="12" x2="21" y2="12"/><line x1="3" y1="6" x2="21" y2="6"/><line x1="3" y1="18" x2="21" y2="18"/></svg>
</button>
</div>
</div>
</nav>
<!-- ═══════════════════════════════════════════════
PAGE HERO
═══════════════════════════════════════════════ -->
<section class="page-hero" aria-labelledby="hero-heading">
<div class="container">
<nav class="breadcrumb" aria-label="Breadcrumb">
<ol>
<li><a href="index.html">Home</a></li>
<li><a href="your-first-week-with-ai.html">Part One</a></li>
<li><a href="second-week-with-ai.html">Part Two</a></li>
<li aria-current="page">Part Three</li>
</ol>
</nav>
<p class="eyebrow">Free Guide, Part Three</p>
<h1 id="hero-heading">Your Third Week With AI</h1>
<p>You know how to talk to it, and you've built the toolkit. This is where it stops being generic and starts being yours, a proper look at your goals and skills, the blind spots you can't see on your own, and a document that carries all of it into every chat without you retyping it.</p>
</div>
</section>
<!-- ═══════════════════════════════════════════════
STEPS
═══════════════════════════════════════════════ -->
<section class="section" aria-labelledby="steps-heading">
<div class="container">
<div class="prereq-banner">
<p><strong>New here?</strong> This page assumes you've already got a master prompt and a system prompt or two from part two. If you haven't, start earlier in the series.</p>
<div class="prereq-links">
<a href="your-first-week-with-ai.html" class="btn btn-secondary btn-sm">Part One</a>
<a href="second-week-with-ai.html" class="btn btn-secondary btn-sm">Part Two</a>
</div>
</div>
<p class="eyebrow">Make It Yours</p>
<h2 id="steps-heading">Five steps to a personal setup</h2>
<p class="section-subtitle">This is less about learning new features and more about giving AI an honest, complete picture of who you are, what you're aiming for, and what you're actually good at.</p>
<div class="progress-row" aria-live="polite" style="margin-top: var(--sp-6);">
<span class="progress-label" id="progressLabel">0 of 5 done</span>
<span class="progress-track"><span class="progress-fill" id="progressFill"></span></span>
</div>
<div class="faq__list" role="list" id="stepList">
<details class="faq-item" role="listitem" open>
<summary class="faq-item__question">
<span class="step-item__left">
<span class="step-num">1</span>
<span>Let it interview you</span>
</span>
<span class="step-item__right">
<input type="checkbox" class="step-check" aria-label="Mark step 1 done" onclick="event.stopPropagation()">
<span class="faq-item__icon" aria-hidden="true">
<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><line x1="12" y1="5" x2="12" y2="19"/><line x1="5" y1="12" x2="19" y2="12"/></svg>
</span>
</span>
</summary>
<div class="faq-item__answer">
<p>Part two's master prompt covered your business in a few lines. This goes deeper. Instead of writing a summary yourself, let AI ask you the questions, one at a time, and build the document from your answers. People are honest in conversation in ways they never are staring at a blank page.</p>
<div class="reveal-grid">
<div class="reveal-card">
<span class="tag">Goals</span>
<h4>Where you're actually trying to get to</h4>
<p>Not vague ambition, specific, this-year and this-decade goals.</p>
</div>
<div class="reveal-card">
<span class="tag">Values</span>
<h4>What you won't compromise on</h4>
<p>The principles that should quietly shape any advice you get back.</p>
</div>
<div class="reveal-card">
<span class="tag">Strengths</span>
<h4>What you're actually good at</h4>
<p>Not your job title, the actual skills underneath it.</p>
</div>
<div class="reveal-card">
<span class="tag">Weaknesses</span>
<h4>Where you consistently struggle</h4>
<p>The honest version, not the interview-safe version.</p>
</div>
</div>
<div class="prompt-box">
<p>Help me build a proper profile of myself. Ask me questions, one at a time, to understand my goals, my values, my strengths, and my weaknesses. Once you've got a full picture, write it up.</p>
<button class="prompt-copy" onclick="copyPrompt(this)">Copy</button>
</div>
<div class="why-callout">
<strong>Why this matters</strong>
Save the answer somewhere you'll actually find again. This is the foundation the rest of this page builds on.
</div>
</div>
</details>
<details class="faq-item" role="listitem">
<summary class="faq-item__question">
<span class="step-item__left">
<span class="step-num">2</span>
<span>Find what you can't see yourself</span>
</span>
<span class="step-item__right">
<input type="checkbox" class="step-check" aria-label="Mark step 2 done" onclick="event.stopPropagation()">
<span class="faq-item__icon" aria-hidden="true">
<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><line x1="12" y1="5" x2="12" y2="19"/><line x1="5" y1="12" x2="19" y2="12"/></svg>
</span>
</span>
</summary>
<div class="faq-item__answer">
<p>Step 1 asked you to describe yourself. This step asks AI to describe you back, from evidence, not opinion. Paste in a batch of your own writing, work, or old messages and ask it to reflect what's actually there. This also happens to be how you get it writing in your voice instead of generic AI tone.</p>
<div class="prompt-box">
<p>Here's a batch of things I've written over the last few months: [paste them in]. What patterns, strengths, or blind spots do you notice that I might not see myself? Also describe my writing voice in one paragraph, sentence length, tone, quirks, words I overuse.</p>
<button class="prompt-copy" onclick="copyPrompt(this)">Copy</button>
</div>
<div class="why-callout">
<strong>Why this matters</strong>
This is the step people skip because it feels exposing. It's also the one that produces the most useful sentence on the whole page, the blind spot you didn't know you had.
</div>
</div>
</details>
<details class="faq-item" role="listitem">
<summary class="faq-item__question">
<span class="step-item__left">
<span class="step-num">3</span>
<span>Turn one goal into a real roadmap</span>
</span>
<span class="step-item__right">
<input type="checkbox" class="step-check" aria-label="Mark step 3 done" onclick="event.stopPropagation()">
<span class="faq-item__icon" aria-hidden="true">
<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><line x1="12" y1="5" x2="12" y2="19"/><line x1="5" y1="12" x2="19" y2="12"/></svg>
</span>
</span>
</summary>
<div class="faq-item__answer">
<p>Step 3 sits between the two before it. State one goal that actually matters to you right now, something you'd really like to be true in three months, and ask AI to break it into a real, time-bound plan instead of a vague intention.</p>
<div class="prompt-box">
<p>Here's a goal I have: [describe it]. Design a 30, 60, and 90-day roadmap to get there, with specific action items at each stage, not vague advice.</p>
<button class="prompt-copy" onclick="copyPrompt(this)">Copy</button>
</div>
<div class="ladder">
<div class="ladder-step">
<span class="ladder-tier">30 days</span>
<div><h4>The unglamorous first steps</h4><p>What actually has to happen first, even if it's boring, before anything else can move.</p></div>
</div>
<div class="ladder-step">
<span class="ladder-tier">60 days</span>
<div><h4>The part that requires momentum</h4><p>Building on the first 30 days, this is where the goal starts to feel real.</p></div>
</div>
<div class="ladder-step">
<span class="ladder-tier">90 days</span>
<div><h4>What "done" or "on track" actually looks like</h4><p>A concrete marker, not a feeling, so you know whether it worked.</p></div>
</div>
</div>
</div>
</details>
<details class="faq-item" role="listitem">
<summary class="faq-item__question">
<span class="step-item__left">
<span class="step-num">4</span>
<span>Write your profile brief</span>
</span>
<span class="step-item__right">
<input type="checkbox" class="step-check" aria-label="Mark step 4 done" onclick="event.stopPropagation()">
<span class="faq-item__icon" aria-hidden="true">
<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><line x1="12" y1="5" x2="12" y2="19"/><line x1="5" y1="12" x2="19" y2="12"/></svg>
</span>
</span>
</summary>
<div class="faq-item__answer">
<p>Part two's master prompt covered your business in a few lines. Your profile brief is the fuller version, everything from this page rolled into one document: the interview, the blind spots, your voice, the roadmap, and anything AI should never do without asking first.</p>
<div class="prompt-box">
<p>Here's my profile interview, my blind spots and voice description, and my 30/60/90 roadmap from earlier. Combine them into one clean profile brief I can paste at the start of any chat where the background matters.</p>
<button class="prompt-copy" onclick="copyPrompt(this)">Copy</button>
</div>
<div class="why-callout">
<strong>Why this matters</strong>
This one document is what actually makes AI feel personal instead of generic. Keep it updated. It's worth more the longer you maintain it.
</div>
</div>
</details>
<details class="faq-item" role="listitem">
<summary class="faq-item__question">
<span class="step-item__left">
<span class="step-num">5</span>
<span>Run a weekly check-in</span>
</span>
<span class="step-item__right">
<input type="checkbox" class="step-check" aria-label="Mark step 5 done" onclick="event.stopPropagation()">
<span class="faq-item__icon" aria-hidden="true">
<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><line x1="12" y1="5" x2="12" y2="19"/><line x1="5" y1="12" x2="19" y2="12"/></svg>
</span>
</span>
</summary>
<div class="faq-item__answer">
<p>Your profile brief isn't a finished document, it's a working one. Give it five minutes a week rather than letting it go stale.</p>
<div class="prompt-box">
<p>It's been a week since we built my profile brief and roadmap. Here's what's changed or what I've learned: [notes]. Update the profile brief based on this, and flag anything on the roadmap that needs adjusting.</p>
<button class="prompt-copy" onclick="copyPrompt(this)">Copy</button>
</div>
</div>
</details>
</div>
</div>
</section>
<!-- ═══════════════════════════════════════════════
GLOSSARY
═══════════════════════════════════════════════ -->
<section class="section section--dark" aria-labelledby="glossary-heading">
<div class="container">
<p class="eyebrow">Reference, Not A Step</p>
<h2 id="glossary-heading">A few more words you'll hit</h2>
<p class="section-subtitle" style="color: rgba(255,255,255,.55);">Parts one and two covered the basics and the toolkit. These finish the set.</p>
<dl class="glossary-grid">
<div class="glossary-card">
<dt>Profile interview</dt>
<dd>Letting AI ask you structured questions about your goals, values, strengths, and weaknesses, instead of writing a summary yourself.</dd>
</div>
<div class="glossary-card">
<dt>Blind spot check</dt>
<dd>Feeding an AI real samples of your own writing or work and asking it to reflect back patterns you might not see yourself.</dd>
</div>
<div class="glossary-card">
<dt>Profile brief</dt>
<dd>One document combining your interview, blind spots, voice, and roadmap, the fuller version of a master prompt.</dd>
</div>
<div class="glossary-card">
<dt>30/60/90 roadmap</dt>
<dd>A time-bound plan that breaks one real goal into concrete action items at 30, 60, and 90 days.</dd>
</div>
</dl>
</div>
</section>
<!-- ═══════════════════════════════════════════════
CTA BAND
═══════════════════════════════════════════════ -->
<section class="cta-band" aria-labelledby="cta-heading">
<div class="container">
<div class="cta-band__content">
<p class="eyebrow" style="color:rgba(255,255,255,.5)">Want the roadmap built for you?</p>
<h2 id="cta-heading">We'll build your profile brief, your roadmap, and the AI tools to run it.</h2>
<p>If you'd rather have this mapped and built into your business instead of doing it solo, submit a brief and we'll tell you what fits and what it costs.</p>
<div class="cta-band__actions">
<a href="contact.html?service=ai" class="btn btn-primary btn-lg">Submit a Brief</a>
<a href="ai-integration.html" class="btn btn-outline-light btn-lg">See AI Integration</a>
</div>
</div>
</div>
</section>
<!-- ═══════════════════════════════════════════════
FOOTER
═══════════════════════════════════════════════ -->
<footer class="footer" aria-label="Site footer">
<div class="container">
<div class="footer__grid">
<div class="footer__brand">
<img src="assets/images/logo-cropped.jpg" alt="HELP4BIS" width="140" height="38">
<p>Managed WordPress hosting and maintenance for Australian small businesses. Brisbane-based, personal service, WordPress specialist, Brisbane.</p>
<p style="font-size:13px; color:rgba(255,255,255,.4);">Dutch Digital Dynamics Pty Ltd &middot; ABN 86 081 237 087</p>
</div>
<div class="footer__col">
<h4>Services</h4>
<ul class="footer__links">
<li><a href="managed-wordpress.html">Tailored Website Management</a></li>
<li><a href="care-plans.html">WP Care Plans</a></li>
<li><a href="sos-fix.html">WP SOS Fix</a></li>
<li><a href="ai-integration.html">AI Integration</a></li>
<li><a href="plugin-development.html">Plugin Development</a></li> </ul>
</div>
<div class="footer__col">
<h4>Company</h4>
<ul class="footer__links">
<li><a href="about.html">About Us</a></li>
<li><a href="index.html#portfolio">Our Work</a></li>
<li><a href="blog/index.html">Blog</a></li>
<li><a href="your-first-week-with-ai.html">Free AI Guide</a></li>
<li><a href="contact.html">Contact</a></li>
</ul>
</div>
<div class="footer__col">
<h4>Contact</h4>
<ul class="footer__links">
<li><a href="mailto:project@help4bis.com">project@help4bis.com</a></li>
<li><a href="contact.html">Submit a Brief</a></li>
<li><a href="sos-fix.html">Emergency Fix</a></li>
</ul>
<p style="margin-top:1rem; font-size:13px; color:rgba(255,255,255,.4);">
Brisbane, Queensland<br>
Response within 24 business hours
</p>
</div>
</div>
<div class="footer__bottom">
<span>&copy; 2026 HELP4BIS, a trading name of Dutch Digital Dynamics Pty Ltd &middot; ABN 86 081 237 087</span>
<span>
<a href="privacy.html">Privacy Policy</a> &middot;
<a href="terms.html">Terms</a>
</span>
</div>
</div>
</footer>
<button id="back-to-top" aria-label="Back to top" style="position:fixed;bottom:24px;right:24px;width:44px;height:44px;background:var(--red);border:none;border-radius:50%;color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .3s ease;box-shadow:var(--shadow-md);">
<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="18 15 12 9 6 15"/></svg>
</button>
<script src="assets/js/main.js"></script>
<script src="/analytics/tracker.js" defer></script>
<script>
(function () {
var boxes = document.querySelectorAll('.step-check');
var label = document.getElementById('progressLabel');
var fill = document.getElementById('progressFill');
function update() {
var total = boxes.length;
var done = document.querySelectorAll('.step-check:checked').length;
label.textContent = done + ' of ' + total + ' done';
fill.style.width = (total ? (done / total * 100) : 0) + '%';
}
boxes.forEach(function (box) { box.addEventListener('change', update); });
update();
})();
function copyPrompt(btn) {
var text = btn.previousElementSibling.textContent;
var original = btn.textContent;
function done(ok) {
btn.textContent = ok ? 'Copied' : 'Select & copy';
setTimeout(function () { btn.textContent = original; }, 1500);
}
if (navigator.clipboard && navigator.clipboard.writeText) {
navigator.clipboard.writeText(text).then(function () { done(true); }, function () { done(false); });
} else {
done(false);
}
}
</script>
</body>
</html>
+541
View File
@@ -0,0 +1,541 @@
<!DOCTYPE html>
<!-- Version: 1.2.0 | Created: 2026-05-05 | Updated: 2026-08-16 -->
<html lang="en-AU">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Crohamhurst Case Study | HELP4BIS</title>
<meta name="description" content="How I built Crohamhurst.app: a Gann and astronomical cycle analysis toolkit for financial market researchers, built as a metered SaaS with five specialist computation modules.">
<meta name="author" content="HELP4BIS">
<meta name="publisher" content="Dutch Digital Dynamics Pty Ltd">
<meta name="language" content="en-AU">
<meta name="geo.region" content="AU-QLD">
<link rel="canonical" href="https://help4bis.com/work/crohamhurst-app.html">
<meta name="robots" content="index, follow">
<meta property="og:type" content="website">
<meta property="og:url" content="https://help4bis.com/work/crohamhurst-app.html">
<meta property="og:site_name" content="HELP4BIS">
<meta property="og:title" content="Crohamhurst Case Study | HELP4BIS">
<meta property="og:description" content="A Gann and cycle analysis SaaS toolkit for financial researchers: five computation modules, metered compute pricing, and a nod to Queensland's Crohamhurst Observatory.">
<meta property="og:image" content="https://help4bis.com/assets/images/port-crohamhurst.png">
<meta property="og:locale" content="en_AU">
<link rel="icon" type="image/jpeg" href="../assets/images/logo-favicon.jpg"> <link rel="stylesheet" href="../assets/css/style.css">
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "WebPage",
"@id": "https://help4bis.com/work/crohamhurst-app.html#webpage",
"url": "https://help4bis.com/work/crohamhurst-app.html",
"name": "Crohamhurst Case Study | HELP4BIS",
"description": "Gann and astronomical cycle analysis SaaS toolkit with metered compute pricing and five specialist modules.",
"isPartOf": {"@id": "https://help4bis.com/#website"},
"breadcrumb": {
"@type": "BreadcrumbList",
"itemListElement": [
{"@type": "ListItem", "position": 1, "name": "Home", "item": "https://help4bis.com/"},
{"@type": "ListItem", "position": 2, "name": "Our Work", "item": "https://help4bis.com/#portfolio"},
{"@type": "ListItem", "position": 3, "name": "Crohamhurst", "item": "https://help4bis.com/work/crohamhurst-app.html"}
]
}
}
</script>
<style>
.cs-hero {
background: linear-gradient(160deg, var(--ink) 0%, var(--ink-mid) 60%, #1a1200 100%);
padding: var(--sp-16) 0 var(--sp-12);
position: relative;
overflow: hidden;
}
.cs-hero::before {
content: '';
position: absolute;
top: -30%;
right: -15%;
width: 60%;
height: 200%;
background: radial-gradient(circle, rgba(217,119,6,.07) 0%, transparent 65%);
pointer-events: none;
}
.cs-breadcrumb {
font-size: 13px;
color: rgba(255,255,255,.45);
margin-bottom: var(--sp-5);
display: flex; align-items: center; gap: 8px;
}
.cs-breadcrumb a { color: rgba(255,255,255,.45); }
.cs-breadcrumb a:hover { color: var(--white); }
.cs-breadcrumb span { color: rgba(255,255,255,.25); }
.cs-hero h1 { color: var(--white); max-width: 820px; margin-bottom: var(--sp-4); }
.cs-hero-sub {
font-size: clamp(16px, 2vw, 20px);
color: rgba(255,255,255,.65);
max-width: 680px; line-height: 1.65; margin-bottom: var(--sp-6);
}
.cs-hero-actions { display: flex; gap: 12px; flex-wrap: wrap; }
.btn-gold {
background: linear-gradient(135deg, #D97706, #B45309);
color: var(--white); border-color: transparent;
box-shadow: 0 4px 14px rgba(217,119,6,.30);
}
.btn-gold:hover {
background: linear-gradient(135deg, #B45309, #92400E);
color: var(--white); transform: translateY(-2px);
}
.cs-kpis {
display: grid; grid-template-columns: repeat(2, 1fr);
gap: 16px; margin-top: var(--sp-8); padding-top: var(--sp-8);
border-top: 1px solid rgba(255,255,255,.08);
}
@media (min-width: 640px) { .cs-kpis { grid-template-columns: repeat(4, 1fr); } }
.cs-kpi { text-align: center; }
.cs-kpi-value {
font-family: var(--font-head); font-size: clamp(32px, 4vw, 52px);
font-weight: 900; color: #D97706; line-height: 1; letter-spacing: -0.04em;
}
.cs-kpi-label {
font-size: 12px; font-weight: 600; text-transform: uppercase;
letter-spacing: .12em; color: rgba(255,255,255,.45); margin-top: 6px;
}
.cs-feature-grid {
display: grid; grid-template-columns: 1fr; gap: 24px; margin-top: var(--sp-6);
}
@media (min-width: 640px) { .cs-feature-grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 900px) { .cs-feature-grid { grid-template-columns: repeat(3, 1fr); } }
.cs-feature-card {
background: var(--white); border: 1px solid var(--grey-100);
border-radius: var(--r-lg); padding: 24px; box-shadow: var(--shadow-card);
}
.cs-feature-card h4 { font-size: 15px; margin-bottom: 8px; color: var(--ink); }
.cs-feature-card p { font-size: 14px; color: var(--grey-600); line-height: 1.6; margin: 0; }
.cs-feature-icon {
width: 36px; height: 36px; background: var(--grey-50); border-radius: var(--r-md);
display: flex; align-items: center; justify-content: center;
margin-bottom: 14px; font-size: 18px;
}
.cs-module-list {
margin: 0; padding: 0; list-style: none;
display: grid; grid-template-columns: 1fr; gap: 12px; margin-top: var(--sp-5);
}
@media (min-width: 640px) { .cs-module-list { grid-template-columns: repeat(2, 1fr); } }
.cs-module-item {
background: var(--white); border: 1px solid var(--grey-100);
border-left: 3px solid #D97706;
border-radius: var(--r-md); padding: 16px 20px; box-shadow: var(--shadow-sm);
}
.cs-module-item strong { display: block; font-size: 14px; font-weight: 600; color: var(--ink); margin-bottom: 4px; }
.cs-module-item span { font-size: 13px; color: var(--grey-600); line-height: 1.5; }
.cs-pricing-grid {
display: grid; grid-template-columns: 1fr; gap: 16px; margin-top: var(--sp-6);
}
@media (min-width: 640px) { .cs-pricing-grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 900px) { .cs-pricing-grid { grid-template-columns: repeat(4, 1fr); } }
.cs-pricing-card {
background: var(--white); border: 1px solid var(--grey-100);
border-radius: var(--r-lg); padding: 20px; box-shadow: var(--shadow-card);
text-align: center;
}
.cs-pricing-card.featured {
border-color: #D97706;
box-shadow: 0 0 0 2px rgba(217,119,6,.15), var(--shadow-card);
}
.cs-pricing-card .tier-name { font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: .1em; color: var(--grey-400); margin-bottom: 8px; }
.cs-pricing-card .tier-price { font-family: var(--font-head); font-size: 28px; font-weight: 900; color: var(--ink); letter-spacing: -.03em; line-height: 1; }
.cs-pricing-card .tier-price span { font-size: 14px; font-weight: 500; color: var(--grey-500); }
.cs-pricing-card .tier-units { font-size: 13px; color: var(--grey-600); margin-top: 10px; font-weight: 500; }
.cs-pricing-card .tier-desc { font-size: 12px; color: var(--grey-500); margin-top: 6px; line-height: 1.5; }
.cs-stack { display: flex; flex-wrap: wrap; gap: 8px; margin-top: var(--sp-4); }
.cs-stack-tag {
background: var(--grey-50); border: 1px solid var(--grey-100);
border-radius: var(--r-full); padding: 6px 14px; font-size: 13px; font-weight: 500; color: var(--grey-600);
}
.cs-divider { height: 1px; background: var(--grey-100); margin: var(--sp-8) 0; }
.cs-two-col {
display: grid; grid-template-columns: 1fr; gap: var(--sp-8); align-items: start;
}
@media (min-width: 768px) {
.cs-two-col { grid-template-columns: 1fr 1fr; }
.cs-two-col--wide { grid-template-columns: 3fr 2fr; }
}
.cs-quote {
border-left: 3px solid #D97706;
padding: var(--sp-4) var(--sp-5); background: rgba(217,119,6,.04);
border-radius: 0 var(--r-md) var(--r-md) 0; margin: var(--sp-5) 0;
}
.cs-quote p { font-size: 17px; line-height: 1.7; color: var(--grey-800); font-style: italic; margin: 0; }
.cs-honest {
background: var(--grey-50); border: 1px solid var(--grey-100);
border-radius: var(--r-lg); padding: var(--sp-4) var(--sp-5); margin: var(--sp-5) 0;
}
.cs-honest-label {
font-size: 11px; font-weight: 700; text-transform: uppercase;
letter-spacing: .12em; color: var(--grey-400); margin-bottom: 8px;
}
.cs-honest p { font-size: 14px; color: var(--grey-600); line-height: 1.65; margin: 0; }
.cs-cta {
background: linear-gradient(135deg, var(--ink-mid), var(--ink));
border-radius: var(--r-2xl); padding: var(--sp-10) var(--sp-8); text-align: center;
}
.cs-cta h2 { color: var(--white); margin-bottom: var(--sp-4); }
.cs-cta p { color: rgba(255,255,255,.65); max-width: 560px; margin: 0 auto var(--sp-6); font-size: 17px; line-height: 1.7; }
</style>
</head>
<body>
<!-- NAV -->
<nav class="nav" role="navigation" aria-label="Main navigation">
<div class="nav__inner">
<a class="nav__logo" href="../index.html" aria-label="HELP4BIS home">
<img src="../assets/images/logo-cropped.jpg" alt="HELP4BIS" width="140" height="38">
</a>
<ul class="nav__links" id="nav-links" role="list">
<li class="nav__dropdown">
<button class="nav__trigger" aria-haspopup="true" aria-expanded="false">Services <svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"/></svg></button>
<ul class="nav__dropdown-menu" role="menu">
<li class="nav__menu-group">WordPress</li>
<li><a href="../managed-wordpress.html" role="menuitem">Tailored Website Management</a></li>
<li><a href="../care-plans.html" role="menuitem">WP Care Plans <span class="menu-price">from $49/mo</span></a></li>
<li><a href="../sos-fix.html" role="menuitem">WP SOS Fix <span class="menu-price">$97 flat</span></a></li>
<li><a href="../ai-integration.html" role="menuitem">AI Integration</a></li>
<li><a href="../plugin-development.html" role="menuitem">Custom Plugin Development</a></li> </ul>
</li>
<li><a href="../about.html">About</a></li>
<li><a href="../index.html#portfolio">Our Work</a></li>
<li><a href="../index.html#pricing">Pricing</a></li>
<li><a href="../blog/index.html">Blog</a></li>
<li><a href="../your-first-week-with-ai.html">AI Guide</a></li>
<li><a href="../contact.html">Contact</a></li>
<li class="nav__cta-mobile" aria-hidden="true">
<a href="../contact.html" class="btn btn-primary">Get Started</a>
<a href="../sos-fix.html" class="btn btn-secondary">SOS Fix, $97</a>
</li>
</ul>
<div class="nav__cta">
<a href="../sos-fix.html" class="btn btn-secondary btn-sm">SOS Fix, $97</a>
<a href="../contact.html" class="btn btn-primary btn-sm">Get Started</a>
</div>
<button class="nav__burger" id="nav-burger" aria-label="Open menu" aria-expanded="false" aria-controls="nav-links">
<span></span><span></span><span></span>
</button>
</div>
</nav>
<!-- HERO -->
<section class="cs-hero" aria-labelledby="cs-heading">
<div class="container">
<div class="cs-breadcrumb">
<a href="../index.html">Home</a>
<span>›</span>
<a href="../index.html#portfolio">Our Work</a>
<span>›</span>
<span style="color:rgba(255,255,255,.7);">Crohamhurst</span>
</div>
<p class="eyebrow" style="color:rgba(217,119,6,.9);">Case Study: Financial Research SaaS</p>
<h1 id="cs-heading">Crohamhurst.<br>Gann and cycle analysis<br>built as a proper toolkit.</h1>
<p class="cs-hero-sub">A metered SaaS platform I built for financial market researchers who work with astronomical cycles and W.D. Gann methodology. Five specialist computation modules, pricing based on usage, and an API backend that handles the heavy calculation work so the browser doesn't have to.</p>
<div class="cs-hero-actions">
<a href="https://crohamhurst.app" target="_blank" rel="noopener" class="btn btn-gold">Visit crohamhurst.app →</a>
<a href="../ai-integration.html" class="btn btn-secondary">See Custom Development</a>
</div>
<div class="cs-kpis">
<div class="cs-kpi">
<div class="cs-kpi-value">5</div>
<div class="cs-kpi-label">Analysis Modules</div>
</div>
<div class="cs-kpi">
<div class="cs-kpi-value">SaaS</div>
<div class="cs-kpi-label">Product Type</div>
</div>
<div class="cs-kpi">
<div class="cs-kpi-value">3</div>
<div class="cs-kpi-label">Paid Tiers</div>
</div>
<div class="cs-kpi">
<div class="cs-kpi-value">AU</div>
<div class="cs-kpi-label">Hosted</div>
</div>
</div>
</div>
</section>
<!-- OVERVIEW -->
<section class="section" aria-labelledby="overview-heading">
<div class="container">
<div class="cs-two-col cs-two-col--wide">
<div>
<p class="eyebrow">Overview</p>
<h2 id="overview-heading">Where it came from</h2>
<p class="large">Crohamhurst Observatory in Queensland is where Inigo Jones spent decades studying planetary cycles and their relationship to weather and crop patterns. Jones's method, correlating astronomical data with terrestrial outcomes, became the foundation for a style of market analysis popularised by W.D. Gann in the early twentieth century.</p>
<p>I picked the name deliberately. Researchers working with Gann methodology need computation tools that handle ephemeris calculations, cycle detection, and geometric price analysis quickly and accurately. Spreadsheets work up to a point. I tried. But five year planetary aspect timelines with custom orb tolerances are the kind of thing that demands a purpose built tool.</p>
<p>That's what I built. Five specialist modules, each focused on one type of Gann or cycle analysis. A metered compute model so occasional users pay nothing and heavy users pay for what they use. I host it on Australian infrastructure.</p>
<div class="cs-quote">
<p>"Gann analysis isn't obscure any more. There's a real community of researchers who take the methodology seriously and need tools that match that seriousness. I built Crohamhurst for them."</p>
</div>
</div>
<div>
<div style="background:linear-gradient(135deg,#1a1200,#2d1f00);border-radius:var(--r-xl);padding:var(--sp-8);box-shadow:var(--shadow-lg);">
<div style="text-align:center;margin-bottom:var(--sp-6);">
<div style="font-size:48px;margin-bottom:12px;">🔭</div>
<div style="font-family:var(--font-head);font-size:22px;font-weight:900;color:#D97706;letter-spacing:-.02em;">CROHAMHURST</div>
<div style="font-size:12px;color:rgba(255,255,255,.4);letter-spacing:.15em;text-transform:uppercase;margin-top:4px;">Gann &amp; Cycle Analysis</div>
</div>
<div style="display:grid;grid-template-columns:1fr 1fr;gap:10px;">
<div style="background:rgba(255,255,255,.05);border-radius:var(--r-md);padding:12px;text-align:center;">
<div style="font-size:20px;font-weight:800;color:#D97706;font-family:var(--font-head);">50</div>
<div style="font-size:10px;color:rgba(255,255,255,.4);text-transform:uppercase;letter-spacing:.1em;margin-top:3px;">Free units/day</div>
</div>
<div style="background:rgba(217,119,6,.12);border:1px solid rgba(217,119,6,.25);border-radius:var(--r-md);padding:12px;text-align:center;">
<div style="font-size:20px;font-weight:800;color:#D97706;font-family:var(--font-head);">10K</div>
<div style="font-size:10px;color:rgba(255,255,255,.4);text-transform:uppercase;letter-spacing:.1em;margin-top:3px;">Pro units/day</div>
</div>
</div>
</div>
<div class="cs-stack" style="margin-top:20px;">
<span class="cs-stack-tag">React</span>
<span class="cs-stack-tag">Python API</span>
<span class="cs-stack-tag">PostgreSQL</span>
<span class="cs-stack-tag">Stripe billing</span>
<span class="cs-stack-tag">JWT auth</span>
<span class="cs-stack-tag">Australian hosting</span>
</div>
</div>
</div>
</div>
</section>
<!-- MODULES -->
<section class="section section--alt" aria-labelledby="modules-heading">
<div class="container">
<p class="eyebrow">Computation Modules</p>
<h2 id="modules-heading">Five tools that do actual work</h2>
<p style="max-width:640px;color:var(--grey-600);font-size:17px;line-height:1.7;margin-bottom:0;">Each module handles a specific type of analysis. They run against the same backend API I wrote, pull from the same astronomical data, and charge compute units based on the computational cost of the request.</p>
<ul class="cs-module-list">
<li class="cs-module-item">
<strong>Ephemeris Timelines</strong>
<span>Calculates planetary aspect windows over a user-specified date range. Produces a timeline of alignment dates that Gann researchers use to identify potential turning point zones in a market.</span>
</li>
<li class="cs-module-item">
<strong>Bradley Siderograph</strong>
<span>Generates the Bradley siderograph curve, a turning point prediction model first published in 1948, with both the original and the Hannula variant. Used to overlay against price charts to identify potential reversal dates.</span>
</li>
<li class="cs-module-item">
<strong>Gann Square of Nine</strong>
<span>A geometric price level calculator based on W.D. Gann's Square of Nine method. Enter a price anchor and the module returns the full grid of geometrically significant support and resistance levels.</span>
</li>
<li class="cs-module-item">
<strong>Cycle Scanner</strong>
<span>Applies spectral analysis to price series data to identify dominant cycle periods. Surfaces repeating time structures in market data that manual chart reading would miss.</span>
</li>
<li class="cs-module-item">
<strong>Historical Analogs</strong>
<span>Pattern matching across historical price data. Given a recent market structure, it finds the closest historical matches and surfaces what followed. A research tool, not a prediction system.</span>
</li>
</ul>
</div>
</section>
<!-- HOW IT WORKS -->
<section class="section" aria-labelledby="how-heading">
<div class="container">
<p class="eyebrow">Architecture</p>
<h2 id="how-heading">How the platform is built</h2>
<p style="max-width:640px;color:var(--grey-600);font-size:17px;line-height:1.7;margin-bottom:0;">I put the calculation engine in a Python API backend, not in the browser. That's the right place for it: astronomical ephemeris computation, FFT cycle analysis, and historical pattern matching aren't jobs for JavaScript in the browser.</p>
<div class="cs-feature-grid" style="margin-top:var(--sp-6);">
<div class="cs-feature-card">
<div class="cs-feature-icon">🖥️</div>
<h4>React frontend</h4>
<p>A clean, responsive single-page application. Module inputs, result visualisations, account management, and a blog for research commentary. I built it to be fast and uncluttered. Researchers want results, not UI.</p>
</div>
<div class="cs-feature-card">
<div class="cs-feature-icon">⚙️</div>
<h4>Python computation API</h4>
<p>The backend handles all mathematical heavy lifting: ephemeris lookups, spectral analysis, geometric calculations, and pattern matching against historical data. Versioned endpoints, structured responses, and async processing for jobs that run longer.</p>
</div>
<div class="cs-feature-card">
<div class="cs-feature-icon">📊</div>
<h4>Metered compute units</h4>
<p>Every API request consumes compute units proportional to its cost. Simple lookups are cheap. Deep cycle scans over long date ranges cost more. The model is transparent: users see their usage in real time and can choose the tier that fits how they work.</p>
</div>
<div class="cs-feature-card">
<div class="cs-feature-icon">🔐</div>
<h4>Auth and accounts</h4>
<p>Authentication with JWT and session management. Users register, log in, and manage their subscription tier within the app. My admin tools let me assign tiers and adjust unit quotas without touching the database.</p>
</div>
<div class="cs-feature-card">
<div class="cs-feature-icon">💳</div>
<h4>Stripe billing</h4>
<p>Subscription billing handled by Stripe. Tier upgrades and downgrades take effect immediately. The free tier requires no payment method, so researchers can evaluate the tools before they commit to a paid plan.</p>
</div>
<div class="cs-feature-card">
<div class="cs-feature-icon">📝</div>
<h4>Research blog and announcements</h4>
<p>A blog built into the app for publishing Gann and cycle research. An announcement system for product updates and module releases. I manage both from the admin panel without any external CMS.</p>
</div>
</div>
</div>
</section>
<!-- PRICING -->
<section class="section section--alt" aria-labelledby="pricing-heading">
<div class="container">
<p class="eyebrow">Pricing Model</p>
<h2 id="pricing-heading">Tiers based on usage</h2>
<p style="max-width:640px;color:var(--grey-600);font-size:17px;line-height:1.7;margin-bottom:0;">The metered model was a deliberate choice. Assumed is that no two Gann researchers work the same way: some run a handful of checks per week, others run hundreds of queries a day building research archives. A flat subscription penalises light users. A pure pay per use model creates anxiety. Metered tiers split the difference.</p>
<div class="cs-pricing-grid">
<div class="cs-pricing-card">
<div class="tier-name">Free</div>
<div class="tier-price">$0</div>
<div class="tier-units">50 units / day</div>
<div class="tier-desc">Evaluate the tools. Run simple calculations. No payment method required.</div>
</div>
<div class="cs-pricing-card">
<div class="tier-name">Hobbyist</div>
<div class="tier-price">$19<span>/mo</span></div>
<div class="tier-units">1,000 units / day</div>
<div class="tier-desc">Regular research sessions. Enough headroom for daily analysis across multiple instruments.</div>
</div>
<div class="cs-pricing-card featured">
<div class="tier-name">Pro</div>
<div class="tier-price">$79<span>/mo</span></div>
<div class="tier-units">10,000 units / day</div>
<div class="tier-desc">Heavy research and bulk analysis. Running all five modules across multiple timeframes and instruments.</div>
</div>
<div class="cs-pricing-card">
<div class="tier-name">Lifetime</div>
<div class="tier-price">n/a</div>
<div class="tier-units">10,000 units / day</div>
<div class="tier-desc">Pro level access with no monthly billing, assigned by admin. Available to founding users.</div>
</div>
</div>
<div class="cs-honest" style="margin-top:var(--sp-6);">
<div class="cs-honest-label">On the unit model</div>
<p>Compute units aren't a trick to squeeze more money out of users. Simple requests consume very few units. The metering exists because a cycle scan over a multi year date range at high resolution costs me more to compute than a Square of Nine grid does. The model reflects what the calculation costs. Usage is visible in the dashboard at all times and resets daily. No rollover, no surprise bills.</p>
</div>
</div>
</section>
<!-- HONEST NOTE -->
<section class="section" aria-labelledby="honest-heading">
<div class="container">
<p class="eyebrow">Straight Talking</p>
<h2 id="honest-heading">What kind of product this is</h2>
<div class="cs-two-col">
<div>
<p>Crohamhurst is a specialist tool for a specific audience. It isn't trying to be a general trading platform or a charting service for retail investors. W.D. Gann methodology has a dedicated community of researchers and traders who take the approach seriously and need computation tools built for it. That's who I built this for.</p>
<p>The five modules cover the core analytical methods in the Gann tradition: planetary aspects, geometric price levels, cycle detection, and pattern recognition. They are presented as research tools. The Historical Analogs module in particular surfaces what has followed similar price structures in the past. It doesn't tell users what to do. The work of interpretation stays with the researcher.</p>
<p>I built the platform alongside my own active Gann research practice, so the modules were tested against real workflows whilst I developed them, not designed in the abstract. That matters for tools where the edge cases are what researchers hit first.</p>
</div>
<div>
<div class="cs-honest">
<div class="cs-honest-label">On the Crohamhurst name</div>
<p>Crohamhurst Observatory near Maleny in the Sunshine Coast hinterland was where Inigo Jones conducted his long range climate and crop forecasting from the early 1900s through to 1954. Jones's long range forecasts were published annually and are still considered in Australian agricultural circles. His methods, observing planetary cycles over decades, sit in the same tradition as Gann's market work. The name is my nod to that Queensland connection and to the seriousness of the research tradition the platform supports.</p>
</div>
<div class="cs-honest" style="margin-top:var(--sp-4);">
<div class="cs-honest-label">On market predictions</div>
<p>Nothing on Crohamhurst.app constitutes financial advice. The tools surface data and analysis for researchers to interpret. Gann methodology is a research discipline, not a signal service. Users are researchers who understand what they are working with and take responsibility for their own analysis.</p>
</div>
</div>
</div>
</div>
</section>
<!-- TECH STACK -->
<section class="section section--alt" aria-labelledby="stack-heading">
<div class="container">
<p class="eyebrow">Technical Details</p>
<h2 id="stack-heading">The stack</h2>
<p style="max-width:640px;color:var(--grey-600);font-size:17px;line-height:1.7;margin-bottom:var(--sp-5);">A modern React frontend, a Python backend API for computation, PostgreSQL for data persistence, Stripe for billing. Containerised and hosted on Australian infrastructure in Brisbane.</p>
<div class="cs-stack">
<span class="cs-stack-tag">React</span>
<span class="cs-stack-tag">Python</span>
<span class="cs-stack-tag">PostgreSQL</span>
<span class="cs-stack-tag">Docker</span>
<span class="cs-stack-tag">JWT auth</span>
<span class="cs-stack-tag">Stripe</span>
<span class="cs-stack-tag">Australian hosting</span>
<span class="cs-stack-tag">Let's Encrypt SSL</span>
</div>
<p style="margin-top:var(--sp-4);font-size:14px;color:var(--grey-600);">I host it on the same Brisbane server as the rest of the HELP4BIS portfolio. The containerised architecture keeps the frontend and API cleanly separated and lets me scale the computation side on its own if demand requires it.</p>
</div>
</section>
<!-- CTA -->
<section class="section">
<div class="container">
<div class="cs-cta">
<h2>Building something that requires specialist computation?</h2>
<p>Crohamhurst is an example of what's possible when the right computation engine sits behind a clean interface. If your product involves complex calculations, specialist algorithms, or pricing based on usage, we've built this before.</p>
<div class="cs-hero-actions" style="justify-content:center;">
<a href="../plugin-development.html" class="btn btn-primary btn-lg">Custom Development</a>
<a href="../contact.html" class="btn btn-secondary btn-lg">Talk to us</a>
</div>
</div>
<div style="margin-top:var(--sp-8);text-align:center;">
<a href="../index.html#portfolio" style="font-size:14px;color:var(--grey-400);">← Back to all work</a>
</div>
</div>
</section>
<!-- FOOTER -->
<footer class="footer" aria-label="Site footer">
<div class="container">
<div class="footer__grid">
<div class="footer__brand">
<img src="../assets/images/logo-cropped.jpg" alt="HELP4BIS" width="140" height="38">
<p>Managed WordPress hosting and maintenance for Australian small businesses. Brisbane based, personal service, WordPress specialist, Brisbane.</p>
<p style="margin-top:8px; font-size:12px; color:rgba(255,255,255,.25);">Dutch Digital Dynamics Pty Ltd · ABN 86 081 237 087</p>
</div>
<div class="footer__col">
<h4>Services</h4>
<ul class="footer__links">
<li><a href="../managed-wordpress.html">Tailored Website Management</a></li>
<li><a href="../care-plans.html">WP Care Plans</a></li>
<li><a href="../sos-fix.html">WP SOS Fix</a></li>
<li><a href="../ai-integration.html">AI Integration</a></li>
<li><a href="../plugin-development.html">Plugin Development</a></li>
</ul>
</div>
<div class="footer__col">
<h4>Our Work</h4>
<ul class="footer__links">
<li><a href="dayboro-au.html">Dayboro.au</a></li>
<li><a href="gardenbuddy-au.html">GardenBuddy.au</a></li>
<li><a href="tawnytrails.html">Tawny Trails</a></li>
<li><a href="rds-ink.html">Running Duck Studio</a></li>
<li><a href="localbuddy-au.html">LocalBuddy</a></li>
<li><a href="m8chat-au.html">M8Chat</a></li>
<li><a href="nightcap-nm.html">Nightcap Natural Medicine</a></li>
<li><a href="crohamhurst-app.html">Crohamhurst</a></li>
</ul>
</div>
<div class="footer__col">
<h4>Contact</h4>
<ul class="footer__links">
<li><a href="mailto:project@help4bis.com">project@help4bis.com</a></li>
<li><a href="../contact.html">Submit a Brief</a></li>
<li><a href="../sos-fix.html">Emergency Fix</a></li>
</ul>
<p style="margin-top:16px; font-size:12px; color:rgba(255,255,255,.3);">Brisbane, Queensland<br>Response within 24 business hours</p>
</div>
</div>
<div class="footer__bottom">
<span>© 2026 HELP4BIS, a trading name of Dutch Digital Dynamics Pty Ltd · ABN 86 081 237 087</span>
<span><a href="../privacy.html">Privacy</a> · <a href="../terms.html">Terms</a></span>
</div>
</div>
</footer>
<button id="back-to-top" aria-label="Back to top">
<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="18 15 12 9 6 15"/></svg>
</button>
<script src="../assets/js/main.js"></script>
<script src="/analytics/tracker.js" defer></script>
</body>
</html>
+810
View File
@@ -0,0 +1,810 @@
<!DOCTYPE html>
<!-- Version: 1.2.0 | Created: 2026-05-05 | Updated: 2026-08-16 -->
<html lang="en-AU">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Dayboro.au Case Study | HELP4BIS</title>
<meta name="description" content="How I built dayboro.au: a hyperlocal weather platform, nine interactive calculators, a Flutter PWA on Google Play, and a Lions Club business directory, all running from a single WordPress instance in Dayboro, Queensland.">
<meta name="author" content="HELP4BIS">
<meta name="publisher" content="Dutch Digital Dynamics Pty Ltd">
<meta name="language" content="en-AU">
<meta name="geo.region" content="AU-QLD">
<link rel="canonical" href="https://help4bis.com/work/dayboro-au.html">
<meta name="robots" content="index, follow">
<meta property="og:type" content="website">
<meta property="og:url" content="https://help4bis.com/work/dayboro-au.html">
<meta property="og:site_name" content="HELP4BIS">
<meta property="og:title" content="Dayboro.au Case Study | HELP4BIS">
<meta property="og:description" content="22 years of weather data, nine live data calculators, a Flutter PWA on Google Play, and a community business directory. Here is how I built dayboro.au.">
<meta property="og:image" content="https://help4bis.com/assets/images/port-dayboro.jpg">
<meta property="og:locale" content="en_AU">
<link rel="icon" type="image/jpeg" href="../assets/images/logo-favicon.jpg"> <link rel="stylesheet" href="../assets/css/style.css">
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "WebPage",
"@id": "https://help4bis.com/work/dayboro-au.html#webpage",
"url": "https://help4bis.com/work/dayboro-au.html",
"name": "Dayboro.au Case Study | HELP4BIS",
"description": "A detailed breakdown of how dayboro.au was built: weather station integration, nine interactive calculators, Flutter PWA, Lions Club business directory, and Gann seasonal forecasting.",
"isPartOf": {"@id": "https://help4bis.com/#website"},
"breadcrumb": {
"@type": "BreadcrumbList",
"itemListElement": [
{"@type": "ListItem", "position": 1, "name": "Home", "item": "https://help4bis.com/"},
{"@type": "ListItem", "position": 2, "name": "Our Work", "item": "https://help4bis.com/#portfolio"},
{"@type": "ListItem", "position": 3, "name": "Dayboro.au", "item": "https://help4bis.com/work/dayboro-au.html"}
]
}
}
</script>
<style>
/* ── Case study specific styles ── */
.cs-hero {
background: linear-gradient(160deg, var(--ink) 0%, var(--ink-mid) 60%, #1a2a1a 100%);
padding: var(--sp-16) 0 var(--sp-12);
position: relative;
overflow: hidden;
}
.cs-hero::before {
content: '';
position: absolute;
top: -30%;
right: -15%;
width: 60%;
height: 200%;
background: radial-gradient(circle, rgba(34,197,94,.06) 0%, transparent 65%);
pointer-events: none;
}
.cs-breadcrumb {
font-size: 13px;
color: rgba(255,255,255,.45);
margin-bottom: var(--sp-5);
display: flex;
align-items: center;
gap: 8px;
}
.cs-breadcrumb a { color: rgba(255,255,255,.45); }
.cs-breadcrumb a:hover { color: var(--white); }
.cs-breadcrumb span { color: rgba(255,255,255,.25); }
.cs-hero h1 {
color: var(--white);
max-width: 820px;
margin-bottom: var(--sp-4);
}
.cs-hero-sub {
font-size: clamp(16px, 2vw, 20px);
color: rgba(255,255,255,.65);
max-width: 680px;
line-height: 1.65;
margin-bottom: var(--sp-6);
}
.cs-hero-actions {
display: flex;
gap: 12px;
flex-wrap: wrap;
}
.btn-green {
background: linear-gradient(135deg, #22C55E, #16a34a);
color: var(--white);
border-color: transparent;
box-shadow: 0 4px 14px rgba(34,197,94,.30);
}
.btn-green:hover {
background: linear-gradient(135deg, #16a34a, #15803d);
color: var(--white);
transform: translateY(-2px);
}
/* KPI stats */
.cs-kpis {
display: grid;
grid-template-columns: repeat(2, 1fr);
gap: 16px;
margin-top: var(--sp-8);
padding-top: var(--sp-8);
border-top: 1px solid rgba(255,255,255,.08);
}
@media (min-width: 640px) { .cs-kpis { grid-template-columns: repeat(4, 1fr); } }
.cs-kpi {
text-align: center;
}
.cs-kpi-value {
font-family: var(--font-head);
font-size: clamp(32px, 4vw, 52px);
font-weight: 900;
color: var(--green);
line-height: 1;
letter-spacing: -0.04em;
}
.cs-kpi-label {
font-size: 12px;
font-weight: 600;
text-transform: uppercase;
letter-spacing: .12em;
color: rgba(255,255,255,.45);
margin-top: 6px;
}
/* Feature grid */
.cs-feature-grid {
display: grid;
grid-template-columns: 1fr;
gap: 24px;
margin-top: var(--sp-6);
}
@media (min-width: 640px) { .cs-feature-grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 900px) { .cs-feature-grid { grid-template-columns: repeat(3, 1fr); } }
.cs-feature-card {
background: var(--white);
border: 1px solid var(--grey-100);
border-radius: var(--r-lg);
padding: 24px;
box-shadow: var(--shadow-card);
}
.cs-feature-card h4 {
font-size: 15px;
margin-bottom: 8px;
color: var(--ink);
}
.cs-feature-card p {
font-size: 14px;
color: var(--grey-600);
line-height: 1.6;
margin: 0;
}
.cs-feature-icon {
width: 36px;
height: 36px;
background: var(--grey-50);
border-radius: var(--r-md);
display: flex;
align-items: center;
justify-content: center;
margin-bottom: 14px;
font-size: 18px;
}
/* Calculator list */
.cs-calc-list {
margin: 0;
padding: 0;
list-style: none;
display: grid;
grid-template-columns: 1fr;
gap: 12px;
margin-top: var(--sp-5);
}
@media (min-width: 640px) { .cs-calc-list { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 900px) { .cs-calc-list { grid-template-columns: repeat(3, 1fr); } }
.cs-calc-item {
background: var(--white);
border: 1px solid var(--grey-100);
border-radius: var(--r-md);
padding: 16px 18px;
box-shadow: var(--shadow-sm);
}
.cs-calc-item strong {
display: block;
font-family: var(--font-head);
font-size: 14px;
font-weight: 700;
color: var(--ink);
margin-bottom: 4px;
}
.cs-calc-item span {
font-size: 13px;
color: var(--grey-600);
line-height: 1.5;
}
.cs-calc-tier {
display: inline-block;
font-size: 11px;
font-weight: 700;
text-transform: uppercase;
letter-spacing: .08em;
padding: 2px 8px;
border-radius: var(--r-full);
margin-top: 8px;
}
.cs-calc-tier--free { background: rgba(34,197,94,.12); color: #16a34a; }
.cs-calc-tier--premium { background: rgba(245,158,11,.12); color: #b45309; }
/* Stack tags */
.cs-stack {
display: flex;
flex-wrap: wrap;
gap: 8px;
margin-top: var(--sp-4);
}
.cs-stack-tag {
background: var(--grey-50);
border: 1px solid var(--grey-100);
border-radius: var(--r-full);
padding: 6px 14px;
font-size: 13px;
font-weight: 500;
color: var(--grey-600);
}
/* Section divider */
.cs-divider {
height: 1px;
background: var(--grey-100);
margin: var(--sp-8) 0;
}
/* Two-col layout */
.cs-two-col {
display: grid;
grid-template-columns: 1fr;
gap: var(--sp-8);
align-items: start;
}
@media (min-width: 768px) {
.cs-two-col { grid-template-columns: 1fr 1fr; }
.cs-two-col--wide { grid-template-columns: 3fr 2fr; }
}
/* Pull quote */
.cs-quote {
border-left: 3px solid var(--green);
padding: var(--sp-4) var(--sp-5);
background: rgba(34,197,94,.04);
border-radius: 0 var(--r-md) var(--r-md) 0;
margin: var(--sp-5) 0;
}
.cs-quote p {
font-size: 17px;
line-height: 1.7;
color: var(--grey-800);
font-style: italic;
margin: 0;
}
/* Honest note */
.cs-honest {
background: var(--grey-50);
border: 1px solid var(--grey-100);
border-radius: var(--r-lg);
padding: var(--sp-4) var(--sp-5);
margin: var(--sp-5) 0;
}
.cs-honest-label {
font-size: 11px;
font-weight: 700;
text-transform: uppercase;
letter-spacing: .12em;
color: var(--grey-400);
margin-bottom: 8px;
}
.cs-honest p {
font-size: 14px;
color: var(--grey-600);
line-height: 1.65;
margin: 0;
}
/* CTA block */
.cs-cta {
background: linear-gradient(135deg, var(--ink-mid), var(--ink));
border-radius: var(--r-2xl);
padding: var(--sp-10) var(--sp-8);
text-align: center;
}
.cs-cta h2 { color: var(--white); margin-bottom: var(--sp-4); }
.cs-cta p { color: rgba(255,255,255,.65); max-width: 560px; margin: 0 auto var(--sp-6); font-size: 17px; line-height: 1.7; }
</style>
</head>
<body>
<!-- ═══════════════════════════════════════════════
NAV
═══════════════════════════════════════════════ -->
<nav class="nav" role="navigation" aria-label="Main navigation">
<div class="nav__inner">
<a class="nav__logo" href="../index.html" aria-label="HELP4BIS home">
<img src="../assets/images/logo-cropped.jpg" alt="HELP4BIS" width="140" height="38">
</a>
<ul class="nav__links" id="nav-links" role="list">
<li class="nav__dropdown">
<button class="nav__trigger" aria-haspopup="true" aria-expanded="false">Services <svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"/></svg></button>
<ul class="nav__dropdown-menu" role="menu">
<li class="nav__menu-group">WordPress</li>
<li><a href="../managed-wordpress.html" role="menuitem">Tailored Website Management</a></li>
<li><a href="../care-plans.html" role="menuitem">WP Care Plans <span class="menu-price">from $49/mo</span></a></li>
<li><a href="../sos-fix.html" role="menuitem">WP SOS Fix <span class="menu-price">$97 flat</span></a></li>
<li><a href="../ai-integration.html" role="menuitem">AI Integration</a></li>
<li><a href="../plugin-development.html" role="menuitem">Custom Plugin Development</a></li> </ul>
</li>
<li><a href="../about.html">About</a></li>
<li><a href="../index.html#portfolio">Our Work</a></li>
<li><a href="../index.html#pricing">Pricing</a></li>
<li><a href="../blog/index.html">Blog</a></li>
<li><a href="../your-first-week-with-ai.html">AI Guide</a></li>
<li><a href="../contact.html">Contact</a></li>
<li class="nav__cta-mobile" aria-hidden="true">
<a href="../contact.html" class="btn btn-primary">Get Started</a>
<a href="../sos-fix.html" class="btn btn-secondary">SOS Fix, $97</a>
</li>
</ul>
<div class="nav__cta">
<a href="../sos-fix.html" class="btn btn-secondary btn-sm">SOS Fix, $97</a>
<a href="../contact.html" class="btn btn-primary btn-sm">Get Started</a>
</div>
<button class="nav__burger" id="nav-burger" aria-label="Open menu" aria-expanded="false" aria-controls="nav-links">
<span></span><span></span><span></span>
</button>
</div>
</nav>
<!-- ═══════════════════════════════════════════════
HERO
═══════════════════════════════════════════════ -->
<section class="cs-hero" aria-labelledby="cs-heading">
<div class="container">
<div class="cs-breadcrumb">
<a href="../index.html">Home</a>
<span>›</span>
<a href="../index.html#portfolio">Our Work</a>
<span>›</span>
<span style="color:rgba(255,255,255,.7);">Dayboro.au</span>
</div>
<p class="eyebrow" style="color:rgba(34,197,94,.9);">Case Study: Community Platform</p>
<h1 id="cs-heading">Dayboro.au<br>22 years<br>in the making.</h1>
<p class="cs-hero-sub">A hyperlocal weather platform, nine interactive calculators connected to my live station data, a Flutter PWA on Google Play, and a Lions Club business directory. I run all of it on a single WordPress instance from a hill in the D'Aguilar Range, Queensland.</p>
<div class="cs-hero-actions">
<a href="https://dayboro.au" target="_blank" rel="noopener" class="btn btn-green">Visit dayboro.au →</a>
<a href="https://app.dayboro.au" target="_blank" rel="noopener" class="btn btn-secondary">Open the app</a>
</div>
<div class="cs-kpis">
<div class="cs-kpi">
<div class="cs-kpi-value">2004</div>
<div class="cs-kpi-label">Running Since</div>
</div>
<div class="cs-kpi">
<div class="cs-kpi-value">9</div>
<div class="cs-kpi-label">Live Data Calculators</div>
</div>
<div class="cs-kpi">
<div class="cs-kpi-value">118+</div>
<div class="cs-kpi-label">Businesses Listed</div>
</div>
<div class="cs-kpi">
<div class="cs-kpi-value">5 min</div>
<div class="cs-kpi-label">Data Refresh Rate</div>
</div>
</div>
</div>
</section>
<!-- ═══════════════════════════════════════════════
WHAT IT ACTUALLY IS
═══════════════════════════════════════════════ -->
<section class="section" aria-labelledby="overview-heading">
<div class="container">
<div class="cs-two-col cs-two-col--wide">
<div>
<p class="eyebrow">Overview</p>
<h2 id="overview-heading">What it actually is</h2>
<p class="large">Most people in Dayboro know the site for the weather. They check it in the morning to see if the creek is up, or if there's a frost warning overnight. That's the front door.</p>
<p>Behind it: nine interactive gardening calculators that pull live data from my weather station every five minutes. A Flutter app on Google Play. A community events calendar. A tiered business directory that our local Lions Club uses to replace the old printed phone book. A custom email plugin I wrote that sends weekly weather digests to subscribers. And a Gann seasonal forecast that I cross reference with Inigo Jones lunar cycle predictions.</p>
<p>By any honest measure I've overbuilt it for a town of three thousand people. But it works, and the whole infrastructure costs me roughly the same per month as a decent coffee habit.</p>
<div class="cs-quote">
<p>"BOM's nearest gauged station is at Samford, 12 km southeast and 150 metres lower in elevation. On a typical summer afternoon the two stations can record rainfall that differs by a factor of four. That's why my station exists."</p>
</div>
</div>
<div>
<img src="../assets/images/port-dayboro.jpg" alt="Dayboro.au weather platform" style="width:100%;border-radius:var(--r-xl);box-shadow:var(--shadow-lg);" loading="lazy">
<div class="cs-stack" style="margin-top:20px;">
<span class="cs-stack-tag">WordPress</span>
<span class="cs-stack-tag">Flutter Web</span>
<span class="cs-stack-tag">WeeWX</span>
<span class="cs-stack-tag">Python</span>
<span class="cs-stack-tag">PMPro Membership</span>
<span class="cs-stack-tag">Ecowitt</span>
<span class="cs-stack-tag">Service Worker</span>
<span class="cs-stack-tag">Custom Plugins</span>
</div>
</div>
</div>
</div>
</section>
<!-- ═══════════════════════════════════════════════
THE WEATHER BACKBONE
═══════════════════════════════════════════════ -->
<section class="section section--alt" aria-labelledby="weather-heading">
<div class="container">
<p class="eyebrow">Foundation</p>
<h2 id="weather-heading">The weather engine</h2>
<p class="section-subtitle" style="text-align:left;margin-left:0;max-width:640px;">My Ecowitt station on Lyndhurst Hill feeds a custom Python pipeline I wrote, generating twelve JSON files every five minutes.</p>
<div class="cs-feature-grid">
<div class="cs-feature-card">
<div class="cs-feature-icon">🌡️</div>
<h4>Hardware: Ecowitt sensors</h4>
<p>Temperature to 0.1°C resolution, rainfall to 1 mm, wind speed and direction, UV index, solar radiation, soil temperature, lightning strike distance. All the hardware sits on my own site, so I don't depend on anyone else's data.</p>
</div>
<div class="cs-feature-card">
<div class="cs-feature-icon">⚙️</div>
<h4>Processing: WeeWX + Python</h4>
<p>WeeWX handles raw sensor ingestion and archive storage. My Python pipeline runs every five minutes: it calculates derived values, builds twelve JSON files, and uploads them to the server automatically. There are no manual steps in the data chain, whilst every step still logs enough that I can trace a bad number back to its sensor.</p>
</div>
<div class="cs-feature-card">
<div class="cs-feature-icon">📊</div>
<h4>Data going back to 2004</h4>
<p>22 years of logged temperature and rainfall at Lyndhurst Hill, with varying hardware over the years. The current Ecowitt installation has run continuously since 2023. I publish aggregates and accuracy comparisons against BOM Samford every month.</p>
</div>
<div class="cs-feature-card">
<div class="cs-feature-icon">🔄</div>
<h4>Live API: twelve JSON endpoints</h4>
<p>The calculators, the Flutter app, and the WordPress widgets all read from the same live weather data feed. One source of truth, refreshed every five minutes. It costs me nothing in external API fees and there are no rate limits.</p>
</div>
<div class="cs-feature-card">
<div class="cs-feature-icon">⚡</div>
<h4>Push notifications</h4>
<p>Subscribers to the Dayboro Buddy app receive push notifications for severe weather events: flash flood watch, frost alerts overnight, and heatwave warnings. Delivered via Service Worker push on Android and iOS.</p>
</div>
<div class="cs-feature-card">
<div class="cs-feature-icon">🏠</div>
<h4>Home automation integration</h4>
<p>The same data feeds my Home Assistant instance, with Sigenergy solar battery management and Amber Electric spot prices. Weather station data informs battery charge scheduling. More solar in the forecast means less grid charging overnight.</p>
</div>
</div>
</div>
</section>
<!-- ═══════════════════════════════════════════════
NINE CALCULATORS
═══════════════════════════════════════════════ -->
<section class="section" aria-labelledby="calc-heading">
<div class="container">
<p class="eyebrow">Gardening Tools</p>
<h2 id="calc-heading">Nine calculators, all on live data</h2>
<p style="max-width:640px;color:var(--grey-600);font-size:17px;line-height:1.7;margin-bottom:0;">Each one pulls from my live station feed, updated every five minutes. They're standard WordPress pages with Elementor HTML widgets. No external API keys, no third party services. The free tier gets a subset of the tools; premium members get all nine plus extended history views.</p>
<ul class="cs-calc-list">
<li class="cs-calc-item">
<strong>Frost Risk</strong>
<span>Current temperature vs typical minimum. Overnight frost probability based on current humidity, dew point, and the seasonal average for this valley.</span>
<div><span class="cs-calc-tier cs-calc-tier--free">Free</span></div>
</li>
<li class="cs-calc-item">
<strong>Companion Planting</strong>
<span>Embedded compatibility matrix covering 30+ vegetable and herb combinations. Helps and hinders, with reasoning for each pairing.</span>
<div><span class="cs-calc-tier cs-calc-tier--free">Free</span></div>
</li>
<li class="cs-calc-item">
<strong>Harvest Date</strong>
<span>Growing degree day calculation using live minimum and maximum temperatures. Enter planting date and crop, get a realistic days to harvest estimate for your specific conditions.</span>
<div><span class="cs-calc-tier cs-calc-tier--free">Free</span></div>
</li>
<li class="cs-calc-item">
<strong>Spray Window</strong>
<span>Wind speed, humidity, and temperature from the live station. Outputs a simple safe or not safe right now decision for pesticide and herbicide application.</span>
<div><span class="cs-calc-tier cs-calc-tier--premium">Premium</span></div>
</li>
<li class="cs-calc-item">
<strong>Soil pH</strong>
<span>Client side only, no data fetch needed. pH ranges per crop, current soil pH input, and a guide with quantities for correcting it.</span>
<div><span class="cs-calc-tier cs-calc-tier--free">Free</span></div>
</li>
<li class="cs-calc-item">
<strong>Veggie ROI</strong>
<span>Live average vegetable prices from a scraped price dataset versus estimated yield from your plot size. Answers the question: is it actually cheaper to grow this myself?</span>
<div><span class="cs-calc-tier cs-calc-tier--premium">Premium</span></div>
</li>
<li class="cs-calc-item">
<strong>Pest Risk</strong>
<span>Temperature and humidity threshold model for twelve common garden pests. Current conditions fed live. Risk level: low, moderate, or high, with recommended action.</span>
<div><span class="cs-calc-tier cs-calc-tier--premium">Premium</span></div>
</li>
<li class="cs-calc-item">
<strong>Watering Schedule</strong>
<span>Evapotranspiration estimate derived from live temperature, humidity, wind, and solar radiation data. Adjusts by soil type and plant category.</span>
<div><span class="cs-calc-tier cs-calc-tier--premium">Premium</span></div>
</li>
<li class="cs-calc-item">
<strong>Crop Planner</strong>
<span>Calendar based planting windows by month for SE Queensland conditions. Covers 40+ crops with sowing method, spacing, and the typical Dayboro first frost and last frost dates.</span>
<div><span class="cs-calc-tier cs-calc-tier--free">Free</span></div>
</li>
</ul>
<div class="cs-honest">
<div class="cs-honest-label">Design note</div>
<p>I kept the calculators deliberately simple on the outside. Each one fits in a single Elementor HTML widget: scoped CSS, vanilla JS, no build tools, no npm. They've been running without maintenance since February 2026, and that's not luck, it's the absence of dependencies. If you want a calculator that breaks six months after launch because an npm package updated, mine aren't that.</p>
</div>
</div>
</section>
<!-- ═══════════════════════════════════════════════
THE MOBILE APP
═══════════════════════════════════════════════ -->
<section class="section section--alt" aria-labelledby="app-heading">
<div class="container">
<div class="cs-two-col">
<div>
<p class="eyebrow">Mobile App</p>
<h2 id="app-heading">Dayboro Buddy, on any device</h2>
<p class="large">A Flutter Progressive Web App. One codebase, deployed as static files, available on Android via Google Play and on iOS via Safari's Add to Home Screen.</p>
<p>The Android APK (package: <code>au.dayboro.app</code>) is on Google Play and installs like a native app. On iPhone, open <a href="https://app.dayboro.au" class="inline-link">app.dayboro.au</a> in Safari, tap the share icon, tap Add to Home Screen. It installs in seconds. No App Store account, no review process, no waiting.</p>
<p>The service worker handles offline caching, background sync, and push notifications. Auto update works silently: when I deploy a new version, the service worker detects it on the next load and refreshes. Users are always on the current version without being asked to update anything.</p>
<div class="cs-feature-grid" style="grid-template-columns:1fr 1fr;margin-top:var(--sp-5);">
<div class="cs-feature-card">
<h4>App size</h4>
<p>3.9 MB. Loads in under 3 seconds on a standard 4G connection.</p>
</div>
<div class="cs-feature-card">
<h4>Version on Play Store</h4>
<p>v2.0.7, live and available at <code>au.dayboro.app</code>.</p>
</div>
<div class="cs-feature-card">
<h4>Offline mode</h4>
<p>Core navigation and cached weather data available without a connection.</p>
</div>
<div class="cs-feature-card">
<h4>Push notifications</h4>
<p>Frost alerts, flood watches, and severe weather warnings delivered to the home screen.</p>
</div>
</div>
</div>
<div>
<img src="../assets/images/port-app-dayboro.png" alt="Dayboro Buddy Progressive Web App" style="width:100%;border-radius:var(--r-xl);box-shadow:var(--shadow-lg);" loading="lazy">
<div class="cs-honest" style="margin-top:20px;">
<div class="cs-honest-label">Why Flutter and not a standard WordPress PWA</div>
<p>A standard WordPress PWA gives you a cached version of the site. Flutter gives you a proper application with its own navigation model and a UI that feels native. My weather calculators need to query JSON data, render charts, handle offline state, and update in the background. I tried the WordPress PWA plugins first and they can't do that reliably. Flutter can.</p>
</div>
</div>
</div>
</div>
</section>
<!-- ═══════════════════════════════════════════════
COMMUNITY LAYER
═══════════════════════════════════════════════ -->
<section class="section" aria-labelledby="community-heading">
<div class="container">
<p class="eyebrow">Community</p>
<h2 id="community-heading">The community layer</h2>
<p style="max-width:640px;color:var(--grey-600);font-size:17px;line-height:1.7;">Business directory, events calendar, weekly email digest, and a membership model. I built all of it into the same WordPress instance, and it's all interconnected.</p>
<div class="cs-feature-grid" style="margin-top:var(--sp-6);">
<div class="cs-feature-card">
<div class="cs-feature-icon">🏪</div>
<h4>Lions Club Business Directory</h4>
<p>118 local businesses listed across three tiers: full page, half page, and quarter page. I build the WordPress plugin specifically for this directory, and the Lions Club in Dayboro now uses it as the digital replacement for the annual printed directory. Directory data feeds the Flutter app via a custom REST API.</p>
</div>
<div class="cs-feature-card">
<div class="cs-feature-icon">📅</div>
<h4>Events Calendar</h4>
<p>Community events, markets, school dates, and local meetings. Pulled from a custom REST endpoint and displayed on the homepage. The Flutter app reads the same endpoint. One entry point for event data, multiple display surfaces.</p>
</div>
<div class="cs-feature-card">
<div class="cs-feature-icon">📧</div>
<h4>Weekly Weather Digest</h4>
<p>A custom email reports plugin (not a third party newsletter service) sends a weekly digest to subscribers. The past seven days of temperature and rainfall, a short summary, and links to the current forecast. The queue runs on WordPress cron. Open rates run consistently above industry average for small community newsletters because every single number in the email is from this valley, not from a regional station 12 km away.</p>
</div>
<div class="cs-feature-card">
<div class="cs-feature-icon">🔐</div>
<h4>Membership: Free and Premium</h4>
<p>PMPro handles membership. The free tier gives access to the core weather data and four calculators. Premium unlocks all nine calculators, extended historical data, and the seasonal forecasting tools. There's no trial that asks for a credit card. I made the free tier useful on its own, on purpose.</p>
</div>
<div class="cs-feature-card">
<div class="cs-feature-icon">📱</div>
<h4>Push Notifications</h4>
<p>Web push notifications via the Dayboro Buddy service worker. Subscribers opt in to frost alerts, flash flood watches, and heatwave warnings. Notifications go through my own WordPress plugin to a push API endpoint, not through a third party notification service.</p>
</div>
<div class="cs-feature-card">
<div class="cs-feature-icon">📈</div>
<h4>Site Analytics: Custom</h4>
<p>My rds-siteanalytics plugin tracks page views and reads Gitea issues as a website task list, displayed in the WordPress admin. No Google Analytics, no third party tracking scripts. Visitor data stays on my server.</p>
</div>
</div>
</div>
</section>
<!-- ═══════════════════════════════════════════════
SEASONAL FORECASTING
═══════════════════════════════════════════════ -->
<section class="section section--alt" aria-labelledby="forecast-heading">
<div class="container">
<div class="cs-two-col">
<div>
<p class="eyebrow">Forecasting</p>
<h2 id="forecast-heading">Seasonal forecasting: Gann and Inigo Jones</h2>
<p class="large">The seasonal forecasting side lives at <a href="https://crohamhurst.app" class="inline-link" target="_blank" rel="noopener">crohamhurst.app</a>, a separate subdomain. It isn't a standard weather forecast.</p>
<p>It combines Inigo Jones lunar cycle predictions with a Gann astronomical analysis pipeline I built in Python. The output is a qualitative seasonal outlook: whether the coming month is likely to run wetter or drier than average, based on long cycle positions going back to 1913.</p>
<div class="cs-honest">
<div class="cs-honest-label">Honest about what it is</div>
<p>This is an outlook based on historical cycles, not a deterministic forecast. It doesn't know about La Niña, blocking highs, or the Indian Ocean Dipole. It knows about repeating patterns in the long record that correlate loosely with the positions of the Sun, Moon, and inner planets. Accuracy on wet versus dry calls over a six week window runs around 62 to 65 percent. That's useful for farm planning. It's not useful for scheduling outdoor events, and I say so on the site.</p>
</div>
<p>The same Gann pipeline also feeds a CFD trading signal system that runs against IG Markets on a demo account, whilst I test whether a methodology W.D. Gann applied to commodity markets in the early 1900s still holds up in modern trading. My results so far are inconclusive, which is the honest answer.</p>
</div>
<div>
<div style="background:var(--ink-mid);border-radius:var(--r-xl);padding:var(--sp-6);color:var(--white);">
<p class="eyebrow" style="color:rgba(34,197,94,.9);">How the pipeline works</p>
<ol style="list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:16px;">
<li style="display:flex;gap:14px;align-items:flex-start;">
<span style="flex-shrink:0;width:28px;height:28px;background:var(--green);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;color:var(--ink);">1</span>
<div><strong style="color:var(--white);font-size:14px;">Astronomical data</strong><p style="font-size:13px;color:rgba(255,255,255,.55);margin:4px 0 0;line-height:1.5;">Sun, Moon, and planet positions calculated from NASA ephemeris data. Declinations, aspects, and angular relationships computed daily.</p></div>
</li>
<li style="display:flex;gap:14px;align-items:flex-start;">
<span style="flex-shrink:0;width:28px;height:28px;background:var(--green);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;color:var(--ink);">2</span>
<div><strong style="color:var(--white);font-size:14px;">Inigo Jones cycles</strong><p style="font-size:13px;color:rgba(255,255,255,.55);margin:4px 0 0;line-height:1.5;">Lunar cycle positions mapped against the Jones seasonal calendar for SE Queensland. Crohamhurst Observatory data integrated.</p></div>
</li>
<li style="display:flex;gap:14px;align-items:flex-start;">
<span style="flex-shrink:0;width:28px;height:28px;background:var(--green);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;color:var(--ink);">3</span>
<div><strong style="color:var(--white);font-size:14px;">Gann unified scoring</strong><p style="font-size:13px;color:rgba(255,255,255,.55);margin:4px 0 0;line-height:1.5;">Multiple Gann factors combined into a single directional score. Only scores above 70 are treated as signal grade. Below that, the model abstains.</p></div>
</li>
<li style="display:flex;gap:14px;align-items:flex-start;">
<span style="flex-shrink:0;width:28px;height:28px;background:var(--green);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;color:var(--ink);">4</span>
<div><strong style="color:var(--white);font-size:14px;">Published outlook</strong><p style="font-size:13px;color:rgba(255,255,255,.55);margin:4px 0 0;line-height:1.5;">Monthly outlook published at crohamhurst.app with the cycle rationale and historical comparison years. Free to read, no account required.</p></div>
</li>
</ol>
</div>
</div>
</div>
</div>
</section>
<!-- ═══════════════════════════════════════════════
TECH STACK
═══════════════════════════════════════════════ -->
<section class="section" aria-labelledby="stack-heading">
<div class="container">
<p class="eyebrow">Under the Hood</p>
<h2 id="stack-heading">What it actually runs on</h2>
<p style="max-width:600px;color:var(--grey-600);font-size:17px;line-height:1.7;">No managed cloud services, no vendor lock-in, no SaaS subscriptions in the data path. Every component runs on infrastructure I control.</p>
<div class="cs-feature-grid" style="margin-top:var(--sp-6);">
<div class="cs-feature-card">
<h4>WordPress + PMPro</h4>
<p>Core CMS and membership engine. PMPro handles access control, payment processing, and subscription management. I don't use WooCommerce for memberships. PMPro does it cleaner for this use case.</p>
</div>
<div class="cs-feature-card">
<h4>Flutter Web</h4>
<p>Dart compiled to JavaScript, deployed as static files at app.dayboro.au. Service worker for offline and push. The app itself needs no backend, it reads the same public JSON files as the website.</p>
</div>
<div class="cs-feature-card">
<h4>WeeWX + Python pipeline</h4>
<p>WeeWX handles sensor ingestion. A custom Python module processes the data, runs accuracy calculations, and generates the twelve JSON export files every five minutes via root cron.</p>
</div>
<div class="cs-feature-card">
<h4>Custom WordPress plugins</h4>
<p>Three custom plugins I wrote specifically for this site: dayboro-business-directory (Lions Club listing management + REST API), dayboro-email-reports (queued weekly digest), and rds-siteanalytics (custom analytics + Gitea task integration).</p>
</div>
<div class="cs-feature-card">
<h4>DirectAdmin on brisbane01</h4>
<p>I host all my sites on a dedicated server in Brisbane. Help4bis.com, dayboro.au, gardenbuddy.au, rds.ink, m8chat.au, and eight other domains all run on the same physical machine. Australian data residency, not US cloud.</p>
</div>
<div class="cs-feature-card">
<h4>Ecowitt hardware</h4>
<p>GW2000 gateway with multiple sensor arrays. Direct local API plus cloud sync. WeeWX reads locally, so my data pipeline doesn't depend on Ecowitt's cloud servers staying up.</p>
</div>
</div>
<div class="cs-divider"></div>
<div class="cs-two-col">
<div>
<h3 style="margin-bottom:var(--sp-3);">Full technology list</h3>
<div class="cs-stack">
<span class="cs-stack-tag">WordPress 6.x</span>
<span class="cs-stack-tag">PHP 8.4</span>
<span class="cs-stack-tag">MariaDB</span>
<span class="cs-stack-tag">PMPro Membership</span>
<span class="cs-stack-tag">Elementor Pro</span>
<span class="cs-stack-tag">Flutter 3.x</span>
<span class="cs-stack-tag">Dart</span>
<span class="cs-stack-tag">WeeWX 5.x</span>
<span class="cs-stack-tag">Python 3.11</span>
<span class="cs-stack-tag">Ecowitt GW2000</span>
<span class="cs-stack-tag">Service Worker</span>
<span class="cs-stack-tag">Web Push API</span>
<span class="cs-stack-tag">REST API</span>
<span class="cs-stack-tag">JSON data files</span>
<span class="cs-stack-tag">DirectAdmin</span>
<span class="cs-stack-tag">Gitea</span>
<span class="cs-stack-tag">Home Assistant</span>
<span class="cs-stack-tag">Sigenergy</span>
</div>
</div>
<div>
<h3 style="margin-bottom:var(--sp-3);">What I deliberately left out</h3>
<p style="color:var(--grey-600);font-size:14px;line-height:1.65;">No Google Analytics, because privacy matters in a small community where everyone knows each other. No third party notification services, push goes through my own endpoint. No CDN, since the server is in Brisbane and the audience is in SE Queensland; the latency is fine. No React, no Next.js, no build pipeline for the widgets. Vanilla JS in Elementor HTML widgets is fast, maintainable, and doesn't break when npm packages update.</p>
</div>
</div>
</div>
</section>
<!-- ═══════════════════════════════════════════════
CTA
═══════════════════════════════════════════════ -->
<section class="section section--dark" aria-labelledby="cta-heading">
<div class="container">
<div class="cs-cta">
<p class="eyebrow" style="color:rgba(34,197,94,.9);justify-content:center;">What I can build for you</p>
<h2 id="cta-heading">Your community, your platform.</h2>
<p>Not the whole thing. Something that fits your scale and budget. I bring the tools, the architecture, and over twenty years of building for small communities. What I need from you: a clear description of what problem you're trying to solve and who you're solving it for.</p>
<div style="display:flex;gap:12px;justify-content:center;flex-wrap:wrap;">
<a href="../contact.html" class="btn btn-primary">Talk to us about your project</a>
<a href="../index.html#portfolio" class="btn btn-secondary">See more of our work</a>
</div>
</div>
</div>
</section>
<!-- ═══════════════════════════════════════════════
FOOTER
═══════════════════════════════════════════════ -->
<footer class="footer" aria-label="Site footer">
<div class="container">
<div class="footer__grid">
<div class="footer__brand">
<img src="../assets/images/logo-cropped.jpg" alt="HELP4BIS" width="140" height="38">
<p>Managed WordPress hosting and maintenance for Australian small businesses. Brisbane based, personal service, WordPress specialist.</p>
<p style="font-size:13px; color:rgba(255,255,255,.4);">Dutch Digital Dynamics Pty Ltd · ABN 86 081 237 087</p>
</div>
<div class="footer__col">
<h4>Services</h4>
<ul class="footer__links">
<li><a href="../managed-wordpress.html">Tailored Website Management</a></li>
<li><a href="../care-plans.html">WP Care Plans</a></li>
<li><a href="../sos-fix.html">WP SOS Fix</a></li>
<li><a href="../ai-integration.html">AI Integration</a></li>
<li><a href="../plugin-development.html">Plugin Development</a></li> </ul>
</div>
<div class="footer__col">
<h4>Company</h4>
<ul class="footer__links">
<li><a href="../about.html">About Us</a></li>
<li><a href="../index.html#portfolio">Our Work</a></li>
<li><a href="../index.html#testimonials">Client Feedback</a></li>
<li><a href="../blog/index.html">Blog</a></li>
<li><a href="../contact.html">Contact</a></li>
</ul>
</div>
<div class="footer__col">
<h4>Contact</h4>
<ul class="footer__links">
<li><a href="mailto:project@help4bis.com">project@help4bis.com</a></li>
<li><a href="../contact.html">Submit a Brief</a></li>
<li><a href="../sos-fix.html">Emergency Fix</a></li>
</ul>
<p style="margin-top:1rem; font-size:13px; color:rgba(255,255,255,.4);">
Brisbane, Queensland<br>
Response within 24 business hours
</p>
</div>
</div>
<div class="footer__bottom">
<span>© 2026 HELP4BIS, a trading name of Dutch Digital Dynamics Pty Ltd · ABN 86 081 237 087</span>
<span>
<a href="../privacy.html">Privacy Policy</a> ·
<a href="../terms.html">Terms</a>
</span>
</div>
</div>
</footer>
<button id="back-to-top" aria-label="Back to top" style="position:fixed;bottom:24px;right:24px;width:44px;height:44px;background:var(--red);border:none;border-radius:50%;color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .3s ease;box-shadow:var(--shadow-md);">
<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="18 15 12 9 6 15"/></svg>
</button>
<script src="../assets/js/main.js"></script>
<script src="../analytics/tracker.js" defer></script>
</body>
</html>
+493
View File
@@ -0,0 +1,493 @@
<!DOCTYPE html>
<!-- Version: 1.2.0 | Created: 2026-05-05 | Updated: 2026-08-16 -->
<html lang="en-AU">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>GardenBuddy.au Case Study | HELP4BIS</title>
<meta name="description" content="How I built GardenBuddy.au: a national vegetable garden management platform with climate zones by postcode, live pest pressure, harvest tracking, ROI reports against supermarket prices, and a weekly Gardener Digest email.">
<meta name="author" content="HELP4BIS">
<meta name="publisher" content="Dutch Digital Dynamics Pty Ltd">
<meta name="language" content="en-AU">
<meta name="geo.region" content="AU-QLD">
<link rel="canonical" href="https://help4bis.com/work/gardenbuddy-au.html">
<meta name="robots" content="index, follow">
<meta property="og:type" content="website">
<meta property="og:url" content="https://help4bis.com/work/gardenbuddy-au.html">
<meta property="og:site_name" content="HELP4BIS">
<meta property="og:title" content="GardenBuddy.au Case Study | HELP4BIS">
<meta property="og:description" content="A full vegetable garden management platform: climate zones by postcode, live pest pressure, harvest logging, ROI vs Coles and Woolworths prices, and a weekly Gardener Digest. Built on WordPress with our own plugins.">
<meta property="og:image" content="https://help4bis.com/assets/images/port-gardenbuddy.jpg">
<meta property="og:locale" content="en_AU">
<link rel="icon" type="image/jpeg" href="../assets/images/logo-favicon.jpg"> <link rel="stylesheet" href="../assets/css/style.css">
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "WebPage",
"@id": "https://help4bis.com/work/gardenbuddy-au.html#webpage",
"url": "https://help4bis.com/work/gardenbuddy-au.html",
"name": "GardenBuddy.au Case Study | HELP4BIS",
"description": "A national vegetable garden management platform built on WordPress with custom plugins for climate zone detection, garden bed tracking, harvest logging, live pest pressure, and ROI reports against supermarket prices.",
"isPartOf": {"@id": "https://help4bis.com/#website"},
"breadcrumb": {
"@type": "BreadcrumbList",
"itemListElement": [
{"@type": "ListItem", "position": 1, "name": "Home", "item": "https://help4bis.com/"},
{"@type": "ListItem", "position": 2, "name": "Our Work", "item": "https://help4bis.com/#portfolio"},
{"@type": "ListItem", "position": 3, "name": "GardenBuddy.au", "item": "https://help4bis.com/work/gardenbuddy-au.html"}
]
}
}
</script>
<style>
.cs-hero {
background: linear-gradient(160deg, var(--ink) 0%, #0d1f0d 50%, #142014 100%);
padding: var(--sp-16) 0 var(--sp-12);
position: relative;
overflow: hidden;
}
.cs-hero::before {
content: '';
position: absolute;
top: -30%;
right: -15%;
width: 60%;
height: 200%;
background: radial-gradient(circle, rgba(34,197,94,.07) 0%, transparent 65%);
pointer-events: none;
}
.cs-breadcrumb {
font-size: 13px;
color: rgba(255,255,255,.45);
margin-bottom: var(--sp-5);
display: flex;
align-items: center;
gap: 8px;
}
.cs-breadcrumb a { color: rgba(255,255,255,.45); }
.cs-breadcrumb a:hover { color: var(--white); }
.cs-breadcrumb span { color: rgba(255,255,255,.25); }
.cs-hero h1 { color: var(--white); max-width: 820px; margin-bottom: var(--sp-4); }
.cs-hero-sub {
font-size: clamp(16px, 2vw, 20px);
color: rgba(255,255,255,.65);
max-width: 680px;
line-height: 1.65;
margin-bottom: var(--sp-6);
}
.cs-hero-actions { display: flex; gap: 12px; flex-wrap: wrap; }
.btn-green {
background: linear-gradient(135deg, #22C55E, #16a34a);
color: var(--white);
border-color: transparent;
box-shadow: 0 4px 14px rgba(34,197,94,.30);
}
.btn-green:hover { background: linear-gradient(135deg, #16a34a, #15803d); color: var(--white); transform: translateY(-2px); }
.cs-kpis {
display: grid;
grid-template-columns: repeat(2, 1fr);
gap: 16px;
margin-top: var(--sp-8);
padding-top: var(--sp-8);
border-top: 1px solid rgba(255,255,255,.08);
}
@media (min-width: 640px) { .cs-kpis { grid-template-columns: repeat(4, 1fr); } }
.cs-kpi { text-align: center; }
.cs-kpi-value {
font-family: var(--font-head);
font-size: clamp(32px, 4vw, 52px);
font-weight: 900;
color: var(--green);
line-height: 1;
letter-spacing: -0.04em;
}
.cs-kpi-label { font-size: 12px; font-weight: 600; text-transform: uppercase; letter-spacing: .12em; color: rgba(255,255,255,.45); margin-top: 6px; }
.cs-feature-grid {
display: grid;
grid-template-columns: 1fr;
gap: 24px;
margin-top: var(--sp-6);
}
@media (min-width: 640px) { .cs-feature-grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 900px) { .cs-feature-grid { grid-template-columns: repeat(3, 1fr); } }
.cs-feature-card {
background: var(--white);
border: 1px solid var(--grey-100);
border-radius: var(--r-lg);
padding: 24px;
box-shadow: var(--shadow-card);
}
.cs-feature-card h4 { font-size: 15px; margin-bottom: 8px; color: var(--ink); }
.cs-feature-card p { font-size: 14px; color: var(--grey-600); line-height: 1.6; margin: 0; }
.cs-feature-icon { width: 36px; height: 36px; background: var(--grey-50); border-radius: var(--r-md); display: flex; align-items: center; justify-content: center; margin-bottom: 14px; font-size: 18px; }
.cs-stack { display: flex; flex-wrap: wrap; gap: 8px; margin-top: var(--sp-4); }
.cs-stack-tag { background: var(--grey-50); border: 1px solid var(--grey-100); border-radius: var(--r-full); padding: 6px 14px; font-size: 13px; font-weight: 500; color: var(--grey-600); }
.cs-two-col { display: grid; grid-template-columns: 1fr; gap: var(--sp-8); align-items: start; }
@media (min-width: 768px) { .cs-two-col { grid-template-columns: 1fr 1fr; } .cs-two-col--wide { grid-template-columns: 3fr 2fr; } }
.cs-quote { border-left: 3px solid var(--green); padding: var(--sp-4) var(--sp-5); background: rgba(34,197,94,.04); border-radius: 0 var(--r-md) var(--r-md) 0; margin: var(--sp-5) 0; }
.cs-quote p { font-size: 17px; line-height: 1.7; color: var(--grey-800); font-style: italic; margin: 0; }
.cs-honest { background: var(--grey-50); border: 1px solid var(--grey-100); border-radius: var(--r-lg); padding: var(--sp-4) var(--sp-5); margin: var(--sp-5) 0; }
.cs-honest-label { font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .12em; color: var(--grey-400); margin-bottom: 8px; }
.cs-honest p { font-size: 14px; color: var(--grey-600); line-height: 1.65; margin: 0; }
.cs-divider { height: 1px; background: var(--grey-100); margin: var(--sp-8) 0; }
.cs-flow {
display: flex;
flex-direction: column;
gap: 0;
margin-top: var(--sp-5);
}
.cs-flow-step {
display: flex;
gap: 16px;
align-items: flex-start;
padding: 16px 0;
border-bottom: 1px solid var(--grey-100);
}
.cs-flow-step:last-child { border-bottom: none; }
.cs-flow-num {
flex-shrink: 0;
width: 28px;
height: 28px;
background: var(--green);
color: white;
border-radius: 50%;
display: flex;
align-items: center;
justify-content: center;
font-size: 12px;
font-weight: 800;
margin-top: 2px;
}
.cs-flow-title { font-family: var(--font-head); font-size: 14px; font-weight: 700; color: var(--ink); margin-bottom: 4px; }
.cs-flow-desc { font-size: 13px; color: var(--grey-600); line-height: 1.5; }
.cs-cta { background: linear-gradient(135deg, var(--ink-mid), var(--ink)); border-radius: var(--r-2xl); padding: var(--sp-10) var(--sp-8); text-align: center; }
.cs-cta h2 { color: var(--white); margin-bottom: var(--sp-4); }
.cs-cta p { color: rgba(255,255,255,.65); max-width: 560px; margin: 0 auto var(--sp-6); font-size: 17px; line-height: 1.7; }
</style>
</head>
<body>
<nav class="nav" role="navigation" aria-label="Main navigation">
<div class="nav__inner">
<a class="nav__logo" href="../index.html" aria-label="HELP4BIS home">
<img src="../assets/images/logo-cropped.jpg" alt="HELP4BIS" width="140" height="38">
</a>
<ul class="nav__links" id="nav-links" role="list">
<li class="nav__dropdown">
<button class="nav__trigger" aria-haspopup="true" aria-expanded="false">Services <svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"/></svg></button>
<ul class="nav__dropdown-menu" role="menu">
<li class="nav__menu-group">WordPress</li>
<li><a href="../managed-wordpress.html" role="menuitem">Tailored Website Management</a></li>
<li><a href="../care-plans.html" role="menuitem">WP Care Plans <span class="menu-price">from $49/mo</span></a></li>
<li><a href="../sos-fix.html" role="menuitem">WP SOS Fix <span class="menu-price">$97 flat</span></a></li>
<li><a href="../ai-integration.html" role="menuitem">AI Integration</a></li>
<li><a href="../plugin-development.html" role="menuitem">Custom Plugin Development</a></li> </ul>
</li>
<li><a href="../about.html">About</a></li>
<li><a href="../index.html#portfolio">Our Work</a></li>
<li><a href="../index.html#pricing">Pricing</a></li>
<li><a href="../blog/index.html">Blog</a></li>
<li><a href="../your-first-week-with-ai.html">AI Guide</a></li>
<li><a href="../contact.html">Contact</a></li>
<li class="nav__cta-mobile" aria-hidden="true">
<a href="../contact.html" class="btn btn-primary">Get Started</a>
<a href="../sos-fix.html" class="btn btn-secondary">SOS Fix, $97</a>
</li>
</ul>
<div class="nav__cta">
<a href="../sos-fix.html" class="btn btn-secondary btn-sm">SOS Fix, $97</a>
<a href="../contact.html" class="btn btn-primary btn-sm">Get Started</a>
</div>
<button class="nav__burger" id="nav-burger" aria-label="Open menu" aria-expanded="false" aria-controls="nav-links">
<span></span><span></span><span></span>
</button>
</div>
</nav>
<!-- HERO -->
<section class="cs-hero" aria-labelledby="cs-heading">
<div class="container">
<div class="cs-breadcrumb">
<a href="../index.html">Home</a><span>›</span>
<a href="../index.html#portfolio">Our Work</a><span>›</span>
<span style="color:rgba(255,255,255,.7);">GardenBuddy.au</span>
</div>
<p class="eyebrow" style="color:rgba(34,197,94,.9);">Case Study: National Garden Platform</p>
<h1 id="cs-heading">GardenBuddy.au.<br>A garden management<br>app built on WordPress.</h1>
<p class="cs-hero-sub">Not a calculator page. A full vegetable garden management platform I built as a custom WordPress plugin: climate zones by postcode covering all of Australia, live pest pressure from my weather data, harvest logging, ROI reports against Coles and Woolworths prices, and a weekly Gardener Digest email.</p>
<div class="cs-hero-actions">
<a href="https://gardenbuddy.au" target="_blank" rel="noopener" class="btn btn-green">Visit gardenbuddy.au →</a>
<a href="../contact.html" class="btn btn-secondary">Build something similar</a>
</div>
<div class="cs-kpis">
<div class="cs-kpi"><div class="cs-kpi-value">AU</div><div class="cs-kpi-label">National Coverage</div></div>
<div class="cs-kpi"><div class="cs-kpi-value">6</div><div class="cs-kpi-label">Custom Plugins</div></div>
<div class="cs-kpi"><div class="cs-kpi-value">4</div><div class="cs-kpi-label">Live Data Sources</div></div>
<div class="cs-kpi"><div class="cs-kpi-value">v2.0</div><div class="cs-kpi-label">Plugin Version</div></div>
</div>
</div>
</section>
<!-- OVERVIEW -->
<section class="section" aria-labelledby="overview-heading">
<div class="container">
<div class="cs-two-col cs-two-col--wide">
<div>
<p class="eyebrow">Overview</p>
<h2 id="overview-heading">From calculators to a garden management app</h2>
<p class="large">The first version of GardenBuddy was a set of gardening calculators I ran on the dayboro.au domain. Useful, but limited to one postcode and one set of conditions. So I rebuilt it as a standalone national platform. A gardener anywhere in Australia enters their postcode and gets advice calibrated to their actual climate zone and what's happening locally right now.</p>
<p>The core plugin, "Buddy the Sprout", handles everything a member does: climate zone detection from postcode, garden bed setup, plant tracking from seed to harvest, pest monitoring, watering records, harvest logging, ROI calculations, and automated email recommendations. It pulls live weather data from my weather API and supermarket price data from a separate scraper I wrote that tracks Coles, Woolworths, Aldi, and IGA prices.</p>
<div class="cs-quote">
<p>"The question I built it to answer: is it cheaper to grow this myself, given my local conditions, than to buy it at Coles? The answer changes depending on where you live, what you grow, and what the shops are charging this week."</p>
</div>
<div class="cs-stack">
<span class="cs-stack-tag">WordPress</span>
<span class="cs-stack-tag">Custom Plugin</span>
<span class="cs-stack-tag">PMPro Membership</span>
<span class="cs-stack-tag">our weather API</span>
<span class="cs-stack-tag">Price Scraper</span>
<span class="cs-stack-tag">Email Reports</span>
<span class="cs-stack-tag">Climate Zone DB</span>
</div>
</div>
<div>
<img src="../assets/images/port-gardenbuddy.jpg" alt="GardenBuddy.au garden management platform" style="width:100%;border-radius:var(--r-xl);box-shadow:var(--shadow-lg);" loading="lazy">
</div>
</div>
</div>
</section>
<!-- HOW IT WORKS -->
<section class="section section--alt" aria-labelledby="how-heading">
<div class="container">
<p class="eyebrow">How It Works</p>
<h2 id="how-heading">From postcode to planting advice in three steps</h2>
<div class="cs-two-col">
<div>
<div class="cs-flow">
<div class="cs-flow-step">
<div class="cs-flow-num">1</div>
<div>
<div class="cs-flow-title">Enter your postcode</div>
<div class="cs-flow-desc">The platform looks up the climate zone for that postcode from a national database. Australia has eight climate zones. Subtropical SE Queensland is zone 2, temperate Melbourne is zone 6, and so on. Every piece of planting advice, every pest risk threshold, and every growing guide is then filtered to match your zone.</div>
</div>
</div>
<div class="cs-flow-step">
<div class="cs-flow-num">2</div>
<div>
<div class="cs-flow-title">Set up your garden beds</div>
<div class="cs-flow-desc">Add one or more garden beds with dimensions, soil type, and sun exposure. Then add plants to each bed: the variety, planting date, and how many seeds or seedlings went in. From that point, the platform tracks growth stages automatically from growing degree day data it pulls off the weather API. You don't update anything by hand.</div>
</div>
</div>
<div class="cs-flow-step">
<div class="cs-flow-num">3</div>
<div>
<div class="cs-flow-title">Get live recommendations</div>
<div class="cs-flow-desc">Current temperature and humidity from my weather API feed the pest pressure model. If conditions favour aphids or fungal disease for your zone, you get an alert. The "Plant Now" panel shows what's in season for your postcode this month. The weekly Gardener Digest email summarises conditions, upcoming plant tasks, and current supermarket prices for what you are growing.</div>
</div>
</div>
<div class="cs-flow-step">
<div class="cs-flow-num">4</div>
<div>
<div class="cs-flow-title">Log your harvests</div>
<div class="cs-flow-desc">Every harvest gets logged: the vegetable, the weight in kilos, and the date. The platform calculates your ROI: what you grew versus what you'd have paid at the supermarket for the same quantity. The price comparison uses the live scraped price data, not a fixed number.</div>
</div>
</div>
</div>
</div>
<div>
<div style="background:var(--ink-mid);border-radius:var(--r-xl);padding:var(--sp-6);color:var(--white);">
<p class="eyebrow" style="color:rgba(34,197,94,.9);">What the platform tracks</p>
<ul style="list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:14px;">
<li style="display:flex;gap:12px;align-items:flex-start;">
<span style="color:var(--green);font-size:18px;flex-shrink:0;">🌱</span>
<div><strong style="color:var(--white);font-size:14px;">Garden beds and plants</strong><p style="font-size:13px;color:rgba(255,255,255,.55);margin:4px 0 0;line-height:1.5;">Add beds, add plants per bed, track planting dates, growth stages, expected harvest windows.</p></div>
</li>
<li style="display:flex;gap:12px;align-items:flex-start;">
<span style="color:var(--green);font-size:18px;flex-shrink:0;">🌿</span>
<div><strong style="color:var(--white);font-size:14px;">Pest and treatment records</strong><p style="font-size:13px;color:rgba(255,255,255,.55);margin:4px 0 0;line-height:1.5;">Log pest sightings and treatments applied. Checked against live pest pressure alerts.</p></div>
</li>
<li style="display:flex;gap:12px;align-items:flex-start;">
<span style="color:var(--green);font-size:18px;flex-shrink:0;">💧</span>
<div><strong style="color:var(--white);font-size:14px;">Watering, fertilising, mulching</strong><p style="font-size:13px;color:rgba(255,255,255,.55);margin:4px 0 0;line-height:1.5;">Record maintenance events per bed. The platform tracks when each bed was last watered and flags overdue tasks.</p></div>
</li>
<li style="display:flex;gap:12px;align-items:flex-start;">
<span style="color:var(--green);font-size:18px;flex-shrink:0;">⚖️</span>
<div><strong style="color:var(--white);font-size:14px;">Harvest history and ROI</strong><p style="font-size:13px;color:rgba(255,255,255,.55);margin:4px 0 0;line-height:1.5;">Every kilo logged. ROI calculated monthly against current Coles/Woolworths/Aldi/IGA average prices.</p></div>
</li>
</ul>
</div>
</div>
</div>
</div>
</section>
<!-- LIVE DATA SOURCES -->
<section class="section" aria-labelledby="data-heading">
<div class="container">
<p class="eyebrow">Live Data</p>
<h2 id="data-heading">Four live data sources, all integrated</h2>
<p style="max-width:640px;color:var(--grey-600);font-size:17px;line-height:1.7;">Static gardening advice is what most apps give you. I connected GardenBuddy to live data so the advice reflects what's happening now: current weather, current pest conditions, current supermarket prices.</p>
<div class="cs-feature-grid">
<div class="cs-feature-card">
<div class="cs-feature-icon">🌦️</div>
<h4>Weather data from our weather API</h4>
<p>Current temperature, humidity, rainfall, and evapotranspiration from my Lyndhurst Hill weather station. The pest pressure model and the watering schedule calculator read from this API in real time. Members outside Dayboro get BOM sourced conditions for their postcode through the same API layer.</p>
</div>
<div class="cs-feature-card">
<div class="cs-feature-icon">🛒</div>
<h4>Supermarket price scraper</h4>
<p>A separate gardenbuddy-prices plugin I wrote scrapes current vegetable prices from Coles, Woolworths, Aldi, and IGA at regular intervals. The ROI calculator uses these live prices, not fixed averages. If zucchini drops to $1.50/kg at Coles, the ROI on growing it drops with it.</p>
</div>
<div class="cs-feature-card">
<div class="cs-feature-icon">🐛</div>
<h4>Pest pressure model</h4>
<p>The gardenbuddy-pests plugin maintains a model of pest activity thresholds by climate zone. Current temperature and humidity from the weather API feed into the model. If conditions are in the danger range for aphids, fungal disease, or caterpillar activity in zone 2, members in that zone get an alert.</p>
</div>
<div class="cs-feature-card">
<div class="cs-feature-icon">🗓️</div>
<h4>Planting calendar by postcode</h4>
<p>The growzone-landing-pages plugin generates planting guides per climate zone. Enter a postcode, get a "what to plant this month" recommendation calibrated to the eight Australian climate zones, not just my own subtropical corner of SE Queensland.</p>
</div>
<div class="cs-feature-card">
<div class="cs-feature-icon">📧</div>
<h4>Weekly Gardener Digest</h4>
<p>Built on the same dayboro-email-reports plugin engine I use on dayboro.au. The weekly digest covers current pest pressure, plant tasks due this week, upcoming weather, and supermarket prices for the vegetables the member is growing. It's personalised per member from their garden bed contents.</p>
</div>
<div class="cs-feature-card">
<div class="cs-feature-icon">🧑‍🌾</div>
<h4>Demo garden</h4>
<p>A fully populated example garden showing every feature: beds, plants at different growth stages, past harvest records, pest alerts, and an ROI report. New users can explore the demo garden without signing up, so they see exactly what the platform does before they commit.</p>
</div>
</div>
<div class="cs-honest">
<div class="cs-honest-label">Version 2: what changed</div>
<p>Version 1 was a set of static calculators using weather data files from dayboro.au. It worked for Dayboro but not for anyone on a different postcode. Version 2 was a full (re)-build: a national climate zone database, a weather API layer that can serve conditions for any Australian postcode, and a proper user account system with garden bed management. The plugin version number (v2.0.6) reflects this. It isn't an incremental update, it's a different product.</p>
</div>
</div>
</section>
<!-- TECH STACK -->
<section class="section section--alt" aria-labelledby="stack-heading">
<div class="container">
<p class="eyebrow">Under the Hood</p>
<h2 id="stack-heading">Six custom plugins, one platform</h2>
<p style="max-width:640px;color:var(--grey-600);font-size:17px;line-height:1.7;">I built the platform entirely on WordPress with custom plugins. No SaaS garden service behind it, no app framework from someone else. Every piece of it is code I wrote and own. There's no licence fee sitting under it that isn't mine.</p>
<div class="cs-feature-grid" style="margin-top:var(--sp-6);">
<div class="cs-feature-card">
<h4>garden-buddy (core)</h4>
<p>The main plugin, "Buddy the Sprout" v2.0.6. Garden bed management, plant tracking, growth stage calculation, harvest logging, ROI reports, the My Garden dashboard, and everything members see and click. 20+ shortcodes covering the whole platform.</p>
</div>
<div class="cs-feature-card">
<h4>gardenbuddy-pests</h4>
<p>Pest pressure model by climate zone. Temperature and humidity thresholds for 12 common garden pests. It reads the weather API to flag active risk conditions. Alerts appear in the My Garden dashboard and the weekly email.</p>
</div>
<div class="cs-feature-card">
<h4>gardenbuddy-prices</h4>
<p>Supermarket price scraper. Tracks current retail prices for 40+ vegetables across Coles, Woolworths, Aldi, and IGA. Feeds the ROI calculator and the monthly price report section of the Gardener Digest.</p>
</div>
<div class="cs-feature-card">
<h4>gardenbuddy-buddy-check</h4>
<p>A health check plugin that monitors the platform's data pipelines (weather API connectivity, price scraper freshness, cron job execution) and surfaces any failures in the WordPress admin before members notice them.</p>
</div>
<div class="cs-feature-card">
<h4>growzone-landing-pages</h4>
<p>Generates landing pages for each of the eight Australian climate zones and for specific postcodes, tuned for organic search. "What to grow in zone 6 this month" style pages that bring gardeners to the platform.</p>
</div>
<div class="cs-feature-card">
<h4>dayboro-email-reports (shared)</h4>
<p>The same email reports engine I run across dayboro.au. Queued sending, personalised content per subscriber, open tracking. On GardenBuddy it generates the weekly Gardener Digest with each member's own garden data.</p>
</div>
</div>
<div class="cs-divider"></div>
<h3 style="margin-bottom:var(--sp-3);">Full technology list</h3>
<div class="cs-stack">
<span class="cs-stack-tag">WordPress 6.x</span>
<span class="cs-stack-tag">PHP 8.4</span>
<span class="cs-stack-tag">MariaDB</span>
<span class="cs-stack-tag">PMPro Membership</span>
<span class="cs-stack-tag">Elementor Pro</span>
<span class="cs-stack-tag">our weather API</span>
<span class="cs-stack-tag">Redis cache</span>
<span class="cs-stack-tag">Custom price scraper</span>
<span class="cs-stack-tag">Australian climate zone DB</span>
<span class="cs-stack-tag">Custom email queue</span>
<span class="cs-stack-tag">BOM weather data</span>
<span class="cs-stack-tag">DirectAdmin</span>
<span class="cs-stack-tag">Google Site Kit</span>
</div>
</div>
</section>
<!-- CTA -->
<section class="section section--dark" aria-labelledby="cta-heading">
<div class="container">
<div class="cs-cta">
<p class="eyebrow" style="color:rgba(34,197,94,.9);justify-content:center;">What we can build for you</p>
<h2 id="cta-heading">A membership platform with live data baked in.</h2>
<p>The GardenBuddy architecture (custom plugin, live data API, personalised email, content by postcode, PMPro membership) is a pattern I've now built twice, whilst the code stays mine to reuse on the next project. If your product involves connecting a member to live local data and giving them a personalised dashboard, this is the stack I'd use.</p>
<div style="display:flex;gap:12px;justify-content:center;flex-wrap:wrap;">
<a href="../contact.html" class="btn btn-primary">Talk to us about your project</a>
<a href="../plugin-development.html" class="btn btn-secondary">Custom plugin development</a>
</div>
</div>
</div>
</section>
<footer class="footer" aria-label="Site footer">
<div class="container">
<div class="footer__grid">
<div class="footer__brand">
<img src="../assets/images/logo-cropped.jpg" alt="HELP4BIS" width="140" height="38">
<p>Managed WordPress hosting and maintenance for Australian small businesses. Brisbane based, personal service, WordPress specialist, Brisbane.</p>
<p style="font-size:13px; color:rgba(255,255,255,.4);">Dutch Digital Dynamics Pty Ltd · ABN 86 081 237 087</p>
</div>
<div class="footer__col">
<h4>Services</h4>
<ul class="footer__links">
<li><a href="../managed-wordpress.html">Tailored Website Management</a></li>
<li><a href="../care-plans.html">WP Care Plans</a></li>
<li><a href="../sos-fix.html">WP SOS Fix</a></li>
<li><a href="../ai-integration.html">AI Integration</a></li>
<li><a href="../plugin-development.html">Plugin Development</a></li> </ul>
</div>
<div class="footer__col">
<h4>Company</h4>
<ul class="footer__links">
<li><a href="../about.html">About Us</a></li>
<li><a href="../index.html#portfolio">Our Work</a></li>
<li><a href="../index.html#testimonials">Client Feedback</a></li>
<li><a href="../blog/index.html">Blog</a></li>
<li><a href="../contact.html">Contact</a></li>
</ul>
</div>
<div class="footer__col">
<h4>Contact</h4>
<ul class="footer__links">
<li><a href="mailto:project@help4bis.com">project@help4bis.com</a></li>
<li><a href="../contact.html">Submit a Brief</a></li>
<li><a href="../sos-fix.html">Emergency Fix</a></li>
</ul>
<p style="margin-top:1rem; font-size:13px; color:rgba(255,255,255,.4);">Brisbane, Queensland<br>Response within 24 business hours</p>
</div>
</div>
<div class="footer__bottom">
<span>© 2026 HELP4BIS, a trading name of Dutch Digital Dynamics Pty Ltd · ABN 86 081 237 087</span>
<span><a href="../privacy.html">Privacy Policy</a> · <a href="../terms.html">Terms</a></span>
</div>
</div>
</footer>
<button id="back-to-top" aria-label="Back to top" style="position:fixed;bottom:24px;right:24px;width:44px;height:44px;background:var(--red);border:none;border-radius:50%;color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .3s ease;box-shadow:var(--shadow-md);">
<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="18 15 12 9 6 15"/></svg>
</button>
<script src="../assets/js/main.js"></script>
<script src="../analytics/tracker.js" defer></script>
</body>
</html>
+519
View File
@@ -0,0 +1,519 @@
<!DOCTYPE html>
<!-- Version: 1.2.0 | Created: 2026-05-05 | Updated: 2026-08-16 -->
<html lang="en-AU">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>LocalBuddy Case Study | HELP4BIS</title>
<meta name="description" content="How I built LocalBuddy.au: a community SaaS platform for Australian councils, community groups, and neighbourhoods. Events, directories, marketplace, and Matrix messaging, multi tenant, from $0 to $249/month.">
<meta name="author" content="HELP4BIS">
<meta name="publisher" content="Dutch Digital Dynamics Pty Ltd">
<meta name="language" content="en-AU">
<meta name="geo.region" content="AU-QLD">
<link rel="canonical" href="https://help4bis.com/work/localbuddy-au.html">
<meta name="robots" content="index, follow">
<meta property="og:type" content="website">
<meta property="og:url" content="https://help4bis.com/work/localbuddy-au.html">
<meta property="og:site_name" content="HELP4BIS">
<meta property="og:title" content="LocalBuddy Case Study | HELP4BIS">
<meta property="og:description" content="A community SaaS platform built in Brisbane for Australian councils and community groups: events, directories, marketplace, and secure messaging in one package.">
<meta property="og:image" content="https://help4bis.com/assets/images/port-localbuddy.png">
<meta property="og:locale" content="en_AU">
<link rel="icon" type="image/jpeg" href="../assets/images/logo-favicon.jpg"> <link rel="stylesheet" href="../assets/css/style.css">
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "WebPage",
"@id": "https://help4bis.com/work/localbuddy-au.html#webpage",
"url": "https://help4bis.com/work/localbuddy-au.html",
"name": "LocalBuddy Case Study, HELP4BIS",
"description": "Community SaaS platform for Australian councils and community groups: events, business directory, marketplace, and Matrix messaging.",
"isPartOf": {"@id": "https://help4bis.com/#website"},
"breadcrumb": {
"@type": "BreadcrumbList",
"itemListElement": [
{"@type": "ListItem", "position": 1, "name": "Home", "item": "https://help4bis.com/"},
{"@type": "ListItem", "position": 2, "name": "Our Work", "item": "https://help4bis.com/#portfolio"},
{"@type": "ListItem", "position": 3, "name": "LocalBuddy", "item": "https://help4bis.com/work/localbuddy-au.html"}
]
}
}
</script>
<style>
.cs-hero {
background: linear-gradient(160deg, var(--ink) 0%, var(--ink-mid) 60%, #1a1500 100%);
padding: var(--sp-16) 0 var(--sp-12);
position: relative; overflow: hidden;
}
.cs-hero::before {
content: ''; position: absolute; top: -30%; right: -15%;
width: 60%; height: 200%;
background: radial-gradient(circle, rgba(245,158,11,.06) 0%, transparent 65%);
pointer-events: none;
}
.cs-breadcrumb {
font-size: 13px; color: rgba(255,255,255,.45);
margin-bottom: var(--sp-5); display: flex; align-items: center; gap: 8px;
}
.cs-breadcrumb a { color: rgba(255,255,255,.45); }
.cs-breadcrumb a:hover { color: var(--white); }
.cs-breadcrumb span { color: rgba(255,255,255,.25); }
.cs-hero h1 { color: var(--white); max-width: 820px; margin-bottom: var(--sp-4); }
.cs-hero-sub {
font-size: clamp(16px, 2vw, 20px); color: rgba(255,255,255,.65);
max-width: 680px; line-height: 1.65; margin-bottom: var(--sp-6);
}
.cs-hero-actions { display: flex; gap: 12px; flex-wrap: wrap; }
.btn-amber {
background: linear-gradient(135deg, #F59E0B, #d97706);
color: #1a1200; border-color: transparent;
box-shadow: 0 4px 14px rgba(245,158,11,.35);
font-weight: 700;
}
.btn-amber:hover {
background: linear-gradient(135deg, #d97706, #b45309);
color: #1a1200; transform: translateY(-2px);
}
.cs-kpis {
display: grid; grid-template-columns: repeat(2, 1fr);
gap: 16px; margin-top: var(--sp-8); padding-top: var(--sp-8);
border-top: 1px solid rgba(255,255,255,.08);
}
@media (min-width: 640px) { .cs-kpis { grid-template-columns: repeat(4, 1fr); } }
.cs-kpi { text-align: center; }
.cs-kpi-value {
font-family: var(--font-head); font-size: clamp(32px, 4vw, 52px);
font-weight: 900; color: #F59E0B; line-height: 1; letter-spacing: -0.04em;
}
.cs-kpi-label {
font-size: 12px; font-weight: 600; text-transform: uppercase;
letter-spacing: .12em; color: rgba(255,255,255,.45); margin-top: 6px;
}
.cs-feature-grid {
display: grid; grid-template-columns: 1fr; gap: 24px; margin-top: var(--sp-6);
}
@media (min-width: 640px) { .cs-feature-grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 900px) { .cs-feature-grid { grid-template-columns: repeat(3, 1fr); } }
.cs-feature-card {
background: var(--white); border: 1px solid var(--grey-100);
border-radius: var(--r-lg); padding: 24px; box-shadow: var(--shadow-card);
}
.cs-feature-card h4 { font-size: 15px; margin-bottom: 8px; color: var(--ink); }
.cs-feature-card p { font-size: 14px; color: var(--grey-600); line-height: 1.6; margin: 0; }
.cs-feature-icon {
width: 36px; height: 36px; background: var(--grey-50); border-radius: var(--r-md);
display: flex; align-items: center; justify-content: center;
margin-bottom: 14px; font-size: 18px;
}
.cs-pricing-grid {
display: grid; grid-template-columns: 1fr; gap: 20px; margin-top: var(--sp-6);
}
@media (min-width: 640px) { .cs-pricing-grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 900px) { .cs-pricing-grid { grid-template-columns: repeat(4, 1fr); } }
.cs-tier {
background: var(--white); border: 1px solid var(--grey-100);
border-radius: var(--r-lg); padding: 20px; box-shadow: var(--shadow-sm);
}
.cs-tier--featured {
border-color: #F59E0B; box-shadow: 0 0 0 1px #F59E0B, var(--shadow-card);
}
.cs-tier-price {
font-family: var(--font-head); font-size: 28px; font-weight: 800;
color: var(--ink); letter-spacing: -0.03em; margin: 8px 0 4px;
}
.cs-tier-price span { font-size: 14px; font-weight: 400; color: var(--grey-600); }
.cs-tier h5 { font-size: 14px; font-weight: 700; color: var(--grey-600); text-transform: uppercase; letter-spacing: .08em; margin: 0; }
.cs-tier-target { font-size: 13px; color: var(--grey-600); margin: 0 0 12px; }
.cs-tier-features { list-style: none; padding: 0; margin: 12px 0 0; }
.cs-tier-features li { font-size: 13px; color: var(--grey-700); padding: 4px 0; border-top: 1px solid var(--grey-50); }
.cs-stack { display: flex; flex-wrap: wrap; gap: 8px; margin-top: var(--sp-4); }
.cs-stack-tag {
background: var(--grey-50); border: 1px solid var(--grey-100);
border-radius: var(--r-full); padding: 6px 14px; font-size: 13px; font-weight: 500; color: var(--grey-600);
}
.cs-two-col {
display: grid; grid-template-columns: 1fr; gap: var(--sp-8); align-items: start;
}
@media (min-width: 768px) {
.cs-two-col { grid-template-columns: 1fr 1fr; }
.cs-two-col--wide { grid-template-columns: 3fr 2fr; }
}
.cs-quote {
border-left: 3px solid #F59E0B;
padding: var(--sp-4) var(--sp-5); background: rgba(245,158,11,.04);
border-radius: 0 var(--r-md) var(--r-md) 0; margin: var(--sp-5) 0;
}
.cs-quote p { font-size: 17px; line-height: 1.7; color: var(--grey-800); font-style: italic; margin: 0; }
.cs-honest {
background: var(--grey-50); border: 1px solid var(--grey-100);
border-radius: var(--r-lg); padding: var(--sp-4) var(--sp-5); margin: var(--sp-5) 0;
}
.cs-honest-label {
font-size: 11px; font-weight: 700; text-transform: uppercase;
letter-spacing: .12em; color: var(--grey-400); margin-bottom: 8px;
}
.cs-honest p { font-size: 14px; color: var(--grey-600); line-height: 1.65; margin: 0; }
.cs-cta {
background: linear-gradient(135deg, var(--ink-mid), var(--ink));
border-radius: var(--r-2xl); padding: var(--sp-10) var(--sp-8); text-align: center;
}
.cs-cta h2 { color: var(--white); margin-bottom: var(--sp-4); }
.cs-cta p { color: rgba(255,255,255,.65); max-width: 560px; margin: 0 auto var(--sp-6); font-size: 17px; line-height: 1.7; }
</style>
</head>
<body>
<!-- NAV -->
<nav class="nav" role="navigation" aria-label="Main navigation">
<div class="nav__inner">
<a class="nav__logo" href="../index.html" aria-label="HELP4BIS home">
<img src="../assets/images/logo-cropped.jpg" alt="HELP4BIS" width="140" height="38">
</a>
<ul class="nav__links" id="nav-links" role="list">
<li class="nav__dropdown">
<button class="nav__trigger" aria-haspopup="true" aria-expanded="false">Services <svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"/></svg></button>
<ul class="nav__dropdown-menu" role="menu">
<li class="nav__menu-group">WordPress</li>
<li><a href="../managed-wordpress.html" role="menuitem">Tailored Website Management</a></li>
<li><a href="../care-plans.html" role="menuitem">WP Care Plans <span class="menu-price">from $49/mo</span></a></li>
<li><a href="../sos-fix.html" role="menuitem">WP SOS Fix <span class="menu-price">$97 flat</span></a></li>
<li><a href="../ai-integration.html" role="menuitem">AI Integration</a></li>
<li><a href="../plugin-development.html" role="menuitem">Custom Plugin Development</a></li> </ul>
</li>
<li><a href="../about.html">About</a></li>
<li><a href="../index.html#portfolio">Our Work</a></li>
<li><a href="../index.html#pricing">Pricing</a></li>
<li><a href="../blog/index.html">Blog</a></li>
<li><a href="../your-first-week-with-ai.html">AI Guide</a></li>
<li><a href="../contact.html">Contact</a></li>
<li class="nav__cta-mobile" aria-hidden="true">
<a href="../contact.html" class="btn btn-primary">Get Started</a>
<a href="../sos-fix.html" class="btn btn-secondary">SOS Fix, $97</a>
</li>
</ul>
<div class="nav__cta">
<a href="../sos-fix.html" class="btn btn-secondary btn-sm">SOS Fix, $97</a>
<a href="../contact.html" class="btn btn-primary btn-sm">Get Started</a>
</div>
<button class="nav__burger" id="nav-burger" aria-label="Open menu" aria-expanded="false" aria-controls="nav-links">
<span></span><span></span><span></span>
</button>
</div>
</nav>
<!-- HERO -->
<section class="cs-hero" aria-labelledby="cs-heading">
<div class="container">
<div class="cs-breadcrumb">
<a href="../index.html">Home</a>
<span>›</span>
<a href="../index.html#portfolio">Our Work</a>
<span>›</span>
<span style="color:rgba(255,255,255,.7);">LocalBuddy</span>
</div>
<p class="eyebrow" style="color:rgba(245,158,11,.9);">Case Study: Community SaaS Platform</p>
<h1 id="cs-heading">LocalBuddy.<br>Community infrastructure<br>for Australian neighbourhoods.</h1>
<p class="cs-hero-sub">A multi tenant community platform I built in Brisbane for local councils, community groups, and neighbourhood associations. Events and RSVPs, a business directory, a buy, sell and swap marketplace, and secure messaging on Matrix, all in one package, running under their own branding.</p>
<div class="cs-hero-actions">
<a href="https://localbuddy.au" target="_blank" rel="noopener" class="btn btn-amber">Visit localbuddy.au →</a>
<a href="../contact.html" class="btn btn-secondary">Ask about this for your community</a>
</div>
<div class="cs-kpis">
<div class="cs-kpi">
<div class="cs-kpi-value">AU</div>
<div class="cs-kpi-label">Built for Australia</div>
</div>
<div class="cs-kpi">
<div class="cs-kpi-value">$0</div>
<div class="cs-kpi-label">Free Tier Exists</div>
</div>
<div class="cs-kpi">
<div class="cs-kpi-value">4</div>
<div class="cs-kpi-label">Core Modules</div>
</div>
<div class="cs-kpi">
<div class="cs-kpi-value">Multi</div>
<div class="cs-kpi-label">Tenant Architecture</div>
</div>
</div>
</div>
</section>
<!-- OVERVIEW -->
<section class="section" aria-labelledby="overview-heading">
<div class="container">
<div class="cs-two-col cs-two-col--wide">
<div>
<p class="eyebrow">Overview</p>
<h2 id="overview-heading">What it actually is</h2>
<p class="large">Most community groups I deal with (Lions clubs, P&amp;C associations, neighbourhood watch groups, rural fire brigades) run their communication across three or four different platforms that don't talk to each other. Facebook for announcements, a separate spreadsheet for the directory, email chains for RSVPs, and WhatsApp for the daily chat that nobody outside can see.</p>
<p>I built LocalBuddy to consolidate those into a single platform that runs under the community's own branding. The council or group gets their own subdomain, their own colour scheme, and their own data. The underlying infrastructure is shared across tenants, which is where the (re)-usability of the platform keeps the cost down. They look independent even though they aren't running their own server.</p>
<p>The four modules cover the four things communities actually need: knowing what's on this weekend, finding a local tradie, selling a second hand lawnmower, and talking to each other without the feed algorithm deciding who sees what.</p>
<div class="cs-quote">
<p>"Nextdoor exists. Facebook Groups exist. Neither is owned by the community, neither runs on Australian servers, and neither lets the group admin control what data is collected and where it goes. That is the gap."</p>
</div>
</div>
<div>
<img src="../assets/images/port-localbuddy.png" alt="LocalBuddy community platform" style="width:100%;border-radius:var(--r-xl);box-shadow:var(--shadow-lg);" loading="lazy">
<div class="cs-stack" style="margin-top:20px;">
<span class="cs-stack-tag">Static HTML</span>
<span class="cs-stack-tag">Matrix Protocol</span>
<span class="cs-stack-tag">Multi-Tenant SaaS</span>
<span class="cs-stack-tag">REST API</span>
<span class="cs-stack-tag">Custom Branding</span>
<span class="cs-stack-tag">Australian Hosted</span>
</div>
</div>
</div>
</div>
</section>
<!-- FOUR MODULES -->
<section class="section section--alt" aria-labelledby="modules-heading">
<div class="container">
<p class="eyebrow">Core Modules</p>
<h2 id="modules-heading">Four things communities actually need</h2>
<p style="max-width:640px;color:var(--grey-600);font-size:17px;line-height:1.7;margin-bottom:0;">I designed each module for how a community group actually works. No feature chasing, no "engagement metrics", just the tools that reduce the admin burden of running a local organisation.</p>
<div class="cs-feature-grid">
<div class="cs-feature-card">
<div class="cs-feature-icon">📅</div>
<h4>Events + RSVP + Calendar</h4>
<p>Post events, collect RSVPs, send reminders. The calendar view shows what's on this week and this month. RSVP confirmation emails go out automatically. The admin sees a live headcount. No spreadsheet required.</p>
</div>
<div class="cs-feature-card">
<div class="cs-feature-icon">🏪</div>
<h4>Business Directory with Reviews</h4>
<p>The local business directory with categories, search, contact details, and community reviews. Businesses can claim their listing. The directory admin approves new listings and removes stale ones. Replaces the printed community guide.</p>
</div>
<div class="cs-feature-card">
<div class="cs-feature-icon">🔄</div>
<h4>Buy, Sell, Swap Marketplace</h4>
<p>A neighbourhood marketplace for second hand goods, free items, and services. Listings expire automatically. Photo uploads supported. Not Facebook Marketplace, but it's yours: no algorithm, no data mining, no ads.</p>
</div>
<div class="cs-feature-card">
<div class="cs-feature-icon">💬</div>
<h4>Secure Messaging on Matrix</h4>
<p>Group and private messaging runs on the Matrix protocol. Open standard, federated, encrypted end to end. The community's messages are stored on Australian infrastructure I manage. No vendor lock in; the protocol is publicly documented.</p>
</div>
<div class="cs-feature-card">
<div class="cs-feature-icon">🎨</div>
<h4>Custom Branding Per Tenant</h4>
<p>Each community gets their own subdomain and their own colour scheme. The Dayboro Lions Club looks like the Dayboro Lions Club, not "powered by LocalBuddy with a logo in the corner." Branding is configurable from the tenant admin panel.</p>
</div>
<div class="cs-feature-card">
<div class="cs-feature-icon">📊</div>
<h4>Analytics Dashboard</h4>
<p>Tenant admins can see how the platform is being used: active members, event attendance trends, directory search terms, marketplace listing activity. The data belongs to the tenant and stays in Australia, on infrastructure I run.</p>
</div>
</div>
</div>
</section>
<!-- PRICING -->
<section class="section" aria-labelledby="pricing-heading">
<div class="container">
<p class="eyebrow">Pricing</p>
<h2 id="pricing-heading">Tiers built for community budgets</h2>
<p style="max-width:640px;color:var(--grey-600);font-size:17px;line-height:1.7;margin-bottom:0;">Community groups don't have IT budgets, so I priced the tiers around that. The free tier costs nothing and does the real job. Councils and larger organisations that need SLAs, custom domains, and support have a path to paid tiers that reflects the value, whilst the free tier stays functional rather than a crippled demo.</p>
<div class="cs-pricing-grid">
<div class="cs-tier">
<h5>Community</h5>
<div class="cs-tier-price">$0 <span>/month</span></div>
<p class="cs-tier-target">Clubs, sporting groups, neighbourhood associations</p>
<ul class="cs-tier-features">
<li>All four modules</li>
<li>Up to 200 members</li>
<li>LocalBuddy subdomain</li>
<li>Standard support</li>
</ul>
</div>
<div class="cs-tier">
<h5>Group</h5>
<div class="cs-tier-price">$49 <span>/month</span></div>
<p class="cs-tier-target">Active community groups, RSLs, Lions clubs</p>
<ul class="cs-tier-features">
<li>Everything in Community</li>
<li>Up to 1,000 members</li>
<li>Custom domain</li>
<li>Custom branding</li>
<li>Priority support</li>
</ul>
</div>
<div class="cs-tier cs-tier--featured">
<h5>Organisation</h5>
<div class="cs-tier-price">$149 <span>/month</span></div>
<p class="cs-tier-target">Business chambers, regional groups, large associations</p>
<ul class="cs-tier-features">
<li>Everything in Group</li>
<li>Unlimited members</li>
<li>Analytics dashboard</li>
<li>API access</li>
<li>SLA guarantee</li>
</ul>
</div>
<div class="cs-tier">
<h5>Council</h5>
<div class="cs-tier-price">$249 <span>/month</span></div>
<p class="cs-tier-target">Local councils, regional development boards</p>
<ul class="cs-tier-features">
<li>Everything in Organisation</li>
<li>Multi suburb deployment</li>
<li>White label (no LocalBuddy branding)</li>
<li>Dedicated support contact</li>
<li>Custom feature development</li>
</ul>
</div>
</div>
</div>
</section>
<!-- ARCHITECTURE -->
<section class="section section--alt" aria-labelledby="arch-heading">
<div class="container">
<p class="eyebrow">Under the Hood</p>
<h2 id="arch-heading">Multi tenant architecture</h2>
<div class="cs-two-col">
<div>
<p>LocalBuddy runs on a multi tenant architecture where all tenants share the same underlying infrastructure but are isolated at the data layer. A community in Dayboro can't see the data of a community in Toowoomba. As the platform admin, I can see all tenants for operational purposes.</p>
<p>The landing page at localbuddy.au is a static HTML site I wrote. No WordPress, no framework. It loads fast, it doesn't break, and it doesn't need updating every time a WordPress plugin releases a security patch. I keep the platform application on separate infrastructure behind the scenes.</p>
<p>Matrix for messaging was my deliberate choice. The Matrix protocol is open, federated, and well documented. If LocalBuddy ever shut down or a community wanted to host their messaging themselves, they could export their room history and move to any Matrix compatible server. That isn't possible with WhatsApp or Facebook Messenger.</p>
</div>
<div>
<div class="cs-feature-card" style="margin-bottom:16px;">
<div class="cs-feature-icon">🏗️</div>
<h4>Tenant isolation</h4>
<p>Each tenant has their own database schema prefix. Events, directory listings, marketplace items, and member records are scoped per tenant. Cross-tenant queries are not possible from tenant-level code.</p>
</div>
<div class="cs-feature-card" style="margin-bottom:16px;">
<div class="cs-feature-icon">🌐</div>
<h4>Custom domains</h4>
<p>Paid tiers get their own subdomain or custom domain. The platform provisions SSL automatically. From the community's perspective, it's their website.</p>
</div>
<div class="cs-feature-card">
<div class="cs-feature-icon">🔐</div>
<h4>Australian data sovereignty</h4>
<p>I store all data in Australia. No content moderation AI, no advertising targeting, no data sharing with third parties. The community owns their member data.</p>
</div>
</div>
</div>
<div class="cs-honest">
<div class="cs-honest-label">Current status</div>
<p>LocalBuddy is in active development. The platform architecture and landing page are built. The deployment model and tenant provisioning system are functional. The first community tenants are the Dayboro Lions Club directory (which runs on the same infrastructure as dayboro.au) and a pilot group in the Moreton Bay region. I haven't opened public sign up for new communities without prior contact. That's deliberate while I refine the onboarding process.</p>
</div>
</div>
</section>
<!-- TECH STACK -->
<section class="section" aria-labelledby="stack-heading">
<div class="container">
<p class="eyebrow">Technical Details</p>
<h2 id="stack-heading">Full stack</h2>
<div class="cs-two-col">
<div>
<h4 style="font-size:15px;margin-bottom:12px;color:var(--ink);">Landing page</h4>
<div class="cs-stack" style="margin-top:0;">
<span class="cs-stack-tag">Static HTML</span>
<span class="cs-stack-tag">Vanilla CSS</span>
<span class="cs-stack-tag">No framework dependency</span>
<span class="cs-stack-tag">Australian hosted</span>
</div>
<h4 style="font-size:15px;margin-bottom:12px;margin-top:24px;color:var(--ink);">Platform application</h4>
<div class="cs-stack" style="margin-top:0;">
<span class="cs-stack-tag">REST API backend</span>
<span class="cs-stack-tag">Multi-tenant database</span>
<span class="cs-stack-tag">Matrix protocol (messaging)</span>
<span class="cs-stack-tag">Platform API layer</span>
</div>
</div>
<div>
<h4 style="font-size:15px;margin-bottom:12px;color:var(--ink);">Infrastructure</h4>
<div class="cs-stack" style="margin-top:0;">
<span class="cs-stack-tag">DirectAdmin, brisbane01</span>
<span class="cs-stack-tag">Let's Encrypt SSL</span>
<span class="cs-stack-tag">Australian data centre</span>
<span class="cs-stack-tag">Automatic subdomain provisioning</span>
</div>
</div>
</div>
</div>
</section>
<!-- CTA -->
<section class="section section--alt">
<div class="container">
<div class="cs-cta">
<h2>Running a community group or local council?</h2>
<p>If you're managing a community organisation on a mix of Facebook, email chains, and shared Google Docs, I built LocalBuddy for exactly that situation. Get in touch and I'll talk you through whether it fits.</p>
<div class="cs-hero-actions" style="justify-content:center;">
<a href="https://localbuddy.au" target="_blank" rel="noopener" class="btn btn-primary btn-lg">See the platform</a>
<a href="../contact.html" class="btn btn-secondary btn-lg">Talk to us</a>
</div>
</div>
<div style="margin-top:var(--sp-8);text-align:center;">
<a href="../index.html#portfolio" style="font-size:14px;color:var(--grey-400);">← Back to all work</a>
</div>
</div>
</section>
<!-- FOOTER -->
<footer class="footer" aria-label="Site footer">
<div class="container">
<div class="footer__grid">
<div class="footer__brand">
<img src="../assets/images/logo-cropped.jpg" alt="HELP4BIS" width="140" height="38">
<p>Managed WordPress hosting and maintenance for Australian small businesses. Brisbane based, personal service, WordPress specialist.</p>
<p style="margin-top:8px; font-size:12px; color:rgba(255,255,255,.25);">Dutch Digital Dynamics Pty Ltd · ABN 86 081 237 087</p>
</div>
<div class="footer__col">
<h4>Services</h4>
<ul class="footer__links">
<li><a href="../managed-wordpress.html">Tailored Website Management</a></li>
<li><a href="../care-plans.html">WP Care Plans</a></li>
<li><a href="../sos-fix.html">WP SOS Fix</a></li>
<li><a href="../ai-integration.html">AI Integration</a></li>
<li><a href="../plugin-development.html">Plugin Development</a></li>
</ul>
</div>
<div class="footer__col">
<h4>Our Work</h4>
<ul class="footer__links">
<li><a href="dayboro-au.html">Dayboro.au</a></li>
<li><a href="gardenbuddy-au.html">GardenBuddy.au</a></li>
<li><a href="tawnytrails.html">Tawny Trails</a></li>
<li><a href="rds-ink.html">Running Duck Studio</a></li>
<li><a href="localbuddy-au.html">LocalBuddy</a></li>
<li><a href="m8chat-au.html">M8Chat</a></li>
<li><a href="nightcap-nm.html">Nightcap Natural Medicine</a></li>
</ul>
</div>
<div class="footer__col">
<h4>Contact</h4>
<ul class="footer__links">
<li><a href="mailto:project@help4bis.com">project@help4bis.com</a></li>
<li><a href="../contact.html">Submit a Brief</a></li>
<li><a href="../sos-fix.html">Emergency Fix</a></li>
</ul>
<p style="margin-top:16px; font-size:12px; color:rgba(255,255,255,.3);">Brisbane, Queensland<br>Response within 24 business hours</p>
</div>
</div>
<div class="footer__bottom">
<span>© 2026 HELP4BIS, a trading name of Dutch Digital Dynamics Pty Ltd · ABN 86 081 237 087</span>
<span><a href="../privacy.html">Privacy</a> · <a href="../terms.html">Terms</a></span>
</div>
</div>
</footer>
<button id="back-to-top" aria-label="Back to top">
<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="18 15 12 9 6 15"/></svg>
</button>
<script src="../assets/js/main.js"></script>
<script src="/analytics/tracker.js" defer></script>
</body>
</html>
+518
View File
@@ -0,0 +1,518 @@
<!DOCTYPE html>
<!-- Version: 1.3.0 | Created: 2026-05-05 | Updated: 2026-08-16 -->
<html lang="en-AU">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>M8Chat Case Study | HELP4BIS</title>
<meta name="description" content="How I built M8Chat: a self hosted Matrix and Element chat server with Jitsi video conferencing and a Flutter mobile app, all running on private Australian infrastructure. No US big tech required.">
<meta name="author" content="HELP4BIS">
<meta name="publisher" content="Dutch Digital Dynamics Pty Ltd">
<meta name="language" content="en-AU">
<meta name="geo.region" content="AU-QLD">
<link rel="canonical" href="https://help4bis.com/work/m8chat-au.html">
<meta name="robots" content="index, follow">
<meta property="og:type" content="website">
<meta property="og:url" content="https://help4bis.com/work/m8chat-au.html">
<meta property="og:site_name" content="HELP4BIS">
<meta property="og:title" content="M8Chat Case Study | HELP4BIS">
<meta property="og:description" content="Self hosted Matrix chat, Jitsi video conferencing and a Flutter mobile app, all running on private Australian servers. No Zoom, no Slack, no data in the US.">
<meta property="og:image" content="https://help4bis.com/assets/images/port-m8chat.png">
<meta property="og:locale" content="en_AU">
<link rel="icon" type="image/jpeg" href="../assets/images/logo-favicon.jpg"> <link rel="stylesheet" href="../assets/css/style.css">
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "WebPage",
"@id": "https://help4bis.com/work/m8chat-au.html#webpage",
"url": "https://help4bis.com/work/m8chat-au.html",
"name": "M8Chat Case Study, HELP4BIS",
"description": "Self hosted Matrix chat, Jitsi video conferencing and a Flutter mobile app on private Australian infrastructure.",
"isPartOf": {"@id": "https://help4bis.com/#website"},
"breadcrumb": {
"@type": "BreadcrumbList",
"itemListElement": [
{"@type": "ListItem", "position": 1, "name": "Home", "item": "https://help4bis.com/"},
{"@type": "ListItem", "position": 2, "name": "Our Work", "item": "https://help4bis.com/#portfolio"},
{"@type": "ListItem", "position": 3, "name": "M8Chat", "item": "https://help4bis.com/work/m8chat-au.html"}
]
}
}
</script>
<style>
.cs-hero {
background: linear-gradient(160deg, var(--ink) 0%, #0f1a2e 60%, #0a0f1a 100%);
padding: var(--sp-16) 0 var(--sp-12);
position: relative; overflow: hidden;
}
.cs-hero::before {
content: ''; position: absolute; top: -30%; right: -15%;
width: 60%; height: 200%;
background: radial-gradient(circle, rgba(99,102,241,.07) 0%, transparent 65%);
pointer-events: none;
}
.cs-breadcrumb {
font-size: 13px; color: rgba(255,255,255,.45);
margin-bottom: var(--sp-5); display: flex; align-items: center; gap: 8px;
}
.cs-breadcrumb a { color: rgba(255,255,255,.45); }
.cs-breadcrumb a:hover { color: var(--white); }
.cs-breadcrumb span { color: rgba(255,255,255,.25); }
.cs-hero h1 { color: var(--white); max-width: 820px; margin-bottom: var(--sp-4); }
.cs-hero-sub {
font-size: clamp(16px, 2vw, 20px); color: rgba(255,255,255,.65);
max-width: 680px; line-height: 1.65; margin-bottom: var(--sp-6);
}
.cs-hero-actions { display: flex; gap: 12px; flex-wrap: wrap; }
.btn-indigo {
background: linear-gradient(135deg, #6366f1, #4f46e5);
color: var(--white); border-color: transparent;
box-shadow: 0 4px 14px rgba(99,102,241,.35);
}
.btn-indigo:hover {
background: linear-gradient(135deg, #4f46e5, #4338ca);
color: var(--white); transform: translateY(-2px);
}
.cs-kpis {
display: grid; grid-template-columns: repeat(2, 1fr);
gap: 16px; margin-top: var(--sp-8); padding-top: var(--sp-8);
border-top: 1px solid rgba(255,255,255,.08);
}
@media (min-width: 640px) { .cs-kpis { grid-template-columns: repeat(4, 1fr); } }
.cs-kpi { text-align: center; }
.cs-kpi-value {
font-family: var(--font-head); font-size: clamp(32px, 4vw, 52px);
font-weight: 900; color: #818cf8; line-height: 1; letter-spacing: -0.04em;
}
.cs-kpi-label {
font-size: 12px; font-weight: 600; text-transform: uppercase;
letter-spacing: .12em; color: rgba(255,255,255,.45); margin-top: 6px;
}
.cs-feature-grid {
display: grid; grid-template-columns: 1fr; gap: 24px; margin-top: var(--sp-6);
}
@media (min-width: 640px) { .cs-feature-grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 900px) { .cs-feature-grid { grid-template-columns: repeat(3, 1fr); } }
.cs-feature-card {
background: var(--white); border: 1px solid var(--grey-100);
border-radius: var(--r-lg); padding: 24px; box-shadow: var(--shadow-card);
}
.cs-feature-card h4 { font-size: 15px; margin-bottom: 8px; color: var(--ink); }
.cs-feature-card p { font-size: 14px; color: var(--grey-600); line-height: 1.6; margin: 0; }
.cs-feature-icon {
width: 36px; height: 36px; background: var(--grey-50); border-radius: var(--r-md);
display: flex; align-items: center; justify-content: center;
margin-bottom: 14px; font-size: 18px;
}
.cs-server-grid {
display: grid; grid-template-columns: 1fr; gap: 16px; margin-top: var(--sp-5);
}
@media (min-width: 640px) { .cs-server-grid { grid-template-columns: repeat(2, 1fr); } }
.cs-server-card {
background: var(--white); border: 1px solid var(--grey-100);
border-radius: var(--r-lg); padding: 20px; box-shadow: var(--shadow-sm);
}
.cs-server-card h5 { font-size: 14px; font-weight: 700; color: var(--ink); margin-bottom: 4px; }
.cs-server-domain { font-size: 13px; color: #6366f1; font-weight: 600; margin-bottom: 8px; font-family: monospace; }
.cs-server-card p { font-size: 13px; color: var(--grey-600); line-height: 1.55; margin: 0; }
.cs-stack { display: flex; flex-wrap: wrap; gap: 8px; margin-top: var(--sp-4); }
.cs-stack-tag {
background: var(--grey-50); border: 1px solid var(--grey-100);
border-radius: var(--r-full); padding: 6px 14px; font-size: 13px; font-weight: 500; color: var(--grey-600);
}
.cs-two-col {
display: grid; grid-template-columns: 1fr; gap: var(--sp-8); align-items: start;
}
@media (min-width: 768px) {
.cs-two-col { grid-template-columns: 1fr 1fr; }
.cs-two-col--wide { grid-template-columns: 3fr 2fr; }
}
.cs-quote {
border-left: 3px solid #6366f1;
padding: var(--sp-4) var(--sp-5); background: rgba(99,102,241,.04);
border-radius: 0 var(--r-md) var(--r-md) 0; margin: var(--sp-5) 0;
}
.cs-quote p { font-size: 17px; line-height: 1.7; color: var(--grey-800); font-style: italic; margin: 0; }
.cs-honest {
background: var(--grey-50); border: 1px solid var(--grey-100);
border-radius: var(--r-lg); padding: var(--sp-4) var(--sp-5); margin: var(--sp-5) 0;
}
.cs-honest-label {
font-size: 11px; font-weight: 700; text-transform: uppercase;
letter-spacing: .12em; color: var(--grey-400); margin-bottom: 8px;
}
.cs-honest p { font-size: 14px; color: var(--grey-600); line-height: 1.65; margin: 0; }
.cs-cta {
background: linear-gradient(135deg, var(--ink-mid), var(--ink));
border-radius: var(--r-2xl); padding: var(--sp-10) var(--sp-8); text-align: center;
}
.cs-cta h2 { color: var(--white); margin-bottom: var(--sp-4); }
.cs-cta p { color: rgba(255,255,255,.65); max-width: 560px; margin: 0 auto var(--sp-6); font-size: 17px; line-height: 1.7; }
</style>
</head>
<body>
<!-- NAV -->
<nav class="nav" role="navigation" aria-label="Main navigation">
<div class="nav__inner">
<a class="nav__logo" href="../index.html" aria-label="HELP4BIS home">
<img src="../assets/images/logo-cropped.jpg" alt="HELP4BIS" width="140" height="38">
</a>
<ul class="nav__links" id="nav-links" role="list">
<li class="nav__dropdown">
<button class="nav__trigger" aria-haspopup="true" aria-expanded="false">Services <svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"/></svg></button>
<ul class="nav__dropdown-menu" role="menu">
<li class="nav__menu-group">WordPress</li>
<li><a href="../managed-wordpress.html" role="menuitem">Tailored Website Management</a></li>
<li><a href="../care-plans.html" role="menuitem">WP Care Plans <span class="menu-price">from $49/mo</span></a></li>
<li><a href="../sos-fix.html" role="menuitem">WP SOS Fix <span class="menu-price">$97 flat</span></a></li>
<li><a href="../ai-integration.html" role="menuitem">AI Integration</a></li>
<li><a href="../plugin-development.html" role="menuitem">Custom Plugin Development</a></li> </ul>
</li>
<li><a href="../about.html">About</a></li>
<li><a href="../index.html#portfolio">Our Work</a></li>
<li><a href="../index.html#pricing">Pricing</a></li>
<li><a href="../blog/index.html">Blog</a></li>
<li><a href="../your-first-week-with-ai.html">AI Guide</a></li>
<li><a href="../contact.html">Contact</a></li>
<li class="nav__cta-mobile" aria-hidden="true">
<a href="../contact.html" class="btn btn-primary">Get Started</a>
<a href="../sos-fix.html" class="btn btn-secondary">SOS Fix, $97</a>
</li>
</ul>
<div class="nav__cta">
<a href="../sos-fix.html" class="btn btn-secondary btn-sm">SOS Fix, $97</a>
<a href="../contact.html" class="btn btn-primary btn-sm">Get Started</a>
</div>
<button class="nav__burger" id="nav-burger" aria-label="Open menu" aria-expanded="false" aria-controls="nav-links">
<span></span><span></span><span></span>
</button>
</div>
</nav>
<!-- HERO -->
<section class="cs-hero" aria-labelledby="cs-heading">
<div class="container">
<div class="cs-breadcrumb">
<a href="../index.html">Home</a>
<span>›</span>
<a href="../index.html#portfolio">Our Work</a>
<span>›</span>
<span style="color:rgba(255,255,255,.7);">M8Chat</span>
</div>
<p class="eyebrow" style="color:rgba(129,140,248,.9);">Case Study: Secure Communications Platform</p>
<h1 id="cs-heading">M8Chat.<br>Chat, video, and mobile,<br>without giving it all to US big tech.</h1>
<p class="cs-hero-sub">A self hosted Matrix messaging server, Jitsi video conferencing and a Flutter mobile app, all running on private Australian VPS infrastructure. No Zoom account, no Slack subscription, no message history sitting in someone else's US data centre.</p>
<div class="cs-hero-actions">
<a href="https://m8chat.au" target="_blank" rel="noopener" class="btn btn-indigo">Visit m8chat.au →</a>
<a href="https://app.m8chat.au" target="_blank" rel="noopener" class="btn btn-secondary">Open the app</a>
</div>
<div class="cs-kpis">
<div class="cs-kpi">
<div class="cs-kpi-value">E2E</div>
<div class="cs-kpi-label">Encrypted</div>
</div>
<div class="cs-kpi">
<div class="cs-kpi-value">AU</div>
<div class="cs-kpi-label">Data Sovereign</div>
</div>
<div class="cs-kpi">
<div class="cs-kpi-value">VPS</div>
<div class="cs-kpi-label">Private Infrastructure</div>
</div>
<div class="cs-kpi">
<div class="cs-kpi-value">Open</div>
<div class="cs-kpi-label">Source Stack</div>
</div>
</div>
</div>
</section>
<!-- OVERVIEW -->
<section class="section" aria-labelledby="overview-heading">
<div class="container">
<div class="cs-two-col cs-two-col--wide">
<div>
<p class="eyebrow">Overview</p>
<h2 id="overview-heading">What it actually is</h2>
<p class="large">Zoom is fine until it isn't. At some point you start wondering where the recordings go, whether Zoom keeps the chat logs for their own purposes, and whether "HIPAA compliant" on a US platform means the same thing it would mean on Australian infrastructure. I hear those questions more from health workers, legal services and community organisations than most vendors admit.</p>
<p>M8Chat is the answer I built for myself and for community use. It runs on the Matrix protocol (open, federated, end to end encrypted) on my own Matrix Homeserver infrastructure in Australia. Video conferencing runs on a separate dedicated VPS. The mobile and web app is my own Flutter Matrix client, deployed as a PWA at app.m8chat.au and available as an APK for Android.</p>
<p>The entire stack is open source. If M8Chat shut down tomorrow, every user could take their conversation history and move to any other Matrix server. The data belongs to the users, not to the platform. That matters to me more than any feature list.</p>
<div class="cs-quote">
<p>"Matrix is a properly decentralised protocol. Your chat history isn't locked to M8Chat the way it's locked to WhatsApp or Slack. That's the design, not a marketing claim."</p>
</div>
</div>
<div>
<img src="../assets/images/port-m8chat.png" alt="M8Chat secure communications platform" style="width:100%;border-radius:var(--r-xl);box-shadow:var(--shadow-lg);" loading="lazy">
<div class="cs-stack" style="margin-top:20px;">
<span class="cs-stack-tag">Matrix Protocol</span>
<span class="cs-stack-tag">Jitsi Video Conferencing</span>
<span class="cs-stack-tag">Flutter (custom client)</span>
<span class="cs-stack-tag">Docker</span>
<span class="cs-stack-tag">Australian VPS</span>
<span class="cs-stack-tag">E2E Encryption</span>
</div>
</div>
</div>
</div>
</section>
<!-- SERVER ARCHITECTURE -->
<section class="section section--alt" aria-labelledby="servers-heading">
<div class="container">
<p class="eyebrow">Infrastructure</p>
<h2 id="servers-heading">What runs where</h2>
<p style="max-width:640px;color:var(--grey-600);font-size:17px;line-height:1.7;margin-bottom:0;">Three separate servers. Each one doing one thing. Chat and video on dedicated VPS instances keeps them from competing for resources, and it means a Jitsi call dropping doesn't take the chat server with it.</p>
<div class="cs-server-grid">
<div class="cs-server-card">
<h5>Matrix homeserver</h5>
<div class="cs-server-domain">chat.m8chat.au</div>
<p>My Matrix homeserver handles all protocol operations: room management, message storage, federation with the broader Matrix network, and push notifications. Containerised, with a solid database backend. This is the core of the platform.</p>
</div>
<div class="cs-server-card">
<h5>Video conferencing</h5>
<div class="cs-server-domain">conf.m8chat.au</div>
<p>A full video conferencing stack on a dedicated VPS, with media bridging, conference management, and session recording. Separate from the chat server, so a heavy video call doesn't affect message delivery.</p>
</div>
<div class="cs-server-card">
<h5>Landing page + app</h5>
<div class="cs-server-domain">m8chat.au · app.m8chat.au</div>
<p>The WordPress landing page and the Flutter PWA run on the Brisbane shared server alongside the rest of the HELP4BIS portfolio. The app connects to the Matrix homeserver via the standard Matrix client API.</p>
</div>
<div class="cs-server-card">
<h5>app2.m8chat.au</h5>
<div class="cs-server-domain">app2.m8chat.au</div>
<p>A staging and alternate deployment of the Flutter app. I use it for testing new builds before they go to the main app subdomain, and it doubles as a fallback endpoint during major app updates.</p>
</div>
</div>
</div>
</section>
<!-- FLUTTER APP -->
<section class="section" aria-labelledby="app-heading">
<div class="container">
<p class="eyebrow">Mobile App</p>
<h2 id="app-heading">The Flutter app</h2>
<div class="cs-two-col">
<div>
<p>The M8Chat app is my own Flutter Matrix client. I build it specifically for this platform, and it has grown with every release since. I control the full codebase: branding, features, release schedule, and what data the app collects (which is nothing beyond what the Matrix protocol requires).</p>
<p>The app is available three ways: as a Flutter PWA at <code>app.m8chat.au</code> (works in any modern browser, and you can add it to the home screen on Android and iOS), as a direct APK download for Android (sideload, no Google Play required), and via the Google Play store.</p>
<p>Core features: text messaging, file sharing, voice messages, end to end encrypted rooms, communities, and video calls that launch with one tap. Video calls open in my conferencing infrastructure without leaving the app.</p>
</div>
<div>
<div class="cs-feature-card" style="margin-bottom:16px;">
<div class="cs-feature-icon">📱</div>
<h4>Three deployment targets</h4>
<p>PWA at app.m8chat.au, APK sideload, and Google Play. Users pick the delivery method that suits their situation. Enterprise users who can't install from the Play Store can use the APK or the browser app.</p>
</div>
<div class="cs-feature-card" style="margin-bottom:16px;">
<div class="cs-feature-icon">🔗</div>
<h4>Jitsi integration</h4>
<p>One tap from a Matrix room starts a video call at conf.m8chat.au. The conference runs on private infrastructure. There's no Zoom account required and no third party call relay involved.</p>
</div>
<div class="cs-feature-card">
<div class="cs-feature-icon">🔄</div>
<h4>Full control of the codebase</h4>
<p>I own the app code. New features get added when they make sense for the users, not on someone else's roadmap. Security patches go on quickly because there's no external upstream to wait on.</p>
</div>
</div>
</div>
</div>
</section>
<!-- MATRIX PROTOCOL -->
<section class="section section--alt" aria-labelledby="matrix-heading">
<div class="container">
<p class="eyebrow">Why Matrix</p>
<h2 id="matrix-heading">The protocol choice</h2>
<div class="cs-two-col">
<div>
<p>Matrix is an open communication protocol, not a product. The spec is publicly documented, multiple open server implementations exist, and any Matrix client can connect to any Matrix server. There's no vendor lock in at the protocol level.</p>
<p>Federation means M8Chat users can communicate with users on any other Matrix server in the world (matrix.org, a company's self hosted instance, a government Matrix deployment) without those users needing an M8Chat account. It works the same way email does: you don't need a Gmail account to email someone at Gmail.</p>
<p>End to end encryption is available for private rooms and direct messages. Keys are stored on the user's devices. The server operator, and that includes me, can't read encrypted messages. That's the whole point.</p>
</div>
<div>
<div class="cs-feature-grid" style="margin-top:0;grid-template-columns:1fr;">
<div class="cs-feature-card">
<div class="cs-feature-icon">🌐</div>
<h4>Federation with the Matrix network</h4>
<p>M8Chat users can join rooms on other Matrix servers, communicate with users on matrix.org, and take part in the broader decentralised network. This isn't a walled garden.</p>
</div>
<div class="cs-feature-card">
<div class="cs-feature-icon">🔑</div>
<h4>E2E encryption</h4>
<p>Private rooms and direct messages support end to end encryption using the Olm and Megolm cryptographic protocols. Messages are encrypted on the sender's device and decrypted on the receiver's. The server stores ciphertext, not plaintext.</p>
</div>
</div>
</div>
</div>
<div class="cs-honest" style="margin-top:var(--sp-5);">
<div class="cs-honest-label">Honest note: operational complexity</div>
<p>Running a Matrix Homeserver is not trivial. The server is resource hungry, federation can create unexpected load from large public rooms, and the database grows faster than most people expect because Matrix stores the full event graph of every room. I monitor the server load, prune old data on a schedule, and I've had to tune the configuration several times since the initial deployment. It's more like running a mail server than running a WordPress site. Anyone considering self hosted Matrix should factor in that operational overhead, not just the initial setup cost.</p>
</div>
</div>
</section>
<!-- TECH STACK -->
<section class="section" aria-labelledby="stack-heading">
<div class="container">
<p class="eyebrow">Technical Details</p>
<h2 id="stack-heading">Full stack</h2>
<div class="cs-two-col">
<div>
<h4 style="font-size:15px;margin-bottom:12px;color:var(--ink);">Chat infrastructure (chat.m8chat.au)</h4>
<div class="cs-stack" style="margin-top:0;">
<span class="cs-stack-tag">Matrix homeserver</span>
<span class="cs-stack-tag">Containerised stack</span>
<span class="cs-stack-tag">Nginx reverse proxy</span>
<span class="cs-stack-tag">Let's Encrypt SSL</span>
<span class="cs-stack-tag">Media relay</span>
</div>
<h4 style="font-size:15px;margin-bottom:12px;margin-top:24px;color:var(--ink);">Video conferencing (conf.m8chat.au)</h4>
<div class="cs-stack" style="margin-top:0;">
<span class="cs-stack-tag">Jitsi conferencing stack</span>
<span class="cs-stack-tag">Media bridge</span>
<span class="cs-stack-tag">Session recording</span>
<span class="cs-stack-tag">Containerised stack</span>
</div>
</div>
<div>
<h4 style="font-size:15px;margin-bottom:12px;color:var(--ink);">Mobile app</h4>
<div class="cs-stack" style="margin-top:0;">
<span class="cs-stack-tag">Flutter 3.x (custom client)</span>
<span class="cs-stack-tag">Dart</span>
<span class="cs-stack-tag">Service Worker PWA</span>
<span class="cs-stack-tag">Android APK</span>
<span class="cs-stack-tag">Google Play</span>
</div>
<h4 style="font-size:15px;margin-bottom:12px;margin-top:24px;color:var(--ink);">Web + landing</h4>
<div class="cs-stack" style="margin-top:0;">
<span class="cs-stack-tag">WordPress (m8chat.au)</span>
<span class="cs-stack-tag">Flutter PWA (app.m8chat.au)</span>
<span class="cs-stack-tag">DirectAdmin, brisbane01</span>
</div>
</div>
</div>
</div>
</section>
<!-- USE CASES -->
<section class="section section--alt" aria-labelledby="use-cases-heading">
<div class="container">
<p class="eyebrow">Who Is It For</p>
<h2 id="use-cases-heading">When self hosted messaging makes sense</h2>
<p style="max-width:640px;color:var(--grey-600);font-size:17px;line-height:1.7;margin-bottom:0;">This isn't for everyone. Most small businesses don't need to self host their communications. But for some situations the data sovereignty argument is real.</p>
<div class="cs-feature-grid">
<div class="cs-feature-card">
<div class="cs-feature-icon">🏥</div>
<h4>Health practitioners</h4>
<p>GPs, psychologists and allied health workers who send patient information via messaging and want that data to stay in Australia on infrastructure they control, rather than on US servers under US law.</p>
</div>
<div class="cs-feature-card">
<div class="cs-feature-icon">⚖️</div>
<h4>Legal and financial services</h4>
<p>Firms with client confidentiality obligations who need to show where communications are stored and under whose jurisdiction. Australian hosted messaging with documented retention policies.</p>
</div>
<div class="cs-feature-card">
<div class="cs-feature-icon">🏛️</div>
<h4>Community organisations</h4>
<p>Councils, volunteer emergency services, community groups who want member communications on infrastructure they control rather than dependent on Facebook Groups or WhatsApp staying free and functional.</p>
</div>
<div class="cs-feature-card">
<div class="cs-feature-icon">🏢</div>
<h4>Small businesses leaving Slack</h4>
<p>Teams who have outgrown free Slack tiers and want a permanent self hosted alternative. The Slack pricing cliff at the free tier limit makes Matrix a cost effective option for teams of five to thirty people.</p>
</div>
<div class="cs-feature-card">
<div class="cs-feature-icon">🔬</div>
<h4>Research and academic</h4>
<p>Research groups handling sensitive data, unpublished material, or material subject to research ethics approvals who need a documented chain of custody for communications.</p>
</div>
<div class="cs-feature-card">
<div class="cs-feature-icon">👥</div>
<h4>M8Chat direct community use</h4>
<p>M8Chat runs as a community service for individuals and small groups who simply want a free, private, Australian alternative to WhatsApp or Telegram. No surveillance capitalism, no ads, no algorithm deciding what you see.</p>
</div>
</div>
</div>
</section>
<!-- CTA -->
<section class="section">
<div class="container">
<div class="cs-cta">
<h2>Want your own self-hosted Matrix instance?</h2>
<p>I can deploy, configure and maintain a Matrix homeserver for your organisation on Australian infrastructure. I handle the operational complexity. You get the sovereignty.</p>
<div class="cs-hero-actions" style="justify-content:center;">
<a href="https://m8chat.au" target="_blank" rel="noopener" class="btn btn-primary btn-lg">Try M8Chat free</a>
<a href="../contact.html" class="btn btn-secondary btn-lg">Ask about private deployment</a>
</div>
</div>
<div style="margin-top:var(--sp-8);text-align:center;">
<a href="../index.html#portfolio" style="font-size:14px;color:var(--grey-400);">← Back to all work</a>
</div>
</div>
</section>
<!-- FOOTER -->
<footer class="footer" aria-label="Site footer">
<div class="container">
<div class="footer__grid">
<div class="footer__brand">
<img src="../assets/images/logo-cropped.jpg" alt="HELP4BIS" width="140" height="38">
<p>Managed WordPress hosting and maintenance for Australian small businesses. Brisbane based, personal service, WordPress specialist.</p>
<p style="margin-top:8px; font-size:12px; color:rgba(255,255,255,.25);">Dutch Digital Dynamics Pty Ltd · ABN 86 081 237 087</p>
</div>
<div class="footer__col">
<h4>Services</h4>
<ul class="footer__links">
<li><a href="../managed-wordpress.html">Tailored Website Management</a></li>
<li><a href="../care-plans.html">WP Care Plans</a></li>
<li><a href="../sos-fix.html">WP SOS Fix</a></li>
<li><a href="../ai-integration.html">AI Integration</a></li>
<li><a href="../plugin-development.html">Plugin Development</a></li>
</ul>
</div>
<div class="footer__col">
<h4>Our Work</h4>
<ul class="footer__links">
<li><a href="dayboro-au.html">Dayboro.au</a></li>
<li><a href="gardenbuddy-au.html">GardenBuddy.au</a></li>
<li><a href="tawnytrails.html">Tawny Trails</a></li>
<li><a href="rds-ink.html">Running Duck Studio</a></li>
<li><a href="localbuddy-au.html">LocalBuddy</a></li>
<li><a href="m8chat-au.html">M8Chat</a></li>
<li><a href="nightcap-nm.html">Nightcap Natural Medicine</a></li>
</ul>
</div>
<div class="footer__col">
<h4>Contact</h4>
<ul class="footer__links">
<li><a href="mailto:project@help4bis.com">project@help4bis.com</a></li>
<li><a href="../contact.html">Submit a Brief</a></li>
<li><a href="../sos-fix.html">Emergency Fix</a></li>
</ul>
<p style="margin-top:16px; font-size:12px; color:rgba(255,255,255,.3);">Brisbane, Queensland<br>Response within 24 business hours</p>
</div>
</div>
<div class="footer__bottom">
<span>© 2026 HELP4BIS, a trading name of Dutch Digital Dynamics Pty Ltd · ABN 86 081 237 087</span>
<span><a href="../privacy.html">Privacy</a> · <a href="../terms.html">Terms</a></span>
</div>
</div>
</footer>
<button id="back-to-top" aria-label="Back to top">
<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="18 15 12 9 6 15"/></svg>
</button>
<script src="../assets/js/main.js"></script>
<script src="/analytics/tracker.js" defer></script>
</body>
</html>
+451
View File
@@ -0,0 +1,451 @@
<!DOCTYPE html>
<!-- Version: 1.2.0 | Created: 2026-05-05 | Updated: 2026-08-16 -->
<html lang="en-AU">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Nightcap Natural Medicine Case Study | HELP4BIS</title>
<meta name="description" content="How I built and manage nightcap-nm.au: a professional naturopathy practice website for Therese Latta in South East Queensland, on managed WordPress with Elementor Pro.">
<meta name="author" content="HELP4BIS">
<meta name="publisher" content="Dutch Digital Dynamics Pty Ltd">
<meta name="language" content="en-AU">
<meta name="geo.region" content="AU-QLD">
<link rel="canonical" href="https://help4bis.com/work/nightcap-nm.html">
<meta name="robots" content="index, follow">
<meta property="og:type" content="website">
<meta property="og:url" content="https://help4bis.com/work/nightcap-nm.html">
<meta property="og:site_name" content="HELP4BIS">
<meta property="og:title" content="Nightcap Natural Medicine Case Study | HELP4BIS">
<meta property="og:description" content="Managed WordPress for a naturopathy practice: professional, fast, reliable, and maintained by someone who actually looks after it.">
<meta property="og:image" content="https://help4bis.com/assets/images/port-nightcap.png">
<meta property="og:locale" content="en_AU">
<link rel="icon" type="image/jpeg" href="../assets/images/logo-favicon.jpg"> <link rel="stylesheet" href="../assets/css/style.css">
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "WebPage",
"@id": "https://help4bis.com/work/nightcap-nm.html#webpage",
"url": "https://help4bis.com/work/nightcap-nm.html",
"name": "Nightcap Natural Medicine Case Study, HELP4BIS",
"description": "Managed WordPress site for Nightcap Natural Medicine, a naturopathy practice in South East Queensland.",
"isPartOf": {"@id": "https://help4bis.com/#website"},
"breadcrumb": {
"@type": "BreadcrumbList",
"itemListElement": [
{"@type": "ListItem", "position": 1, "name": "Home", "item": "https://help4bis.com/"},
{"@type": "ListItem", "position": 2, "name": "Our Work", "item": "https://help4bis.com/#portfolio"},
{"@type": "ListItem", "position": 3, "name": "Nightcap Natural Medicine", "item": "https://help4bis.com/work/nightcap-nm.html"}
]
}
}
</script>
<style>
.cs-hero {
background: linear-gradient(160deg, var(--ink) 0%, var(--ink-mid) 60%, #0e1a1a 100%);
padding: var(--sp-16) 0 var(--sp-12);
position: relative;
overflow: hidden;
}
.cs-hero::before {
content: '';
position: absolute;
top: -30%;
right: -15%;
width: 60%;
height: 200%;
background: radial-gradient(circle, rgba(20,184,166,.06) 0%, transparent 65%);
pointer-events: none;
}
.cs-breadcrumb {
font-size: 13px;
color: rgba(255,255,255,.45);
margin-bottom: var(--sp-5);
display: flex; align-items: center; gap: 8px;
}
.cs-breadcrumb a { color: rgba(255,255,255,.45); }
.cs-breadcrumb a:hover { color: var(--white); }
.cs-breadcrumb span { color: rgba(255,255,255,.25); }
.cs-hero h1 { color: var(--white); max-width: 820px; margin-bottom: var(--sp-4); }
.cs-hero-sub {
font-size: clamp(16px, 2vw, 20px);
color: rgba(255,255,255,.65);
max-width: 680px; line-height: 1.65; margin-bottom: var(--sp-6);
}
.cs-hero-actions { display: flex; gap: 12px; flex-wrap: wrap; }
.btn-teal {
background: linear-gradient(135deg, #14b8a6, #0d9488);
color: var(--white); border-color: transparent;
box-shadow: 0 4px 14px rgba(20,184,166,.30);
}
.btn-teal:hover {
background: linear-gradient(135deg, #0d9488, #0f766e);
color: var(--white); transform: translateY(-2px);
}
.cs-kpis {
display: grid; grid-template-columns: repeat(2, 1fr);
gap: 16px; margin-top: var(--sp-8); padding-top: var(--sp-8);
border-top: 1px solid rgba(255,255,255,.08);
}
@media (min-width: 640px) { .cs-kpis { grid-template-columns: repeat(4, 1fr); } }
.cs-kpi { text-align: center; }
.cs-kpi-value {
font-family: var(--font-head); font-size: clamp(32px, 4vw, 52px);
font-weight: 900; color: #14b8a6; line-height: 1; letter-spacing: -0.04em;
}
.cs-kpi-label {
font-size: 12px; font-weight: 600; text-transform: uppercase;
letter-spacing: .12em; color: rgba(255,255,255,.45); margin-top: 6px;
}
.cs-feature-grid {
display: grid; grid-template-columns: 1fr; gap: 24px; margin-top: var(--sp-6);
}
@media (min-width: 640px) { .cs-feature-grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 900px) { .cs-feature-grid { grid-template-columns: repeat(3, 1fr); } }
.cs-feature-card {
background: var(--white); border: 1px solid var(--grey-100);
border-radius: var(--r-lg); padding: 24px; box-shadow: var(--shadow-card);
}
.cs-feature-card h4 { font-size: 15px; margin-bottom: 8px; color: var(--ink); }
.cs-feature-card p { font-size: 14px; color: var(--grey-600); line-height: 1.6; margin: 0; }
.cs-feature-icon {
width: 36px; height: 36px; background: var(--grey-50); border-radius: var(--r-md);
display: flex; align-items: center; justify-content: center;
margin-bottom: 14px; font-size: 18px;
}
.cs-page-list {
margin: 0; padding: 0; list-style: none;
display: grid; grid-template-columns: 1fr; gap: 8px; margin-top: var(--sp-5);
}
@media (min-width: 640px) { .cs-page-list { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 900px) { .cs-page-list { grid-template-columns: repeat(3, 1fr); } }
.cs-page-item {
background: var(--white); border: 1px solid var(--grey-100);
border-radius: var(--r-md); padding: 14px 18px; box-shadow: var(--shadow-sm);
font-size: 14px; font-weight: 500; color: var(--ink);
}
.cs-page-item span { display: block; font-size: 13px; color: var(--grey-600); font-weight: 400; margin-top: 3px; }
.cs-stack { display: flex; flex-wrap: wrap; gap: 8px; margin-top: var(--sp-4); }
.cs-stack-tag {
background: var(--grey-50); border: 1px solid var(--grey-100);
border-radius: var(--r-full); padding: 6px 14px; font-size: 13px; font-weight: 500; color: var(--grey-600);
}
.cs-divider { height: 1px; background: var(--grey-100); margin: var(--sp-8) 0; }
.cs-two-col {
display: grid; grid-template-columns: 1fr; gap: var(--sp-8); align-items: start;
}
@media (min-width: 768px) {
.cs-two-col { grid-template-columns: 1fr 1fr; }
.cs-two-col--wide { grid-template-columns: 3fr 2fr; }
}
.cs-quote {
border-left: 3px solid #14b8a6;
padding: var(--sp-4) var(--sp-5); background: rgba(20,184,166,.04);
border-radius: 0 var(--r-md) var(--r-md) 0; margin: var(--sp-5) 0;
}
.cs-quote p { font-size: 17px; line-height: 1.7; color: var(--grey-800); font-style: italic; margin: 0; }
.cs-honest {
background: var(--grey-50); border: 1px solid var(--grey-100);
border-radius: var(--r-lg); padding: var(--sp-4) var(--sp-5); margin: var(--sp-5) 0;
}
.cs-honest-label {
font-size: 11px; font-weight: 700; text-transform: uppercase;
letter-spacing: .12em; color: var(--grey-400); margin-bottom: 8px;
}
.cs-honest p { font-size: 14px; color: var(--grey-600); line-height: 1.65; margin: 0; }
.cs-cta {
background: linear-gradient(135deg, var(--ink-mid), var(--ink));
border-radius: var(--r-2xl); padding: var(--sp-10) var(--sp-8); text-align: center;
}
.cs-cta h2 { color: var(--white); margin-bottom: var(--sp-4); }
.cs-cta p { color: rgba(255,255,255,.65); max-width: 560px; margin: 0 auto var(--sp-6); font-size: 17px; line-height: 1.7; }
</style>
</head>
<body>
<!-- NAV -->
<nav class="nav" role="navigation" aria-label="Main navigation">
<div class="nav__inner">
<a class="nav__logo" href="../index.html" aria-label="HELP4BIS home">
<img src="../assets/images/logo-cropped.jpg" alt="HELP4BIS" width="140" height="38">
</a>
<ul class="nav__links" id="nav-links" role="list">
<li class="nav__dropdown">
<button class="nav__trigger" aria-haspopup="true" aria-expanded="false">Services <svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"/></svg></button>
<ul class="nav__dropdown-menu" role="menu">
<li class="nav__menu-group">WordPress</li>
<li><a href="../managed-wordpress.html" role="menuitem">Tailored Website Management</a></li>
<li><a href="../care-plans.html" role="menuitem">WP Care Plans <span class="menu-price">from $49/mo</span></a></li>
<li><a href="../sos-fix.html" role="menuitem">WP SOS Fix <span class="menu-price">$97 flat</span></a></li>
<li><a href="../ai-integration.html" role="menuitem">AI Integration</a></li>
<li><a href="../plugin-development.html" role="menuitem">Custom Plugin Development</a></li> </ul>
</li>
<li><a href="../about.html">About</a></li>
<li><a href="../index.html#portfolio">Our Work</a></li>
<li><a href="../index.html#pricing">Pricing</a></li>
<li><a href="../blog/index.html">Blog</a></li>
<li><a href="../your-first-week-with-ai.html">AI Guide</a></li>
<li><a href="../contact.html">Contact</a></li>
<li class="nav__cta-mobile" aria-hidden="true">
<a href="../contact.html" class="btn btn-primary">Get Started</a>
<a href="../sos-fix.html" class="btn btn-secondary">SOS Fix, $97</a>
</li>
</ul>
<div class="nav__cta">
<a href="../sos-fix.html" class="btn btn-secondary btn-sm">SOS Fix, $97</a>
<a href="../contact.html" class="btn btn-primary btn-sm">Get Started</a>
</div>
<button class="nav__burger" id="nav-burger" aria-label="Open menu" aria-expanded="false" aria-controls="nav-links">
<span></span><span></span><span></span>
</button>
</div>
</nav>
<!-- HERO -->
<section class="cs-hero" aria-labelledby="cs-heading">
<div class="container">
<div class="cs-breadcrumb">
<a href="../index.html">Home</a>
<span>›</span>
<a href="../index.html#portfolio">Our Work</a>
<span>›</span>
<span style="color:rgba(255,255,255,.7);">Nightcap Natural Medicine</span>
</div>
<p class="eyebrow" style="color:rgba(20,184,166,.9);">Case Study: Health Practice Website</p>
<h1 id="cs-heading">Nightcap Natural Medicine.<br>A practice website<br>that does its job.</h1>
<p class="cs-hero-sub">A professional naturopathy website I built for Therese Latta in South East Queensland. Clean, fast, properly maintained, and set up so patients understand what Therese does and how to book.</p>
<div class="cs-hero-actions">
<a href="https://nightcap-nm.au" target="_blank" rel="noopener" class="btn btn-teal">Visit nightcap-nm.au →</a>
<a href="../managed-wordpress.html" class="btn btn-secondary">See Managed WordPress</a>
</div>
<div class="cs-kpis">
<div class="cs-kpi">
<div class="cs-kpi-value">WP</div>
<div class="cs-kpi-label">Platform</div>
</div>
<div class="cs-kpi">
<div class="cs-kpi-value">7</div>
<div class="cs-kpi-label">Core Pages</div>
</div>
<div class="cs-kpi">
<div class="cs-kpi-value">12</div>
<div class="cs-kpi-label">Services Listed</div>
</div>
<div class="cs-kpi">
<div class="cs-kpi-value">QLD</div>
<div class="cs-kpi-label">Location</div>
</div>
</div>
</div>
</section>
<!-- OVERVIEW -->
<section class="section" aria-labelledby="overview-heading">
<div class="container">
<div class="cs-two-col cs-two-col--wide">
<div>
<p class="eyebrow">Overview</p>
<h2 id="overview-heading">What it actually is</h2>
<p class="large">Therese Latta is a naturopath. Her patients come from the Nightcap Range area and further afield across South East Queensland. They need to understand what naturopathy is, what conditions Therese works with, and how to get in touch. That's what the website does.</p>
<p>This isn't a complex build, and I'm happy to say so. No custom plugins, no app, no membership system. It's a well built, properly maintained WordPress site with Elementor Pro, hosted on the same Brisbane server as the rest of my portfolio. What makes it work is the content and the maintenance. Therese knows her field; the website communicates it clearly.</p>
<p>The value of managed hosting for a solo health practitioner isn't the technology, it's the removal of the maintenance burden. Therese doesn't want to spend her Sundays checking whether WordPress updated correctly and whether a plugin conflict broke the contact form. I handle that, whilst she gets on with her clinical work.</p>
<div class="cs-quote">
<p>"A solo practice has one person doing everything: clinical work, administration, marketing, and website maintenance. The website is the one thing she shouldn't have to think about."</p>
</div>
</div>
<div>
<img src="../assets/images/port-nightcap.png" alt="Nightcap Natural Medicine website" style="width:100%;border-radius:var(--r-xl);box-shadow:var(--shadow-lg);" loading="lazy">
<div class="cs-stack" style="margin-top:20px;">
<span class="cs-stack-tag">WordPress</span>
<span class="cs-stack-tag">Elementor Pro</span>
<span class="cs-stack-tag">Managed Hosting</span>
<span class="cs-stack-tag">Brisbane Server</span>
<span class="cs-stack-tag">Let's Encrypt SSL</span>
<span class="cs-stack-tag">Daily Backups</span>
</div>
</div>
</div>
</div>
</section>
<!-- PAGES -->
<section class="section section--alt" aria-labelledby="pages-heading">
<div class="container">
<p class="eyebrow">Site Structure</p>
<h2 id="pages-heading">What the site covers</h2>
<p style="max-width:640px;color:var(--grey-600);font-size:17px;line-height:1.7;margin-bottom:0;">Seven core pages, each one answering a specific question a prospective patient asks before booking. Nothing extra.</p>
<ul class="cs-page-list">
<li class="cs-page-item">Home<span>Introduction, trust signals, and a clear path to booking.</span></li>
<li class="cs-page-item">About Therese<span>Qualifications, philosophy, and why she became a naturopath.</span></li>
<li class="cs-page-item">6 Principles of Naturopathy<span>Explains the foundational principles of naturopathic practice for patients who are new to it.</span></li>
<li class="cs-page-item">Services<span>12 health areas Therese works with: digestive health, hormonal support, stress management, and more.</span></li>
<li class="cs-page-item">Blog<span>Health and wellbeing articles written by Therese. Updated as she has time; no artificial publishing schedule.</span></li>
<li class="cs-page-item">Useful Links<span>Curated external resources Therese recommends to patients.</span></li>
<li class="cs-page-item">Contact<span>Inquiry form and booking information.</span></li>
</ul>
</div>
</section>
<!-- WHAT MANAGED ACTUALLY MEANS -->
<section class="section" aria-labelledby="managed-heading">
<div class="container">
<p class="eyebrow">What the Management Covers</p>
<h2 id="managed-heading">What "managed" actually means here</h2>
<p style="max-width:640px;color:var(--grey-600);font-size:17px;line-height:1.7;margin-bottom:0;">For a site like this (no online shop, no complex integrations, no custom plugins) managed hosting is mostly about prevention and response. You don't notice it when it works.</p>
<div class="cs-feature-grid" style="margin-top:var(--sp-6);">
<div class="cs-feature-card">
<div class="cs-feature-icon">🛡️</div>
<h4>Daily backups</h4>
<p>Offsite backups run every 24 hours. If something goes wrong (a plugin update breaks a page, the server has a bad day) there's always a clean restore point within 24 hours of the current state.</p>
</div>
<div class="cs-feature-card">
<div class="cs-feature-icon">🔄</div>
<h4>Plugin and core updates</h4>
<p>WordPress core, Elementor Pro, and all installed plugins are tested and updated regularly. When a security patch comes out, it goes in. When an update breaks something, I fix it before Therese notices.</p>
</div>
<div class="cs-feature-card">
<div class="cs-feature-icon">🔒</div>
<h4>SSL and security</h4>
<p>Let's Encrypt SSL renews automatically. Login hardening, file permission checks, and malware scanning run as scheduled tasks. No extra plugin subscriptions, no extra cost.</p>
</div>
<div class="cs-feature-card">
<div class="cs-feature-icon">⚡</div>
<h4>Performance</h4>
<p>The site runs on the Brisbane server with PHP 8.4. Page caching means the site serves fast on shared infrastructure without needing a dedicated server for a site at this traffic level.</p>
</div>
<div class="cs-feature-card">
<div class="cs-feature-icon">✏️</div>
<h4>Content edits</h4>
<p>When Therese adds a new service, updates her bio, or wants to change the contact information, she emails through the brief and it gets done within 24 hours. No Elementor training required.</p>
</div>
<div class="cs-feature-card">
<div class="cs-feature-icon">📧</div>
<h4>Professional email</h4>
<p>Business email on the nightcap-nm.au domain is included. I've configured SPF, DKIM, and DMARC properly so Therese's emails don't end up in spam folders.</p>
</div>
</div>
</div>
</section>
<!-- HONEST NOTE -->
<section class="section section--alt" aria-labelledby="honest-heading">
<div class="container">
<p class="eyebrow">Straight Talking</p>
<h2 id="honest-heading">What this is and what it is not</h2>
<div class="cs-two-col">
<div>
<p>Nightcap Natural Medicine is the kind of site most web agencies would undersell themselves building. It isn't complex, it doesn't have impressive technical features, and it wouldn't win awards at a digital agency portfolio review. I'm fine with that.</p>
<p>What it is: a well built, properly maintained website that works reliably for a solo health practitioner who has better things to do than manage a website. Therese's job is looking after patients. The website's job is being there when someone searches for a naturopath in the area, whilst presenting Therese's practice professionally.</p>
<p>That's what I built. And it costs less per month than two tanks of petrol.</p>
</div>
<div>
<div class="cs-honest">
<div class="cs-honest-label">On bookings integration</div>
<p>Nightcap-nm.au currently uses a contact form rather than an online booking system. Online booking tools for health practitioners (Halaxy, Power Diary, Cliniko) vary a lot in how they embed and whether they're worth the extra monthly cost for a sole practitioner. If Therese decides to add one, I'll do the integration; it's straightforward. For now the contact form works and adds no external dependency.</p>
</div>
<div class="cs-honest" style="margin-top:var(--sp-4);">
<div class="cs-honest-label">AHPRA compliance</div>
<p>Naturopaths in Australia operate under specific AHPRA advertising standards. Health claims, testimonials, and before and after content require care. I review the site when content changes to keep it compliant. I flag anything that looks borderline; Therese makes the final call as the registered practitioner.</p>
</div>
</div>
</div>
</div>
</section>
<!-- TECH STACK -->
<section class="section" aria-labelledby="stack-heading">
<div class="container">
<p class="eyebrow">Technical Details</p>
<h2 id="stack-heading">The stack</h2>
<p style="max-width:640px;color:var(--grey-600);font-size:17px;line-height:1.7;margin-bottom:var(--sp-5);">Nothing exotic. The point of a managed WordPress platform is that the stack is reliable and well understood, so I can solve problems fast when they come up.</p>
<div class="cs-stack">
<span class="cs-stack-tag">WordPress 6.x</span>
<span class="cs-stack-tag">Elementor Pro</span>
<span class="cs-stack-tag">PHP 8.4</span>
<span class="cs-stack-tag">MariaDB</span>
<span class="cs-stack-tag">Let's Encrypt SSL</span>
<span class="cs-stack-tag">DirectAdmin, brisbane01</span>
<span class="cs-stack-tag">Australian hosting</span>
<span class="cs-stack-tag">Professional email</span>
</div>
<p style="margin-top:var(--sp-4);font-size:14px;color:var(--grey-600);">Hosting is on the same Brisbane server as the rest of my portfolio under DirectAdmin. Uptime is monitored via an external pinger; I get alerted before Therese notices any downtime.</p>
</div>
</section>
<!-- CTA -->
<section class="section section--alt">
<div class="container">
<div class="cs-cta">
<h2>A professional practice website, properly maintained.</h2>
<p>If you run a solo health practice, a consulting business, or any professional service where the website needs to be reliable but you don't want to manage it yourself, this is exactly what Tailored Website Management is for.</p>
<div class="cs-hero-actions" style="justify-content:center;">
<a href="../managed-wordpress.html" class="btn btn-primary btn-lg">See what's included</a>
<a href="../contact.html" class="btn btn-secondary btn-lg">Talk to us</a>
</div>
</div>
<div style="margin-top:var(--sp-8);text-align:center;">
<a href="../index.html#portfolio" style="font-size:14px;color:var(--grey-400);">← Back to all work</a>
</div>
</div>
</section>
<!-- FOOTER -->
<footer class="footer" aria-label="Site footer">
<div class="container">
<div class="footer__grid">
<div class="footer__brand">
<img src="../assets/images/logo-cropped.jpg" alt="HELP4BIS" width="140" height="38">
<p>Managed WordPress hosting and maintenance for Australian small businesses. Brisbane based, personal service, WordPress specialist.</p>
<p style="margin-top:8px; font-size:12px; color:rgba(255,255,255,.25);">Dutch Digital Dynamics Pty Ltd · ABN 86 081 237 087</p>
</div>
<div class="footer__col">
<h4>Services</h4>
<ul class="footer__links">
<li><a href="../managed-wordpress.html">Tailored Website Management</a></li>
<li><a href="../care-plans.html">WP Care Plans</a></li>
<li><a href="../sos-fix.html">WP SOS Fix</a></li>
<li><a href="../ai-integration.html">AI Integration</a></li>
<li><a href="../plugin-development.html">Plugin Development</a></li>
</ul>
</div>
<div class="footer__col">
<h4>Our Work</h4>
<ul class="footer__links">
<li><a href="dayboro-au.html">Dayboro.au</a></li>
<li><a href="gardenbuddy-au.html">GardenBuddy.au</a></li>
<li><a href="tawnytrails.html">Tawny Trails</a></li>
<li><a href="rds-ink.html">Running Duck Studio</a></li>
<li><a href="localbuddy-au.html">LocalBuddy</a></li>
<li><a href="m8chat-au.html">M8Chat</a></li>
<li><a href="nightcap-nm.html">Nightcap Natural Medicine</a></li>
</ul>
</div>
<div class="footer__col">
<h4>Contact</h4>
<ul class="footer__links">
<li><a href="mailto:project@help4bis.com">project@help4bis.com</a></li>
<li><a href="../contact.html">Submit a Brief</a></li>
<li><a href="../sos-fix.html">Emergency Fix</a></li>
</ul>
<p style="margin-top:16px; font-size:12px; color:rgba(255,255,255,.3);">Brisbane, Queensland<br>Response within 24 business hours</p>
</div>
</div>
<div class="footer__bottom">
<span>© 2026 HELP4BIS, a trading name of Dutch Digital Dynamics Pty Ltd · ABN 86 081 237 087</span>
<span><a href="../privacy.html">Privacy</a> · <a href="../terms.html">Terms</a></span>
</div>
</div>
</footer>
<button id="back-to-top" aria-label="Back to top">
<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="18 15 12 9 6 15"/></svg>
</button>
<script src="../assets/js/main.js"></script>
<script src="/analytics/tracker.js" defer></script>
</body>
</html>
+591
View File
@@ -0,0 +1,591 @@
<!DOCTYPE html>
<!-- Version: 1.3.0 | Created: 2026-05-05 | Updated: 2026-08-16 -->
<html lang="en-AU">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Running Duck Studio Case Study | HELP4BIS</title>
<meta name="description" content="How I built rds.ink: a WooCommerce art gallery, a Flutter PWA with augmented reality painting previews, and a custom plugin suite for a working artist studio in Queensland.">
<meta name="author" content="HELP4BIS">
<meta name="publisher" content="Dutch Digital Dynamics Pty Ltd">
<meta name="language" content="en-AU">
<meta name="geo.region" content="AU-QLD">
<link rel="canonical" href="https://help4bis.com/work/rds-ink.html">
<meta name="robots" content="index, follow">
<meta property="og:type" content="website">
<meta property="og:url" content="https://help4bis.com/work/rds-ink.html">
<meta property="og:site_name" content="HELP4BIS">
<meta property="og:title" content="Running Duck Studio Case Study | HELP4BIS">
<meta property="og:description" content="WooCommerce art gallery, augmented reality painting previews via Flutter, and custom plugin development for a working Queensland artist studio.">
<meta property="og:image" content="https://help4bis.com/assets/images/rds-managed-wordpress.jpg">
<meta property="og:locale" content="en_AU">
<link rel="icon" type="image/jpeg" href="../assets/images/logo-favicon.jpg"> <link rel="stylesheet" href="../assets/css/style.css">
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "WebPage",
"@id": "https://help4bis.com/work/rds-ink.html#webpage",
"url": "https://help4bis.com/work/rds-ink.html",
"name": "Running Duck Studio Case Study, HELP4BIS",
"description": "WooCommerce art gallery with Flutter PWA, AR painting previews, and custom plugin suite for Running Duck Studio.",
"isPartOf": {"@id": "https://help4bis.com/#website"},
"breadcrumb": {
"@type": "BreadcrumbList",
"itemListElement": [
{"@type": "ListItem", "position": 1, "name": "Home", "item": "https://help4bis.com/"},
{"@type": "ListItem", "position": 2, "name": "Our Work", "item": "https://help4bis.com/#portfolio"},
{"@type": "ListItem", "position": 3, "name": "Running Duck Studio", "item": "https://help4bis.com/work/rds-ink.html"}
]
}
}
</script>
<style>
.cs-hero {
background: linear-gradient(160deg, var(--ink) 0%, var(--ink-mid) 60%, #1a1010 100%);
padding: var(--sp-16) 0 var(--sp-12);
position: relative;
overflow: hidden;
}
.cs-hero::before {
content: '';
position: absolute;
top: -30%;
right: -15%;
width: 60%;
height: 200%;
background: radial-gradient(circle, rgba(232,53,42,.05) 0%, transparent 65%);
pointer-events: none;
}
.cs-breadcrumb {
font-size: 13px;
color: rgba(255,255,255,.45);
margin-bottom: var(--sp-5);
display: flex;
align-items: center;
gap: 8px;
}
.cs-breadcrumb a { color: rgba(255,255,255,.45); }
.cs-breadcrumb a:hover { color: var(--white); }
.cs-breadcrumb span { color: rgba(255,255,255,.25); }
.cs-hero h1 {
color: var(--white);
max-width: 820px;
margin-bottom: var(--sp-4);
}
.cs-hero-sub {
font-size: clamp(16px, 2vw, 20px);
color: rgba(255,255,255,.65);
max-width: 680px;
line-height: 1.65;
margin-bottom: var(--sp-6);
}
.cs-hero-actions {
display: flex;
gap: 12px;
flex-wrap: wrap;
}
.btn-red {
background: linear-gradient(135deg, #E8352A, #b91c1c);
color: var(--white);
border-color: transparent;
box-shadow: 0 4px 14px rgba(232,53,42,.30);
}
.btn-red:hover {
background: linear-gradient(135deg, #b91c1c, #991b1b);
color: var(--white);
transform: translateY(-2px);
}
.cs-kpis {
display: grid;
grid-template-columns: repeat(2, 1fr);
gap: 16px;
margin-top: var(--sp-8);
padding-top: var(--sp-8);
border-top: 1px solid rgba(255,255,255,.08);
}
@media (min-width: 640px) { .cs-kpis { grid-template-columns: repeat(4, 1fr); } }
.cs-kpi { text-align: center; }
.cs-kpi-value {
font-family: var(--font-head);
font-size: clamp(32px, 4vw, 52px);
font-weight: 900;
color: #E8352A;
line-height: 1;
letter-spacing: -0.04em;
}
.cs-kpi-label {
font-size: 12px;
font-weight: 600;
text-transform: uppercase;
letter-spacing: .12em;
color: rgba(255,255,255,.45);
margin-top: 6px;
}
.cs-feature-grid {
display: grid;
grid-template-columns: 1fr;
gap: 24px;
margin-top: var(--sp-6);
}
@media (min-width: 640px) { .cs-feature-grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 900px) { .cs-feature-grid { grid-template-columns: repeat(3, 1fr); } }
.cs-feature-card {
background: var(--white);
border: 1px solid var(--grey-100);
border-radius: var(--r-lg);
padding: 24px;
box-shadow: var(--shadow-card);
}
.cs-feature-card h4 { font-size: 15px; margin-bottom: 8px; color: var(--ink); }
.cs-feature-card p { font-size: 14px; color: var(--grey-600); line-height: 1.6; margin: 0; }
.cs-feature-icon {
width: 36px; height: 36px;
background: var(--grey-50);
border-radius: var(--r-md);
display: flex; align-items: center; justify-content: center;
margin-bottom: 14px; font-size: 18px;
}
.cs-plugin-list {
margin: 0; padding: 0; list-style: none;
display: grid; grid-template-columns: 1fr; gap: 12px;
margin-top: var(--sp-5);
}
@media (min-width: 640px) { .cs-plugin-list { grid-template-columns: repeat(2, 1fr); } }
.cs-plugin-item {
background: var(--white);
border: 1px solid var(--grey-100);
border-radius: var(--r-md);
padding: 16px 18px;
box-shadow: var(--shadow-sm);
}
.cs-plugin-item strong {
display: block; font-family: var(--font-head);
font-size: 14px; font-weight: 700; color: var(--ink); margin-bottom: 4px;
}
.cs-plugin-item span { font-size: 13px; color: var(--grey-600); line-height: 1.5; }
.cs-plugin-version {
display: inline-block; font-size: 11px; font-weight: 700;
text-transform: uppercase; letter-spacing: .08em;
padding: 2px 8px; border-radius: var(--r-full); margin-top: 8px;
background: rgba(232,53,42,.1); color: #b91c1c;
}
.cs-stack {
display: flex; flex-wrap: wrap; gap: 8px; margin-top: var(--sp-4);
}
.cs-stack-tag {
background: var(--grey-50); border: 1px solid var(--grey-100);
border-radius: var(--r-full); padding: 6px 14px;
font-size: 13px; font-weight: 500; color: var(--grey-600);
}
.cs-divider { height: 1px; background: var(--grey-100); margin: var(--sp-8) 0; }
.cs-two-col {
display: grid; grid-template-columns: 1fr; gap: var(--sp-8); align-items: start;
}
@media (min-width: 768px) {
.cs-two-col { grid-template-columns: 1fr 1fr; }
.cs-two-col--wide { grid-template-columns: 3fr 2fr; }
}
.cs-quote {
border-left: 3px solid #E8352A;
padding: var(--sp-4) var(--sp-5);
background: rgba(232,53,42,.04);
border-radius: 0 var(--r-md) var(--r-md) 0;
margin: var(--sp-5) 0;
}
.cs-quote p { font-size: 17px; line-height: 1.7; color: var(--grey-800); font-style: italic; margin: 0; }
.cs-honest {
background: var(--grey-50); border: 1px solid var(--grey-100);
border-radius: var(--r-lg); padding: var(--sp-4) var(--sp-5); margin: var(--sp-5) 0;
}
.cs-honest-label {
font-size: 11px; font-weight: 700; text-transform: uppercase;
letter-spacing: .12em; color: var(--grey-400); margin-bottom: 8px;
}
.cs-honest p { font-size: 14px; color: var(--grey-600); line-height: 1.65; margin: 0; }
.cs-cta {
background: linear-gradient(135deg, var(--ink-mid), var(--ink));
border-radius: var(--r-2xl); padding: var(--sp-10) var(--sp-8); text-align: center;
}
.cs-cta h2 { color: var(--white); margin-bottom: var(--sp-4); }
.cs-cta p { color: rgba(255,255,255,.65); max-width: 560px; margin: 0 auto var(--sp-6); font-size: 17px; line-height: 1.7; }
.cs-ar-flow {
display: grid; grid-template-columns: 1fr; gap: 16px; margin-top: var(--sp-5);
}
@media (min-width: 640px) { .cs-ar-flow { grid-template-columns: repeat(3, 1fr); } }
.cs-ar-step {
background: var(--white); border: 1px solid var(--grey-100);
border-radius: var(--r-lg); padding: 20px; box-shadow: var(--shadow-sm);
text-align: center;
}
.cs-ar-step-num {
width: 36px; height: 36px; background: #E8352A; color: var(--white);
border-radius: 50%; display: flex; align-items: center; justify-content: center;
font-family: var(--font-head); font-weight: 800; font-size: 16px;
margin: 0 auto 12px;
}
.cs-ar-step h5 { font-size: 14px; font-weight: 700; color: var(--ink); margin-bottom: 6px; }
.cs-ar-step p { font-size: 13px; color: var(--grey-600); line-height: 1.55; margin: 0; }
</style>
</head>
<body>
<!-- NAV -->
<nav class="nav" role="navigation" aria-label="Main navigation">
<div class="nav__inner">
<a class="nav__logo" href="../index.html" aria-label="HELP4BIS home">
<img src="../assets/images/logo-cropped.jpg" alt="HELP4BIS" width="140" height="38">
</a>
<ul class="nav__links" id="nav-links" role="list">
<li class="nav__dropdown">
<button class="nav__trigger" aria-haspopup="true" aria-expanded="false">Services <svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"/></svg></button>
<ul class="nav__dropdown-menu" role="menu">
<li class="nav__menu-group">WordPress</li>
<li><a href="../managed-wordpress.html" role="menuitem">Tailored Website Management</a></li>
<li><a href="../care-plans.html" role="menuitem">WP Care Plans <span class="menu-price">from $49/mo</span></a></li>
<li><a href="../sos-fix.html" role="menuitem">WP SOS Fix <span class="menu-price">$97 flat</span></a></li>
<li><a href="../ai-integration.html" role="menuitem">AI Integration</a></li>
<li><a href="../plugin-development.html" role="menuitem">Custom Plugin Development</a></li> </ul>
</li>
<li><a href="../about.html">About</a></li>
<li><a href="../index.html#portfolio">Our Work</a></li>
<li><a href="../index.html#pricing">Pricing</a></li>
<li><a href="../blog/index.html">Blog</a></li>
<li><a href="../your-first-week-with-ai.html">AI Guide</a></li>
<li><a href="../contact.html">Contact</a></li>
<li class="nav__cta-mobile" aria-hidden="true">
<a href="../contact.html" class="btn btn-primary">Get Started</a>
<a href="../sos-fix.html" class="btn btn-secondary">SOS Fix, $97</a>
</li>
</ul>
<div class="nav__cta">
<a href="../sos-fix.html" class="btn btn-secondary btn-sm">SOS Fix, $97</a>
<a href="../contact.html" class="btn btn-primary btn-sm">Get Started</a>
</div>
<button class="nav__burger" id="nav-burger" aria-label="Open menu" aria-expanded="false" aria-controls="nav-links">
<span></span><span></span><span></span>
</button>
</div>
</nav>
<!-- HERO -->
<section class="cs-hero" aria-labelledby="cs-heading">
<div class="container">
<div class="cs-breadcrumb">
<a href="../index.html">Home</a>
<span>›</span>
<a href="../index.html#portfolio">Our Work</a>
<span>›</span>
<span style="color:rgba(255,255,255,.7);">Running Duck Studio</span>
</div>
<p class="eyebrow" style="color:rgba(232,53,42,.9);">Case Study: Art Gallery + App</p>
<h1 id="cs-heading">Running Duck Studio.<br>Selling art online<br>is harder than it looks.</h1>
<p class="cs-hero-sub">A WooCommerce art gallery with augmented reality painting previews, a Flutter app that shows the work in your space before you buy, and a custom plugin suite I built specifically for how a working artist studio actually sells.</p>
<div class="cs-hero-actions">
<a href="https://rds.ink" target="_blank" rel="noopener" class="btn btn-red">Visit rds.ink →</a>
<a href="https://flutter.rds.ink" target="_blank" rel="noopener" class="btn btn-secondary">Open the app</a>
</div>
<div class="cs-kpis">
<div class="cs-kpi">
<div class="cs-kpi-value">WC</div>
<div class="cs-kpi-label">Sales Platform</div>
</div>
<div class="cs-kpi">
<div class="cs-kpi-value">5</div>
<div class="cs-kpi-label">Custom Plugins</div>
</div>
<div class="cs-kpi">
<div class="cs-kpi-value">AR</div>
<div class="cs-kpi-label">In Room Previews</div>
</div>
<div class="cs-kpi">
<div class="cs-kpi-value">8.4MB</div>
<div class="cs-kpi-label">Flutter PWA</div>
</div>
</div>
</div>
</section>
<!-- OVERVIEW -->
<section class="section" aria-labelledby="overview-heading">
<div class="container">
<div class="cs-two-col cs-two-col--wide">
<div>
<p class="eyebrow">Overview</p>
<h2 id="overview-heading">What it actually is</h2>
<p class="large">Danielle runs a working art studio. She paints originals, prints limited editions, and sells through the website. Standard WooCommerce wasn't built for original artwork. There's no concept of a one of a kind piece that's gone when it sells, no way to mark something as SOLD with context rather than just deleting it, and no way to show the buyer what the painting looks like at life size on their wall before they commit.</p>
<p>So I built what was missing. A custom plugin suite that handles the art gallery's specific needs: SOLD badge display with history tracking, a commission inquiry form, an artwork dimenions field, category filtering for the gallery view, and a Related Works shortcode. On top of that I built a Flutter progressive web app with augmented reality, where the buyer can point their phone camera at their wall and see the painting at real scale.</p>
<p>The AR feature is the part I spend the most time explaining, but it sells the hardest when people actually try it. Danielle uploads a photo of the painting and a short video. The AR target gets compiled in the browser. The Flutter app opens a camera overlay and shows the work in the room.</p>
<div class="cs-quote">
<p>"Selling original art online has one central problem: people can't tell how big it is or whether it will work on their wall. The AR preview solves that directly."</p>
</div>
</div>
<div>
<img src="../assets/images/rds-managed-wordpress.jpg" alt="Running Duck Studio website" style="width:100%;border-radius:var(--r-xl);box-shadow:var(--shadow-lg);" loading="lazy">
<div class="cs-stack" style="margin-top:20px;">
<span class="cs-stack-tag">WordPress</span>
<span class="cs-stack-tag">WooCommerce</span>
<span class="cs-stack-tag">Flutter Web</span>
<span class="cs-stack-tag">Augmented Reality</span>
<span class="cs-stack-tag">Gelato Print-on-Demand</span>
<span class="cs-stack-tag">Custom Plugins</span>
<span class="cs-stack-tag">REST API</span>
</div>
</div>
</div>
</div>
</section>
<!-- AR EXPERIENCE -->
<section class="section section--alt" aria-labelledby="ar-heading">
<div class="container">
<p class="eyebrow">Signature Feature</p>
<h2 id="ar-heading">How the AR preview works</h2>
<p style="max-width:640px;color:var(--grey-600);font-size:17px;line-height:1.7;margin-bottom:0;">Danielle does the entire setup from the WordPress admin. No technical knowledge required after the initial build I did. The whole pipeline runs from her laptop.</p>
<div class="cs-ar-flow">
<div class="cs-ar-step">
<div class="cs-ar-step-num">1</div>
<h5>Upload painting + video</h5>
<p>Danielle uploads a straight photo of the painting and a short video of it hanging in the studio. Both go into the rds-ar-manager plugin.</p>
</div>
<div class="cs-ar-step">
<div class="cs-ar-step-num">2</div>
<h5>AR target compiles in the browser</h5>
<p>The plugin compiles the AR target in the browser. No processing on my server, no external AR service subscription. The target image descriptor is stored with the product.</p>
</div>
<div class="cs-ar-step">
<div class="cs-ar-step-num">3</div>
<h5>Buyer opens Flutter app</h5>
<p>The Flutter PWA at flutter.rds.ink reads the product data via REST API. The buyer taps "View in your space" and the app opens a camera overlay showing the painting at real scale on their wall.</p>
</div>
</div>
<div class="cs-honest" style="margin-top:var(--sp-6);">
<div class="cs-honest-label">Honest note</div>
<p>The AR feature works well on mid range Android and current iOS. Older phones with limited camera APIs see a standard overlay without full spatial tracking. It's a real improvement for most buyers, not a universal replacement for visiting the studio. I document this clearly in the app.</p>
</div>
</div>
</section>
<!-- PLUGIN SUITE -->
<section class="section" aria-labelledby="plugins-heading">
<div class="container">
<p class="eyebrow">Custom Development</p>
<h2 id="plugins-heading">Five plugins, one purpose</h2>
<p style="max-width:640px;color:var(--grey-600);font-size:17px;line-height:1.7;margin-bottom:0;">Standard WooCommerce treats every product the same. I wrote these plugins because original artwork isn't the same as a T shirt. Each one fills a specific gap in how the gallery actually works.</p>
<ul class="cs-plugin-list">
<li class="cs-plugin-item">
<strong>rds-core</strong>
<span>Core gallery functionality: product display, pricing, SOLD badge with history, commission inquiry form, Similar Works shortcode, category filter bar, and artwork dimensions. The plugin that makes WooCommerce behave like an art gallery rather than a general shop.</span>
</li>
<li class="cs-plugin-item">
<strong>rds-ar-manager</strong>
<span>AR experience management. Danielle uploads painting image and video via a metabox on the product edit screen. The plugin handles AR target compilation and makes it available to the Flutter app.</span>
</li>
<li class="cs-plugin-item">
<strong>rds-flutter-config</strong>
<span>Controls the look, feel, and content of the Flutter PWA from WP admin. Theme colours, featured collections, and navigation structure can all be changed without redeploying the app.</span>
</li>
<li class="cs-plugin-item">
<strong>rds-image-guard</strong>
<span class="cs-plugin-version">Active</span>
<span>Disables right click save and drag based image theft on all gallery pages. Doesn't prevent determined copying but removes casual right click downloads. Standard protection for selling original digital previews of artwork.</span>
</li>
<li class="cs-plugin-item">
<strong>rds-seo-command</strong>
<span class="cs-plugin-version">Active</span>
<span>SEO tooling for the gallery: auto-generates meta descriptions from product data, builds structured data markup for individual artwork pages, and handles canonical URLs across the category and tag views.</span>
</li>
</ul>
</div>
</section>
<!-- PRINT ON DEMAND -->
<section class="section section--alt" aria-labelledby="pod-heading">
<div class="container">
<p class="eyebrow">Commerce Layer</p>
<h2 id="pod-heading">Originals plus print on demand</h2>
<p style="max-width:640px;color:var(--grey-600);font-size:17px;line-height:1.7;margin-bottom:var(--sp-6);">Running Duck Studio sells two things: original paintings at original prices, and print reproductions via Gelato. Gelato handles fulfilment. They print and ship from the production facility closest to the buyer, and the WooCommerce integration I set up connects the two.</p>
<div class="cs-feature-grid" style="margin-top:0;">
<div class="cs-feature-card">
<div class="cs-feature-icon">🎨</div>
<h4>Original paintings</h4>
<p>Each original is a single WooCommerce product with a custom SOLD state I built. When it sells, the product switches to SOLD, shows the sold price and date, and remains visible as portfolio history rather than disappearing from the site.</p>
</div>
<div class="cs-feature-card">
<div class="cs-feature-icon">🖨️</div>
<h4>Gelato print on demand</h4>
<p>Limited edition prints are fulfilled by Gelato. The buyer places a WooCommerce order; Gelato picks it up automatically and handles printing, packaging, and shipping. No inventory, no fulfilment work on Danielle's end, and nothing manual for me either.</p>
</div>
<div class="cs-feature-card">
<div class="cs-feature-icon">📦</div>
<h4>Commission inquiries</h4>
<p>The commission form (part of rds-core) captures buyer requirements, preferred size, colour palette, and budget. It feeds into a structured email workflow rather than a generic contact form. Danielle gets everything she needs in one message.</p>
</div>
</div>
<div class="cs-honest" style="margin-top:var(--sp-6);">
<div class="cs-honest-label">Honest note: Gelato</div>
<p>Gelato's WooCommerce API has specific requirements around product variant mapping that I had to document carefully. When Gelato updates their product catalogue, variant IDs can change and previously mapped products need relinking, so it is important keep the variant mapping current. It's not a set and forget integration. I handle those updates as part of the ongoing management relationship.</p>
</div>
</div>
</section>
<!-- FLUTTER APP -->
<section class="section" aria-labelledby="app-heading">
<div class="container">
<p class="eyebrow">Mobile Experience</p>
<h2 id="app-heading">The Flutter app</h2>
<div class="cs-two-col">
<div>
<p>The Flutter progressive web app I wrote at <strong>flutter.rds.ink</strong> is an 8.4 MB build that runs in the browser on any device. No app store download required. The buyer opens it from their phone browser or via a QR code on the gallery page.</p>
<p>The app reads product data from the WordPress REST API on launch. Featured collections, theme colours, and the gallery structure all come from the rds-flutter-config plugin, so the app stays in sync with the website without being redeployed every time Danielle adds a new collection.</p>
<p>Core screens: gallery browse by category, individual artwork detail with AR trigger, Danielle's story, commission inquiry form, and a direct link to the WooCommerce cart. I run the cart in a WebView pointed at the WordPress site so I don't duplicate the payment integration.</p>
</div>
<div>
<div class="cs-feature-card" style="margin-bottom:16px;">
<div class="cs-feature-icon">📱</div>
<h4>PWA, no app store required</h4>
<p>Works on Android and iOS via the browser. Users can add it to their home screen and it behaves like an installed app. The service worker caches the gallery for offline browsing.</p>
</div>
<div class="cs-feature-card" style="margin-bottom:16px;">
<div class="cs-feature-icon">🔗</div>
<h4>Live data from WordPress</h4>
<p>The app reads the product catalogue via REST API. New artwork appears in the app automatically when published in WordPress. I don't need to redeploy anything for content updates.</p>
</div>
<div class="cs-feature-card">
<div class="cs-feature-icon">🛒</div>
<h4>Cart via WebView</h4>
<p>Purchases complete through the WooCommerce site inside a WebView. No duplicated payment integration, no Stripe keys managed in two places.</p>
</div>
</div>
</div>
</div>
</section>
<!-- TECH STACK -->
<section class="section section--alt" aria-labelledby="stack-heading">
<div class="container">
<p class="eyebrow">Technical Details</p>
<h2 id="stack-heading">Full stack</h2>
<div class="cs-two-col">
<div>
<h4 style="font-size:15px;margin-bottom:12px;color:var(--ink);">Web platform</h4>
<div class="cs-stack" style="margin-top:0;">
<span class="cs-stack-tag">WordPress 6.x</span>
<span class="cs-stack-tag">WooCommerce</span>
<span class="cs-stack-tag">Elementor Pro</span>
<span class="cs-stack-tag">rds-core</span>
<span class="cs-stack-tag">rds-ar-manager</span>
<span class="cs-stack-tag">rds-flutter-config</span>
<span class="cs-stack-tag">rds-image-guard</span>
<span class="cs-stack-tag">rds-seo-command</span>
<span class="cs-stack-tag">Gelato integration</span>
</div>
<h4 style="font-size:15px;margin-bottom:12px;margin-top:24px;color:var(--ink);">Mobile app</h4>
<div class="cs-stack" style="margin-top:0;">
<span class="cs-stack-tag">Flutter 3.x</span>
<span class="cs-stack-tag">Dart</span>
<span class="cs-stack-tag">WebXR AR</span>
<span class="cs-stack-tag">Service Worker PWA</span>
<span class="cs-stack-tag">REST API consumer</span>
<span class="cs-stack-tag">WebView cart</span>
</div>
</div>
<div>
<h4 style="font-size:15px;margin-bottom:12px;color:var(--ink);">Infrastructure</h4>
<div class="cs-stack" style="margin-top:0;">
<span class="cs-stack-tag">DirectAdmin, brisbane01</span>
<span class="cs-stack-tag">PHP 8.4</span>
<span class="cs-stack-tag">MariaDB</span>
<span class="cs-stack-tag">Let's Encrypt SSL</span>
<span class="cs-stack-tag">rds.ink (WooCommerce)</span>
<span class="cs-stack-tag">flutter.rds.ink (Flutter PWA)</span>
</div>
<div class="cs-honest" style="margin-top:24px;">
<div class="cs-honest-label">What this costs to run</div>
<p>The platform runs on shared infrastructure on the same Brisbane server as the rest of my portfolio. Total hosting cost for rds.ink and the Flutter subdomain is included in the Tailored Website Management plan at $200/month. Gelato charges per print fulfilled; there's no monthly fee for their integration.</p>
</div>
</div>
</div>
</div>
</section>
<!-- CTA -->
<section class="section">
<div class="container">
<div class="cs-cta">
<h2>Want a WooCommerce store that actually fits your business?</h2>
<p>Standard WooCommerce is a solid foundation. The question is whether it fits what you actually sell. If it doesn't, I build the parts that are missing.</p>
<div class="cs-hero-actions" style="justify-content:center;">
<a href="../contact.html" class="btn btn-primary btn-lg">Talk to us</a>
<a href="../plugin-development.html" class="btn btn-secondary btn-lg">Custom plugin development</a>
</div>
</div>
<div style="margin-top:var(--sp-8);text-align:center;">
<a href="../index.html#portfolio" style="font-size:14px;color:var(--grey-400);">← Back to all work</a>
</div>
</div>
</section>
<!-- FOOTER -->
<footer class="footer" aria-label="Site footer">
<div class="container">
<div class="footer__grid">
<div class="footer__brand">
<img src="../assets/images/logo-cropped.jpg" alt="HELP4BIS" width="140" height="38">
<p>Managed WordPress hosting and maintenance for Australian small businesses. Brisbane based, personal service, WordPress specialist.</p>
<p style="margin-top:8px; font-size:12px; color:rgba(255,255,255,.25);">Dutch Digital Dynamics Pty Ltd · ABN 86 081 237 087</p>
</div>
<div class="footer__col">
<h4>Services</h4>
<ul class="footer__links">
<li><a href="../managed-wordpress.html">Tailored Website Management</a></li>
<li><a href="../care-plans.html">WP Care Plans</a></li>
<li><a href="../sos-fix.html">WP SOS Fix</a></li>
<li><a href="../ai-integration.html">AI Integration</a></li>
<li><a href="../plugin-development.html">Plugin Development</a></li>
</ul>
</div>
<div class="footer__col">
<h4>Our Work</h4>
<ul class="footer__links">
<li><a href="dayboro-au.html">Dayboro.au</a></li>
<li><a href="gardenbuddy-au.html">GardenBuddy.au</a></li>
<li><a href="tawnytrails.html">Tawny Trails</a></li>
<li><a href="rds-ink.html">Running Duck Studio</a></li>
<li><a href="localbuddy-au.html">LocalBuddy</a></li>
<li><a href="m8chat-au.html">M8Chat</a></li>
<li><a href="nightcap-nm.html">Nightcap Natural Medicine</a></li>
</ul>
</div>
<div class="footer__col">
<h4>Contact</h4>
<ul class="footer__links">
<li><a href="mailto:project@help4bis.com">project@help4bis.com</a></li>
<li><a href="../contact.html">Submit a Brief</a></li>
<li><a href="../sos-fix.html">Emergency Fix</a></li>
</ul>
<p style="margin-top:16px; font-size:12px; color:rgba(255,255,255,.3);">Brisbane, Queensland<br>Response within 24 business hours</p>
</div>
</div>
<div class="footer__bottom">
<span>© 2026 HELP4BIS, a trading name of Dutch Digital Dynamics Pty Ltd · ABN 86 081 237 087</span>
<span><a href="../privacy.html">Privacy</a> · <a href="../terms.html">Terms</a></span>
</div>
</div>
</footer>
<button id="back-to-top" aria-label="Back to top">
<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="18 15 12 9 6 15"/></svg>
</button>
<script src="../assets/js/main.js"></script>
<script src="/analytics/tracker.js" defer></script>
</body>
</html>
+539
View File
@@ -0,0 +1,539 @@
<!DOCTYPE html>
<!-- Version: 1.2.0 | Created: 2026-05-05 | Updated: 2026-08-16 -->
<html lang="en-AU">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Tawny Trails Case Study | HELP4BIS</title>
<meta name="description" content="How Tawny Trails was built: 22 venues, 3 curated itineraries, a custom REST API, a Flutter PWA, and a membership platform for a rural arts and tourism trail in SE Queensland.">
<meta name="author" content="HELP4BIS">
<meta name="publisher" content="Dutch Digital Dynamics Pty Ltd">
<meta name="language" content="en-AU">
<meta name="geo.region" content="AU-QLD">
<link rel="canonical" href="https://help4bis.com/work/tawnytrails.html">
<meta name="robots" content="index, follow">
<meta property="og:type" content="website">
<meta property="og:url" content="https://help4bis.com/work/tawnytrails.html">
<meta property="og:site_name" content="HELP4BIS">
<meta property="og:title" content="Tawny Trails Case Study | HELP4BIS">
<meta property="og:description" content="22 venues, 3 itineraries, a custom Flutter PWA, and a WordPress REST API for a rural arts and tourism trail in the D'Aguilar Range, SE Queensland.">
<meta property="og:image" content="https://help4bis.com/assets/images/tawny-trails.jpg">
<meta property="og:locale" content="en_AU">
<link rel="icon" type="image/jpeg" href="../assets/images/logo-favicon.jpg"> <link rel="stylesheet" href="../assets/css/style.css">
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "WebPage",
"@id": "https://help4bis.com/work/tawnytrails.html#webpage",
"url": "https://help4bis.com/work/tawnytrails.html",
"name": "Tawny Trails Case Study | HELP4BIS",
"description": "A rural arts and tourism trail platform: 22 venues, 3 curated itineraries, a custom WordPress REST API, Flutter PWA, accessibility map, and PMPro membership, built for tawnytrails.com.",
"isPartOf": {"@id": "https://help4bis.com/#website"},
"breadcrumb": {
"@type": "BreadcrumbList",
"itemListElement": [
{"@type": "ListItem", "position": 1, "name": "Home", "item": "https://help4bis.com/"},
{"@type": "ListItem", "position": 2, "name": "Our Work", "item": "https://help4bis.com/#portfolio"},
{"@type": "ListItem", "position": 3, "name": "Tawny Trails", "item": "https://help4bis.com/work/tawnytrails.html"}
]
}
}
</script>
<style>
.cs-hero {
background: linear-gradient(160deg, var(--ink) 0%, #1a1a0d 50%, #1a2a10 100%);
padding: var(--sp-16) 0 var(--sp-12);
position: relative;
overflow: hidden;
}
.cs-hero::before {
content: '';
position: absolute;
top: -30%;
right: -15%;
width: 60%;
height: 200%;
background: radial-gradient(circle, rgba(245,158,11,.06) 0%, transparent 65%);
pointer-events: none;
}
.cs-breadcrumb {
font-size: 13px;
color: rgba(255,255,255,.45);
margin-bottom: var(--sp-5);
display: flex;
align-items: center;
gap: 8px;
}
.cs-breadcrumb a { color: rgba(255,255,255,.45); }
.cs-breadcrumb a:hover { color: var(--white); }
.cs-breadcrumb span { color: rgba(255,255,255,.25); }
.cs-hero h1 { color: var(--white); max-width: 820px; margin-bottom: var(--sp-4); }
.cs-hero-sub {
font-size: clamp(16px, 2vw, 20px);
color: rgba(255,255,255,.65);
max-width: 680px;
line-height: 1.65;
margin-bottom: var(--sp-6);
}
.cs-hero-actions { display: flex; gap: 12px; flex-wrap: wrap; }
.btn-amber {
background: linear-gradient(135deg, var(--amber), #d97706);
color: var(--ink);
border-color: transparent;
box-shadow: 0 4px 14px rgba(245,158,11,.30);
}
.btn-amber:hover {
background: linear-gradient(135deg, #fbbf24, var(--amber));
color: var(--ink);
transform: translateY(-2px);
}
.cs-kpis {
display: grid;
grid-template-columns: repeat(2, 1fr);
gap: 16px;
margin-top: var(--sp-8);
padding-top: var(--sp-8);
border-top: 1px solid rgba(255,255,255,.08);
}
@media (min-width: 640px) { .cs-kpis { grid-template-columns: repeat(4, 1fr); } }
.cs-kpi { text-align: center; }
.cs-kpi-value {
font-family: var(--font-head);
font-size: clamp(32px, 4vw, 52px);
font-weight: 900;
color: var(--amber);
line-height: 1;
letter-spacing: -0.04em;
}
.cs-kpi-label {
font-size: 12px;
font-weight: 600;
text-transform: uppercase;
letter-spacing: .12em;
color: rgba(255,255,255,.45);
margin-top: 6px;
}
.cs-feature-grid {
display: grid;
grid-template-columns: 1fr;
gap: 24px;
margin-top: var(--sp-6);
}
@media (min-width: 640px) { .cs-feature-grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 900px) { .cs-feature-grid { grid-template-columns: repeat(3, 1fr); } }
.cs-feature-card {
background: var(--white);
border: 1px solid var(--grey-100);
border-radius: var(--r-lg);
padding: 24px;
box-shadow: var(--shadow-card);
}
.cs-feature-card h4 { font-size: 15px; margin-bottom: 8px; color: var(--ink); }
.cs-feature-card p { font-size: 14px; color: var(--grey-600); line-height: 1.6; margin: 0; }
.cs-feature-icon {
width: 36px;
height: 36px;
background: var(--grey-50);
border-radius: var(--r-md);
display: flex;
align-items: center;
justify-content: center;
margin-bottom: 14px;
font-size: 18px;
}
.cs-venue-grid {
display: grid;
grid-template-columns: repeat(2, 1fr);
gap: 10px;
margin-top: var(--sp-5);
}
@media (min-width: 640px) { .cs-venue-grid { grid-template-columns: repeat(3, 1fr); } }
@media (min-width: 900px) { .cs-venue-grid { grid-template-columns: repeat(4, 1fr); } }
.cs-venue-chip {
background: var(--grey-50);
border: 1px solid var(--grey-100);
border-radius: var(--r-md);
padding: 10px 14px;
font-size: 13px;
color: var(--grey-800);
font-weight: 500;
line-height: 1.4;
}
.cs-venue-chip span {
display: block;
font-size: 11px;
font-weight: 600;
text-transform: uppercase;
letter-spacing: .08em;
color: var(--amber);
margin-bottom: 3px;
}
.cs-stack { display: flex; flex-wrap: wrap; gap: 8px; margin-top: var(--sp-4); }
.cs-stack-tag {
background: var(--grey-50);
border: 1px solid var(--grey-100);
border-radius: var(--r-full);
padding: 6px 14px;
font-size: 13px;
font-weight: 500;
color: var(--grey-600);
}
.cs-two-col { display: grid; grid-template-columns: 1fr; gap: var(--sp-8); align-items: start; }
@media (min-width: 768px) { .cs-two-col { grid-template-columns: 1fr 1fr; } .cs-two-col--wide { grid-template-columns: 3fr 2fr; } }
.cs-quote {
border-left: 3px solid var(--amber);
padding: var(--sp-4) var(--sp-5);
background: rgba(245,158,11,.04);
border-radius: 0 var(--r-md) var(--r-md) 0;
margin: var(--sp-5) 0;
}
.cs-quote p { font-size: 17px; line-height: 1.7; color: var(--grey-800); font-style: italic; margin: 0; }
.cs-honest {
background: var(--grey-50);
border: 1px solid var(--grey-100);
border-radius: var(--r-lg);
padding: var(--sp-4) var(--sp-5);
margin: var(--sp-5) 0;
}
.cs-honest-label { font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .12em; color: var(--grey-400); margin-bottom: 8px; }
.cs-honest p { font-size: 14px; color: var(--grey-600); line-height: 1.65; margin: 0; }
.cs-divider { height: 1px; background: var(--grey-100); margin: var(--sp-8) 0; }
.cs-cta {
background: linear-gradient(135deg, var(--ink-mid), var(--ink));
border-radius: var(--r-2xl);
padding: var(--sp-10) var(--sp-8);
text-align: center;
}
.cs-cta h2 { color: var(--white); margin-bottom: var(--sp-4); }
.cs-cta p { color: rgba(255,255,255,.65); max-width: 560px; margin: 0 auto var(--sp-6); font-size: 17px; line-height: 1.7; }
</style>
</head>
<body>
<nav class="nav" role="navigation" aria-label="Main navigation">
<div class="nav__inner">
<a class="nav__logo" href="../index.html" aria-label="HELP4BIS home">
<img src="../assets/images/logo-cropped.jpg" alt="HELP4BIS" width="140" height="38">
</a>
<ul class="nav__links" id="nav-links" role="list">
<li class="nav__dropdown">
<button class="nav__trigger" aria-haspopup="true" aria-expanded="false">Services <svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"/></svg></button>
<ul class="nav__dropdown-menu" role="menu">
<li class="nav__menu-group">WordPress</li>
<li><a href="../managed-wordpress.html" role="menuitem">Tailored Website Management</a></li>
<li><a href="../care-plans.html" role="menuitem">WP Care Plans <span class="menu-price">from $49/mo</span></a></li>
<li><a href="../sos-fix.html" role="menuitem">WP SOS Fix <span class="menu-price">$97 flat</span></a></li>
<li><a href="../ai-integration.html" role="menuitem">AI Integration</a></li>
<li><a href="../plugin-development.html" role="menuitem">Custom Plugin Development</a></li> </ul>
</li>
<li><a href="../about.html">About</a></li>
<li><a href="../index.html#portfolio">Our Work</a></li>
<li><a href="../index.html#pricing">Pricing</a></li>
<li><a href="../blog/index.html">Blog</a></li>
<li><a href="../your-first-week-with-ai.html">AI Guide</a></li>
<li><a href="../contact.html">Contact</a></li>
<li class="nav__cta-mobile" aria-hidden="true">
<a href="../contact.html" class="btn btn-primary">Get Started</a>
<a href="../sos-fix.html" class="btn btn-secondary">SOS Fix, $97</a>
</li>
</ul>
<div class="nav__cta">
<a href="../sos-fix.html" class="btn btn-secondary btn-sm">SOS Fix, $97</a>
<a href="../contact.html" class="btn btn-primary btn-sm">Get Started</a>
</div>
<button class="nav__burger" id="nav-burger" aria-label="Open menu" aria-expanded="false" aria-controls="nav-links">
<span></span><span></span><span></span>
</button>
</div>
</nav>
<!-- HERO -->
<section class="cs-hero" aria-labelledby="cs-heading">
<div class="container">
<div class="cs-breadcrumb">
<a href="../index.html">Home</a><span>›</span>
<a href="../index.html#portfolio">Our Work</a><span>›</span>
<span style="color:rgba(255,255,255,.7);">Tawny Trails</span>
</div>
<p class="eyebrow" style="color:rgba(245,158,11,.9);">Case Study: Tourism &amp; Arts Trail</p>
<h1 id="cs-heading">Tawny Trails.<br>A rural arts trail<br>with a proper platform.</h1>
<p class="cs-hero-sub">22 venues across the D'Aguilar Range and surrounds (art studios, sculpture gardens, horse riding, ceramics, accommodation, and bush walks) all connected through a REST API I built on WordPress, feeding a Flutter PWA and a curated itinerary system.</p>
<div class="cs-hero-actions">
<a href="https://tawnytrails.com" target="_blank" rel="noopener" class="btn btn-amber">Visit tawnytrails.com →</a>
<a href="https://flutter.tawnytrails.com" target="_blank" rel="noopener" class="btn btn-secondary">Open the app</a>
</div>
<div class="cs-kpis">
<div class="cs-kpi"><div class="cs-kpi-value">22</div><div class="cs-kpi-label">Venues on the Trail</div></div>
<div class="cs-kpi"><div class="cs-kpi-value">3</div><div class="cs-kpi-label">Curated Itineraries</div></div>
<div class="cs-kpi"><div class="cs-kpi-value">1.7</div><div class="cs-kpi-label">Custom Plugins Built</div></div>
<div class="cs-kpi"><div class="cs-kpi-value">6.9 MB</div><div class="cs-kpi-label">Flutter PWA</div></div>
</div>
</div>
</section>
<!-- OVERVIEW -->
<section class="section" aria-labelledby="overview-heading">
<div class="container">
<div class="cs-two-col cs-two-col--wide">
<div>
<p class="eyebrow">Overview</p>
<h2 id="overview-heading">What it is</h2>
<p class="large">Tawny Trails is a self guided arts and tourism trail covering the D'Aguilar Range, the Dayboro valley, and the surrounding hinterland northwest of Brisbane. 22 venues, from galleries, studios and sculpture parks to horse trail operators, accommodation, and bush walking areas, connected through a single platform that visitors can use on a phone without needing to install anything.</p>
<p>The brief I got wasn't just a directory with a map. It needed themed itineraries so a day visitor from Brisbane could plan a route without spending twenty minutes reading. It needed opening hours that were current, and with 22 venues it is important keep those current without me touching them. It needed to work as a Flutter app on the phone, not a website that looks like it was designed for a desktop. And it needed a membership layer so venue operators could manage their own listings.</p>
<div class="cs-quote">
<p>"The gap between 'a WordPress site with a map plugin' and 'an actual trail platform' is a custom REST API, a Flutter app, and a decent itinerary system. That's what I built."</p>
</div>
<div class="cs-stack">
<span class="cs-stack-tag">WordPress</span>
<span class="cs-stack-tag">Flutter Web</span>
<span class="cs-stack-tag">Custom REST API</span>
<span class="cs-stack-tag">ACF</span>
<span class="cs-stack-tag">PMPro Membership</span>
<span class="cs-stack-tag">Elementor Pro</span>
<span class="cs-stack-tag">Custom CPT</span>
</div>
</div>
<div>
<img src="../assets/images/tawny-trails.jpg" alt="Tawny Trails arts and tourism trail" style="width:100%;border-radius:var(--r-xl);box-shadow:var(--shadow-lg);" loading="lazy">
</div>
</div>
</div>
</section>
<!-- VENUES -->
<section class="section section--alt" aria-labelledby="venues-heading">
<div class="container">
<p class="eyebrow">The Trail</p>
<h2 id="venues-heading">22 venues, all on one platform</h2>
<p style="max-width:640px;color:var(--grey-600);font-size:17px;line-height:1.7;">Each venue is a custom post type (<code>tt_venue</code>) with ACF fields for opening hours, GPS coordinates, category, accessibility notes, and contact details. The Flutter app reads all of it from my REST API. There's no hardcoded content in the app itself.</p>
<div class="cs-venue-grid">
<div class="cs-venue-chip"><span>Art Studio</span>Kylie Farrelly Art</div>
<div class="cs-venue-chip"><span>Art Studio</span>Ann Russell Art</div>
<div class="cs-venue-chip"><span>Art Studio</span>Tatiana Afonina</div>
<div class="cs-venue-chip"><span>Art Studio</span>Christa's Art &amp; Gilding</div>
<div class="cs-venue-chip"><span>Gallery</span>The Artist Cove</div>
<div class="cs-venue-chip"><span>Gallery</span>Dayboro Art Gallery</div>
<div class="cs-venue-chip"><span>Gallery</span>Running Duck Studio</div>
<div class="cs-venue-chip"><span>Ceramics</span>Woodside Ceramics</div>
<div class="cs-venue-chip"><span>Sculpture</span>Phoenix Sculpture Garden</div>
<div class="cs-venue-chip"><span>Heritage</span>Silverwood Butter Factory</div>
<div class="cs-venue-chip"><span>Workshop</span>The Gantry</div>
<div class="cs-venue-chip"><span>Restaurant</span>Rendezvous</div>
<div class="cs-venue-chip"><span>Horse Riding</span>Slickers Horse Riding</div>
<div class="cs-venue-chip"><span>Bush Walk</span>Maiala Rain Forest</div>
<div class="cs-venue-chip"><span>Lookout</span>Dahmongah Lookout Park</div>
<div class="cs-venue-chip"><span>Accommodation</span>Maiala Park Lodge</div>
<div class="cs-venue-chip"><span>Accommodation</span>Laceys Creek Homestead</div>
<div class="cs-venue-chip"><span>Accommodation</span>Cascade Cottage</div>
<div class="cs-venue-chip"><span>Accommodation</span>Walkabout Retreat</div>
<div class="cs-venue-chip"><span>Accommodation</span>Mercure Clear Mountain</div>
<div class="cs-venue-chip"><span>Accommodation</span>Ocean View Estates</div>
<div class="cs-venue-chip"><span>Accommodation</span>Oceanview Estates</div>
</div>
</div>
</section>
<!-- REST API + FLUTTER -->
<section class="section" aria-labelledby="api-heading">
<div class="container">
<p class="eyebrow">Technical Architecture</p>
<h2 id="api-heading">A custom API feeding the Flutter app</h2>
<p style="max-width:640px;color:var(--grey-600);font-size:17px;line-height:1.7;">The TawnyTrails API plugin (tt-api) is the engine of the whole platform. I wrote it to expose venue data, itineraries, and opening hours logic via a custom REST API. The Flutter app has no hardcoded content. Everything it displays is fetched live from WordPress.</p>
<div class="cs-feature-grid">
<div class="cs-feature-card">
<div class="cs-feature-icon">🔌</div>
<h4>TawnyTrails API Plugin (tt-api)</h4>
<p>A WordPress plugin I built specifically for this project. It handles venue data storage, custom field management, the REST API layer, and data caching to keep the Flutter app fast without hitting the database on every request.</p>
</div>
<div class="cs-feature-card">
<div class="cs-feature-icon">📱</div>
<h4>Flutter PWA at flutter.tawnytrails.com</h4>
<p>A Flutter Web app compiled to JavaScript and deployed as static files. 6.9 MB, runs on Android, iPhone (via Safari Add to Home Screen), and desktop. Reads venues and itineraries from the REST API on load. No App Store account required for iOS users.</p>
</div>
<div class="cs-feature-card">
<div class="cs-feature-icon">🗺️</div>
<h4>Live venue map</h4>
<p>Every venue has GPS coordinates stored as ACF fields. The Flutter app renders an interactive map from the API data. Visitors can see all 22 stops, filter by category, and get directions from their current location.</p>
</div>
<div class="cs-feature-card">
<div class="cs-feature-icon">🕐</div>
<h4>Opening hours logic</h4>
<p>Each venue's opening hours are stored as structured data, not free text. The API calculates whether a venue is open right now based on the current time and day. The app shows "Open now" or "Closed, opens at X" without the Flutter app doing any time calculations itself.</p>
</div>
<div class="cs-feature-card">
<div class="cs-feature-icon">🧭</div>
<h4>Three curated itineraries</h4>
<p>A full day on Tawny Trails, a Brisbane scenic drive and arts highlight, and a creative country walk through Dayboro township. Each itinerary is a custom post type with ordered venue stops, timing estimates, and driving directions between them.</p>
</div>
<div class="cs-feature-card">
<div class="cs-feature-icon">♿</div>
<h4>Accessibility map</h4>
<p>A separate view of the trail focused on accessibility, with notes per venue. Flat access, parking proximity, and facility notes for each venue, stored as ACF fields and exposed through the same REST API.</p>
</div>
</div>
<div class="cs-honest">
<div class="cs-honest-label">Why not a standard map plugin</div>
<p>Standard WordPress map plugins (Google Maps, MapPress, etc.) embed a JavaScript widget on a page. They work fine for a simple business locator. They can't serve a Flutter app, they can't calculate opening hours state, and they can't handle itinerary ordering or accessibility data in a structured way. When a Flutter app needs to consume venue data you need a real REST API, not a plugin that renders HTML. I checked the plugin route first and it doesn't get you there.</p>
</div>
</div>
</section>
<!-- MEMBERSHIP + CONTENT -->
<section class="section section--alt" aria-labelledby="membership-heading">
<div class="container">
<div class="cs-two-col">
<div>
<p class="eyebrow">Platform Features</p>
<h2 id="membership-heading">Membership and content management</h2>
<p class="large">Venue operators log in and manage their own listings. Visitors can purchase trail memberships for extended features. The whole thing runs on PMPro, the same membership engine I use across the other platforms we manage.</p>
<p>My tt-pmpro-extensions plugin bridges PMPro and the access rules specific to TawnyTrails: which membership level gets access to which itinerary, gift certificate handling, and member discount logic for venue bookings.</p>
<div class="cs-feature-grid" style="grid-template-columns:1fr 1fr;margin-top:var(--sp-5);">
<div class="cs-feature-card">
<h4>Tour operator portal</h4>
<p>A dedicated page for tour operators listing group experience options, with booking inquiry forms linked to each operator's contact.</p>
</div>
<div class="cs-feature-card">
<h4>Trail blog</h4>
<p>Regular editorial content about venues, seasonal events, new openings, and trail news. Indexed and surfaced in search.</p>
</div>
<div class="cs-feature-card">
<h4>Gift certificates</h4>
<p>Trail membership gift certificates configured in PMPro. Recipients redeem them at checkout for trail access.</p>
</div>
<div class="cs-feature-card">
<h4>Feature flags</h4>
<p>A feature flag system in tt-api lets us enable or disable features for specific membership levels without a code deploy. It's controlled from the WordPress admin.</p>
</div>
</div>
</div>
<div>
<div style="background:var(--ink-mid);border-radius:var(--r-xl);padding:var(--sp-6);color:var(--white);">
<p class="eyebrow" style="color:rgba(245,158,11,.9);">Custom plugins built</p>
<ul style="list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:20px;">
<li style="border-bottom:1px solid rgba(255,255,255,.07);padding-bottom:18px;">
<strong style="color:var(--white);font-size:14px;display:block;margin-bottom:6px;">tt-api</strong>
<p style="font-size:13px;color:rgba(255,255,255,.55);margin:0;line-height:1.5;">Core REST API. Registers CPTs, meta fields, routes, CORS, caching. The Flutter app's entire data layer.</p>
</li>
<li style="border-bottom:1px solid rgba(255,255,255,.07);padding-bottom:18px;">
<strong style="color:var(--white);font-size:14px;display:block;margin-bottom:6px;">tt-pmpro-extensions</strong>
<p style="font-size:13px;color:rgba(255,255,255,.55);margin:0;line-height:1.5;">Membership access rules specific to TawnyTrails: itinerary gating, gift certificates, operator dashboard access.</p>
</li>
<li style="border-bottom:1px solid rgba(255,255,255,.07);padding-bottom:18px;">
<strong style="color:var(--white);font-size:14px;display:block;margin-bottom:6px;">tt-event-shortcodes</strong>
<p style="font-size:13px;color:rgba(255,255,255,.55);margin:0;line-height:1.5;">Shortcodes for embedding trail events, seasonal listings, and venue availability in standard WordPress pages.</p>
</li>
<li>
<strong style="color:var(--white);font-size:14px;display:block;margin-bottom:6px;">tt-site-tweaks</strong>
<p style="font-size:13px;color:rgba(255,255,255,.55);margin:0;line-height:1.5;">Performance and display adjustments specific to the trail theme: header overrides, lazy load tuning, schema output.</p>
</li>
</ul>
</div>
</div>
</div>
</div>
</section>
<!-- TECH STACK -->
<section class="section" aria-labelledby="stack-heading">
<div class="container">
<p class="eyebrow">Under the Hood</p>
<h2 id="stack-heading">Full technology stack</h2>
<div class="cs-stack" style="margin-top:var(--sp-4);">
<span class="cs-stack-tag">WordPress 6.x</span>
<span class="cs-stack-tag">PHP 8.4</span>
<span class="cs-stack-tag">MariaDB</span>
<span class="cs-stack-tag">Flutter 3.x</span>
<span class="cs-stack-tag">Dart</span>
<span class="cs-stack-tag">Flutter Web</span>
<span class="cs-stack-tag">REST API (custom)</span>
<span class="cs-stack-tag">Advanced Custom Fields</span>
<span class="cs-stack-tag">PMPro Membership</span>
<span class="cs-stack-tag">Elementor Pro</span>
<span class="cs-stack-tag">Custom CPT (tt_venue)</span>
<span class="cs-stack-tag">Custom CPT (tt_itinerary)</span>
<span class="cs-stack-tag">Redis cache</span>
<span class="cs-stack-tag">CleanTalk spam protection</span>
<span class="cs-stack-tag">DirectAdmin</span>
</div>
<div class="cs-divider"></div>
<div class="cs-honest">
<div class="cs-honest-label">What is still being built</div>
<p>The platform is live and functional. A few pages aren't published yet. Some shortcode driven content sections are still being completed, and the Gift Certificate flow is in draft. The REST API, Flutter app, venue directory, itineraries, and membership system are all fully operational. I'd call this a normal state for a growing platform, not abandoned and not broken.</p>
</div>
</div>
</section>
<!-- CTA -->
<section class="section section--dark" aria-labelledby="cta-heading">
<div class="container">
<div class="cs-cta">
<p class="eyebrow" style="color:rgba(245,158,11,.9);justify-content:center;">What I can build for you</p>
<h2 id="cta-heading">Got a trail, a precinct, or a cluster of venues?</h2>
<p>I can build the same architecture (custom REST API, Flutter PWA, itinerary system, opening hours logic, accessibility map, and membership layer) for any arts trail, tourism precinct, or cluster of venues. The venue count doesn't matter. The complexity doesn't matter. The pattern is proven, because it's already running.</p>
<div style="display:flex;gap:12px;justify-content:center;flex-wrap:wrap;">
<a href="../contact.html" class="btn btn-primary">Talk to us about your project</a>
<a href="../index.html#portfolio" class="btn btn-secondary">See more of our work</a>
</div>
</div>
</div>
</section>
<footer class="footer" aria-label="Site footer">
<div class="container">
<div class="footer__grid">
<div class="footer__brand">
<img src="../assets/images/logo-cropped.jpg" alt="HELP4BIS" width="140" height="38">
<p>Managed WordPress hosting and maintenance for Australian small businesses. Brisbane based, personal service, WordPress specialist.</p>
<p style="font-size:13px; color:rgba(255,255,255,.4);">Dutch Digital Dynamics Pty Ltd · ABN 86 081 237 087</p>
</div>
<div class="footer__col">
<h4>Services</h4>
<ul class="footer__links">
<li><a href="../managed-wordpress.html">Tailored Website Management</a></li>
<li><a href="../care-plans.html">WP Care Plans</a></li>
<li><a href="../sos-fix.html">WP SOS Fix</a></li>
<li><a href="../ai-integration.html">AI Integration</a></li>
<li><a href="../plugin-development.html">Plugin Development</a></li> </ul>
</div>
<div class="footer__col">
<h4>Company</h4>
<ul class="footer__links">
<li><a href="../about.html">About Us</a></li>
<li><a href="../index.html#portfolio">Our Work</a></li>
<li><a href="../index.html#testimonials">Client Feedback</a></li>
<li><a href="../blog/index.html">Blog</a></li>
<li><a href="../contact.html">Contact</a></li>
</ul>
</div>
<div class="footer__col">
<h4>Contact</h4>
<ul class="footer__links">
<li><a href="mailto:project@help4bis.com">project@help4bis.com</a></li>
<li><a href="../contact.html">Submit a Brief</a></li>
<li><a href="../sos-fix.html">Emergency Fix</a></li>
</ul>
<p style="margin-top:1rem; font-size:13px; color:rgba(255,255,255,.4);">Brisbane, Queensland<br>Response within 24 business hours</p>
</div>
</div>
<div class="footer__bottom">
<span>© 2026 HELP4BIS, a trading name of Dutch Digital Dynamics Pty Ltd · ABN 86 081 237 087</span>
<span><a href="../privacy.html">Privacy Policy</a> · <a href="../terms.html">Terms</a></span>
</div>
</div>
</footer>
<button id="back-to-top" aria-label="Back to top" style="position:fixed;bottom:24px;right:24px;width:44px;height:44px;background:var(--red);border:none;border-radius:50%;color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .3s ease;box-shadow:var(--shadow-md);">
<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="18 15 12 9 6 15"/></svg>
</button>
<script src="../assets/js/main.js"></script>
<script src="../analytics/tracker.js" defer></script>
</body>
</html>
+629
View File
@@ -0,0 +1,629 @@
<!DOCTYPE html>
<!-- Version: 1.3.0 | Created: 2026-07-12 | Updated: 2026-08-16 -->
<html lang="en-AU">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Your First Week With AI: A Free Beginner's Checklist | HELP4BIS</title>
<meta name="description" content="New to AI? This free step-by-step guide walks a complete beginner through their first week with an AI chat assistant. Plain English, no jargon, no sign-up.">
<meta name="keywords" content="AI for beginners, how to use AI chat, beginner AI guide, Claude beginner guide, ChatGPT beginner guide, new to AI checklist, how to write AI prompts">
<meta name="author" content="HELP4BIS">
<meta name="publisher" content="Dutch Digital Dynamics Pty Ltd">
<meta name="copyright" content="Dutch Digital Dynamics Pty Ltd">
<meta name="language" content="en-AU">
<meta name="robots" content="index, follow">
<link rel="canonical" href="https://help4bis.com/your-first-week-with-ai.html">
<meta property="og:type" content="article">
<meta property="og:url" content="https://help4bis.com/your-first-week-with-ai.html">
<meta property="og:site_name" content="HELP4BIS">
<meta property="og:title" content="Your First Week With AI: A Free Beginner's Checklist">
<meta property="og:description" content="New to AI? A free, plain-English, step-by-step guide for your first week with an AI chat assistant. No jargon, no sign-up.">
<meta property="og:image" content="https://help4bis.com/assets/images/og-social-card.jpg">
<meta property="og:locale" content="en_AU">
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:title" content="Your First Week With AI: A Free Beginner's Checklist">
<meta name="twitter:description" content="New to AI? A free, plain-English, step-by-step guide for your first week with an AI chat assistant.">
<meta name="twitter:image" content="https://help4bis.com/assets/images/og-social-card.jpg">
<link rel="icon" type="image/jpeg" href="assets/images/logo-favicon.jpg">
<link rel="stylesheet" href="assets/css/style.css">
<style>
/* Your First Week With AI, page extras */
.progress-row {
display: flex; align-items: center; gap: var(--sp-3);
margin-bottom: var(--sp-8);
max-width: 720px;
}
.progress-track {
flex: 1; height: 8px; border-radius: var(--r-full);
background: var(--grey-100); overflow: hidden;
}
.progress-fill {
height: 100%; width: 0%; border-radius: var(--r-full);
background: linear-gradient(90deg, var(--green), #16a34a);
transition: width .4s var(--ease-out);
}
.progress-label {
font-family: var(--font-head); font-size: 13px; font-weight: 700;
color: var(--grey-600); white-space: nowrap; font-variant-numeric: tabular-nums;
}
@media (prefers-reduced-motion: reduce) { .progress-fill { transition: none; } }
.step-item__left {
display: flex; align-items: center; gap: var(--sp-3);
flex: 1; min-width: 0;
}
.step-num {
flex-shrink: 0; width: 32px; height: 32px; border-radius: 50%;
background: var(--grey-50); border: 1.5px solid var(--grey-200);
color: var(--red); font-family: var(--font-head); font-weight: 800;
font-size: 14px; display: flex; align-items: center; justify-content: center;
font-variant-numeric: tabular-nums; transition: all .22s ease;
}
.faq-item:has(.step-check:checked) .step-num {
background: var(--green); color: var(--white); border-color: transparent;
}
.faq-item:has(.step-check:checked) .step-item__left { opacity: .55; }
.step-item__right { display: flex; align-items: center; gap: var(--sp-3); flex-shrink: 0; }
.step-check {
width: 20px; height: 20px; accent-color: var(--green); cursor: pointer;
}
.faq-item__answer .prompt-box,
.faq-item__answer .why-callout,
.faq-item__answer ul { max-width: 640px; }
.prompt-box {
background: var(--grey-50); border: 1px solid var(--grey-100);
border-radius: var(--r-md); padding: 14px 16px;
display: flex; gap: 12px; align-items: flex-start; margin: var(--sp-3) 0;
}
.prompt-box p {
margin: 0; font-size: 14.5px; line-height: 1.6; color: var(--grey-800);
flex: 1; font-style: italic;
}
.prompt-copy {
flex-shrink: 0; font-family: var(--font-head); font-size: 11px; font-weight: 700;
letter-spacing: .05em; text-transform: uppercase; background: var(--white);
color: var(--red); border: 1.5px solid var(--grey-200); border-radius: var(--r-sm);
padding: 7px 12px; cursor: pointer; transition: all var(--trans);
}
.prompt-copy:hover { border-color: var(--red); background: var(--red-subtle); }
.prompt-copy:focus-visible { outline: 2px solid var(--red); outline-offset: 2px; }
.why-callout {
border-left: 3px solid var(--red); background: var(--red-subtle);
padding: 12px 16px; border-radius: 0 var(--r-md) var(--r-md) 0;
margin: var(--sp-3) 0; font-size: 14.5px; color: var(--grey-800); max-width: 640px;
}
.why-callout strong {
display: block; font-family: var(--font-head); font-size: 11px;
letter-spacing: .08em; text-transform: uppercase; color: var(--red); margin-bottom: 4px;
}
.glossary-grid {
display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
gap: var(--sp-3); margin-top: var(--sp-5);
}
.glossary-card {
background: var(--grey-50); border: 1px solid var(--grey-100);
border-radius: var(--r-lg); padding: 18px 20px;
}
.glossary-card dt {
font-family: var(--font-head); font-weight: 800; font-size: 15px;
color: var(--red); margin-bottom: 4px;
}
.glossary-card dd { margin: 0; font-size: 14px; line-height: 1.6; color: var(--grey-600); }
</style>
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@graph": [
{
"@type": "WebPage",
"@id": "https://help4bis.com/your-first-week-with-ai.html#webpage",
"url": "https://help4bis.com/your-first-week-with-ai.html",
"name": "Your First Week With AI: A Free Beginner's Checklist",
"isPartOf": {"@id": "https://help4bis.com/#website"},
"breadcrumb": {
"@type": "BreadcrumbList",
"itemListElement": [
{"@type": "ListItem", "position": 1, "name": "Home", "item": "https://help4bis.com/"},
{"@type": "ListItem", "position": 2, "name": "Your First Week With AI", "item": "https://help4bis.com/your-first-week-with-ai.html"}
]
}
},
{
"@type": "HowTo",
"@id": "https://help4bis.com/your-first-week-with-ai.html#howto",
"name": "Your First Week With AI",
"description": "A plain-English, step-by-step guide for someone opening an AI chat assistant for the very first time.",
"step": [
{"@type": "HowToStep", "name": "What is this, actually?", "text": "Understand that an AI chat is a program you talk to by typing, not a search engine and not a person."},
{"@type": "HowToStep", "name": "Find the box, say hello", "text": "Type a first message into the chat box and send it."},
{"@type": "HowToStep", "name": "Ask for one real thing, plainly", "text": "Write a request using role, context, command, and format: who it should act as, what it needs to know, what you want done, and how you want the answer back."},
{"@type": "HowToStep", "name": "Talk back, don't start over", "text": "Correct the AI in the same conversation instead of starting a new chat each time."},
{"@type": "HowToStep", "name": "Check anything that matters", "text": "Verify facts, dates, numbers, and anything medical, legal, or financial before acting on it."},
{"@type": "HowToStep", "name": "Keep your private information private", "text": "Avoid pasting passwords, medical details, financial details, or other people's personal information into a chat."},
{"@type": "HowToStep", "name": "Know what it's bad at", "text": "Recognise common beginner mistakes: expecting one message to be enough, and mistaking confidence for correctness."},
{"@type": "HowToStep", "name": "Five things to try today", "text": "Practise with real prompts covering an explanation, a message, a plan, and a proofread."}
]
}
]
}
</script>
</head>
<body>
<!-- ═══════════════════════════════════════════════
NAVIGATION
═══════════════════════════════════════════════ -->
<nav class="nav" role="navigation" aria-label="Main navigation">
<div class="container">
<div class="nav__inner">
<a class="nav__logo" href="index.html" aria-label="HELP4BIS home">
<img src="assets/images/logo-cropped.jpg" alt="HELP4BIS Logo" width="160" height="44">
</a>
<ul class="nav__links" id="nav-links" role="list">
<li class="nav__dropdown">
<button class="nav__trigger" aria-haspopup="true" aria-expanded="false">Services <svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"/></svg></button>
<ul class="nav__dropdown-menu" role="menu">
<li class="nav__menu-group">WordPress</li>
<li><a href="managed-wordpress.html" role="menuitem">Tailored Website Management</a></li>
<li><a href="care-plans.html" role="menuitem">WP Care Plans <span class="menu-price">from $49/mo</span></a></li>
<li><a href="sos-fix.html" role="menuitem">WP SOS Fix <span class="menu-price">$97 flat</span></a></li>
<li><a href="ai-integration.html" role="menuitem">AI Integration</a></li>
<li><a href="plugin-development.html" role="menuitem">Custom Plugin Development</a></li> </ul>
</li>
<li><a href="about.html">About</a></li>
<li><a href="index.html#portfolio">Our Work</a></li>
<li><a href="index.html#pricing">Pricing</a></li>
<li><a href="blog/index.html">Blog</a></li>
<li><a href="your-first-week-with-ai.html">AI Guide</a></li>
<li><a href="contact.html">Contact</a></li>
<li class="nav__cta-mobile" aria-hidden="true">
<a href="contact.html" class="btn btn-primary">Get Started</a>
<a href="sos-fix.html" class="btn btn-secondary">SOS Fix, $97</a>
</li>
</ul>
<div class="nav__cta">
<a href="sos-fix.html" class="btn btn-secondary btn-sm">SOS Fix, $97</a>
<a href="contact.html" class="btn btn-primary btn-sm">Get Started</a>
</div>
<button class="nav__burger" id="nav-burger" aria-label="Open menu" aria-expanded="false" aria-controls="nav-links">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><line x1="3" y1="12" x2="21" y2="12"/><line x1="3" y1="6" x2="21" y2="6"/><line x1="3" y1="18" x2="21" y2="18"/></svg>
</button>
</div>
</div>
</nav>
<!-- ═══════════════════════════════════════════════
PAGE HERO
═══════════════════════════════════════════════ -->
<section class="page-hero" aria-labelledby="hero-heading">
<div class="container">
<nav class="breadcrumb" aria-label="Breadcrumb">
<ol>
<li><a href="index.html">Home</a></li>
<li aria-current="page">Your First Week With AI</li>
</ol>
</nav>
<p class="eyebrow">Free Guide</p>
<h1 id="hero-heading">Your First Week With AI</h1>
<p>You are looking at a blank text box for the first time, and it is not obvious what to do with it. This guide walks you through it in order: what this actually is, what to type first, how to ask for things properly, and how to check whether you can trust what comes back. No sign-up, no jargon.</p>
</div>
</section>
<!-- ═══════════════════════════════════════════════
STEPS
═══════════════════════════════════════════════ -->
<section class="section" aria-labelledby="steps-heading">
<div class="container">
<div class="progress-row" aria-live="polite">
<span class="progress-label" id="progressLabel">0 of 8 done</span>
<span class="progress-track"><span class="progress-fill" id="progressFill"></span></span>
</div>
<p class="eyebrow">The Checklist</p>
<h2 id="steps-heading">Work through it in order</h2>
<p class="section-subtitle">Tick each one off as you go. It's fine to come back later, the tracker just runs in your browser for this visit.</p>
<div class="faq__list" role="list" style="margin-top: var(--sp-6);" id="stepList">
<details class="faq-item" role="listitem" open>
<summary class="faq-item__question">
<span class="step-item__left">
<span class="step-num">1</span>
<span>What is this, actually?</span>
</span>
<span class="step-item__right">
<input type="checkbox" class="step-check" aria-label="Mark step 1 done" onclick="event.stopPropagation()">
<span class="faq-item__icon" aria-hidden="true">
<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><line x1="12" y1="5" x2="12" y2="19"/><line x1="5" y1="12" x2="19" y2="12"/></svg>
</span>
</span>
</summary>
<div class="faq-item__answer">
<p>An AI chat is a computer program you talk to by typing. You type a message, it types a reply. That is the whole idea. It is not a search engine handing you a list of links, and it is not a person on the other end.</p>
<p>It has read an enormous amount of writing, so it's very good at producing answers that sound right. It doesn't always know whether what it wrote is actually true. I've seen it be completely wrong while sounding completely sure of itself. Keep that one sentence in mind for every step below.</p>
<p>My advice before you start: you don't need a perfect first message. You need to send one. Every step after this one will help you write better prompts, but pressing send on something rough is what actually gets you moving.</p>
</div>
</details>
<details class="faq-item" role="listitem">
<summary class="faq-item__question">
<span class="step-item__left">
<span class="step-num">2</span>
<span>Find the box, say hello</span>
</span>
<span class="step-item__right">
<input type="checkbox" class="step-check" aria-label="Mark step 2 done" onclick="event.stopPropagation()">
<span class="faq-item__icon" aria-hidden="true">
<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><line x1="12" y1="5" x2="12" y2="19"/><line x1="5" y1="12" x2="19" y2="12"/></svg>
</span>
</span>
</summary>
<div class="faq-item__answer">
<p>Somewhere on the screen, usually near the bottom, there is a text box waiting for you. Click into it, type a sentence, and press Enter or the send button.</p>
<div class="prompt-box">
<p>Hello. I am completely new to this. What are you able to help me with?</p>
<button class="prompt-copy" onclick="copyPrompt(this)">Copy</button>
</div>
<p>Send that. Read what comes back. That's it, you have now used AI. There is no setup and no manual you needed to read first.</p>
</div>
</details>
<details class="faq-item" role="listitem">
<summary class="faq-item__question">
<span class="step-item__left">
<span class="step-num">3</span>
<span>Ask for one real thing, plainly</span>
</span>
<span class="step-item__right">
<input type="checkbox" class="step-check" aria-label="Mark step 3 done" onclick="event.stopPropagation()">
<span class="faq-item__icon" aria-hidden="true">
<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><line x1="12" y1="5" x2="12" y2="19"/><line x1="5" y1="12" x2="19" y2="12"/></svg>
</span>
</span>
</summary>
<div class="faq-item__answer">
<p>A message to an AI is often called a prompt. Beginners can get a long way with a simple four-part shape. You will not need all four every time, but knowing they exist means you can reach for whichever one is missing when an answer falls flat.</p>
<ul>
<li><strong>Role.</strong> Who should it act as? A blunt editor, a patient teacher, a tenant advocate.</li>
<li><strong>Context.</strong> What does it actually need to know? Your situation, the numbers, the background.</li>
<li><strong>Command.</strong> What do you want done, in plain words?</li>
<li><strong>Format.</strong> How do you want it back? A list, a short paragraph, a table, under 100 words.</li>
</ul>
<div class="prompt-box">
<p>Act as a patient, plain-speaking tenant advocate. My landlord hasn't fixed a leaking kitchen tap I reported two weeks ago. Write a short email asking him to fix it this week. Keep it under 100 words, polite but firm.</p>
<button class="prompt-copy" onclick="copyPrompt(this)">Copy</button>
</div>
<div class="why-callout">
<strong>Why this matters</strong>
A vague request gets a vague, generic answer. A specific one gets a useful one. The AI is answering the question you actually asked, which is usually vaguer than you meant it to be.
</div>
<div class="why-callout">
<strong>Speed up your learning</strong>
Whenever an answer turns out exactly right, ask it: "Write me the exact prompt that would have gotten me this answer straight away." It hands you back the shortcut for next time, so you improve without having to study anything.
</div>
</div>
</details>
<details class="faq-item" role="listitem">
<summary class="faq-item__question">
<span class="step-item__left">
<span class="step-num">4</span>
<span>Talk back, don't start over</span>
</span>
<span class="step-item__right">
<input type="checkbox" class="step-check" aria-label="Mark step 4 done" onclick="event.stopPropagation()">
<span class="faq-item__icon" aria-hidden="true">
<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><line x1="12" y1="5" x2="12" y2="19"/><line x1="5" y1="12" x2="19" y2="12"/></svg>
</span>
</span>
</summary>
<div class="faq-item__answer">
<p>If the first answer is not quite right, do not delete everything and start a new question. Reply in the same conversation and correct it. The AI can see what was said earlier and will adjust, that's how I use it myself.</p>
<ul>
<li>"That's too long, cut it in half."</li>
<li>"Too formal, make it sound like me talking to a friend."</li>
<li>"You got the date wrong, it's the 14th, not the 4th."</li>
</ul>
<p>Most useful answers take two or three exchanges to get right. In my experience that's normal, not a sign you're doing it wrong.</p>
</div>
</details>
<details class="faq-item" role="listitem">
<summary class="faq-item__question">
<span class="step-item__left">
<span class="step-num">5</span>
<span>Check anything that matters</span>
</span>
<span class="step-item__right">
<input type="checkbox" class="step-check" aria-label="Mark step 5 done" onclick="event.stopPropagation()">
<span class="faq-item__icon" aria-hidden="true">
<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><line x1="12" y1="5" x2="12" y2="19"/><line x1="5" y1="12" x2="19" y2="12"/></svg>
</span>
</span>
</summary>
<div class="faq-item__answer">
<p>AI can state something false while sounding entirely confident about it. This has a name, a hallucination, covered in the glossary below. It is not rare, and it looks like every other sentence.</p>
<ul>
<li>For facts, dates, prices, or numbers, ask "where does that come from" or check it yourself.</li>
<li>For anything medical, legal, or financial, treat the answer as a starting point, not advice. Confirm with an actual professional.</li>
<li>For names, links, quotes, or citations, check them independently. These get invented more often than you would expect, and they can look completely real.</li>
</ul>
<div class="why-callout">
<strong>Why this matters</strong>
The cost of double-checking a wrong recipe is low. The cost of double-checking a wrong figure on a form, a wrong dose, or wrong legal advice is not. Match how carefully you check to how much it would cost to be wrong.
</div>
</div>
</details>
<details class="faq-item" role="listitem">
<summary class="faq-item__question">
<span class="step-item__left">
<span class="step-num">6</span>
<span>Keep your private information private</span>
</span>
<span class="step-item__right">
<input type="checkbox" class="step-check" aria-label="Mark step 6 done" onclick="event.stopPropagation()">
<span class="faq-item__icon" aria-hidden="true">
<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><line x1="12" y1="5" x2="12" y2="19"/><line x1="5" y1="12" x2="19" y2="12"/></svg>
</span>
</span>
</summary>
<div class="faq-item__answer">
<p>Once you have typed something into an AI chat, treat it as sent, the same way you would treat an email to a company you don't fully know. Do not paste in:</p>
<ul>
<li>Passwords, login codes, or security answers</li>
<li>Medical record details</li>
<li>Bank account, card, or tax file numbers</li>
<li>Someone else's personal details without their permission</li>
<li>Passport, licence, or Medicare numbers</li>
</ul>
<div class="why-callout">
<strong>Why this matters</strong>
Some AI providers may review or use conversations to improve future versions unless you've turned that off in settings. Private information typed into a chat can end up read by someone other than you. A simple rule of thumb: if you wouldn't say it out loud in a shop full of strangers, don't type it in either.
</div>
</div>
</details>
<details class="faq-item" role="listitem">
<summary class="faq-item__question">
<span class="step-item__left">
<span class="step-num">7</span>
<span>Know what it's bad at</span>
</span>
<span class="step-item__right">
<input type="checkbox" class="step-check" aria-label="Mark step 7 done" onclick="event.stopPropagation()">
<span class="faq-item__icon" aria-hidden="true">
<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><line x1="12" y1="5" x2="12" y2="19"/><line x1="5" y1="12" x2="19" y2="12"/></svg>
</span>
</span>
</summary>
<div class="faq-item__answer">
<ul>
<li><strong>Expecting one message to be enough.</strong> Real use is a back-and-forth, not a single perfect question.</li>
<li><strong>Assuming it knows today's date, current prices, or recent events.</strong> Unless it tells you it has looked something up, treat "current" information as possibly out of date.</li>
<li><strong>Mistaking confidence for correctness.</strong> A calm, well-written sentence is not proof that it's true. See step 5.</li>
</ul>
</div>
</details>
<details class="faq-item" role="listitem">
<summary class="faq-item__question">
<span class="step-item__left">
<span class="step-num">8</span>
<span>Five things to try today</span>
</span>
<span class="step-item__right">
<input type="checkbox" class="step-check" aria-label="Mark step 8 done" onclick="event.stopPropagation()">
<span class="faq-item__icon" aria-hidden="true">
<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><line x1="12" y1="5" x2="12" y2="19"/><line x1="5" y1="12" x2="19" y2="12"/></svg>
</span>
</span>
</summary>
<div class="faq-item__answer">
<p>Pick whichever one is actually true for you today. Real tasks teach you more than invented ones.</p>
<div class="prompt-box">
<p>Explain how interest on a savings account works, like I'm eleven years old.</p>
<button class="prompt-copy" onclick="copyPrompt(this)">Copy</button>
</div>
<div class="prompt-box">
<p>Help me write a text to a friend, cancelling plans for Saturday. Keep it warm, not cold.</p>
<button class="prompt-copy" onclick="copyPrompt(this)">Copy</button>
</div>
<div class="prompt-box">
<p>Give me a simple week of dinners for one person who does not enjoy cooking.</p>
<button class="prompt-copy" onclick="copyPrompt(this)">Copy</button>
</div>
<div class="prompt-box">
<p>I'm nervous about a phone call I have to make tomorrow. Help me plan what to say.</p>
<button class="prompt-copy" onclick="copyPrompt(this)">Copy</button>
</div>
<div class="prompt-box">
<p>Read this and tell me what's confusing about it: [paste in something you wrote]</p>
<button class="prompt-copy" onclick="copyPrompt(this)">Copy</button>
</div>
</div>
</details>
</div>
</div>
</section>
<!-- ═══════════════════════════════════════════════
GLOSSARY
═══════════════════════════════════════════════ -->
<section class="section section--dark" aria-labelledby="glossary-heading">
<div class="container">
<p class="eyebrow">Reference, Not A Step</p>
<h2 id="glossary-heading">Words you'll keep hearing</h2>
<p class="section-subtitle" style="color: rgba(255,255,255,.55);">You do not need to memorise these before you start. Look them up here the first time you hit one.</p>
<dl class="glossary-grid">
<div class="glossary-card">
<dt>Prompt</dt>
<dd>The message you type in. Asking a good question is often called "prompting".</dd>
</div>
<div class="glossary-card">
<dt>Chat / conversation</dt>
<dd>The whole back-and-forth in one thread. The AI can see earlier messages in the same chat, which is why correcting beats restarting.</dd>
</div>
<div class="glossary-card">
<dt>Model</dt>
<dd>The actual AI system doing the answering. Different models exist, some faster, some more careful, roughly like different staff with different strengths.</dd>
</div>
<div class="glossary-card">
<dt>Hallucination</dt>
<dd>When the AI states something false while sounding completely confident. Not a glitch you'll be warned about, just a wrong sentence that reads like a right one.</dd>
</div>
<div class="glossary-card">
<dt>Context</dt>
<dd>Everything the AI currently has in view: your message, earlier messages, anything you've pasted in. More relevant context usually means a better answer.</dd>
</div>
<div class="glossary-card">
<dt>Token</dt>
<dd>A rough chunk of text, close to a short word or word piece. Mentioned mostly around cost and length limits. You can safely ignore it as a beginner.</dd>
</div>
</dl>
</div>
</section>
<!-- ═══════════════════════════════════════════════
PART TWO TEASER
═══════════════════════════════════════════════ -->
<section class="section" style="padding-top:0;">
<div class="container">
<div style="background: var(--grey-50); border: 1px solid var(--grey-100); border-radius: var(--r-xl); padding: var(--sp-6); display:flex; align-items:center; justify-content:space-between; gap: var(--sp-5); flex-wrap:wrap;">
<div>
<p class="eyebrow" style="margin-bottom:6px;">Once This Feels Easy</p>
<h3 style="font-family:var(--font-head); font-size:20px; margin-bottom:4px; color:var(--ink);">Ready for week two?</h3>
<p style="color:var(--grey-600); font-size:14.5px; margin:0; max-width:520px;">Master prompts, reusable system prompts, and a few control words that make answers noticeably more useful. Still plain English, still free.</p>
</div>
<a href="second-week-with-ai.html" class="btn btn-secondary">Read Part Two</a>
</div>
</div>
</section>
<!-- ═══════════════════════════════════════════════
CTA BAND
═══════════════════════════════════════════════ -->
<section class="cta-band" aria-labelledby="cta-heading">
<div class="container">
<div class="cta-band__content">
<p class="eyebrow" style="color:rgba(255,255,255,.5)">Need more than a checklist?</p>
<h2 id="cta-heading">We build the AI tools this guide told you to be careful with.</h2>
<p>If you want AI set up properly on your own website, chatbots, content assistants, automation, submit a brief and we'll tell you what fits and what it costs.</p>
<div class="cta-band__actions">
<a href="contact.html?service=ai" class="btn btn-primary btn-lg">Submit a Brief</a>
<a href="ai-integration.html" class="btn btn-outline-light btn-lg">See AI Integration</a>
</div>
</div>
</div>
</section>
<!-- ═══════════════════════════════════════════════
FOOTER
═══════════════════════════════════════════════ -->
<footer class="footer" aria-label="Site footer">
<div class="container">
<div class="footer__grid">
<div class="footer__brand">
<img src="assets/images/logo-cropped.jpg" alt="HELP4BIS" width="140" height="38">
<p>Managed WordPress hosting and maintenance for Australian small businesses. Brisbane-based, personal service, WordPress specialist, Brisbane.</p>
<p style="font-size:13px; color:rgba(255,255,255,.4);">Dutch Digital Dynamics Pty Ltd &middot; ABN 86 081 237 087</p>
</div>
<div class="footer__col">
<h4>Services</h4>
<ul class="footer__links">
<li><a href="managed-wordpress.html">Tailored Website Management</a></li>
<li><a href="care-plans.html">WP Care Plans</a></li>
<li><a href="sos-fix.html">WP SOS Fix</a></li>
<li><a href="ai-integration.html">AI Integration</a></li>
<li><a href="plugin-development.html">Plugin Development</a></li> </ul>
</div>
<div class="footer__col">
<h4>Company</h4>
<ul class="footer__links">
<li><a href="about.html">About Us</a></li>
<li><a href="index.html#portfolio">Our Work</a></li>
<li><a href="blog/index.html">Blog</a></li>
<li><a href="your-first-week-with-ai.html">Free AI Guide</a></li>
<li><a href="contact.html">Contact</a></li>
</ul>
</div>
<div class="footer__col">
<h4>Contact</h4>
<ul class="footer__links">
<li><a href="mailto:project@help4bis.com">project@help4bis.com</a></li>
<li><a href="contact.html">Submit a Brief</a></li>
<li><a href="sos-fix.html">Emergency Fix</a></li>
</ul>
<p style="margin-top:1rem; font-size:13px; color:rgba(255,255,255,.4);">
Brisbane, Queensland<br>
Response within 24 business hours
</p>
</div>
</div>
<div class="footer__bottom">
<span>&copy; 2026 HELP4BIS, a trading name of Dutch Digital Dynamics Pty Ltd &middot; ABN 86 081 237 087</span>
<span>
<a href="privacy.html">Privacy Policy</a> &middot;
<a href="terms.html">Terms</a>
</span>
</div>
</div>
</footer>
<button id="back-to-top" aria-label="Back to top" style="position:fixed;bottom:24px;right:24px;width:44px;height:44px;background:var(--red);border:none;border-radius:50%;color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .3s ease;box-shadow:var(--shadow-md);">
<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="18 15 12 9 6 15"/></svg>
</button>
<script src="assets/js/main.js"></script>
<script src="/analytics/tracker.js" defer></script>
<script>
(function () {
var boxes = document.querySelectorAll('.step-check');
var label = document.getElementById('progressLabel');
var fill = document.getElementById('progressFill');
function update() {
var total = boxes.length;
var done = document.querySelectorAll('.step-check:checked').length;
label.textContent = done + ' of ' + total + ' done';
fill.style.width = (total ? (done / total * 100) : 0) + '%';
}
boxes.forEach(function (box) { box.addEventListener('change', update); });
update();
})();
function copyPrompt(btn) {
var text = btn.previousElementSibling.textContent;
var original = btn.textContent;
function done(ok) {
btn.textContent = ok ? 'Copied' : 'Select & copy';
setTimeout(function () { btn.textContent = original; }, 1500);
}
if (navigator.clipboard && navigator.clipboard.writeText) {
navigator.clipboard.writeText(text).then(function () { done(true); }, function () { done(false); });
} else {
done(false);
}
}
</script>
</body>
</html>
+121
View File
@@ -0,0 +1,121 @@
#!/bin/bash
# help4bis-site-scan.sh - Daily scan for help4bis.com
# Writes results to reports/SITE-SCAN.md in help4bis/help4bis-com Gitea repo
# Version: 2.0.0 | Created: 26/02/2026 | Updated: 23/10/2026
#
# Cron: 15 6 * * * /home/help4bis/scripts/help4bis-site-scan.sh
set -eo pipefail
set +u
source /home/help4bis/.env
set -u
GITEA_API="https://gitea.help4bis.com/api/v1"
GITEA_REPO="help4bis/help4bis-com"
REPORT_PATH="reports/SITE-SCAN.md"
SITE_URL="https://help4bis.com"
SCAN_DATE=$(date +"%Y-%m-%d %H:%M AEST")
LOG="/tmp/help4bis-site-scan.log"
ISSUES_FILE="/tmp/help4bis-scan-issues.count"
exec > "$LOG" 2>&1
echo "=== Help4Bis.com Site Scan: $SCAN_DATE ==="
echo "0" > "$ISSUES_FILE"
check_url() {
local url="$1"
local label="$2"
local code
code=$(curl -skL -o /dev/null -w "%{http_code}" --connect-timeout 10 --max-time 15 "$url" 2>/dev/null || echo "000")
if [ "$code" = "200" ]; then
echo "| $label | $url | OK | $code |"
else
echo "| $label | $url | FAIL | $code |"
local cur; cur=$(cat "$ISSUES_FILE")
echo $((cur + 1)) > "$ISSUES_FILE"
fi
}
REPORT=""
# Header
REPORT+="# Site Scan Report — help4bis.com\n"
REPORT+="**Scan date:** $SCAN_DATE\n\n"
# Every URL in sitemap.xml, plus the stylesheet and every internal link/asset on each page
# (cockpit #168: the old WordPress-era list checked URLs that no longer exist and missed a
# page that lost its CSS and 12 links).
REPORT+="## Sitemap URLs\n\n"
REPORT+="| Page | URL | Status | HTTP |\n"
REPORT+="|------|-----|--------|------|\n"
SITEMAP_URLS=$(curl -skL --connect-timeout 10 --max-time 20 "${SITE_URL}/sitemap.xml" | grep -o '<loc>[^<]*</loc>' | sed 's/<[^>]*>//g')
if [ -z "$SITEMAP_URLS" ]; then
REPORT+="| Sitemap | ${SITE_URL}/sitemap.xml | **UNREADABLE** | 000 |\n"
cur=$(cat "$ISSUES_FILE"); echo $((cur + 1)) > "$ISSUES_FILE"
fi
BROKEN_LINKS=""
# Clean URLs served by .htaccess rewrites: relative paths break here but not on the .html file
CLEAN_URLS="${SITE_URL}/pricing/ ${SITE_URL}/contact/"
for url in $SITEMAP_URLS $CLEAN_URLS; do
REPORT+="$(check_url "$url" "$(basename "${url%/}")")\n"
html=$(curl -skL --connect-timeout 10 --max-time 20 "$url" 2>/dev/null || true)
# css must be linked and load, as a visitor resolves it
for ref in $(printf '%s' "$html" | grep -o '\(href\|src\)="[^"#?]*"' | sed 's/^[a-z]*="//; s/"$//' | grep -v '^\(https\?:\|mailto:\|tel:\|data:\)' | sort -u); do
case "$ref" in
/*) full="${SITE_URL}${ref}" ;;
*) case "$url" in */) full="${url}${ref}" ;; *) full="${url%/*}/${ref}" ;; esac ;;
esac
code=$(curl -skL -o /dev/null -w "%{http_code}" --connect-timeout 10 --max-time 15 "$full" 2>/dev/null) || code="000"
if [ "$code" != "200" ]; then
sleep 3
code=$(curl -skL -o /dev/null -w "%{http_code}" --connect-timeout 10 --max-time 15 "$full" 2>/dev/null) || code="000"
fi
if [ "$code" != "200" ]; then
BROKEN_LINKS+="| $url | $ref | $code |\n"
cur=$(cat "$ISSUES_FILE"); echo $((cur + 1)) > "$ISSUES_FILE"
fi
done
done
REPORT+="\n## Broken links and assets on those pages\n\n"
if [ -z "$BROKEN_LINKS" ]; then
REPORT+="None found.\n"
else
REPORT+="| Page | Reference | HTTP |\n|------|-----------|------|\n$BROKEN_LINKS"
fi
REPORT+="\n## Summary\n\n"
ISSUES=$(cat "$ISSUES_FILE")
REPORT+="- **Issues found:** $ISSUES\n"
REPORT+="- **Scan completed:** $SCAN_DATE\n"
if [ "$ISSUES" -eq 0 ]; then
REPORT+="- **Overall:** All checks passed\n"
else
REPORT+="- **Overall:** $ISSUES issue(s) need attention\n"
fi
# Write to Gitea
echo "Writing report to Gitea..."
REPORT_B64=$(printf '%b' "$REPORT" | base64 -w0)
EXISTING=$(curl -sk -H "Authorization: token $GITEA_TOKEN" \
"$GITEA_API/repos/$GITEA_REPO/contents/$REPORT_PATH" 2>/dev/null)
EXISTING_SHA=$(echo "$EXISTING" | python3 -c "import sys,json; d=json.load(sys.stdin); print(d.get('sha',''))" 2>/dev/null || echo "")
if [ -n "$EXISTING_SHA" ]; then
curl -sk -X PUT -H "Authorization: token $GITEA_TOKEN" -H "Content-Type: application/json" \
"$GITEA_API/repos/$GITEA_REPO/contents/$REPORT_PATH" \
-d "{\"content\":\"$REPORT_B64\",\"sha\":\"$EXISTING_SHA\",\"message\":\"chore: daily site scan $(date +%Y-%m-%d)\"}" > /dev/null
echo "Updated existing report"
else
curl -sk -X POST -H "Authorization: token $GITEA_TOKEN" -H "Content-Type: application/json" \
"$GITEA_API/repos/$GITEA_REPO/contents/$REPORT_PATH" \
-d "{\"content\":\"$REPORT_B64\",\"message\":\"feat: initial site scan $(date +%Y-%m-%d)\"}" > /dev/null
echo "Created new report"
fi
ISSUES=$(cat "$ISSUES_FILE")
echo "=== Scan complete. Issues: $ISSUES ==="
rm -f "$ISSUES_FILE"