Merge pull request 'site-fixes-april2026' (#1) from site-fixes-april2026 into main

Reviewed-on: #1
This commit is contained in:
jez 2026-04-24 00:45:42 +00:00
commit 053d67f19f
10 changed files with 254 additions and 132 deletions

View file

@ -39,58 +39,17 @@
<section class="section">
<div class="container">
<div class="content is-medium">
<article class="mb-6">
<h2 class="title is-4"><a href="/blog/2026/building-multi-agent-fleet.html" class="has-text-white">Building a Multi-Agent Fleet with OpenClaw</a></h2>
<p class="has-text-grey-light mb-2">April 2026</p>
<p class="has-text-grey-light">
How I set up five specialized AI agents that work together like a small team: one researches,
one writes code, one audits quality, one hunts falsehoods, and one orchestrates. Real tasks,
real delegation, real quality control. Here's what actually works and what I wish I knew
starting out.
</p>
</article>
<article class="mb-6">
<h2 class="title is-4"><a href="/blog/2026/ai-community-manager.html" class="has-text-white">Using AI as a Community Manager Without Alienating Your Community</a></h2>
<p class="has-text-grey-light mb-2">April 2026</p>
<p class="has-text-grey-light">
I run a community platform and also build AI tools. The temptation to automate everything
is real, but communities can smell inauthenticity from miles away. Here's how I use AI
for spam detection, content research, and i18n while keeping the human touch that
actually matters.
</p>
</article>
<article class="mb-6">
<h2 class="title is-4"><a href="/blog/2026/self-hosting-ai-privacy.html" class="has-text-white">Self-Hosting AI: What You Actually Gain (and What You Don't)</a></h2>
<p class="has-text-grey-light mb-2">April 2026</p>
<p class="has-text-grey-light">
Everyone says "self-host your AI for privacy." Few explain what that actually means in
practice. I deployed an entire AI agent system on a $6/month VPS. Here's the honest
breakdown of what's private, what isn't, what costs money, and what the tradeoffs are.
</p>
</article>
<article class="mb-6">
<h2 class="title is-4"><a href="/blog/2026/i2p-ai-darknet.html" class="has-text-white">Running AI Services on I2P: A Practical Guide</a></h2>
<p class="has-text-grey-light mb-2">April 2026</p>
<p class="has-text-grey-light">
Why would anyone put an AI consulting service on the darknet? Because some clients
care about anonymity, and I2P (not Tor) is better suited for services, not just
browsing. Here's how I set up an eepsite and what I learned about serving anonymous
clients.
</p>
</article>
<div class="content is-medium has-text-centered">
<p class="has-text-grey-light mt-6">Articles coming soon. Check back later.</p>
</div>
</div>
</section>
<footer class="footer has-background-dark has-text-light">
<div class="content has-text-centered">
<p><strong>🌍 Krusty Planet</strong> — Privacy-focused AI consulting</p>
<p><strong>🌍 Krusty Planet</strong> — AI consulting for real work</p>
<p class="is-size-7 mt-2">Owned and operated by <strong style="color:#b5b5b5;">Jezza Hehn</strong></p>
<p class="is-size-7 mt-3"><span class="has-text-success">🔒 I2P:</span> <a href="http://g3xdiv7psi6y6l255kbkzowemsnd4tmbvy5ykaoajlu7oboma7zq.b32.i2p" style="color:#b5b5b5;" rel="nofollow noopener">g3xdiv7psi6y6l255kbkzowemsnd4tmbvy5ykaoajlu7oboma7zq.b32.i2p</a></p>
</div>
</footer>

View file

@ -4,6 +4,7 @@
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Contact — Krusty Planet</title>
<meta name="description" content="Get in touch about AI assistant setup, custom capabilities, or ongoing support. We respond within 48 hours." />
<link rel="icon" type="image/svg+xml" href="/favicon.svg" />
<link rel="stylesheet" href="/css/style.css" />
</head>
@ -61,7 +62,7 @@
<div class="select is-fullwidth">
<select name="service">
<option value="">Select a service...</option>
<option value="starter">Starter ($50-100)</option>
<option value="starter">Starter ($100-200)</option>
<option value="custom">Custom Build ($200-1,000)</option>
<option value="enterprise">Enterprise ($2,000+)</option>
<option value="support">Ongoing Support</option>
@ -82,9 +83,8 @@
Message received. We'll respond within 48 hours.
</div>
<p class="is-size-7 mt-3 has-text-grey-light">
Your submission is processed via email and deleted from the server after delivery.
We don't store your information or share it with third parties.
For maximum privacy, reach us via our I2P eepsite (contact us for the address).
For privacy-focused communication, ask us about our I2P endpoint.
</p>
</form>
</div>
@ -95,7 +95,9 @@
<footer class="footer has-background-dark has-text-light">
<div class="content has-text-centered">
<p><strong>🌍 Krusty Planet</strong> — Privacy-focused AI consulting</p>
<p><strong>🌍 Krusty Planet</strong> — AI consulting for real work</p>
<p class="is-size-7 mt-2">Owned and operated by <strong style="color:#b5b5b5;">Jezza Hehn</strong></p>
<p class="is-size-7 mt-3"><span class="has-text-success">🔒 I2P:</span> <a href="http://g3xdiv7psi6y6l255kbkzowemsnd4tmbvy5ykaoajlu7oboma7zq.b32.i2p" style="color:#b5b5b5;" rel="nofollow noopener">g3xdiv7psi6y6l255kbkzowemsnd4tmbvy5ykaoajlu7oboma7zq.b32.i2p</a></p>
</div>
</footer>

View file

@ -4,7 +4,7 @@
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Free Audit — Krusty Planet</title>
<meta name="description" content="Free AI audits for small businesses. No strings attached — we spend 30 minutes on your workflow and tell you if AI can help." />
<meta name="description" content="Free AI audits for businesses. We spend 30 minutes on your workflow and tell you exactly where AI can save you time or money. No catch." />
<link rel="icon" type="image/svg+xml" href="/favicon.svg" />
<link rel="stylesheet" href="/css/style.css" />
</head>
@ -157,7 +157,7 @@
<div class="select is-fullwidth">
<select name="audit_type">
<option value="workflow">Workflow Audit — find automation opportunities</option>
<option value="privacy">Privacy Check — review current AI tool data handling</option>
<option value="privacy">Privacy Check — review how your AI tools handle data</option>
<option value="tools">Tool Fit — recommend AI tools for my use case</option>
<option value="prompts">Prompt Review — optimize my current AI prompts</option>
<option value="readiness">AI Readiness — assess infrastructure for self-hosting</option>
@ -181,7 +181,6 @@
Audit request received. We'll review your situation and send a report within 48 hours.
</div>
<p class="is-size-7 mt-3 has-text-grey-light">
Your submission is processed via email and deleted from the server after delivery.
No newsletter, no CRM, no follow-up unless you respond.
</p>
</form>
@ -192,7 +191,9 @@
<footer class="footer has-background-dark has-text-light">
<div class="content has-text-centered">
<p><strong>🌍 Krusty Planet</strong> — Privacy-focused AI consulting</p>
<p><strong>🌍 Krusty Planet</strong> — AI consulting for real work</p>
<p class="is-size-7 mt-2">Owned and operated by <strong style="color:#b5b5b5;">Jezza Hehn</strong></p>
<p class="is-size-7 mt-3"><span class="has-text-success">🔒 I2P:</span> <a href="http://g3xdiv7psi6y6l255kbkzowemsnd4tmbvy5ykaoajlu7oboma7zq.b32.i2p" style="color:#b5b5b5;" rel="nofollow noopener">g3xdiv7psi6y6l255kbkzowemsnd4tmbvy5ykaoajlu7oboma7zq.b32.i2p</a></p>
</div>
</footer>

View file

@ -4,7 +4,7 @@
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Krusty Planet — AI Consulting</title>
<meta name="description" content="Privacy-focused AI consulting. OpenClaw deployment, custom skills, agent fleet architecture." />
<meta name="description" content="AI consulting for businesses that want to save time and automate repetitive work. We set up AI assistants tailored to your workflows." />
<link rel="icon" type="image/svg+xml" href="/favicon.svg" />
<link rel="stylesheet" href="/css/style.css" />
</head>
@ -42,7 +42,7 @@
<div class="hero-body has-text-centered">
<div class="container">
<p class="title has-text-white is-1">🌍 Krusty Planet</p>
<p class="subtitle has-text-light is-4">Self-hosted AI agents. Built on open-source, configured for your workflows.</p>
<p class="subtitle has-text-light is-4">AI assistants that handle real work. Built on open-source, configured for your workflows.</p>
<div class="buttons is-centered mt-5">
<a href="/services.html" class="button is-primary is-large is-rounded">Our Services</a>
<a href="/contact.html" class="button is-outlined is-light is-large is-rounded">Get in Touch</a>
@ -58,26 +58,26 @@
<div class="columns is-multiline is-centered">
<div class="column is-4">
<div class="box kp-card">
<p class="title is-5">🤖 AI Agent Deployment</p>
<p class="has-text-grey-light">Set up OpenClaw, Ollama, or other open-source agent runtimes on your hardware. We handle configuration, model connections, and a working baseline you can extend.</p>
<p class="title is-5">🤖 AI Assistant Setup</p>
<p class="has-text-grey-light">Get an AI assistant running on your hardware, pre-loaded with the capabilities you need. We handle setup, configuration, and make sure it works before we hand it over.</p>
</div>
</div>
<div class="column is-4">
<div class="box kp-card">
<p class="title is-5">🧠 Custom Skills</p>
<p class="has-text-grey-light">Build capabilities for your agents: email automation, data processing, web scraping, scheduled reports, API integrations. Each skill is tailored to a specific task you need handled.</p>
<p class="title is-5">🧠 Custom Capabilities</p>
<p class="has-text-grey-light">Build skills for your specific tasks: email automation, data processing, web research, scheduled reports, API integrations. Each one handles a real job you're doing by hand today.</p>
</div>
</div>
<div class="column is-4">
<div class="box kp-card">
<p class="title is-5">🏗️ Agent Fleet Architecture</p>
<p class="has-text-grey-light">Design multi-agent systems where specialists collaborate: one agent researches, another writes code, a third audits the output. Task delegation with built-in quality checks.</p>
<p class="title is-5">🏗️ Multi-Agent Systems</p>
<p class="has-text-grey-light">When one AI isn't enough — set up teams of specialists that collaborate. One agent researches, another writes, a third reviews. Built-in quality checks at every step.</p>
</div>
</div>
<div class="column is-4">
<div class="box kp-card">
<p class="title is-5">🔐 Private Infrastructure</p>
<p class="has-text-grey-light">Everything runs on your hardware. Local model inference, no API calls to third parties, no data leaving your control. Optional air-gapped setups for sensitive environments.</p>
<p class="title is-5">🎓 Training & Documentation</p>
<p class="has-text-grey-light">Plain-English documentation for your team to operate and extend the system. Walkthrough sessions so you're not dependent on us long-term.</p>
</div>
</div>
<div class="column is-4">
@ -88,35 +88,35 @@
</div>
<div class="column is-4">
<div class="box kp-card">
<p class="title is-5">🎓 Training & Documentation</p>
<p class="has-text-grey-light">Plain-English documentation for your team to operate and extend the system. Walkthrough sessions available so you're not dependent on us long-term.</p>
<p class="title is-5">🔒 Your Infrastructure, Your Data</p>
<p class="has-text-grey-light">Everything runs on your hardware. No data sent to third parties unless you choose to. We build on open-source tools so you're never locked in to a vendor.</p>
</div>
</div>
</div>
</div>
</section>
<!-- Why Privacy -->
<!-- Why Us -->
<section class="section">
<div class="container">
<div class="columns is-vcentered">
<div class="column is-6">
<h2 class="title">Privacy-first, not privacy-later.</h2>
<h2 class="title">You own it. You control it.</h2>
<p class="is-size-5 has-text-grey-light">
We build on open-source tools (OpenClaw, Ollama, local LLMs) and deploy to your infrastructure.
Your models, your hardware, your data. We don't store your prompts, files, or agent outputs
on our systems. Contact form submissions are processed via email and deleted from the server
after delivery.
We build on open-source tools and deploy to your infrastructure.
Your data stays on your hardware. We don't store your prompts, files, or outputs
on our systems. No vendor lock-in, no recurring cloud fees for something
you could run yourself.
</p>
</div>
<div class="column is-6">
<div class="box kp-card">
<ul style="list-style:none; padding:0;">
<li class="mb-3">🔒 Self-hosted by default</li>
<li class="mb-3">🌐 Open-source stack</li>
<li class="mb-3">📡 Available on I2P darknet</li>
<li class="mb-3">💰 Accepts Monero (XMR)</li>
<li>📝 Minimal logging policy</li>
<li class="mb-3">🖥️ Runs on your hardware</li>
<li class="mb-3">🌐 Open-source stack — no vendor lock-in</li>
<li class="mb-3">📄 Plain-English documentation included</li>
<li class="mb-3">🎓 Walkthrough sessions for your team</li>
<li>🔒 Privacy available when you need it</li>
</ul>
</div>
</div>
@ -138,8 +138,9 @@
<!-- Footer -->
<footer class="footer has-background-dark has-text-light">
<div class="content has-text-centered">
<p><strong>🌍 Krusty Planet</strong> — Privacy-focused AI consulting</p>
<p class="is-size-7">Anonymous. Encrypted. Professional.</p>
<p><strong>🌍 Krusty Planet</strong> — AI consulting for real work</p>
<p class="is-size-7 mt-2">Owned and operated by <strong style="color:#b5b5b5;">Jezza Hehn</strong></p>
<p class="is-size-7 mt-3"><span class="has-text-success">🔒 I2P:</span> <a href="http://g3xdiv7psi6y6l255kbkzowemsnd4tmbvy5ykaoajlu7oboma7zq.b32.i2p" style="color:#b5b5b5;" rel="nofollow noopener">g3xdiv7psi6y6l255kbkzowemsnd4tmbvy5ykaoajlu7oboma7zq.b32.i2p</a></p>
</div>
</footer>

View file

@ -18,13 +18,11 @@
if (btn) btn.textContent = icons[theme] || '🌙';
}
// Init: stored preference, then data-theme attr, then default dark
var stored = getStored();
var current = stored || document.documentElement.getAttribute('data-theme') || 'dark';
if (themes.indexOf(current) === -1) current = 'dark';
applyTheme(current);
// Toggle
document.getElementById('theme-toggle').addEventListener('click', function() {
var idx = themes.indexOf(document.documentElement.getAttribute('data-theme'));
var next = themes[(idx < 0 ? 0 : idx + 1) % themes.length];
@ -40,17 +38,16 @@ document.getElementById('nav-toggle').addEventListener('click', function() {
});
// Contact form - sends to backend API
var form = document.getElementById('contact-form');
if (form) {
form.addEventListener('submit', function(e) {
var contactForm = document.getElementById('contact-form');
if (contactForm) {
contactForm.addEventListener('submit', function(e) {
e.preventDefault();
var status = document.getElementById('form-status');
var submitBtn = form.querySelector('button[type="submit"]');
var submitBtn = contactForm.querySelector('button[type="submit"]');
var originalBtnText = submitBtn.textContent;
// Collect form data
var formData = new FormData(form);
var formData = new FormData(contactForm);
var data = {
name: formData.get('name'),
email: formData.get('email'),
@ -58,39 +55,31 @@ if (form) {
message: formData.get('message')
};
// Honeypot for spam
var honeypot = formData.get('website') || formData.get('url') || formData.get('honey');
if (honeypot) {
// Bot detected - pretend success
status.className = 'notification is-success';
status.textContent = 'Message received. We\'ll respond within 48 hours.';
status.style.display = 'block';
form.reset();
contactForm.reset();
return;
}
// Disable button and show sending state
submitBtn.disabled = true;
submitBtn.textContent = 'Sending...';
status.style.display = 'none';
// Send to API
fetch('/api/contact', {
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify(data)
})
.then(function(response) {
return response.json();
})
.then(function(response) { return response.json(); })
.then(function(result) {
if (result.success) {
status.className = 'notification is-success';
status.textContent = result.message || 'Message received. We\'ll respond within 48 hours.';
status.style.display = 'block';
form.reset();
contactForm.reset();
} else {
throw new Error(result.error || 'Failed to send message');
}
@ -106,3 +95,63 @@ if (form) {
});
});
}
// Audit form - sends to backend API
var auditForm = document.getElementById('audit-form');
if (auditForm) {
auditForm.addEventListener('submit', function(e) {
e.preventDefault();
var status = document.getElementById('audit-status');
var submitBtn = auditForm.querySelector('button[type="submit"]');
var originalBtnText = submitBtn.textContent;
var formData = new FormData(auditForm);
var data = {
name: formData.get('name'),
email: formData.get('email'),
business: formData.get('business'),
audit_type: formData.get('audit_type'),
description: formData.get('description')
};
var honeypot = formData.get('website') || formData.get('url') || formData.get('honey');
if (honeypot) {
status.className = 'notification is-success';
status.textContent = 'Audit request received. We\'ll be in touch within 48 hours.';
status.style.display = 'block';
auditForm.reset();
return;
}
submitBtn.disabled = true;
submitBtn.textContent = 'Submitting...';
status.style.display = 'none';
fetch('/api/audit', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify(data)
})
.then(function(response) { return response.json(); })
.then(function(result) {
if (result.success) {
status.className = 'notification is-success';
status.textContent = result.message || 'Audit request received. We\'ll review your situation and send a report within 48 hours.';
status.style.display = 'block';
auditForm.reset();
} else {
throw new Error(result.error || 'Failed to submit audit request');
}
})
.catch(function(error) {
status.className = 'notification is-danger';
status.textContent = error.message || 'Failed to submit audit request. Please try again.';
status.style.display = 'block';
})
.finally(function() {
submitBtn.disabled = false;
submitBtn.textContent = originalBtnText;
});
});
}

View file

@ -4,7 +4,7 @@
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Pricing — Krusty Planet</title>
<meta name="description" content="Simple, fixed pricing for self-hosted AI assistant setup and support. No cloud subscriptions, no surprises." />
<meta name="description" content="Simple, fixed pricing for AI assistant setup and support. No surprises, no hidden fees." />
<link rel="icon" type="image/svg+xml" href="/favicon.svg" />
<link rel="stylesheet" href="/css/style.css" />
</head>
@ -42,7 +42,7 @@
<!-- Preamble -->
<p class="has-text-centered mb-6" style="max-width:700px;margin-left:auto;margin-right:auto;">
We set up AI assistants on your own hardware. You own your data, no cloud subscriptions required. Choose a package below, or <a href="/contact.html">reach out</a> to talk through what you need.
We set up AI assistants that handle real work for your business. Choose a package below, or <a href="/contact.html">reach out</a> to talk through what you need.
</p>
<!-- Three Tiers -->
@ -109,7 +109,7 @@
<li class="mb-2">✅ Everything else: 24-hour response</li>
</ul>
<p class="is-size-7 mt-3" style="color:var(--color-text-muted);">
Extra hours billed at $50/hr. Cancel anytime — access continues through the end of the billing period.
Extra hours billed at $100/hr. Cancel anytime — access continues through the end of the billing period.
</p>
<a href="/contact.html" class="button is-primary is-fullwidth mt-4">Set Up Support</a>
</div>
@ -132,7 +132,7 @@
<!-- Need Something Smaller -->
<div class="has-text-centered mt-6">
<p style="color:var(--color-text-muted);">Need something smaller? We also offer hourly consulting at <strong>$50/hr</strong> (billed in 15-minute increments). <a href="/contact.html">Get in touch</a> to discuss.</p>
<p style="color:var(--color-text-muted);">Need something smaller? We also offer hourly consulting at <strong>$100/hr</strong> (billed in 15-minute increments). <a href="/contact.html">Get in touch</a> to discuss.</p>
</div>
<!-- Footer Info -->
@ -144,12 +144,8 @@
<div class="tags is-centered mt-3">
<span class="tag is-medium is-info">Stripe</span>
<span class="tag is-medium is-info">PayPal</span>
<span class="tag is-medium is-info">Monero (XMR)</span>
<span class="tag is-medium is-info">Invoice</span>
</div>
<p style="color:var(--color-text-muted);" class="mt-3">
All services also available via <a href="/contact.html">I2P darknet</a> for maximum privacy.
</p>
</div>
</div>
@ -157,7 +153,9 @@
<footer class="footer has-background-dark has-text-light">
<div class="content has-text-centered">
<p><strong>🌍 Krusty Planet</strong> — Privacy-focused AI consulting</p>
<p><strong>🌍 Krusty Planet</strong> — AI consulting for real work</p>
<p class="is-size-7 mt-2">Owned and operated by <strong style="color:#b5b5b5;">Jezza Hehn</strong></p>
<p class="is-size-7 mt-3"><span class="has-text-success">🔒 I2P:</span> <a href="http://g3xdiv7psi6y6l255kbkzowemsnd4tmbvy5ykaoajlu7oboma7zq.b32.i2p" style="color:#b5b5b5;" rel="nofollow noopener">g3xdiv7psi6y6l255kbkzowemsnd4tmbvy5ykaoajlu7oboma7zq.b32.i2p</a></p>
</div>
</footer>

5
robots.txt Normal file
View file

@ -0,0 +1,5 @@
User-agent: *
Allow: /
Disallow: /api/
Sitemap: https://krustyplanet.org/sitemap.xml

71
scripts/sync-eepsite.sh Executable file
View file

@ -0,0 +1,71 @@
#!/bin/bash
# sync-eepsite.sh — Copy clearnet site to eepsite with appropriate modifications
# Usage: ./sync-eepsite.sh [--dry-run]
#
# The eepsite is a simplified version of the clearnet site:
# - No blog page (no blog content yet)
# - No free-audit page (audit form uses /api which isn't available on I2P)
# - Cross-reference links point to clearnet (not eepsite) and vice versa
# - Same JS/CSS
# - Same footer with I2P/clearnet cross-link
set -euo pipefail
CLEARNET="/var/www/krustyplanet"
EEPSITE="/var/www/eepsite"
DRY_RUN=false
if [[ "${1:-}" == "--dry-run" ]]; then
DRY_RUN=true
echo "DRY RUN — no files will be modified"
fi
# Pages that exist on both sites
SHARED_PAGES=("index.html" "services.html" "pricing.html" "contact.html")
# Pages only on clearnet (these have backend API dependencies)
CLEARNET_ONLY=("blog.html" "free-audit.html")
# Copy shared static assets
for dir in css js; do
echo "Syncing $dir/"
if $DRY_RUN; then
diff -rq "$CLEARNET/$dir/" "$EEPSITE/$dir/" || true
else
rsync -av --delete "$CLEARNET/$dir/" "$EEPSITE/$dir/"
fi
done
# Copy favicon
echo "Syncing favicon.svg"
if ! $DRY_RUN; then
cp "$CLEARNET/favicon.svg" "$EEPSITE/favicon.svg"
fi
# Sync shared pages with I2P-specific modifications
for page in "${SHARED_PAGES[@]}"; do
echo "Syncing $page"
if $DRY_RUN; then
echo " Would transform and copy $CLEARNET/$page -> $EEPSITE/$page"
else
# Start with clearnet version
cp "$CLEARNET/$page" "$EEPSITE/$page"
# Replace clearnet I2P mirror link with clearnet reference link
sed -i 's|🔒 I2P Mirror:.*b32\.i2p</a></p>|🌐 Clearnet: <a href="https://krustyplanet.org" style="color:#b5b5b5;">https://krustyplanet.org</a></p>|' "$EEPSITE/$page"
# Remove nav links to clearnet-only pages (free-audit, blog)
sed -i '/href="\/free-audit\.html"/d' "$EEPSITE/$page"
sed -i '/href="\/blog\.html"/d' "$EEPSITE/$page"
fi
done
echo "Done. Eepsite is in sync with clearnet."
echo ""
echo "NOTE: The following pages are clearnet-only (require /api backend):"
for page in "${CLEARNET_ONLY[@]}"; do
echo " - $page"
done
echo ""
echo "NOTE: The eepsite contact form JS still posts to /api/contact"
echo " which won't work over I2P. Consider adding a mailto: fallback."

View file

@ -4,6 +4,7 @@
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Services — Krusty Planet</title>
<meta name="description" content="AI assistant setup, custom capabilities, multi-agent systems, training, and support. Built on open-source, deployed to your infrastructure." />
<link rel="icon" type="image/svg+xml" href="/favicon.svg" />
<link rel="stylesheet" href="/css/style.css" />
</head>
@ -39,41 +40,41 @@
<section class="section">
<div class="container">
<div class="box kp-card mb-6">
<h2 class="title is-4">🤖 AI Agent Deployment</h2>
<p class="has-text-grey-light mb-4">Deploy AI agents on your hardware using OpenClaw, Ollama, or other open-source runtimes. We configure the environment, connect your preferred model (local or API), and hand you a documented, working system you can extend on your own.</p>
<div class="tags"><span class="tag is-primary">OpenClaw</span><span class="tag is-primary">Ollama</span><span class="tag is-primary">Self-Hosted LLMs</span><span class="tag is-primary">API Integration</span></div>
<h2 class="title is-4">🤖 AI Assistant Setup</h2>
<p class="has-text-grey-light mb-4">Get an AI assistant configured for your specific workflows. We set up the environment, connect it to your tools (email, documents, databases, APIs), and make sure it's actually useful before we hand it over. You get a working system, not a weekend project.</p>
<div class="tags"><span class="tag is-primary">Email Automation</span><span class="tag is-primary">Document Processing</span><span class="tag is-primary">API Integration</span><span class="tag is-primary">Scheduled Tasks</span></div>
</div>
<div class="box kp-card mb-6">
<h2 class="title is-4">🧠 Custom Skill Development</h2>
<p class="has-text-grey-light mb-4">Each skill is built for a specific task in your workflow. Examples: an agent that reads your inbox and drafts categorized responses, a scraper that compiles daily reports from three websites, or a monitoring skill that alerts you when a service goes down.</p>
<div class="tags"><span class="tag is-primary">Natural Language Tasks</span><span class="tag is-primary">API Workflows</span><span class="tag is-primary">Data Processing</span><span class="tag is-primary">Web Automation</span></div>
<h2 class="title is-4">🧠 Custom Capabilities</h2>
<p class="has-text-grey-light mb-4">Each capability is built for a specific task you're doing by hand today. An assistant that reads your inbox and drafts categorized responses. A tool that compiles daily reports from multiple sources. A monitor that alerts you when something needs attention.</p>
<div class="tags"><span class="tag is-primary">Natural Language Tasks</span><span class="tag is-primary">API Workflows</span><span class="tag is-primary">Data Processing</span><span class="tag is-primary">Web Research</span></div>
</div>
<div class="box kp-card mb-6">
<h2 class="title is-4">🏗️ Agent Fleet Architecture</h2>
<p class="has-text-grey-light mb-4">Multiple agents working in parallel, each with a specialty. A research agent finds sources, a coding agent implements, an audit agent reviews the output. Task delegation with built-in quality checks. We design the topology and write the coordination logic.</p>
<div class="tags"><span class="tag is-primary">Multi-Agent Orchestration</span><span class="tag is-primary">Task Delegation</span><span class="tag is-primary">Quality Pipelines</span><span class="tag is-primary">Parallel Processing</span></div>
</div>
<div class="box kp-card mb-6">
<h2 class="title is-4">🔐 Private Infrastructure</h2>
<p class="has-text-grey-light mb-4">Deploy on your own hardware, no third-party API calls required. We set up local model inference, encrypted communications, and optional air-gapped configurations for sensitive environments. Your data never touches our servers.</p>
<div class="tags"><span class="tag is-primary">Air-Gapped Deploy</span><span class="tag is-primary">Local Inference</span><span class="tag is-primary">E2E Encryption</span><span class="tag is-primary">I2P Hosting</span></div>
</div>
<div class="box kp-card mb-6">
<h2 class="title is-4">🛠️ Ongoing Support</h2>
<p class="has-text-grey-light mb-4">Monthly retainer for monitoring agent health, applying updates, building new skills, and troubleshooting issues. Critical problems addressed within 4 hours during business hours, standard requests within 24 hours.</p>
<div class="tags"><span class="tag is-primary">Monthly Retainer</span><span class="tag is-primary">Health Monitoring</span><span class="tag is-primary">Skill Updates</span><span class="tag is-primary">Troubleshooting</span></div>
<h2 class="title is-4">🏗️ Multi-Agent Systems</h2>
<p class="has-text-grey-light mb-4">When one assistant isn't enough, set up a team. Multiple AI agents working in parallel, each with a specialty — one researches, another writes, a third reviews. Built-in quality checks at every step. We design the workflow and write the coordination logic.</p>
<div class="tags"><span class="tag is-primary">Task Delegation</span><span class="tag is-primary">Quality Pipelines</span><span class="tag is-primary">Parallel Processing</span><span class="tag is-primary">Specialist Roles</span></div>
</div>
<div class="box kp-card mb-6">
<h2 class="title is-4">🎓 Training & Documentation</h2>
<p class="has-text-grey-light mb-4">Plain-English documentation for operating and extending your agent system. Walkthrough sessions (video call or text-based) so your team can maintain things independently. The goal is to make you self-sufficient, not dependent on us.</p>
<p class="has-text-grey-light mb-4">Plain-English documentation for operating and extending your AI system. Walkthrough sessions (video call or text-based) so your team can maintain things independently. The goal is to make you self-sufficient, not dependent on us.</p>
<div class="tags"><span class="tag is-primary">Written Docs</span><span class="tag is-primary">Walkthrough Sessions</span><span class="tag is-primary">Team Onboarding</span></div>
</div>
<div class="box kp-card mb-6">
<h2 class="title is-4">🛠️ Ongoing Support</h2>
<p class="has-text-grey-light mb-4">Monthly retainer for monitoring system health, applying updates, building new capabilities, and troubleshooting issues. Critical problems addressed within 4 hours during business hours, standard requests within 24 hours.</p>
<div class="tags"><span class="tag is-primary">Monthly Retainer</span><span class="tag is-primary">Health Monitoring</span><span class="tag is-primary">Capability Updates</span><span class="tag is-primary">Troubleshooting</span></div>
</div>
<div class="box kp-card mb-6">
<h2 class="title is-4">🔒 Your Infrastructure, Your Data</h2>
<p class="has-text-grey-light mb-4">Everything runs on your hardware. No data sent to third parties unless you explicitly choose to. We build on open-source tools so you're never locked in to a vendor. Privacy-focused configurations available for organizations that need them.</p>
<div class="tags"><span class="tag is-primary">Open-Source Stack</span><span class="tag is-primary">No Vendor Lock-in</span><span class="tag is-primary">On-Premise</span><span class="tag is-primary">Privacy Options</span></div>
</div>
<div class="has-text-centered mt-6">
<a href="/contact.html" class="button is-primary is-large is-rounded">Discuss Your Project</a>
</div>
@ -82,7 +83,9 @@
<footer class="footer has-background-dark has-text-light">
<div class="content has-text-centered">
<p><strong>🌍 Krusty Planet</strong> — Privacy-focused AI consulting</p>
<p><strong>🌍 Krusty Planet</strong> — AI consulting for real work</p>
<p class="is-size-7 mt-2">Owned and operated by <strong style="color:#b5b5b5;">Jezza Hehn</strong></p>
<p class="is-size-7 mt-3"><span class="has-text-success">🔒 I2P:</span> <a href="http://g3xdiv7psi6y6l255kbkzowemsnd4tmbvy5ykaoajlu7oboma7zq.b32.i2p" style="color:#b5b5b5;" rel="nofollow noopener">g3xdiv7psi6y6l255kbkzowemsnd4tmbvy5ykaoajlu7oboma7zq.b32.i2p</a></p>
</div>
</footer>

33
sitemap.xml Normal file
View file

@ -0,0 +1,33 @@
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>https://krustyplanet.org/</loc>
<changefreq>weekly</changefreq>
<priority>1.0</priority>
</url>
<url>
<loc>https://krustyplanet.org/services.html</loc>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://krustyplanet.org/pricing.html</loc>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://krustyplanet.org/free-audit.html</loc>
<changefreq>monthly</changefreq>
<priority>0.9</priority>
</url>
<url>
<loc>https://krustyplanet.org/contact.html</loc>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://krustyplanet.org/blog.html</loc>
<changefreq>weekly</changefreq>
<priority>0.6</priority>
</url>
</urlset>