Commit graph

21 commits

Author SHA1 Message Date
jez
053d67f19f Merge pull request 'site-fixes-april2026' (#1) from site-fixes-april2026 into main
Reviewed-on: #1
2026-04-24 00:45:42 +00:00
BarnacleBoy
27613f48af Reframe messaging: de-emphasize privacy, target non-technical audience, 00/hr
- Hourly rate: 0/hr → 00/hr (pricing page + contact form)
- Footer tagline: 'Privacy-focused AI consulting' → 'AI consulting for real work'
- Added 'Owned and operated by Jezza Hehn' to all page footers
- Homepage hero: 'Self-hosted AI agents' → 'AI assistants that handle real work'
- Replaced 'Why Privacy' section with 'You own it. You control it.' section
- Reordered service cards: practical services first, privacy last
- Services page: accessible language, less jargon, reordered same way
- Removed 'processed via email and deleted from server' from forms
- Removed Monero payment option and I2P darknet upsell from pricing
- I2P link kept in footer but de-emphasized (just '🔒 I2P:' not 'I2P Mirror')
- Meta descriptions updated across all pages
- 'Starter (0-100)' → 'Starter (00-200)' in contact form dropdown
- Replaced 'OpenClaw/Ollama' terminology with 'AI assistant setup'
2026-04-24 00:42:11 +00:00
BarnacleBoy
8a10eaaeb8 Fix audit form backend, update blog page, add I2P links, robots.txt, sitemap, audit form JS
- Add /api/audit endpoint to contact-api (deployed to server)
- Replace blog ghost links with 'coming soon' placeholder
- Add I2P mirror link to all page footers
- Wire up audit form frontend handler in main.js
- Update contact form handler to use fetch API
- Add robots.txt and sitemap.xml
- Add scripts/sync-eepsite.sh for I2P/clearnet sync
2026-04-23 22:51:21 +00:00
Jezza Hehn
8b0c095c50 slim terraform to match reality: server-only config
- Removed network, floating IP, volume, firewall, cloud-init (overkill for current setup)
- Matched config to actual server: cpx11, ash, krusty-clearnet
- Imported existing server (125941041) into Terraform state
- Applied labels (project=krustyplanet, role=web)
- Added outputs.tf for server_id, ipv4, location
- Added .gitignore for tfvars/state/secrets
2026-04-13 23:14:16 +00:00
Jezza Hehn
aa295f494c fix: CORS proxy config, cloud-init variable expansion, contact-api nginx snippet 2026-04-13 22:23:18 +00:00
Jezza Hehn
9f7aa97f4e Fix cloud-init: escape heredoc vars, add contact-api snippet, fix CORS
- Escape $uri/$host in heredocs so nginx sees them, not bash
- Rename heredoc markers (NGINXEOF, PROXYEOF, SVCEOF) to avoid conflicts
- Add contact-api nginx snippet WITHOUT proxy_set_header Origin (CORS fix)
- Fix contact-api clone URL to Forgejo
- Simplify .env template
2026-04-13 22:23:04 +00:00
Jezza Hehn
8306229dc1 Add lock file, example tfvars, fix .gitignore
- Track .terraform.lock.hcl for reproducible provider versions
- Add terraform.tfvars.example as a template for sensitive values
- Fix .gitignore to not exclude lock file
- Add default value for ssh_public_key variable
2026-04-13 22:22:25 +00:00
Jezza Hehn
6707c59dd9 Replace all remaining references with 2026-04-13 22:17:25 +00:00
Jezza Hehn
220df89bf0 Fix DOMAIN variable name - DOMAIN -> domain 2026-04-13 22:17:11 +00:00
Jezza Hehn
e1633a041f Add domain variable to cloud-init and fix PROJECT_NAME references 2026-04-13 22:16:58 +00:00
Jezza Hehn
dd40b38b99 Fix cloud-init variable name - NODE_VERSION -> node_version 2026-04-13 22:16:37 +00:00
Jezza Hehn
dbdda6c9c4 Simplify cloud-init template - remove templatefile references 2026-04-13 22:16:22 +00:00
Jezza Hehn
c07d280927 Fix Terraform cycle error - remove firewall_ids from server 2026-04-13 22:14:55 +00:00
Jezza Hehn
73e842d581 Remove duplicate provider.tf - provider config is in main.tf 2026-04-13 22:14:25 +00:00
Jezza Hehn
b1fde182bf Add Terraform configuration for KrustyPlanet VPS
- Configure Hetzner Cloud server (CPX22, Ubuntu 24.04)
- Manage floating IP (87.99.133.81)
- Firewall rules for HTTP, HTTPS, SSH
- Persistent volume (40GB)
- nginx reverse proxy with SSL (Let's Encrypt)
- contact-api (Node.js email backend)
- Fix CORS issue: removed proxy_set_header Origin ://;
- Include cloud-init for initial provisioning

This Terraform config will manage the VPS going forward.
2026-04-13 22:14:11 +00:00
Jezza Hehn
c5c14d2fad Add functional contact form with API backend
- Replaced placeholder form submission with real POST to /api/contact
- Added honeypot field for spam protection
- Success/error feedback states
- Rate limiting handled by backend
2026-04-13 18:41:41 +00:00
Jezza Hehn
e1a234d3dc Remove unpublished draft blog posts and clear blog index
Draft posts were live on the public site pending review.
Removed all 4 posts and replaced blog index with placeholder.
Draft files preserved in git history if needed later.
2026-04-10 03:33:00 +00:00
Jezza Hehn
74e02d59d4 Rewrite pricing page - plain language, 3 tiers, new pricing
Changes:
- Starter Kit: 50, now includes actual deployment service + maintenance guide
- Custom Build: 00, plain-language descriptions, 45-min video walkthrough
- Monthly Support: 00/mo for 10hrs (was 00/2hrs)
- Hourly rate moved to footnote
- Added plain-language preamble explaining what we do
- Defined 'capabilities' in customer terms instead of 'skills'
- Added health monitoring details (concrete, not vague)
- Added cancel-anytime policy with billing period clarification
- Added no-risk guarantee
- Added Starter -> Custom upgrade path
- Moved Monero/I2P to footer (less alienating for mainstream)
- Added 'best for' guidance on each tier

Based on audits from Future, Atticus, and Ludacris.
2026-04-10 03:16:00 +00:00
Jezza Hehn
e375cc5370 Fix light mode footer - white text on dark bg was invisible 2026-04-10 02:12:27 +00:00
Jezza Hehn
bc43a90510 Fix light mode hero - swap dark navy for light grey gradient 2026-04-10 02:09:36 +00:00
Jezza Hehn
cbecb8c96e Krusty Planet website - static HTML with Bulma
Theme system: dark, light, forest, coffee
localStorage persistence for theme preference
2026-04-10 02:04:51 +00:00