A sophisticated, direct marketing website for Marketing Geospatial featuring MAPSCAPING podcast sponsorship opportunities and personal branding services for geospatial professionals.
- Sophisticated Design - Elegant serif headlines (Cormorant Garamond) with clean sans-serif body (DM Sans)
- Direct, Conversational Tone - Problem-Agitate-Solution sales framework
- Static HTML Site - No build process required, easy to deploy and maintain
- Responsive Design - Mobile-first approach that works beautifully on all devices
- Strategic Sales Pages - PAS framework for podcast sponsorship and personal branding
- Google Calendar Integration - Embedded appointment scheduling (requires setup)
- SEO Optimized - Meta tags and Open Graph tags on all pages
- Modular Structure - Shared header/footer via JavaScript partials
Marketing Geospatial Website/
βββ index.html # Home page / Landing page
βββ work-with-me/
β βββ index.html # Hub page linking to services
βββ sponsorship/
β βββ index.html # Podcast sponsorship sales page
βββ personal-branding/
β βββ index.html # Personal branding sales page
βββ about/
β βββ index.html # About the podcast and host
βββ testimonials/
β βββ index.html # Social proof and testimonials
βββ blog/
β βββ index.html # Blog listing (placeholder)
βββ contact/
β βββ index.html # Contact page with booking embed
βββ partials/
β βββ header.html # Shared header with navigation
β βββ footer.html # Shared footer
βββ assets/
β βββ css/
β β βββ styles.css # Main stylesheet
β βββ js/
β βββ partials.js # Header/footer loader & utilities
βββ README.md # This file
- Home - Landing page with podcast overview and CTAs
- Work with Me - Hub page featuring both offerings
- Podcast Sponsorship
- Personal Branding
- About - Host bio, podcast mission, and stats
- Testimonials - Success stories and social proof
- Blog - Industry insights (placeholder for now)
- Contact - Booking calendar and email options
Since this is a static site, you can run it locally with any web server:
# Python 3
python -m http.server 8000
# Then visit http://localhost:8000php -S localhost:8000
# Then visit http://localhost:8000- Install the "Live Server" extension in VS Code
- Right-click
index.htmland select "Open with Live Server"
The booking functionality requires Google Workspace appointment scheduling. Here's how to set it up:
- Go to Google Calendar (sign in with your Google Workspace account)
- Click the gear icon (Settings) in the top right
- Select Appointment schedules from the left menu
- Click + Create to create a new appointment schedule
- Configure your:
- Appointment duration (e.g., 30 or 60 minutes)
- Availability (days/times you're available)
- Buffer times between appointments
- Booking form fields
- Save your appointment schedule
- Click on the appointment schedule name, then click Share
- Copy the embed code (starts with
<iframe>) - Replace the
.calendar-placeholderdiv in these files:contact/index.htmlsponsorship/index.htmlpersonal-branding/index.html
Example embed code:
<iframe src="https://calendar.google.com/calendar/appointments/schedules/YOUR-SCHEDULE-ID"
width="100%"
height="600"
frameborder="0">
</iframe>Note: Embedding requires a Google Workspace account. Personal Gmail accounts should use a booking link instead.
-
Initialize Git (if not already done):
git init git add . git commit -m "Initial commit - Marketing Geospatial website"
-
Create a GitHub repository:
- Go to GitHub
- Create a new repository (e.g.,
mapscaping-marketing) - Don't initialize with README (you already have one)
-
Push your code:
git remote add origin https://github.com/YOUR-USERNAME/mapscaping-marketing.git git branch -M main git push -u origin main
- Log into your Cloudways account
- Create or select your application
- Note your server details:
- Server IP address
- SSH username
- Application path (usually something like
/home/master/applications/YOUR-APP/public_html)
You have two deployment options:
-
SSH into your Cloudways server:
ssh YOUR-SSH-USER@YOUR-SERVER-IP
-
Navigate to your application directory:
cd /home/master/applications/YOUR-APP/public_html -
Clone your repository (first time only):
# Clear the directory first (backup if needed) rm -rf * rm -rf .htaccess # Clone your repo git clone https://github.com/YOUR-USERNAME/mapscaping-marketing.git .
-
For subsequent updates, just pull:
cd /home/master/applications/YOUR-APP/public_html git pull origin main
-
Create a deployment script on your Cloudways server at
/home/master/applications/YOUR-APP/deploy.php:<?php $secret = 'YOUR-SECRET-KEY'; // Change this to a random string $headers = getallheaders(); $signature = isset($headers['X-Hub-Signature']) ? $headers['X-Hub-Signature'] : ''; $payload = file_get_contents('php://input'); // Verify signature (optional but recommended) if ($signature) { $hash = 'sha1=' . hash_hmac('sha1', $payload, $secret); if (!hash_equals($hash, $signature)) { http_response_code(403); die('Invalid signature'); } } // Execute git pull $output = shell_exec('cd /home/master/applications/YOUR-APP/public_html && git pull origin main 2>&1'); echo "Deployment completed:\n"; echo $output; ?>
-
Set up GitHub webhook:
- Go to your GitHub repo β Settings β Webhooks
- Add webhook:
https://yourdomain.com/deploy.php - Content type:
application/json - Secret: (your secret key from above)
- Events: Just the push event
Now every time you push to GitHub, it automatically deploys to Cloudways!
Ensure your Cloudways application web root points to the correct directory:
- If you cloned directly into
public_html, you're all set - If you cloned into a subdirectory, update the web root in Cloudways settings
- In Cloudways, go to Domain Management
- Add your custom domain
- Update DNS records at your domain registrar to point to Cloudways
- Update email address from
daniel@mapscaping.comto your actual email - The site correctly brands "Marketing Geospatial" as the company and "MAPSCAPING" as a separate podcast brand
- Update Daniel O'Donohue's name if needed throughout the site
In partials/footer.html, update:
- Podcast link
- LinkedIn URL
- Twitter URL
Replace placeholder values (marked with [XXX] or [X,XXX]) with real data:
- Monthly downloads
- Countries reached
- Number of episodes
- Years on air
In testimonials/index.html, replace placeholder testimonials with real quotes from:
- Sponsors
- Podcast guests
- Listeners
In testimonials/index.html, replace .logo-placeholder divs with actual company logos.
Add real pricing information in:
sponsorship/index.html(package prices)personal-branding/index.html(investment range)
All styling is in assets/css/styles.css. Key variables at the top:
:root {
--primary-color: #2563eb; /* Main brand color */
--primary-dark: #1e40af; /* Hover states */
--accent-color: #10b981; /* Success/check marks */
/* ... more variables */
}- Modern browsers (Chrome, Firefox, Safari, Edge)
- Mobile responsive (tested on iOS and Android)
- Progressive enhancement for older browsers
- No sensitive data stored on the site
- Contact form uses Google Calendar (secure, third-party)
- Static site = minimal attack surface
- Update links in footer to include
rel="noopener"for external links (already done)
To add Google Analytics or similar:
- Add your tracking code before
</head>in all HTML files, or - Add it to
partials/header.htmlfor automatic inclusion everywhere
- Create a new directory with
index.html - Copy structure from existing pages
- Add link to navigation in
partials/header.html - Add link to footer in
partials/footer.html
For now, blog posts are static HTML. To add one:
- Create
blog/post-slug/index.html - Copy structure from existing pages
- Add card to
blog/index.html
Consider adding a static site generator (like Eleventy or Hugo) if you plan many blog posts.
- Check browser console for JavaScript errors
- Ensure
partials/header.htmlandpartials/footer.htmlexist - Verify paths in
assets/js/partials.js
- Clear browser cache
- Check
assets/css/styles.csspath in HTML files - Verify CSS file was uploaded correctly
- Verify you're using a Google Workspace account (not personal Gmail)
- Check iframe embed code is correct
- Ensure no ad blockers are interfering
For questions or issues, contact:
- Email: daniel@mapscaping.com
- Website: mapscaping.com
Β© 2026 Marketing Geospatial. All rights reserved.
Built with β€οΈ for the geospatial community