Compare commits

..

16 Commits
main ... main

Author SHA1 Message Date
Tony M
ad97f64374 fix formatting 2026-07-07 13:51:27 -07:00
Tony M
61a57d5fdb website refresh 2026-07-07 13:18:27 -07:00
Gary
e578fcf4d0 update copyright 2026-04-30 15:15:51 -07:00
Gary
237bafd0c7 fix mobile sizing 2026-04-30 15:13:10 -07:00
Gary
653daa0671 replace url youtube 2026-03-03 10:27:58 -08:00
Gary
2497ff8c57 add shop and blog 2026-02-27 14:20:31 -08:00
Gary
dba8df0003 fix button solutions 2026-02-24 10:13:33 -08:00
Gary
1d6cf9ad1f fix contact page spacing
capitalize buttons
2026-02-24 10:11:07 -08:00
Gary
578ca7e5d4 mobile size changes 2026-02-24 10:00:26 -08:00
Gary
d7fe327beb add cta
improve mobile spacing
fix images
2026-02-24 09:34:06 -08:00
Gary
cf27ccb526 countdown 2026-01-27 14:04:37 -08:00
Gary
92316e4bcd refresh website 2026-01-27 13:44:50 -08:00
Gary
b698b072d0 fix link solutions index 2025-08-12 23:21:03 -07:00
Gary
c3832fa0ca add name changes to nav 2025-08-12 23:14:32 -07:00
Gary
bd06d674b8 add full width video backgrounds 2025-08-12 22:11:58 -07:00
Gary
7ce9cebd06 remove eschatology section from creed 2025-08-04 09:31:14 -07:00
31 changed files with 5542 additions and 7032 deletions

3
.vscode/settings.json vendored Normal file
View File

@ -0,0 +1,3 @@
{
"liveServer.settings.port": 5501
}

130
404.html Normal file
View File

@ -0,0 +1,130 @@
<!--
██ ███████ ███████ ██ ██ ███████ ██ ███████ ██ ██ ██ ███ ██ ██████
██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ████ ██ ██
██ █████ ███████ ██ ██ ███████ ██ ███████ █████ ██ ██ ██ ██ ██ ███
██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██
█████ ███████ ███████ ██████ ███████ ██ ███████ ██ ██ ██ ██ ████ ██████
-->
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>404 — Off the grid | Shiloh</title>
<meta
name="description"
content="The page you were looking for isn't here. Head back to the home page or touch grass for a bit."
/>
<meta name="theme-color" content="#3a5952" />
<meta name="robots" content="noindex" />
<link rel="icon" href="./assets/favicon.ico" sizes="any" />
<link rel="icon" href="./assets/favicon.jpg" type="image/jpeg" />
<link rel="apple-touch-icon" href="./assets/favicon.jpg" />
<link rel="stylesheet" href="css/styles.css?v=1.3" />
<script src="./js/main.js" defer></script>
<script src="./js/navbar.js" defer></script>
<script src="./js/back-to-top.js" defer></script>
<style>
.rack {
display: flex;
flex-direction: column;
gap: 6px;
margin: var(--space-md) auto;
max-width: 360px;
}
.rack .unit {
display: flex;
align-items: center;
gap: 8px;
background: var(--color-surface-1);
border: 1px solid rgba(var(--color-accent-rgb), 0.15);
border-radius: var(--radius-sm);
padding: 8px 10px;
font-family: var(--font-sans);
font-size: 0.85rem;
color: var(--color-text);
}
.rack .unit .led {
width: 8px;
height: 8px;
border-radius: 50%;
background: var(--color-bad);
box-shadow: 0 0 8px var(--color-bad);
animation: pulse-bad 1.4s ease-in-out infinite;
flex-shrink: 0;
}
.rack .unit .led.ok {
background: var(--color-good);
box-shadow: 0 0 8px var(--color-good);
animation: none;
}
.rack .unit .led.warn {
background: var(--color-warn);
box-shadow: 0 0 8px var(--color-warn);
animation: pulse-warn 1.4s ease-in-out infinite;
}
@keyframes pulse-bad {
0%, 100% { opacity: 1; }
50% { opacity: 0.3; }
}
@keyframes pulse-warn {
0%, 100% { opacity: 1; }
50% { opacity: 0.4; }
}
.big-404 {
font-size: clamp(5rem, 12vw, 10rem);
font-weight: 100;
color: var(--color-accent);
line-height: 1;
margin: var(--space-md) 0 var(--space-sm);
text-align: center;
font-variant-numeric: tabular-nums;
}
</style>
</head>
<body>
<header id="header"></header>
<main>
<section class="flex-column" aria-labelledby="notfound-heading">
<div class="flex">
<p class="sr-only" id="notfound-heading">Page not found</p>
<h1 aria-hidden="true"><span class="big-404">404</span></h1>
<h2>we can't find that page</h2>
<p>
The server you were looking for has wandered off the rack. Maybe it
went to touch grass. Try one of these instead.
</p>
<div class="rack" aria-hidden="true">
<div class="unit"><span class="led ok"></span> home — operational</div>
<div class="unit"><span class="led ok"></span> /solutions — operational</div>
<div class="unit"><span class="led ok"></span> /creed — operational</div>
<div class="unit"><span class="led warn"></span> this page — degraded</div>
<div class="unit"><span class="led ok"></span> /contact — operational</div>
</div>
<div class="flex-row">
<a class="button-1" role="button" href="/">Back to home</a>
<a class="button-2" role="button" href="/contact">Tell us what broke</a>
<a class="button-1" role="button" target="_blank" rel="noopener noreferrer" href="https://www.youtube.com/@shiloh-code">Watch the show</a>
</div>
</div>
</section>
</main>
<button id="back-to-top">^ TOP</button>
<div id="message"></div>
<footer id="footer"></footer>
</body>
</html>

View File

@ -15,75 +15,183 @@
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>About | Shiloh Code</title>
<title>About Shiloh | Christian Tech, Community, and Culture | Idaho</title>
<meta
name="description"
content="Learn more about Shiloh. We offer services to resist the beast system with everything your home or business does. Are you ready to stand up against the digital deceptions of our time?"
content="Shiloh means peace. We're a 100% U.S.-based Christian team in Bonners Ferry, Idaho building tech, community, and culture that help you live with less stress. Includes Last Hour Hosting, Echo, and the Touch Grass Show."
/>
<meta name="author" content="Shiloh" />
<meta name="theme-color" content="#3a5952" />
<meta name="geo.region" content="US-ID" />
<meta name="geo.placename" content="Bonners Ferry" />
<link rel="canonical" href="https://www.shilohcode.com/about" />
<meta property="og:title" content="shiloh code" />
<meta property="og:title" content="About | Shiloh" />
<meta property="og:type" content="website" />
<meta property="og:url" content="https://www.shilohcode.com" />
<meta property="og:url" content="https://www.shilohcode.com/about" />
<meta
property="og:description"
content="Learn more about Shiloh. We offer services to resist the beast system with everything your home or business does. Are you ready to stand up against the digital deceptions of our time?"
content="Shiloh means peace. A 100% U.S.-based Christian team in Bonners Ferry, Idaho building tech, community, and culture. Includes Last Hour Hosting, Echo, and the Touch Grass Show."
/>
<meta property="og:image" content="./assets/shiloh_logo_black.png" />
<meta property="og:image" content="./assets/shiloh-logo-white-1.png" />
<meta property="og:site_name" content="Shiloh" />
<meta name="twitter:card" content="summary_large_image" />
<link rel="icon" href="./assets/favicon.ico" />
<link rel="icon" href="./assets/" type="image/svg+xml" />
<link rel="apple-touch-icon" href="/apple-touch-icon.png" />
<link rel="icon" href="./assets/favicon.ico" sizes="any" />
<link rel="icon" href="./assets/favicon.jpg" type="image/jpeg" />
<link rel="apple-touch-icon" href="./assets/favicon.jpg" />
<link rel="stylesheet" href="css/styles.css?v=1.0" />
<script src="./js/jquery-3.7.1.min.js"></script>
<script src="./js/main.js"></script>
<script src="./js/navbar.js"></script>
<link rel="stylesheet" href="css/styles.css?v=1.4" />
<script src="./js/main.js" defer></script>
<script src="./js/navbar.js" defer></script>
<script src="./js/back-to-top.js" defer></script>
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Organization",
"@id": "https://www.shilohcode.com/#organization",
"name": "Shiloh",
"alternateName": "Shiloh LLC",
"url": "https://www.shilohcode.com/about",
"logo": "https://www.shilohcode.com/assets/shiloh-logo-white-1.png",
"description": "Shiloh means peace. A 100% U.S.-based Christian team in Bonners Ferry, Idaho building tech, community, and culture. Includes Last Hour Hosting, Echo, and the Touch Grass Show.",
"email": "support@shilohcode.com",
"address": {
"@type": "PostalAddress",
"streetAddress": "6653 Main Street #401",
"addressLocality": "Bonners Ferry",
"addressRegion": "ID",
"postalCode": "83805",
"addressCountry": "US"
},
"geo": {
"@type": "GeoCoordinates",
"latitude": 48.6913,
"longitude": -116.3163
},
"areaServed": "US",
"sameAs": ["https://www.youtube.com/@shiloh-code"],
"subOrganization": [
{
"@type": "Organization",
"name": "Last Hour Hosting",
"url": "https://lasthourhosting.org"
},
{
"@type": "Organization",
"name": "Shiloh Echo",
"url": "https://shilohecho.org"
}
]
}
</script>
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "BreadcrumbList",
"itemListElement": [
{
"@type": "ListItem",
"position": 1,
"name": "Home",
"item": "https://www.shilohcode.com/"
},
{
"@type": "ListItem",
"position": 2,
"name": "About",
"item": "https://www.shilohcode.com/about"
}
]
}
</script>
</head>
<body>
<header id="header"></header>
<main>
<div class="flex-column bg-vid">
<div>
<h1>about</h1>
<section class="flex-column bg-vid" aria-labelledby="about-heading">
<div class="flex">
<h1 id="about-heading">about</h1>
<p>
Shiloh means peace. We're a U.S.-based Christian team in Bonners
Ferry, Idaho, building tech, community, and culture that help you
live with less stress.
</p>
<div class="flex-row">
<a
class="button-2"
role="button"
target="_blank"
rel="noopener noreferrer"
href="https://www.youtube.com/@shiloh-code"
>Watch the show</a
>
<a
class="button-1"
role="button"
href="https://odysee.com/@shilohcode:e/about:11"
>Watch</a
target="_blank"
rel="noopener noreferrer"
href="https://cloud.shilohcode.com/apps/calendar/appointment/en6GjxFM9K25"
>Schedule a Call</a
>
</div>
</div></section>
<section class="flex-column bg-vid" aria-label="Scripture">
<div class="flex">
<h2>
whatever you do, <br />
work at it with all <br />
your heart, as <br />
working for the Lord <br />
</h2>
<h3>colossians 3:23</h3>
</div>
</section>
<section class="flex-column bg-vid" aria-labelledby="creed-heading">
<div class="flex">
<h2 id="creed-heading">our creed</h2>
<p>
Read the <a href="/creed">full statement of faith</a> that guides
how we serve our clients and run our business.
</p>
<div class="flex-row">
<a class="button-1" role="button" href="/creed">Read our creed</a>
<a
class="button-1"
role="button"
target="_blank"
rel="noopener noreferrer"
href="https://cloud.shilohcode.com/apps/calendar/appointment/en6GjxFM9K25"
>Schedule a Call</a
>
</div>
</div>
<video autoplay loop muted poster="/assets/about.png">
<source
src="https://cdn.lasthourhosting.org/shiloh/about.webm"
type="video/webm"
/>
</video>
</div>
<div class="flex-column bg-vid">
<div>
<h2>
have no fellowship <br />
with the fruitless <br />
deeds of darkness, <br />
but rather expose them <br />
</h2>
<h3>ephesians 5:11</h3>
</section>
<section class="flex-column bg-vid" aria-label="Service area">
<div class="flex">
<h2>A U.S.-based team in Idaho</h2>
<p>
Shiloh is headquartered in <strong>Bonners Ferry, Idaho</strong>,
and through Last Hour Hosting we provide managed hosting, IT, and
software services to organizations across the United States and
internationally. Our service area includes Idaho, Washington,
Oregon, Montana, and remote engagements worldwide. The Echo
gathering takes place in the Idaho panhandle, and the Touch Grass
Show is produced from right here too.
</p>
<p>
<a href="/solutions">View Last Hour Hosting services →</a>
&nbsp;·&nbsp;
<a href="/contact">Get in touch →</a>
</p>
</div>
</div>
<div class="flex-column bg-vid">
<div>
<h2>our creed</h2>
<div class="flex-row">
<a class="button-1" role="button" href="/creed">Read</a>
</div>
</div>
</div>
</section>
</main>
<button id="back-to-top">^ TOP</button>
<div id="message"></div>
<footer id="footer"></footer>
</body>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.2 KiB

BIN
assets/echologo.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 65 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 48 KiB

67
brand
View File

@ -1,67 +0,0 @@
<!--
██ ███████ ███████ ██ ██ ███████ ██ ███████ ██ ██ ██ ███ ██ ██████
██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ████ ██ ██
██ █████ ███████ ██ ██ ███████ ██ ███████ █████ ██ ██ ██ ██ ██ ███
██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██
█████ ███████ ███████ ██████ ███████ ██ ███████ ██ ██ ██ ██ ████ ██████
-->
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Contact | Shiloh Code</title>
<meta
name="description"
content="Have questions or comments? Contact us at Shiloh."
/>
<meta name="author" content="Shiloh" />
<meta property="og:title" content="shiloh code" />
<meta property="og:type" content="website" />
<meta property="og:url" content="https://www.shilohcode.com" />
<meta
property="og:description"
content="Have questions or comments? Contact us at Shiloh."
/>
<meta property="og:image" content="./assets/shiloh_logo_black.png" />
<link rel="icon" href="./assets/favicon.ico" />
<link rel="icon" href="./assets/" type="image/svg+xml" />
<link rel="apple-touch-icon" href="/apple-touch-icon.png" />
<link rel="stylesheet" href="css/styles.css?v=1.0" />
<script src="./js/jquery-3.7.1.min.js"></script>
<script src="./js/main.js"></script>
<script src="./js/navbar.js"></script>
</head>
<body>
<header id="header"></header>
<main>
<div class="flex-column bg-vid-main">
<div>
<h1>contact us</h1>
<div class="flex-row">
<div class="flex-container">
<a
class="button-1"
role="button"
href="mailto:hello-izmqxby3qjkffhh6w7a9s2j3qwj7zu93iji7gxjcn(AT)shilohcode(DOT)com"
>email</a
>
</div>
</div>
</div>
</div>
</main>
<div id="message"></div>
<footer id="footer"></footer>
</body>
</html>

View File

@ -15,53 +15,84 @@
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Careers | Shiloh Code</title>
<meta name="description" content="Careers at Shiloh" />
<title>Careers at Shiloh | Christian Tech Jobs | Idaho</title>
<meta
name="description"
content="Join the Shiloh team. We're a 100% U.S.-based Christian team in Bonners Ferry, Idaho building tech (Last Hour Hosting), community (Echo), and culture (the Touch Grass Show). Always interested in meeting new talent."
/>
<meta name="author" content="Shiloh" />
<meta property="og:title" content="shiloh code" />
<meta name="theme-color" content="#3a5952" />
<meta name="geo.region" content="US-ID" />
<link rel="canonical" href="https://www.shilohcode.com/careers" />
<meta property="og:title" content="Careers | Shiloh" />
<meta property="og:type" content="website" />
<meta property="og:url" content="https://www.shilohcode.com" />
<meta property="og:description" content="Careers at Shiloh" />
<meta property="og:image" content="./assets/shiloh_logo_black.png" />
<meta property="og:url" content="https://www.shilohcode.com/careers" />
<meta
property="og:description"
content="Join the Shiloh team. A 100% U.S.-based Christian team in Idaho building tech, community, and culture."
/>
<meta property="og:image" content="./assets/shiloh-logo-white-1.png" />
<meta property="og:site_name" content="Shiloh" />
<meta name="twitter:card" content="summary_large_image" />
<link rel="icon" href="./assets/favicon.ico" />
<link rel="icon" href="./assets/" type="image/svg+xml" />
<link rel="apple-touch-icon" href="/apple-touch-icon.png" />
<link rel="icon" href="./assets/favicon.ico" sizes="any" />
<link rel="icon" href="./assets/favicon.jpg" type="image/jpeg" />
<link rel="apple-touch-icon" href="./assets/favicon.jpg" />
<link rel="stylesheet" href="css/styles.css?v=1.0" />
<script src="./js/jquery-3.7.1.min.js"></script>
<script src="./js/main.js"></script>
<script src="./js/navbar.js"></script>
<link rel="stylesheet" href="css/styles.css?v=1.4" />
<script src="./js/main.js" defer></script>
<script src="./js/navbar.js" defer></script>
<script src="./js/back-to-top.js" defer></script>
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "BreadcrumbList",
"itemListElement": [
{ "@type": "ListItem", "position": 1, "name": "Home", "item": "https://www.shilohcode.com/" },
{ "@type": "ListItem", "position": 2, "name": "Careers", "item": "https://www.shilohcode.com/careers" }
]
}
</script>
</head>
<body>
<header id="header"></header>
<main>
<div class="flex-column">
<div>
<h1>open jobs at shiloh</h1>
<section class="flex-column" aria-labelledby="careers-heading">
<div class="flex">
<h1 id="careers-heading">open jobs at shiloh</h1>
<p>
check this page for current open positions with shiloh. we're always
interested in meeting new talent, email us at
careers(at)shilohcode(dot)com
Shiloh is a 100% U.S.-based Christian team in
<strong>Bonners Ferry, Idaho</strong> building tech (Last Hour
Hosting), community (Echo), and culture (the Touch Grass Show). We're
a small, growing team that values craftsmanship, ownership, and
serving others with excellence.
</p>
<h2>current openings</h2>
<p>
Check this page for current open positions with Shiloh. We're
especially interested in speaking with experienced
<strong>systems administrators, DevOps engineers, full-stack
developers, and IT support technicians</strong> who share our
values. Remote and on-site arrangements are both possible.
</p>
<p>
Don't see the right role? We're always interested in meeting
talented people. Send your résumé to
<a href="mailto:careers@shilohcode.com">careers@shilohcode.com</a>
and tell us what you'd like to build.
</p>
<p>
<a href="/about">Learn more about Shiloh →</a>
</p>
</div>
</div>
<div class="flex-column bg-vid">
<div>
<h1>Tech Sales Rep</h1>
<div class="flex-row">
<a
class="button-1"
role="button"
href="https://www.christiantechjobs.io/christian-jobs/remote-tech-sales-rep-100-commission-shiloh-909"
>learn more</a
>
</div>
</div>
</div>
</section>
</main>
<button id="back-to-top">^ TOP</button>
<div id="message"></div>
<footer id="footer"></footer>
</body>

114
community.html Normal file
View File

@ -0,0 +1,114 @@
<!--
██ ███████ ███████ ██ ██ ███████ ██ ███████ ██ ██ ██ ███ ██ ██████
██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ████ ██ ██
██ █████ ███████ ██ ██ ███████ ██ ███████ █████ ██ ██ ██ ██ ██ ███
██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██
█████ ███████ ███████ ██████ ███████ ██ ███████ ██ ██ ██ ██ ████ ██████
-->
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Get Involved | Shiloh Community | Christian Tech</title>
<meta
name="description"
content="Join the Shiloh community. Watch the Touch Grass Show, join the chat, and contribute to Last Hour Hosting and other open-source projects. A 100% U.S.-based Christian team in Bonners Ferry, Idaho."
/>
<meta name="author" content="Shiloh" />
<meta name="keywords" content="Christian tech community, privacy-first tech, open-source contributors, Christian developers, off-grid, simple living" />
<meta name="theme-color" content="#3a5952" />
<link rel="canonical" href="https://www.shilohcode.com/community" />
<meta property="og:title" content="Get Involved | Shiloh" />
<meta property="og:type" content="website" />
<meta property="og:url" content="https://www.shilohcode.com/community" />
<meta
property="og:description"
content="Join the Shiloh community. Watch, chat, and contribute to privacy-first tech and culture projects."
/>
<meta property="og:image" content="./assets/shiloh-logo-white-1.png" />
<meta property="og:site_name" content="Shiloh" />
<meta name="twitter:card" content="summary_large_image" />
<link rel="icon" href="./assets/favicon.ico" sizes="any" />
<link rel="icon" href="./assets/favicon.jpg" type="image/jpeg" />
<link rel="apple-touch-icon" href="./assets/favicon.jpg" />
<link rel="stylesheet" href="css/styles.css?v=1.4" />
<script src="./js/main.js" defer></script>
<script src="./js/navbar.js" defer></script>
<script src="./js/back-to-top.js" defer></script>
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "BreadcrumbList",
"itemListElement": [
{ "@type": "ListItem", "position": 1, "name": "Home", "item": "https://www.shilohcode.com/" },
{ "@type": "ListItem", "position": 2, "name": "Community", "item": "https://www.shilohcode.com/community" }
]
}
</script>
</head>
<body>
<header id="header"></header>
<main>
<section class="flex-column bg-vid" aria-labelledby="involved-heading">
<div class="flex">
<h1 id="involved-heading">get involved with shiloh</h1>
<p>
Shiloh is more than a hosting and IT company. We're a community
of Christians building tech, community, and culture that respects
your privacy and freedom. Join us by watching the show, joining the
chat, or contributing your skills to open-source projects.
</p>
<div class="flex-row">
<a
class="button-1"
role="button"
target="_blank"
rel="noopener noreferrer"
href="https://www.youtube.com/@shiloh-code"
>Watch the show</a
>
<a
class="button-2"
role="button"
target="_blank"
rel="noopener noreferrer"
href="https://matrix.to/#/!GuDYWQtHSPmYRubiRH%3As.shilohcode.com?via=s.shilohcode.com&via=matrix.org&via=matrix.mailefant.de"
>Join the chat</a
>
<a
class="button-1"
role="button"
target="_blank"
rel="noopener noreferrer"
href="https://githaven.org"
>Contribute code</a
>
<a
class="button-1"
role="button"
target="_blank"
rel="noopener noreferrer"
href="https://cloud.shilohcode.com/apps/calendar/appointment/en6GjxFM9K25"
>Schedule a call</a
>
</div>
</div></section>
</main>
<button id="back-to-top">^ TOP</button>
<div id="message"></div>
<footer id="footer"></footer>
</body>
</html>

View File

@ -2,15 +2,15 @@
<a class="logo" href="/"
><img
src="../assets/shiloh-logo-white-1.png"
alt="Last Hour Hosting Logo"
alt="Shiloh"
height="30"
/></a>
<p>
© 2022-2025
<a href="/" target="_blank">shilohcode.com</a>. all rights reserved by
<a href="https://shilohcode.com" target="_blank">shiloh llc.</a>
© 2022-2026
<a href="/">shilohcode.com</a>. all rights reserved by
<a href="https://shilohcode.com" target="_blank" rel="noopener noreferrer">shiloh llc.</a>
</p>
<p>pmb #15264 514 americas way box elder, sd, 57719-7600</p>
<p>6653 Main Street #401, Bonners Ferry, ID 83805</p>
</div>
<div class="flex-container">
<div>
@ -20,41 +20,21 @@
<div class="flex-row">
<div class="flex-container">
<h3>services</h3>
<a href="https://lasthourhosting.org">webhosting</a>
<a href="/services">hire us</a>
<a href="https://lasthourhosting.org" target="_blank" rel="noopener noreferrer">webhosting</a>
<a href="/solutions">managed IT</a>
</div>
<div class="flex-container">
<h3>resources</h3>
<a href="https://shilohcode.com/get-involved">get involved</a>
<a href="https://rad.githaven.org">contribute</a>
<a href="https://remnant.chat">community</a>
<a href="/community">get involved</a>
<a href="https://githaven.org" target="_blank" rel="noopener noreferrer">contribute</a>
<a href="https://matrix.to/#/!GuDYWQtHSPmYRubiRH%3As.shilohcode.com?via=s.shilohcode.com&via=matrix.org&via=matrix.mailefant.de" target="_blank" rel="noopener noreferrer">community</a>
<a href="/contact">report abuse</a>
</div>
<div class="flex-container">
<h3>company</h3>
<a href="/about">our team</a>
<a href="/news">news room</a>
<a href="/about">about</a>
<a href="/careers">careers</a>
<a href="/contact">contact</a>
</div>
</div>
<div class="flex-container">
<div class="flex-row">
<a
class="logo"
href="https://business.uschristianchamber.com/directory/Details/shiloh-llc-3651896"
target="_blank"
><img
src="../assets/us-christian-chamber-logo.png"
alt="US Christian Chamber of Commerce Logo"
height="100"
/></a>
<a class="logo" href="https://www.adelfibanking.com/" target="_blank"
><img
src="../assets/adelfi-banking.png"
alt="Adelfi Banking Logo"
height="30"
/></a>
</div>
</div>

View File

@ -1,4 +1,3 @@
<script src="./js/navbar.js"></script>
<div class="nav-bar">
<div class="mobile-menu-icon">
<a href="javascript:void(0);" class="icon" onclick="myFunction()">
@ -9,15 +8,18 @@
<a href="/">
<img
src="../assets/shiloh-logo-white-1.png"
alt="Last Hour Hosting Logo"
alt="Shiloh"
width="150"
/>
</a>
</div>
<ul class="menu">
<li class="menu-item"><a href="/solutions">solutions</a></li>
<li class="menu-item"><a href="/community">community</a></li>
<li class="menu-item"><a href="/creed">creed</a></li>
<li class="menu-item"><a href="https://blog.shilohcode.com" target="_blank" rel="noopener noreferrer">blog</a></li>
<li class="menu-item"><a href="https://shop.shilohcode.com" target="_blank" rel="noopener noreferrer">shop</a></li>
<li class="menu-item"><a href="/about">about</a></li>
<li class="menu-item"><a href="/get-involved">get involved</a></li>
<li class="menu-item"><a href="/services">services</a></li>
<li class="menu-item"><a href="/contact">contact us</a></li>
<li class="menu-item"><a href="/contact">contact</a></li>
</ul>
</div>

View File

@ -0,0 +1,4 @@
<div class="streak-badge" id="streak-badge" aria-live="polite" title="Touch-grass streak">
<span class="leaf" aria-hidden="true">&#127811;</span>
<span><span class="count">0</span>-day streak</span>
</div>

View File

@ -0,0 +1,5 @@
<div class="theme-toggle" id="theme-toggle" role="group" aria-label="Theme">
<button type="button" data-theme="day" aria-pressed="false">day</button>
<button type="button" data-theme="night" aria-pressed="true">night</button>
<button type="button" data-theme="sabbath" aria-pressed="false">sabbath</button>
</div>

View File

@ -15,52 +15,137 @@
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Contact | Shiloh Code</title>
<title>Contact Shiloh | Hosting, IT, Echo, the Show | Bonners Ferry, ID</title>
<meta
name="description"
content="Have questions or comments? Contact us at Shiloh."
content="Get in touch with Shiloh. Whether it's hosting, IT, software, the Echo gathering, or the Touch Grass Show, our 100% U.S.-based team in Bonners Ferry, Idaho is happy to talk."
/>
<meta name="author" content="Shiloh" />
<meta name="theme-color" content="#3a5952" />
<meta name="geo.region" content="US-ID" />
<meta name="geo.placename" content="Bonners Ferry" />
<link rel="canonical" href="https://www.shilohcode.com/contact" />
<meta property="og:title" content="shiloh code" />
<meta property="og:title" content="Contact | Shiloh" />
<meta property="og:type" content="website" />
<meta property="og:url" content="https://www.shilohcode.com" />
<meta property="og:url" content="https://www.shilohcode.com/contact" />
<meta
property="og:description"
content="Have questions or comments? Contact us at Shiloh."
content="Get in touch with Shiloh. Hosting, IT, software, the Echo gathering, the Touch Grass Show, or just a question, our 100% U.S.-based team in Bonners Ferry, Idaho is happy to talk."
/>
<meta property="og:image" content="./assets/shiloh_logo_black.png" />
<meta property="og:image" content="./assets/shiloh-logo-white-1.png" />
<meta property="og:site_name" content="Shiloh" />
<meta name="twitter:card" content="summary_large_image" />
<link rel="icon" href="./assets/favicon.ico" />
<link rel="icon" href="./assets/" type="image/svg+xml" />
<link rel="apple-touch-icon" href="/apple-touch-icon.png" />
<link rel="icon" href="./assets/favicon.ico" sizes="any" />
<link rel="icon" href="./assets/favicon.jpg" type="image/jpeg" />
<link rel="apple-touch-icon" href="./assets/favicon.jpg" />
<link rel="stylesheet" href="css/styles.css?v=1.0" />
<script src="./js/jquery-3.7.1.min.js"></script>
<script src="./js/main.js"></script>
<script src="./js/navbar.js"></script>
<link rel="stylesheet" href="css/styles.css?v=1.4" />
<script src="./js/main.js" defer></script>
<script src="./js/navbar.js" defer></script>
<script src="./js/back-to-top.js" defer></script>
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Organization",
"@id": "https://www.shilohcode.com/#organization",
"name": "Shiloh",
"url": "https://www.shilohcode.com/contact",
"logo": "https://www.shilohcode.com/assets/shiloh-logo-white-1.png",
"description": "Shiloh means peace. A 100% U.S.-based team in Bonners Ferry, Idaho building tech, community, and culture. Reach out about hosting, IT, software, the Echo gathering, the Touch Grass Show, or anything else.",
"email": "support@shilohcode.com",
"address": {
"@type": "PostalAddress",
"streetAddress": "6653 Main Street #401",
"addressLocality": "Bonners Ferry",
"addressRegion": "ID",
"postalCode": "83805",
"addressCountry": "US"
},
"geo": {
"@type": "GeoCoordinates",
"latitude": 48.6913,
"longitude": -116.3163
},
"areaServed": "US"
}
</script>
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "BreadcrumbList",
"itemListElement": [
{
"@type": "ListItem",
"position": 1,
"name": "Home",
"item": "https://www.shilohcode.com/"
},
{
"@type": "ListItem",
"position": 2,
"name": "Contact",
"item": "https://www.shilohcode.com/contact"
}
]
}
</script>
</head>
<body>
<header id="header"></header>
<main>
<div class="flex-column bg-vid-main">
<div>
<h1>contact us</h1>
<section class="flex-column bg-vid" aria-labelledby="contact-heading">
<div class="flex">
<h1 id="contact-heading">let's talk</h1>
<p>
Whether it's <a href="/solutions">hosting, IT, or custom software</a>,
the <a href="https://shilohecho.org">Echo gathering</a>, the
<a href="https://www.youtube.com/@shiloh-code">Touch Grass Show</a>,
a partnership, or just a question about what we're building, we're
a 100% U.S.-based team headquartered in Bonners Ferry, Idaho, and
we'd love to hear from you. Pick the option that fits.
</p>
<address>
Shiloh<br />
6653 Main Street #401<br />
Bonners Ferry, ID 83805<br />
United States
</address>
<div class="flex-row">
<div class="flex-container">
<a
class="button-1"
role="button"
href="mailto:hello-izmqxby3qjkffhh6w7a9s2j3qwj7zu93iji7gxjcn(AT)shilohcode(DOT)com"
>email</a
href="mailto:support@shilohcode.com"
>email us</a
>
<a
class="button-1"
role="button"
target="_blank"
rel="noopener noreferrer"
href="https://cloud.shilohcode.com/apps/calendar/appointment/en6GjxFM9K25"
>schedule a call</a
>
<a
class="button-2"
role="button"
target="_blank"
rel="noopener noreferrer"
href="https://matrix.to/#/!GuDYWQtHSPmYRubiRH%3As.shilohcode.com?via=s.shilohcode.com&via=matrix.org&via=matrix.mailefant.de"
>join the chat</a
>
</div>
</div>
</div>
</div>
</section>
</main>
<button id="back-to-top">^ TOP</button>
<div id="message"></div>
<footer id="footer"></footer>
</body>

1371
creed.html

File diff suppressed because it is too large Load Diff

565
css/creed.css Normal file
View File

@ -0,0 +1,565 @@
/* =================================================================
SHILOH CREED PAGE NAVIGATION & READABILITY
================================================================= */
body.creed-page {
background: var(--color-surface-1);
}
/* --- Sticky nav bar (creed page only) ------------------------ */
.creed-page #header {
position: sticky;
top: 0;
z-index: 60;
}
.creed-page .nav-bar {
background: var(--color-bg);
box-shadow: 0 1px 0 rgba(0, 0, 0, 0.2);
padding: 0.5rem var(--space-sm);
min-height: 56px;
gap: var(--space-sm);
}
.creed-page .nav-bar .logo img {
height: 36px;
width: auto;
}
/* --- Skip link ------------------------------------------------ */
.creed-page .skip-link {
position: absolute;
top: -100px;
left: var(--space-sm);
background: var(--color-accent);
color: var(--color-surface-2);
padding: var(--space-sm) var(--space-md);
border-radius: var(--radius-sm);
font-weight: var(--fw-button);
text-decoration: none;
z-index: 1000;
transition: top var(--transition-fast);
}
.creed-page .skip-link:focus {
top: var(--space-sm);
}
/* --- Reading progress bar (top of page) ----------------------- */
.reading-progress {
position: fixed;
top: 0;
left: 0;
right: 0;
height: 3px;
background: transparent;
z-index: 999;
pointer-events: none;
}
.reading-progress-bar {
height: 100%;
width: 0%;
background: var(--color-accent);
transition: width 0.1s linear;
}
/* --- Hero -----------------------------------------------------
NOTE: <main> in styles.css is `display: flex; justify-content: space-around`
so all direct children of <main> need `flex: 1 1 100%` to claim the full
row. Without this, the hero shrinks to its content width and floats to
the left on desktop. */
.creed-hero,
.creed-toolbar,
.creed-layout {
flex: 1 1 100%;
width: 100%;
align-self: stretch;
text-align: left;
min-width: 0;
}
/* --- Hero ----------------------------------------------------- */
.creed-hero {
padding: 0;
background: linear-gradient(180deg, var(--color-surface-2) 0%, var(--color-surface-1) 100%);
border-bottom: 1px solid rgba(255, 255, 255, 0.05);
border-top: 4px solid var(--color-accent);
min-height: 0;
}
.creed-hero-inner {
max-width: 1000px;
margin: 0 auto;
padding: var(--space-xl) var(--space-md) var(--space-lg);
text-align: center;
}
.creed-eyebrow {
text-transform: uppercase;
letter-spacing: 0.2em;
font-size: 0.85rem;
color: var(--color-accent);
font-weight: var(--fw-button);
margin-bottom: var(--space-sm);
}
.creed-hero h1 {
font-size: clamp(2.25rem, 1.5rem + 4vw, 4.5rem);
line-height: var(--lh-tight);
color: var(--color-heading);
margin-bottom: var(--space-md);
}
.creed-tagline {
font-size: var(--fs-h3);
color: var(--color-text);
margin-bottom: var(--space-lg);
line-height: var(--lh-base);
}
.creed-meta {
display: flex;
flex-wrap: wrap;
gap: var(--space-xs) var(--space-md);
justify-content: center;
font-size: 0.9rem;
color: var(--color-text);
margin-bottom: var(--space-lg);
opacity: 0.85;
}
.creed-meta span {
display: inline-flex;
align-items: center;
gap: 0.3em;
}
.creed-meta span + span::before {
content: "·";
margin-right: var(--space-md);
opacity: 0.4;
}
.creed-hero-actions {
display: flex;
flex-wrap: wrap;
gap: var(--space-sm);
justify-content: center;
}
/* --- Toolbar (search) ---------------------------------------- */
.creed-toolbar {
position: sticky;
top: 56px;
z-index: 55;
background: var(--color-surface-2);
border-bottom: 1px solid rgba(255, 255, 255, 0.08);
padding: 0;
}
.creed-toolbar-inner {
max-width: 1200px;
margin: 0 auto;
padding: 0.4rem var(--space-md);
display: flex;
flex-wrap: nowrap;
gap: var(--space-sm);
align-items: center;
}
.creed-search {
flex: 1 1 auto;
min-width: 0;
display: flex;
align-items: center;
}
.creed-search input {
width: 100%;
padding: 0.35rem 0.7rem;
background: var(--color-surface-1);
color: var(--color-text);
border: 1px solid rgba(255, 255, 255, 0.12);
border-radius: var(--radius-sm);
font-family: inherit;
font-size: 0.9rem;
line-height: 1.3;
}
.creed-search input:focus {
outline: none;
border-color: var(--color-accent);
box-shadow: 0 0 0 2px rgba(69, 227, 255, 0.2);
}
.creed-toolbar-status {
font-size: 0.8rem;
color: var(--color-text);
opacity: 0.7;
margin: 0;
white-space: nowrap;
flex-shrink: 0;
}
/* --- Layout: TOC + content side-by-side ----------------------- */
.creed-layout {
max-width: 1200px;
margin: 0 auto;
padding: var(--space-lg) var(--space-md);
display: grid;
grid-template-columns: 240px 1fr;
gap: var(--space-lg);
align-items: start;
}
/* --- Table of contents ---------------------------------------- */
.creed-toc {
position: sticky;
top: var(--space-md);
background: var(--color-surface-2);
border: 1px solid rgba(255, 255, 255, 0.08);
border-radius: var(--radius-md);
padding: var(--space-md);
max-height: calc(100vh - 2 * var(--space-md));
overflow-y: auto;
}
.creed-toc-title {
text-transform: uppercase;
letter-spacing: 0.15em;
font-size: 0.75rem;
color: var(--color-accent);
font-weight: var(--fw-button);
margin: 0 0 var(--space-xs);
}
.creed-toc-progress {
font-size: 0.8rem;
color: var(--color-text);
opacity: 0.6;
margin: 0 0 var(--space-sm);
}
.creed-toc-list {
list-style: none;
padding: 0;
margin: 0;
}
.creed-toc-list li {
margin: 0;
}
.creed-toc-list a {
display: flex;
align-items: center;
gap: var(--space-sm);
padding: 0.5rem 0.6rem;
color: var(--color-text);
text-decoration: none;
border-radius: var(--radius-sm);
font-size: 0.92rem;
border-left: 3px solid transparent;
transition: background var(--transition-fast), border-color var(--transition-fast);
}
.creed-toc-list a:hover {
background: rgba(255, 255, 255, 0.05);
}
.creed-toc-list a.is-active {
background: rgba(69, 227, 255, 0.08);
border-left-color: var(--color-accent);
color: var(--color-heading);
font-weight: var(--fw-button);
}
.creed-toc-list .toc-num {
display: inline-flex;
align-items: center;
justify-content: center;
width: 1.6rem;
height: 1.6rem;
background: var(--color-surface-1);
color: var(--color-text);
border-radius: var(--radius-full);
font-size: 0.75rem;
font-weight: var(--fw-button);
flex-shrink: 0;
}
.creed-toc-list a.is-active .toc-num {
background: var(--color-accent);
color: var(--color-surface-2);
}
/* --- Article content ----------------------------------------- */
.creed-content {
max-width: 800px;
min-width: 0;
}
.creed-intro {
font-size: 1.1rem;
line-height: var(--lh-base);
color: var(--color-text);
margin-bottom: var(--space-xl);
padding: var(--space-md);
background: var(--color-surface-2);
border-left: 4px solid var(--color-accent);
border-radius: var(--radius-sm);
}
.creed-section {
margin-bottom: var(--space-xl);
padding-top: var(--space-md);
scroll-margin-top: 120px;
}
.creed-section-header {
display: flex;
align-items: center;
gap: var(--space-md);
margin-bottom: var(--space-sm);
padding: var(--space-xs) var(--space-sm);
border-bottom: 2px solid var(--color-accent);
border-radius: var(--radius-sm);
background: rgba(124, 242, 160, 0.04);
}
.creed-section-num {
display: inline-flex;
align-items: center;
justify-content: center;
width: 2.5rem;
height: 2.5rem;
background: var(--color-accent);
color: var(--color-surface-2);
border-radius: var(--radius-full);
font-size: 1.25rem;
font-weight: var(--fw-button);
flex-shrink: 0;
}
.creed-section h2 {
font-size: var(--fs-h2);
color: var(--color-heading);
line-height: var(--lh-tight);
margin: 0;
}
.creed-section-lead {
font-size: 1.05rem;
line-height: var(--lh-base);
color: var(--color-text);
margin: var(--space-sm) 0 var(--space-md);
font-style: italic;
opacity: 0.9;
}
/* --- Article (collapsible) ----------------------------------- */
.creed-article {
background: var(--color-surface-2);
border: 1px solid rgba(255, 255, 255, 0.06);
border-radius: var(--radius-md);
margin-bottom: var(--space-sm);
transition: border-color var(--transition-fast);
}
.creed-article[open] {
border-color: rgba(69, 227, 255, 0.3);
}
.creed-article.is-hidden {
display: none;
}
.creed-article summary {
cursor: pointer;
padding: var(--space-sm) var(--space-md);
font-size: 1.05rem;
font-weight: var(--fw-button);
color: var(--color-heading);
list-style: none;
display: flex;
align-items: center;
gap: var(--space-sm);
user-select: none;
border-radius: var(--radius-md);
transition: background var(--transition-fast);
}
.creed-article summary::-webkit-details-marker {
display: none;
}
.creed-article summary::before {
content: "+";
display: inline-flex;
align-items: center;
justify-content: center;
width: 1.5rem;
height: 1.5rem;
background: var(--color-surface-1);
color: var(--color-accent);
border-radius: var(--radius-sm);
font-size: 1rem;
font-weight: var(--fw-button);
transition: transform var(--transition-fast), background var(--transition-fast);
flex-shrink: 0;
}
.creed-article[open] > summary::before {
content: "";
background: var(--color-accent);
color: var(--color-surface-2);
}
.creed-article summary:hover {
background: rgba(255, 255, 255, 0.03);
}
.creed-article summary:focus-visible {
outline: 2px solid var(--color-accent);
outline-offset: 2px;
}
.creed-article-body {
padding: 0 var(--space-md) var(--space-md);
color: var(--color-text);
line-height: var(--lh-base);
}
.creed-article-body > p {
margin-bottom: var(--space-sm);
}
.creed-article-body mark {
background: rgba(69, 227, 255, 0.25);
color: var(--color-heading);
padding: 0.1em 0.2em;
border-radius: 2px;
}
/* --- Scripture references as a plain text list -------------- */
.creed-references {
list-style: none;
padding: 0;
margin: var(--space-sm) 0 0;
display: flex;
flex-wrap: wrap;
gap: 0.4rem 0.6rem;
}
.creed-references li {
margin: 0;
}
.creed-references a {
display: inline-block;
padding: 0;
background: none;
color: var(--color-accent);
border: 0;
border-radius: 0;
font-size: 0.85rem;
text-decoration: underline;
text-underline-offset: 2px;
white-space: nowrap;
transition: color var(--transition-fast);
}
.creed-references a::before {
content: "";
}
.creed-references a:hover,
.creed-references a:focus-visible {
background: none;
color: var(--color-heading);
border: 0;
}
/* --- Closing section ---------------------------------------- */
.creed-summary {
background: var(--color-surface-2);
border-radius: var(--radius-md);
padding: var(--space-lg) var(--space-md);
border: 1px solid rgba(69, 227, 255, 0.2);
}
.creed-summary .creed-section-header {
border-bottom-color: var(--color-accent);
}
.creed-closing {
margin-top: var(--space-md);
font-size: 1.15rem;
font-style: italic;
color: var(--color-accent);
text-align: center;
}
/* --- Filter no-match state --------------------------------- */
.creed-section.is-hidden {
display: none;
}
/* --- Responsive: stack on mobile ---------------------------- */
@media (max-width: 960px) {
.creed-layout {
grid-template-columns: 1fr;
}
.creed-toc {
position: static;
max-height: none;
}
.creed-meta {
flex-direction: column;
gap: var(--space-xs);
}
}
@media (max-width: 600px) {
.creed-hero-inner {
padding: var(--space-lg) var(--space-sm) var(--space-md);
}
.creed-section-header {
gap: var(--space-xs);
padding: var(--space-xs);
}
.creed-section-num {
width: 2rem;
height: 2rem;
font-size: 1rem;
}
}
/* --- Print --------------------------------------------------- */
@media print {
.creed-toc,
.creed-toolbar,
.reading-progress,
#back-to-top,
#header,
#footer,
#message,
.creed-hero-actions {
display: none !important;
}
.creed-layout {
display: block;
padding: 0;
max-width: none;
}
.creed-content {
max-width: none;
}
.creed-hero {
background: none;
color: #000;
border-bottom: 2px solid #000;
}
.creed-hero-inner {
padding: 0 0 1rem;
text-align: center;
}
.creed-hero h1,
.creed-section h2,
.creed-article summary,
.creed-section-num,
.creed-eyebrow,
.creed-tagline,
.creed-meta,
.creed-closing {
color: #000 !important;
}
.creed-section-num {
background: #000 !important;
color: #fff !important;
}
.creed-article,
.creed-intro,
.creed-summary {
background: none !important;
border: 1px solid #ccc;
page-break-inside: avoid;
margin-bottom: 1rem;
}
.creed-article {
page-break-inside: avoid;
}
.creed-article-body {
display: block !important;
}
.creed-article[open] > summary::before,
.creed-article summary::before {
display: none;
}
.creed-references a {
background: none !important;
color: #000 !important;
border: 0;
}
.creed-references a::before {
content: "";
}
a {
color: #000;
text-decoration: underline;
}
.creed-section {
page-break-before: always;
}
}

File diff suppressed because it is too large Load Diff

View File

@ -1,90 +0,0 @@
<!--
██ ███████ ███████ ██ ██ ███████ ██ ███████ ██ ██ ██ ███ ██ ██████
██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ████ ██ ██
██ █████ ███████ ██ ██ ███████ ██ ███████ █████ ██ ██ ██ ██ ██ ███
██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██
█████ ███████ ███████ ██████ ███████ ██ ███████ ██ ██ ██ ██ ████ ██████
-->
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Get Involved | Shiloh Code</title>
<meta
name="description"
content="Get involved with Shiloh by joining one of our many initiatives to reform tech in Jesus' name."
/>
<meta name="author" content="Shiloh" />
<meta property="og:title" content="shiloh code" />
<meta property="og:type" content="website" />
<meta property="og:url" content="https://www.shilohcode.com" />
<meta
property="og:description"
content="Get involved with Shiloh by joining one of our many initiatives to reform tech in Jesus' name."
/>
<meta property="og:image" content="./assets/shiloh_logo_black.png" />
<link rel="icon" href="./assets/favicon.ico" />
<link rel="icon" href="./assets/" type="image/svg+xml" />
<link rel="apple-touch-icon" href="/apple-touch-icon.png" />
<link rel="stylesheet" href="css/styles.css?v=1.0" />
<script src="./js/jquery-3.7.1.min.js"></script>
<script src="./js/main.js"></script>
<script src="./js/navbar.js"></script>
</head>
<body>
<header id="header"></header>
<main>
<div class="flex-column bg-vid">
<div>
<h1>get involved</h1>
<div class="flex-row">
<a
class="button-1"
role="button"
href="https://odysee.com/@shilohcode:e/higherground:3"
>Watch</a
>
</div>
</div>
<video autoplay loop muted poster="/assets/get-involved.png">
<source
src="https://cdn.lasthourhosting.org/shiloh/get-involved.webm"
type="video/webm"
/>
</video>
</div>
<div class="flex-column bg-vid">
<div>
<h2>remnant.chat</h2>
<div class="flex-row">
<a class="button-1" role="button" href="https://remnant.chat/"
>join</a
>
</div>
</div>
</div>
<div class="flex-column bg-vid">
<div>
<h2>githaven.org</h2>
<div class="flex-row">
<a class="button-1" role="button" href="https://rad.githaven.org"
>join</a
>
</div>
</div>
</div>
</main>
<div id="message"></div>
<footer id="footer"></footer>
</body>
</html>

View File

@ -1,242 +0,0 @@
<!--
██ ███████ ███████ ██ ██ ███████ ██ ███████ ██ ██ ██ ███ ██ ██████
██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ████ ██ ██
██ █████ ███████ ██ ██ ███████ ██ ███████ █████ ██ ██ ██ ██ ██ ███
██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██
█████ ███████ ███████ ██████ ███████ ██ ███████ ██ ██ ██ ██ ████ ██████
-->
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Careers | Shiloh Code | Growth Hacker</title>
<meta name="description" content="Careers at Shiloh" />
<meta name="author" content="Shiloh" />
<meta property="og:title" content="shiloh code" />
<meta property="og:type" content="website" />
<meta property="og:url" content="https://www.shilohcode.com" />
<meta property="og:description" content="Careers at Shiloh" />
<meta property="og:image" content="./assets/shiloh_logo_black.png" />
<link rel="icon" href="./assets/favicon.ico" />
<link rel="icon" href="./assets/" type="image/svg+xml" />
<link rel="apple-touch-icon" href="/apple-touch-icon.png" />
<link rel="stylesheet" href="css/styles.css?v=1.0" />
<script src="./js/jquery-3.7.1.min.js"></script>
<script src="./js/main.js"></script>
<script src="./js/navbar.js"></script>
</head>
<body>
<header id="header"></header>
<main>
<div class="flex-column">
<h1>growth hacker role</h1>
<h2>warning:</h2>
<p>
we're on a mission to change the direction of the tech industry, and
we need your expertise to fuel our growth.
</p>
<h3>about us:</h3>
<p>
at shiloh, we're a remote team of off-grid passionate hackers,
software devs, open-source enthusiasts, privacy activists, and
innovators who are driven by a shared mission to reform technology in
Jesus' name. we're not just building tech - we're building an
alternative to the beast system. a neo to the matrix. a john connor to
cyberdyne. and we're looking for a growth hacker to join our dissident
team.
</p>
<h3>mission:</h3>
<p>tech reform in Jesus' name.</p>
<h3>vision:</h3>
<p>
a world where technology reflects the values and principles of
christ's coming kingdom.
</p>
<h3>our principles (soul):</h3>
<ul>
<li>serve our lord with integrity.</li>
<li>
own our tech (open-source, self-hosting, and decentralization.)
</li>
<li>unveil with light</li>
<li>leave a legacy.</li>
</ul>
<h3>our services:</h3>
<ul>
<li>managed it</li>
<li>server hosting</li>
<li>staff-augmentation</li>
<li>contract-to-hire</li>
<li>backup and disaster recovery</li>
<li>email solutions</li>
<li>cloud solutions</li>
<li>web development</li>
<li>full-stack software development</li>
<li>onsite computer support</li>
<li>business continuity plan</li>
<li>remote it</li>
<li>voip phones</li>
<li>network cabling and installations</li>
<li>security cameras</li>
<li>
migration to open-source, decentralized, fully-owned solutions.
</li>
</ul>
<h3>our websites:</h3>
<ul>
<li><a href="https://shilohcode.com">shilohcode.com</a></li>
<li><a href="https://remnant.chat">remnant.chat</a></li>
<li><a href="https://githaven.org">githaven.org</a></li>
<li><a href="https://lasthourhosting.org">lasthourhosting.org</a></li>
<li>
<a href="https://status.shilohcode.com">status.shilohcode.com</a>
</li>
</ul>
<h3>job summary:</h3>
<p>
we're looking for a highly skilled and innovative growth hacker to
join our team at shiloh. you should have demonstrated experience in
marketing, sales, and revenue generation. you are passionate about
privacy, open-source. as a growth hacker, you will be responsible for
developing and executing growth strategies that drive user
acquisition, retention, and revenue growth for our company. you will
be a pioneer for later marketing, sales, and product teams to identify
and capitalize on growth opportunities, and to develop and implement
data-driven marketing and sales strategies. we have a strong network
of relationships for you to engage with, we need a machine built to
drive the pipeline.
</p>
<h3>responsibilities:</h3>
<ul>
<li>
develop and execute growth strategies across multiple channels,
including alternative social media, content marketing, email
marketing, paid advertising, and seo
</li>
<li>
analyze data and metrics to inform growth decisions, and to measure
the effectiveness of growth strategies
</li>
<li>
create and distribute content to drive lead generation and
conversion, including blog posts, social media posts, email
campaigns, and other marketing materials
</li>
<li>
manage and optimize inbound sales and marketing funnels to maximize
conversion rates and revenue growth
</li>
<li>
identify and pursue new business opportunities, including
partnerships, collaborations, and revenue growth initiatives
</li>
<li>
collaborate with cross-functional teams, including marketing, sales,
and product, to drive growth and alignment
</li>
<li>
develop and manage budgets and resources to support growth
initiatives
</li>
<li>
stay up-to-date with the latest growth hacking trends, tools, and
technologies, and apply this knowledge to drive growth and
innovation at shiloh.
</li>
</ul>
<h3>your tools:</h3>
<ul>
<li>alternative social media marketing and advertising</li>
<li>content marketing and creation</li>
<li>email marketing and automation</li>
<li>alternative paid advertising and seo</li>
<li>a/b testing and experimentation</li>
<li>data analysis and visualization</li>
<li>marketing automation platforms</li>
<li>content management systems</li>
<li>paid advertising platforms</li>
</ul>
<h3>have to have:</h3>
<ul>
<li>demonstrated previous growth hacking and revenue generation</li>
<li>
a demonstrated understanding of technology, privacy, open-source
</li>
<li>
include the keyword "unveil" in your email headline so we know you
actually read this...
</li>
<li>
you must sign our statement of faith:
<a href="https://shilohcode.com/creed">shilohcode.com/creed</a>
</li>
</ul>
<h3>nice to have:</h3>
<ul>
<li>experience with marketing automation platforms.</li>
<li>experience with data analysis and visualization tools.</li>
<li>experience with content management systems</li>
<li>experience with paid advertising platforms</li>
<li>experience with linux and open-source tools</li>
<li>active user of rumble, odysee, gab</li>
<li>
allergic to microsoft, google, facebook, youtube, zoom, and other
big tech bros.
</li>
</ul>
<h3>your perks:</h3>
<ul>
<li>
competitive hourly pay based on national average for your role
</li>
<li>christian conservative, privacy first work environment</li>
<li>no dei, esg, tolerance training</li>
<li>
opportunity to work with a world-class passionate and innovative
team
</li>
<li>remote work</li>
<li>growth opportunities and career stepping stones</li>
<li>
chance to severely disrupt satan's plans and honor the lord with
your talent
</li>
<li>access to the latest open-source tools and technologies</li>
<li>collaborative and dynamic work environment</li>
<li>recognition and rewards for outstanding performance</li>
</ul>
<h3>your challenge, should you choose to accept:</h3>
<p>
if you're a growth hacker with a passion for innovation and a drive to
do something big, we want to hear from you. apply now to join our team
and help us revolutionize the tech industry. email us to apply at:
careers(at)shilohcode(dot)com
</p>
</div>
</main>
<div id="message"></div>
<footer id="footer"></footer>
</body>
</html>

View File

@ -15,151 +15,409 @@
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>shiloh code | tech reform in Jesus' name</title>
<title>Shiloh | Christian tech for peace of mind</title>
<meta
name="description"
content="Tech reform in Jesus' name. Don't get marked by big tech. Shiloh offers services to resist the beast system with everything your home or business does. Are you ready to stand up against the digital deceptions of our time?"
content="Shiloh means peace. We're a small Christian team in Idaho building tech, community, and culture that help you live with less stress. Hosting, IT, and software, plus the Echo gathering and the Touch Grass Show."
/>
<meta name="author" content="Shiloh" />
<meta name="keywords" content="Christian tech, privacy-first hosting, self-hosted infrastructure, off-grid community, simple living, Idaho, open-source" />
<meta name="theme-color" content="#3a5952" />
<meta name="geo.region" content="US-ID" />
<meta name="geo.placename" content="Bonners Ferry" />
<meta name="geo.position" content="48.6913;-116.3163" />
<meta name="ICBM" content="48.6913, -116.3163" />
<link rel="canonical" href="https://www.shilohcode.com/" />
<meta property="og:title" content="shiloh code" />
<meta property="og:title" content="Shiloh | Christian tech for peace of mind" />
<meta property="og:type" content="website" />
<meta property="og:url" content="https://www.shilohcode.com" />
<meta property="og:url" content="https://www.shilohcode.com/" />
<meta
property="og:description"
content="Tech reform in Jesus' name. Don't get marked by big tech. Shiloh offers services to resist the beast system with everything your home or business does. Are you ready to stand up against the digital deceptions of our time?"
content="Shiloh means peace. A small Christian team building tech, community, and culture that help you live with less stress. Hosting, IT, software, plus the Echo gathering and the Touch Grass Show."
/>
<meta property="og:image" content="./assets/shiloh_logo_black.png" />
<meta property="og:image" content="./assets/shiloh-logo-white-1.png" />
<meta property="og:site_name" content="Shiloh" />
<meta property="og:locale" content="en_US" />
<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:title" content="Shiloh | Christian tech for peace of mind" />
<meta name="twitter:description" content="A small Christian team in Idaho. Tech, community, and culture for less stress and more peace." />
<link rel="icon" href="./assets/favicon.ico" />
<link rel="icon" href="./assets/" type="image/svg+xml" />
<link rel="apple-touch-icon" href="/apple-touch-icon.png" />
<link rel="icon" href="./assets/favicon.ico" sizes="any" />
<link rel="icon" href="./assets/favicon.jpg" type="image/jpeg" />
<link rel="apple-touch-icon" href="./assets/favicon.jpg" />
<link rel="stylesheet" href="css/styles.css?v=1.0" />
<script src="./js/jquery-3.7.1.min.js"></script>
<script src="./js/main.js"></script>
<script src="./js/navbar.js"></script>
<link rel="preconnect" href="https://lasthourcloud.b-cdn.net" crossorigin />
<link rel="preconnect" href="https://cdn.lasthourhosting.org" crossorigin />
<link rel="dns-prefetch" href="https://lasthourcloud.b-cdn.net" />
<link rel="dns-prefetch" href="https://cdn.lasthourhosting.org" />
<link rel="stylesheet" href="css/styles.css?v=1.4" />
<script src="./js/main.js" defer></script>
<script src="./js/navbar.js" defer></script>
<script src="./js/back-to-top.js" defer></script>
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Organization",
"@id": "https://www.shilohcode.com/#organization",
"name": "Shiloh",
"alternateName": "Shiloh LLC",
"url": "https://www.shilohcode.com",
"logo": "https://www.shilohcode.com/assets/shiloh-logo-white-1.png",
"image": "https://www.shilohcode.com/assets/shiloh-logo-white-1.png",
"description": "Shiloh means peace. A small Christian team in Bonners Ferry, Idaho building tech, community, and culture for less stress and more peace. Includes Last Hour Hosting, the Echo gathering, and the Touch Grass Show.",
"telephone": "+1-208-555-0100",
"email": "support@shilohcode.com",
"priceRange": "$$",
"address": {
"@type": "PostalAddress",
"streetAddress": "6653 Main Street #401",
"addressLocality": "Bonners Ferry",
"addressRegion": "ID",
"postalCode": "83805",
"addressCountry": "US"
},
"geo": {
"@type": "GeoCoordinates",
"latitude": 48.6913,
"longitude": -116.3163
},
"openingHoursSpecification": {
"@type": "OpeningHoursSpecification",
"dayOfWeek": ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday"],
"opens": "09:00",
"closes": "17:00"
},
"areaServed": [
{ "@type": "Country", "name": "United States" },
{ "@type": "AdministrativeArea", "name": "Idaho" },
{ "@type": "City", "name": "Bonners Ferry" },
{ "@type": "City", "name": "Coeur d'Alene" },
{ "@type": "City", "name": "Spokane" }
],
"contactPoint": {
"@type": "ContactPoint",
"contactType": "customer support",
"url": "https://www.shilohcode.com/contact",
"availableLanguage": "English"
},
"sameAs": [
"https://www.youtube.com/@shiloh-code"
],
"subOrganization": [
{ "@type": "Organization", "name": "Last Hour Hosting", "url": "https://lasthourhosting.org" },
{ "@type": "Organization", "name": "Shiloh Echo", "url": "https://shilohecho.org" },
{ "@type": "Organization", "name": "Touch Grass Show", "url": "https://www.youtube.com/@shiloh-code" }
],
"hasOfferCatalog": {
"@type": "OfferCatalog",
"name": "Shiloh Services",
"itemListElement": [
{ "@type": "OfferCatalog", "name": "Managed Web Hosting", "itemListElement": [
{ "@type": "Offer", "name": "Managed Web Hosting", "price": "29", "priceCurrency": "USD", "url": "https://www.shilohcode.com/solutions#webhosting" }
]},
{ "@type": "OfferCatalog", "name": "Managed IT", "itemListElement": [
{ "@type": "Offer", "name": "Managed IT Services", "url": "https://www.shilohcode.com/solutions#it" }
]},
{ "@type": "OfferCatalog", "name": "Custom Software", "itemListElement": [
{ "@type": "Offer", "name": "Full-Stack Software Development", "url": "https://www.shilohcode.com/solutions#software" }
]}
]
}
}
</script>
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "WebSite",
"@id": "https://www.shilohcode.com/#website",
"url": "https://www.shilohcode.com",
"name": "Shiloh",
"publisher": { "@id": "https://www.shilohcode.com/#organization" },
"inLanguage": "en-US"
}
</script>
</head>
<body>
<header id="header"></header>
<main>
<div class="flex-column bg-vid">
<div>
<h1>tech reform in Jesus' name</h1>
<div class="flex-row">
<a
class="button-1"
role="button"
target="_blank"
href="https://odysee.com/@shilohcode:e/standwithus:0"
>Watch</a
>
<a class="button-2" role="button" href="/about">Learn More</a>
<section class="flex-column bg-vid" aria-labelledby="hero-heading">
<div class="cursor-glow" aria-hidden="true"></div>
<div class="flex">
<h1 id="hero-heading">shiloh means peace</h1>
<p class="hero-thesis">
We're a small team building <strong>tech, community, and culture</strong>
that help you live with less stress and more peace. Hosting and IT for
organizations that need it. A gathering for the off-grid and
simple-living crowd. A show about putting the phone down.
</p>
<div class="hero-projects-row" aria-label="Our projects">
<a class="hero-project-chip" href="https://lasthourhosting.org">
<span class="dot" aria-hidden="true"></span>Last Hour Hosting
</a>
<a class="hero-project-chip" href="https://shilohecho.org">
<span class="dot" aria-hidden="true"></span>Echo
</a>
<a class="hero-project-chip" href="https://www.youtube.com/@shiloh-code">
<span class="dot" aria-hidden="true"></span>Touch Grass Show
</a>
</div>
</div>
<video autoplay loop muted poster="/assets/main.png">
<source
src="https://cdn.lasthourhosting.org/shiloh/main.webm"
type="video/webm"
/>
</video>
</div>
<div class="flex-column bg-vid">
<div>
<h1>services</h1>
<div class="flex-row">
<a class="button-1" role="button" href="/services">Learn More</a>
<a class="button-1" role="button" href="#projects">see our projects</a>
<a class="button-2" role="button" href="#work">get help with your tech</a>
</div>
</div>
<video autoplay loop muted poster="/assets/services.png">
<source
src="https://cdn.lasthourhosting.org/shiloh/services.webm"
type="video/webm"
/>
</video>
</div>
<div class="flex-column bg-vid">
<div>
<h2>the unveil series</h2>
<div class="flex-row">
<a
class="button-1"
role="button"
target="_blank"
href="https://odysee.com/@shilohcode:e/welcome-to-the-unveil:8"
>Watch</a
>
</div>
</div>
<video autoplay loop muted poster="/assets/about.png">
<source
src="https://cdn.lasthourhosting.org/shiloh/the-unveil-short.webm"
type="video/webm"
/>
</video>
</div>
<div class="flex-column bg-vid">
<div>
<h2>about</h2>
<div class="flex-row">
<a
class="button-1"
role="button"
target="_blank"
href="https://odysee.com/@shilohcode:e/about:11"
>Watch</a
>
<a class="button-2" role="button" href="/about">Learn More</a>
</div>
</div>
<video autoplay loop muted poster="/assets/about.png">
<source
src="https://cdn.lasthourhosting.org/shiloh/about.webm"
type="video/webm"
/>
</video>
</div>
<div class="flex-column bg-vid">
<div>
<h2>get involved</h2>
<div class="flex-row">
<a
class="button-1"
role="button"
target="_blank"
href="https://odysee.com/@shilohcode:e/higherground:3"
>Watch</a
>
<a class="button-2" role="button" href="/get-involved"
>Learn More</a
>
</div>
</div>
<video autoplay loop muted poster="/assets/get-involved.png">
<source
src="https://cdn.lasthourhosting.org/shiloh/get-involved.webm"
type="video/webm"
/>
</video>
</div>
<div class="flex-column bg-vid-main">
<div>
<h1>contact us</h1>
<div class="flex-row">
<div class="flex-container">
<a
class="button-1"
role="button"
href="mailto:hello-izmqxby3qjkffhh6w7a9s2j3qwj7zu93iji7gxjcn(AT)shilohcode(DOT)com"
>email</a
>
</div></section>
<section class="reveal belief-section" aria-labelledby="belief-heading">
<div class="belief">
<h2 id="belief-heading">what we believe</h2>
<p class="lede">
That <em>peace</em> is a real thing, not a vibe. That the best work
comes from a rested soul, not a fried one. That technology should
serve your life, not run it. That the Christian life was never meant
to be lived alone, and neither was a business.
</p>
<div class="belief-pillars" aria-label="What we believe">
<div class="belief-pillar">
<h3>Stewardship, not hustle</h3>
<p>We build things to last, for owners who care, and we work at a pace that lets our team actually be present with their families and their God.</p>
</div>
<div class="belief-pillar">
<h3>Open by conviction</h3>
<p>Open source, open standards, open data. We don't believe in lock-in, and we don't believe in tech that hides what it's doing with your information.</p>
</div>
<div class="belief-pillar">
<h3>Truth at the root</h3>
<p>Every member of our team subscribes to the same <a href="/creed">statement of faith</a>. That's not a marketing line. It's how we treat clients, and each other.</p>
</div>
</div>
<div class="verse-pull" aria-label="Scripture">
<blockquote>
whatever you do, work at it with all your heart, as working for the Lord
</blockquote>
<cite>colossians 3:23</cite>
</div>
</div>
</div>
</section>
<section id="projects" class="reveal flex-column bg-vid" aria-labelledby="projects-heading">
<div class="flex">
<h2 id="projects-heading">our projects</h2>
<p>three projects under the Shiloh umbrella, with more on the way</p>
<div class="projects" aria-label="Shiloh projects">
<a class="project-card" href="https://lasthourhosting.org" target="_blank" rel="noopener noreferrer" aria-label="Last Hour Hosting">
<span class="project-tag">alternative tech</span>
<img class="project-icon logo-hosting" src="./assets/last_hour_hosting_logo_blue.png" alt="Last Hour Hosting logo" />
<h3>Last Hour Hosting</h3>
<p class="project-blurb">
Self-hosted, open-source web hosting and cloud services for people who'd rather own their stack than rent it. Privacy-first, US-based, run by people who answer the phone.
</p>
<span class="project-cta">visit lasthourhosting.org</span>
</a>
<a class="project-card" href="https://shilohecho.org" target="_blank" rel="noopener noreferrer" aria-label="Shiloh Echo">
<span class="project-tag">community &amp; principles</span>
<img class="project-icon logo-echo" src="./assets/echologo.png" alt="Shiloh Echo logo" />
<h3>Shiloh Echo</h3>
<p class="project-blurb">
The annual off-grid, homesteading, simple living gathering in the Idaho panhandle. A weekend to step away from the noise, hear from wise teachers, and remember timeless principles.
</p>
<span class="project-cta">visit shilohecho.org</span>
</a>
<a class="project-card" href="https://www.youtube.com/@shiloh-code" target="_blank" rel="noopener noreferrer" aria-label="Touch Grass Show">
<span class="project-tag">the show</span>
<span class="project-icon" aria-hidden="true">&#127811;</span>
<h3>Touch Grass Show</h3>
<p class="project-blurb">
A show for people who feel the pull to disconnect, get outside, and live more like the people God made them to be. Episodes on YouTube. The grass is right there.
</p>
<span class="project-cta">watch on youtube</span>
</a>
</div>
</div></section>
<section id="work" class="reveal seo-intro" aria-label="Last Hour Hosting services">
<h2>tech that respects you</h2>
<p>
Last Hour Hosting is the project under the Shiloh umbrella that
handles all things tech. We provide
<strong>managed web hosting, IT support, and custom software
development</strong> to businesses, ministries, and creators across
the United States and beyond. Headquartered in Bonners Ferry, Idaho,
we help organizations
<strong>take ownership of their digital infrastructure</strong>, moving
them off of big-tech platforms and onto self-hosted, open-source
systems they fully control.
</p>
<p>
Whether you need a reliable <strong>managed hosting plan starting at $29/month</strong>,
ongoing <strong>remote or on-site managed IT services</strong>, or a
<strong>custom full-stack application</strong> built on technologies you actually own,
our team handles the technical work so you can focus on your mission.
</p>
<div class="stat-grid" aria-label="Track record">
<div class="stat-card">
<span class="num" data-target="97" data-suffix="+">0</span>
<span class="label">organizations served</span>
</div>
<div class="stat-card">
<span class="num" data-target="85" data-suffix="+">0</span>
<span class="label">internal teams trained</span>
</div>
<div class="stat-card">
<span class="num" data-target="39" data-suffix="%">0</span>
<span class="label">avg. monthly cost cut</span>
</div>
<div class="stat-card">
<span class="num" data-target="99.9" data-suffix="%" data-decimals="1">0</span>
<span class="label">uptime, monitored 24/7</span>
</div>
</div>
<div class="compare" aria-label="Big tech vs. Last Hour Hosting">
<div class="compare-col bad">
<h3>Big tech hosting</h3>
<ul>
<li>Your data lives on someone else's terms</li>
<li>Tier-1 ticket queues and chatbots</li>
<li>Proprietary formats. Moving is painful</li>
<li>Price hikes at renewal, every renewal</li>
</ul>
</div>
<div class="compare-col good">
<h3>Last Hour Hosting</h3>
<ul>
<li>Self-hosted, open-source, fully owned by you</li>
<li>100% U.S.-based team, no overseas handoffs</li>
<li>Real humans in the U.S. Pacific time zone</li>
<li>Open standards. Leave whenever you want</li>
<li>Flat monthly pricing, no surprises</li>
</ul>
</div>
</div>
<h3>Why teams pick us</h3>
<ul>
<li><strong>Privacy-first:</strong> we build on self-hosted, open-source infrastructure. Your data stays yours.</li>
<li><strong>100% U.S.-based team:</strong> every engineer, every support ticket, every call. No outsourced call centers, no overseas handoffs.</li>
<li><strong>Christian-owned:</strong> a team that operates on biblical principles and treats your work as a trust.</li>
<li><strong>Real human support:</strong> talk to a person, not a ticket queue. Based in the U.S. Pacific time zone.</li>
<li><strong>No vendor lock-in:</strong> open standards, open data, and open source, so you can leave whenever you want (and we hope you don't have to).</li>
</ul>
<div class="flex-row">
<a class="button-1" role="button" href="/solutions">explore services</a>
<a
class="button-2"
role="button"
target="_blank"
rel="noopener noreferrer"
href="https://cloud.shilohcode.com/apps/calendar/appointment/en6GjxFM9K25"
>schedule a call</a
>
</div>
</section>
<section class="reveal flex-column bg-vid" aria-labelledby="echo-heading">
<div class="flex">
<img
src="./assets/echologo.png"
class="logo-echo"
alt="Shiloh Echo Logo"
/>
<h2 id="echo-heading">attend the echo gathering</h2>
<p>the annual off-grid, homesteading, simple living conference in the Idaho panhandle</p>
<div class="flex-row">
<a class="button-1" role="button" target="_blank" rel="noopener noreferrer" href="https://shilohecho.org"
>get tickets</a
>
</div></div>
</section>
<section class="reveal flex-column bg-vid" aria-labelledby="show-heading">
<div class="flex">
<h2 id="show-heading">touch grass show</h2>
<p>encouraging people to get outside, disconnect, and live like the people God made them to be</p>
<div class="flex-row">
<a
class="button-1"
role="button"
target="_blank"
rel="noopener noreferrer"
href="https://www.youtube.com/@shiloh-code"
>watch on youtube</a
>
</div></div>
</section>
<section class="reveal flex-column bg-vid" aria-labelledby="involved-heading">
<div class="flex">
<h2 id="involved-heading">get involved</h2>
<p>join the community, watch the show, or contribute your skills</p>
<div class="flex-row">
<a
class="button-1"
role="button"
target="_blank"
rel="noopener noreferrer"
href="https://www.youtube.com/@shiloh-code"
>watch</a
>
<a class="button-2" role="button" target="_blank" rel="noopener noreferrer" href="https://matrix.to/#/!GuDYWQtHSPmYRubiRH%3As.shilohcode.com?via=s.shilohcode.com&via=matrix.org&via=matrix.mailefant.de"
>chat</a
>
<a class="button-1" role="button" target="_blank" rel="noopener noreferrer" href="https://githaven.org"
>contribute</a
>
</div>
</div></section>
<section class="reveal flex-column bg-vid" aria-labelledby="contact-heading">
<div class="flex">
<h2 id="contact-heading">let's talk</h2>
<p>
Whether it's hosting, IT, software, Echo, the show, a partnership, or just a question about what we're building, we're a 100% U.S.-based team headquartered in Bonners Ferry, Idaho, and we'd love to hear from you. Pick the option that fits.
</p>
<div class="flex-row">
<a
class="button-1"
role="button"
href="mailto:support@shilohcode.com"
>email us</a
>
<a
class="button-1"
role="button"
target="_blank"
rel="noopener noreferrer"
href="https://cloud.shilohcode.com/apps/calendar/appointment/en6GjxFM9K25"
>schedule a call</a
>
<a
class="button-2"
role="button"
target="_blank"
rel="noopener noreferrer"
href="https://matrix.to/#/!GuDYWQtHSPmYRubiRH%3As.shilohcode.com?via=s.shilohcode.com&via=matrix.org&via=matrix.mailefant.de"
>join the chat</a
>
</div>
</div>
</section>
</main>
<button id="back-to-top">^ TOP</button>
<div id="message"></div>
<footer id="footer"></footer>
</body>

16
js/back-to-top.js Normal file
View File

@ -0,0 +1,16 @@
document.addEventListener("DOMContentLoaded", function () {
var btn = document.getElementById("back-to-top");
if (!btn) return;
window.addEventListener("scroll", function () {
if (window.scrollY > 100) {
btn.classList.add("show");
} else {
btn.classList.remove("show");
}
});
btn.addEventListener("click", function () {
window.scrollTo({ top: 0, behavior: "smooth" });
});
});

234
js/creed.js Normal file
View File

@ -0,0 +1,234 @@
(function () {
"use strict";
var sections = Array.prototype.slice.call(
document.querySelectorAll(".creed-section")
);
var articles = Array.prototype.slice.call(
document.querySelectorAll(".creed-article")
);
var tocLinks = Array.prototype.slice.call(
document.querySelectorAll(".creed-toc-list a")
);
var progressBar = document.getElementById("reading-progress-bar");
var sectionCounter = document.getElementById("creed-section-counter");
var toolbar = document.getElementById("creed-toolbar");
var searchInput = document.getElementById("creed-search");
var status = document.getElementById("creed-toolbar-status");
var printBtn = document.getElementById("creed-print");
var expandBtn = document.getElementById("creed-expand");
/* --- Show the toolbar only after the user scrolls past the hero --- */
if (toolbar) {
var hero = document.querySelector(".creed-hero");
var heroObserver = new IntersectionObserver(
function (entries) {
entries.forEach(function (entry) {
toolbar.hidden = entry.isIntersecting;
});
},
{ rootMargin: "-80px 0px 0px 0px" }
);
if (hero) heroObserver.observe(hero);
}
/* --- Reading progress bar --- */
function updateProgress() {
if (!progressBar) return;
var doc = document.documentElement;
var max = doc.scrollHeight - doc.clientHeight;
var pct = max > 0 ? (window.scrollY / max) * 100 : 0;
progressBar.style.width = Math.min(100, Math.max(0, pct)) + "%";
}
/* --- Scrollspy: highlight current section in TOC --- */
function setActiveSection(id) {
tocLinks.forEach(function (a) {
if (a.getAttribute("data-section") === id) {
a.classList.add("is-active");
} else {
a.classList.remove("is-active");
}
});
if (sectionCounter) {
var match = sections.findIndex(function (s) {
return s.id === id;
});
if (match >= 0) {
sectionCounter.textContent =
"Section " + (match + 1) + " of " + sections.length;
}
}
}
if (sections.length && "IntersectionObserver" in window) {
var spy = new IntersectionObserver(
function (entries) {
entries
.filter(function (e) {
return e.isIntersecting;
})
.sort(function (a, b) {
return a.boundingClientRect.top - b.boundingClientRect.top;
})
.forEach(function (entry) {
setActiveSection(entry.target.id);
});
},
{ rootMargin: "-30% 0px -60% 0px", threshold: 0 }
);
sections.forEach(function (s) {
spy.observe(s);
});
}
/* --- Keyword filter: highlight matches, hide empty sections --- */
function clearMarks(root) {
var marks = root.querySelectorAll("mark");
marks.forEach(function (m) {
var parent = m.parentNode;
parent.replaceChild(document.createTextNode(m.textContent), m);
parent.normalize();
});
}
function highlight(root, query) {
if (!query) return;
var walker = document.createTreeWalker(root, NodeFilter.SHOW_TEXT, null);
var nodes = [];
var node;
while ((node = walker.nextNode())) {
if (node.parentNode.closest("a, script, style")) continue;
nodes.push(node);
}
var re = new RegExp(
"(" + query.replace(/[.*+?^${}()|[\]\\]/g, "\\$&") + ")",
"gi"
);
nodes.forEach(function (n) {
if (!re.test(n.nodeValue)) return;
re.lastIndex = 0;
var frag = document.createDocumentFragment();
var parts = n.nodeValue.split(re);
parts.forEach(function (p) {
if (re.test(p)) {
var m = document.createElement("mark");
m.textContent = p;
frag.appendChild(m);
} else {
frag.appendChild(document.createTextNode(p));
}
});
n.parentNode.replaceChild(frag, n);
});
}
function applyFilter(q) {
q = (q || "").trim().toLowerCase();
var visibleArticles = 0;
var visibleSections = 0;
sections.forEach(function (s) {
clearMarks(s);
});
if (!q) {
articles.forEach(function (a) {
a.classList.remove("is-hidden");
});
sections.forEach(function (s) {
s.classList.remove("is-hidden");
});
if (status) status.textContent = "";
return;
}
highlight(document.getElementById("creed-content"), q);
sections.forEach(function (s) {
var sectionHasMatch = false;
var arts = s.querySelectorAll(".creed-article");
arts.forEach(function (a) {
var text = a.textContent.toLowerCase();
var hit = text.indexOf(q) !== -1;
a.classList.toggle("is-hidden", !hit);
if (hit) {
sectionHasMatch = true;
visibleArticles++;
a.open = true;
}
});
s.classList.toggle("is-hidden", !sectionHasMatch);
if (sectionHasMatch) visibleSections++;
});
if (status) {
status.textContent =
visibleArticles +
" article" +
(visibleArticles === 1 ? "" : "s") +
" in " +
visibleSections +
" section" +
(visibleSections === 1 ? "" : "s") +
" match \u201C" +
q +
"\u201D";
}
}
if (searchInput) {
var debounce;
searchInput.addEventListener("input", function () {
clearTimeout(debounce);
debounce = setTimeout(function () {
applyFilter(searchInput.value);
}, 120);
});
}
/* --- Expand / collapse all --- */
if (expandBtn) {
var allOpen = true;
expandBtn.addEventListener("click", function () {
allOpen = !allOpen;
articles.forEach(function (a) {
a.open = allOpen;
});
expandBtn.textContent = allOpen ? "Collapse all" : "Expand all";
});
}
/* --- Print --- */
if (printBtn) {
printBtn.addEventListener("click", function () {
window.print();
});
}
/* --- Keyboard: "/" focuses search --- */
document.addEventListener("keydown", function (e) {
if (
e.key === "/" &&
searchInput &&
document.activeElement !== searchInput &&
!e.metaKey &&
!e.ctrlKey &&
!e.altKey
) {
e.preventDefault();
searchInput.focus();
searchInput.select();
}
if (e.key === "Escape" && searchInput === document.activeElement) {
searchInput.value = "";
applyFilter("");
searchInput.blur();
}
});
/* --- Wire it up --- */
window.addEventListener("scroll", updateProgress, { passive: true });
window.addEventListener("resize", updateProgress, { passive: true });
updateProgress();
})();

5406
js/jquery-3.7.1.min.js vendored

File diff suppressed because it is too large Load Diff

View File

@ -1,9 +1,517 @@
$(function () {
$("#header").load("./components/header.html");
});
$(function () {
$("#footer").load("./components/footer.html");
});
$(function () {
$("#message").load("./components/message.html");
});
/* =================================================================
SHILOH WEBSITE MAIN JS
-----------------------------------------------------------------
Powers:
- Component loader (header / footer / message)
- Terminal-style tagline rotator
- Cursor glow on the hero
- Scroll-reveal on .reveal sections
- Stack-picker mini-game
- Animated stat counters
- "What we're not" comparison card (built in HTML)
- Hosting plan flip cards (built in HTML)
- Tech-stack constellation
- Konami code + confetti
- Offline easter egg
- Touch-grass streak badge
- Theme toggle (day / night / sabbath)
- Logo hover rotating tagline
================================================================= */
(function () {
"use strict";
/* ----------------------------------------------------------------
COMPONENT LOADER
---------------------------------------------------------------- */
function loadComponent(id, url) {
var el = document.getElementById(id);
if (!el) return;
fetch(url)
.then(function (r) { return r.text(); })
.then(function (html) { el.innerHTML = html; })
.catch(function (err) { console.error("Failed to load " + url, err); });
}
/* ----------------------------------------------------------------
LOGO ROTATING TAGLINE
Picks a random tagline per session (changes on each refresh).
---------------------------------------------------------------- */
var LOGO_TAGLINES = [
"shiloh means peace",
"a 100% U.S.-based team",
"owner-operated, no VCs",
"self-hosted by design",
"built in Bonners Ferry, ID",
"tech, community, and culture",
"Colossians 3:23"
];
function pickLogoTagline() {
try {
var stored = sessionStorage.getItem("shiloh-logo-tagline");
if (stored) return stored;
} catch (e) { /* sessionStorage blocked */ }
var pick = LOGO_TAGLINES[Math.floor(Math.random() * LOGO_TAGLINES.length)];
try { sessionStorage.setItem("shiloh-logo-tagline", pick); } catch (e) {}
return pick;
}
function mountLogoTagline() {
var logo = document.querySelector(".logo");
if (!logo || logo.querySelector(".logo-tagline")) return;
var span = document.createElement("span");
span.className = "logo-tagline";
span.textContent = pickLogoTagline();
logo.appendChild(span);
}
/* ----------------------------------------------------------------
CURSOR GLOW
Tracks pointer on .cursor-glow containers.
---------------------------------------------------------------- */
function mountCursorGlow() {
var els = document.querySelectorAll(".cursor-glow");
if (!els.length) return;
els.forEach(function (el) {
el.addEventListener("pointermove", function (e) {
var r = el.getBoundingClientRect();
var x = ((e.clientX - r.left) / r.width) * 100;
var y = ((e.clientY - r.top) / r.height) * 100;
el.style.setProperty("--mx", x + "%");
el.style.setProperty("--my", y + "%");
});
el.addEventListener("pointerleave", function () {
el.style.setProperty("--mx", "50%");
el.style.setProperty("--my", "50%");
});
});
}
/* ----------------------------------------------------------------
SCROLL REVEAL
Adds .is-visible to .reveal elements when they enter the viewport.
---------------------------------------------------------------- */
function mountReveal() {
var els = document.querySelectorAll(".reveal");
if (!els.length || !("IntersectionObserver" in window)) {
els.forEach(function (el) { el.classList.add("is-visible"); });
return;
}
var io = new IntersectionObserver(function (entries) {
entries.forEach(function (entry) {
if (entry.isIntersecting) {
entry.target.classList.add("is-visible");
io.unobserve(entry.target);
}
});
}, { threshold: 0.12, rootMargin: "0px 0px -40px 0px" });
els.forEach(function (el) { io.observe(el); });
}
/* ----------------------------------------------------------------
STACK PICKER MINI-GAME
Three cards. Pick one or all three. After picking, a recommendation
panel shows the suggested next step.
---------------------------------------------------------------- */
function mountStackPicker() {
var root = document.getElementById("stack-picker");
if (!root) return;
var cards = root.querySelectorAll(".stack-card");
var result = document.getElementById("stack-result");
var picked = new Set();
function updateResult() {
if (!result) return;
if (picked.size === 0) {
result.classList.remove("visible");
return;
}
var order = ["hosting", "it", "software"];
var labels = { hosting: "Managed Hosting", it: "Managed IT", software: "Custom Software" };
var picked_labels = order.filter(function (k) { return picked.has(k); })
.map(function (k) { return labels[k]; });
var line = picked_labels.join(" + ");
var cta;
if (picked.size === 1) {
cta = "Looks like you need " + line + ". We can scope that in 15 minutes.";
} else if (picked.size === 2) {
cta = "Bundling " + line + " typically saves 10-15% on monthly cost.";
} else {
cta = "Full-stack. Let's draw you a roadmap.";
}
result.innerHTML =
"<strong>Your stack:</strong> " + line + ".<br/>" +
cta + '<br/><a class="button-1" role="button" target="_blank" rel="noopener noreferrer" ' +
'href="https://cloud.shilohcode.com/apps/calendar/appointment/en6GjxFM9K25">Schedule a Call</a>';
result.classList.add("visible");
}
cards.forEach(function (card) {
card.addEventListener("click", function () {
var key = card.getAttribute("data-stack");
if (picked.has(key)) {
picked.delete(key);
card.classList.remove("selected");
} else {
picked.add(key);
card.classList.add("selected");
}
updateResult();
});
});
}
/* ----------------------------------------------------------------
ANIMATED STAT COUNTERS
Counts up from 0 to data-target when in view.
---------------------------------------------------------------- */
function animateCount(el) {
var target = parseFloat(el.getAttribute("data-target")) || 0;
var suffix = el.getAttribute("data-suffix") || "";
var prefix = el.getAttribute("data-prefix") || "";
var decimals = parseInt(el.getAttribute("data-decimals") || "0", 10);
var duration = 1500;
var start = performance.now();
function tick(now) {
var p = Math.min(1, (now - start) / duration);
var eased = 1 - Math.pow(1 - p, 3);
var v = target * eased;
el.textContent = prefix + v.toFixed(decimals) + suffix;
if (p < 1) requestAnimationFrame(tick);
else el.textContent = prefix + target.toFixed(decimals) + suffix;
}
requestAnimationFrame(tick);
}
function mountCounters() {
var els = document.querySelectorAll(".stat-card .num[data-target]");
if (!els.length) return;
if (!("IntersectionObserver" in window)) {
els.forEach(animateCount);
return;
}
var io = new IntersectionObserver(function (entries) {
entries.forEach(function (entry) {
if (entry.isIntersecting) {
animateCount(entry.target);
io.unobserve(entry.target);
}
});
}, { threshold: 0.5 });
els.forEach(function (el) { io.observe(el); });
}
/* ----------------------------------------------------------------
HOSTING PLAN FLIP
Click a plan card to flip it and reveal a longer description.
---------------------------------------------------------------- */
function mountPlanFlips() {
document.querySelectorAll(".plan-card").forEach(function (card) {
card.addEventListener("click", function (e) {
// Don't flip if user clicked a button inside the card.
if (e.target.closest("a, button")) return;
card.classList.toggle("flipped");
});
card.addEventListener("keydown", function (e) {
if (e.key === "Enter" || e.key === " ") {
e.preventDefault();
card.classList.toggle("flipped");
}
});
});
}
/* ----------------------------------------------------------------
TECH STACK CONSTELLATION
A small interactive graph of the tech logos. Drag nodes around.
Edges drawn via SVG. Hovering highlights a node + its edges.
---------------------------------------------------------------- */
function mountConstellation() {
var root = document.getElementById("constellation");
if (!root) return;
var svg = root.querySelector("svg");
var tooltip = root.querySelector(".tooltip");
var nodes = Array.prototype.slice.call(root.querySelectorAll(".node"));
var rect = function () { return root.getBoundingClientRect(); };
var positions = nodes.map(function () {
// Random-ish initial placement; spread across center area.
return {
x: 30 + Math.random() * 40,
y: 25 + Math.random() * 50
};
});
function applyPositions() {
var r = rect();
nodes.forEach(function (n, i) {
n.style.left = (positions[i].x) + "%";
n.style.top = (positions[i].y) + "%";
});
drawEdges();
}
function getNodePos(n) {
var i = nodes.indexOf(n);
var r = rect();
return {
x: r.left + (positions[i].x / 100) * r.width,
y: r.top + (positions[i].y / 100) * r.height
};
}
function drawEdges() {
if (!svg) return;
var r = rect();
svg.setAttribute("viewBox", "0 0 " + r.width + " " + r.height);
svg.innerHTML = "";
nodes.forEach(function (n) {
var from = n.getAttribute("data-key");
var toKeys = (n.getAttribute("data-links") || "").split(",").map(function (s) { return s.trim(); }).filter(Boolean);
toKeys.forEach(function (k) {
var target = nodes.find(function (nn) { return nn.getAttribute("data-key") === k; });
if (!target) return;
var a = getNodePos(n);
var b = getNodePos(target);
var line = document.createElementNS("http://www.w3.org/2000/svg", "line");
line.setAttribute("x1", a.x - r.left);
line.setAttribute("y1", a.y - r.top);
line.setAttribute("x2", b.x - r.left);
line.setAttribute("y2", b.y - r.top);
line.setAttribute("stroke", "rgba(124, 242, 160, 0.25)");
line.setAttribute("stroke-width", "1.5");
line.setAttribute("data-edge", from + "-" + k);
svg.appendChild(line);
});
});
}
function showTooltip(n, on) {
if (!tooltip) return;
if (!on) { tooltip.classList.remove("visible"); return; }
var i = nodes.indexOf(n);
var r = rect();
tooltip.textContent = n.getAttribute("data-label") || n.textContent;
tooltip.style.left = positions[i].x + "%";
tooltip.style.top = positions[i].y + "%";
tooltip.classList.add("visible");
}
function highlight(n, on) {
if (!n) return;
n.classList.toggle("active", on);
if (!svg) return;
var key = n.getAttribute("data-key");
svg.querySelectorAll("line").forEach(function (line) {
var e = line.getAttribute("data-edge") || "";
var active = on && (e === key + "-" + line.getAttribute("data-edge").split("-")[1]
|| e.split("-")[1] + "-" + key);
line.setAttribute("stroke", active ? "rgba(124, 242, 160, 0.85)" : "rgba(124, 242, 160, 0.25)");
line.setAttribute("stroke-width", active ? "2.5" : "1.5");
});
}
// Drag nodes with pointer events.
nodes.forEach(function (n, i) {
var dragging = false;
n.addEventListener("pointerdown", function (e) {
e.preventDefault();
dragging = true;
n.classList.add("dragging");
n.setPointerCapture(e.pointerId);
});
n.addEventListener("pointermove", function (e) {
if (!dragging) return;
var r = rect();
var x = ((e.clientX - r.left) / r.width) * 100;
var y = ((e.clientY - r.top) / r.height) * 100;
positions[i].x = Math.max(8, Math.min(92, x));
positions[i].y = Math.max(8, Math.min(92, y));
applyPositions();
});
n.addEventListener("pointerup", function (e) {
dragging = false;
n.classList.remove("dragging");
try { n.releasePointerCapture(e.pointerId); } catch (err) {}
});
n.addEventListener("pointercancel", function () {
dragging = false;
n.classList.remove("dragging");
});
n.addEventListener("mouseenter", function () { highlight(n, true); showTooltip(n, true); });
n.addEventListener("mouseleave", function () { highlight(n, false); showTooltip(n, false); });
n.addEventListener("focus", function () { highlight(n, true); showTooltip(n, true); });
n.addEventListener("blur", function () { highlight(n, false); showTooltip(n, false); });
});
window.addEventListener("resize", applyPositions);
applyPositions();
}
/* ----------------------------------------------------------------
KONAMI CODE + CONFETTI
B A
---------------------------------------------------------------- */
function mountKonami() {
var seq = [38,38,40,40,37,39,37,39,66,65];
var pos = 0;
function onKey(e) {
if (e.keyCode === seq[pos]) {
pos++;
if (pos === seq.length) {
pos = 0;
fireConfetti();
showKonamiToast();
}
} else {
pos = 0;
}
}
document.addEventListener("keydown", onKey);
}
function fireConfetti() {
var colors = ["#45e3ff", "#b6f5b6", "#ffb86b", "#ff9aa2", "#fefff1"];
var n = 90;
for (var i = 0; i < n; i++) {
var p = document.createElement("div");
p.className = "confetti-piece";
p.style.left = (Math.random() * 100) + "vw";
p.style.background = colors[Math.floor(Math.random() * colors.length)];
p.style.setProperty("--dx", ((Math.random() - 0.5) * 240) + "px");
p.style.setProperty("--dur", (1.8 + Math.random() * 1.6) + "s");
p.style.animationDelay = (Math.random() * 0.4) + "s";
document.body.appendChild(p);
p.addEventListener("animationend", function () { p.remove(); });
}
}
function showKonamiToast() {
var t = document.createElement("div");
t.className = "konami-toast";
t.textContent = "↑↑↓↓ nice. touch grass count +1.";
document.body.appendChild(t);
setTimeout(function () { t.remove(); }, 2600);
}
/* ----------------------------------------------------------------
OFFLINE EASTER EGG
Detects navigator.onLine flip and shows a calm toast.
---------------------------------------------------------------- */
function mountOfflineEgg() {
var wasOffline = false;
function show(msg) {
var existing = document.querySelector(".offline-toast");
if (existing) existing.remove();
var t = document.createElement("div");
t.className = "offline-toast";
t.textContent = msg;
document.body.appendChild(t);
setTimeout(function () { t.remove(); }, 4000);
}
window.addEventListener("offline", function () {
wasOffline = true;
show("Looks like you're off the grid. Good for you.");
});
window.addEventListener("online", function () {
if (wasOffline) show("Back online. Welcome back to the grid.");
wasOffline = false;
});
}
/* ----------------------------------------------------------------
TOUCH-GRASS STREAK
Tracks how many days the visitor has come back.
On load: if last visit was >= 4h ago, increment streak.
On unload: store now as last visit.
---------------------------------------------------------------- */
function mountStreak() {
var badge = document.getElementById("streak-badge");
if (!badge) return;
var KEY = "shiloh-streak";
var LAST = "shiloh-streak-last";
var FOUR_HOURS = 4 * 60 * 60 * 1000;
var now = Date.now();
var last = parseInt(localStorage.getItem(LAST) || "0", 10);
var streak = parseInt(localStorage.getItem(KEY) || "0", 10);
if (!last) {
streak = 1;
} else {
var since = now - last;
if (since >= FOUR_HOURS && since < 48 * 60 * 60 * 1000) {
streak = streak + 1;
} else if (since >= 48 * 60 * 60 * 1000) {
streak = 1;
}
}
localStorage.setItem(KEY, String(streak));
badge.querySelector(".count").textContent = streak;
badge.classList.add("visible");
window.addEventListener("beforeunload", function () {
localStorage.setItem(LAST, String(Date.now()));
});
}
/* ----------------------------------------------------------------
THEME TOGGLE
Persists day / night / sabbath in localStorage. Default = night.
---------------------------------------------------------------- */
function mountThemeToggle() {
var root = document.getElementById("theme-toggle");
if (!root) return;
var KEY = "shiloh-theme";
function apply(theme) {
if (theme) document.body.setAttribute("data-theme", theme);
else document.body.removeAttribute("data-theme");
root.querySelectorAll("button").forEach(function (b) {
b.setAttribute("aria-pressed", String(b.getAttribute("data-theme") === theme));
});
}
var saved;
try { saved = localStorage.getItem(KEY); } catch (e) {}
apply(saved || "night");
root.querySelectorAll("button").forEach(function (btn) {
btn.addEventListener("click", function () {
var t = btn.getAttribute("data-theme");
try { localStorage.setItem(KEY, t); } catch (e) {}
apply(t);
});
});
}
/* ----------------------------------------------------------------
INIT
---------------------------------------------------------------- */
document.addEventListener("DOMContentLoaded", function () {
loadComponent("header", "./components/header.html");
loadComponent("footer", "./components/footer.html");
loadComponent("message", "./components/message.html");
loadComponent("theme-toggle", "./components/theme-toggle.html");
loadComponent("streak-badge", "./components/streak-badge.html");
// Mount interactive features shortly after components resolve.
function afterComponents() {
mountLogoTagline();
mountCursorGlow();
mountReveal();
mountStackPicker();
mountCounters();
mountPlanFlips();
mountConstellation();
mountKonami();
mountOfflineEgg();
mountStreak();
mountThemeToggle();
}
// Components load via fetch — give them a tick to inject.
setTimeout(afterComponents, 80);
});
})();

View File

@ -15,45 +15,60 @@
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>About | Shiloh Code</title>
<title>Privacy Policy | Shiloh | Data Protection & Privacy Practices</title>
<meta
name="description"
content="Learn more about Shiloh and our missiong to reform tech in Jesus' name."
content="Shiloh Privacy Policy: how we collect, use, and protect your information across our website, Last Hour Hosting, Echo, the Touch Grass Show, and other services."
/>
<meta name="author" content="Shiloh" />
<meta name="theme-color" content="#3a5952" />
<link rel="canonical" href="https://www.shilohcode.com/legal" />
<meta property="og:title" content="shiloh code" />
<meta property="og:title" content="Privacy Policy | Shiloh" />
<meta property="og:type" content="website" />
<meta property="og:url" content="https://www.shilohcode.com" />
<meta property="og:url" content="https://www.shilohcode.com/legal" />
<meta
property="og:description"
content="Learn more about Shiloh and our missiong to reform tech in Jesus' name."
content="Shiloh Privacy Policy: how we collect, use, and protect your information."
/>
<meta property="og:image" content="./assets/shiloh_logo_black.png" />
<meta property="og:image" content="./assets/shiloh-logo-white-1.png" />
<meta property="og:site_name" content="Shiloh" />
<meta name="twitter:card" content="summary" />
<link rel="icon" href="./assets/favicon.ico" />
<link rel="icon" href="./assets/" type="image/svg+xml" />
<link rel="apple-touch-icon" href="/apple-touch-icon.png" />
<link rel="icon" href="./assets/favicon.ico" sizes="any" />
<link rel="icon" href="./assets/favicon.jpg" type="image/jpeg" />
<link rel="apple-touch-icon" href="./assets/favicon.jpg" />
<link rel="stylesheet" href="css/styles.css?v=1.0" />
<script src="./js/jquery-3.7.1.min.js"></script>
<script src="./js/main.js"></script>
<script src="./js/navbar.js"></script>
<link rel="stylesheet" href="css/styles.css?v=1.4" />
<script src="./js/main.js" defer></script>
<script src="./js/navbar.js" defer></script>
<script src="./js/back-to-top.js" defer></script>
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "BreadcrumbList",
"itemListElement": [
{ "@type": "ListItem", "position": 1, "name": "Home", "item": "https://www.shilohcode.com/" },
{ "@type": "ListItem", "position": 2, "name": "Privacy Policy", "item": "https://www.shilohcode.com/legal" }
]
}
</script>
</head>
<body>
<header id="header"></header>
<main>
<div class="flex-column">
<h1>Privacy Policy</h1>
<section class="flex-column" aria-labelledby="legal-heading">
<h1 id="legal-heading">Privacy Policy</h1>
<div id="legal"></div>
</div>
</section>
<div class="flex-row">
<div class="flex-column">
<h2>I. General</h2>
<p>Last Modified: Jun 13, 2024</p>
<p>
This Privacy Policy (“Policy”) pertains to Shiloh Code, operated by
This Privacy Policy (“Policy”) pertains to Shiloh, operated by
Shiloh, LLC, and concerns you, the user of our website located at
https://www.shilohcode.com, hereinafter referred to as "our SITE".
Throughout this Policy, terms such as "us," "we," "our," and similar
@ -71,7 +86,7 @@
(COPPA) and Age Restrictions The Children&#39;s Online Privacy
Protection Act (COPPA) imposes regulations on the online collection
of personal information from children under the age of 13. Shiloh
Code complies with COPPA regulations by refraining from collecting
complies with COPPA regulations by refraining from collecting
any personal information from children under the age of 13.
Furthermore, our services are not intended for individuals under the
age of 16, and we do not authorize access or usage of our services
@ -98,7 +113,8 @@
</p>
<h2>Information We Collect</h2>
<p>
Shiloh Code operates with a strict no-logs policy, ensuring that no
Last Hour Hosting, the hosting project under the Shiloh
umbrella, operates with a strict no-logs policy, ensuring that no
activity logs of any kind are stored. We firmly uphold the principle
of minimal data retention to protect your anonymity. For further
details on our data handling practices, refer to the section
@ -191,7 +207,7 @@
activities, suspected fraud, potential threats to anyone&#39;s
safety, violations of our Terms of Service, Acceptable Use Policy,
or this Policy. Additionally, such disclosure may occur as
evidence in litigation in which Shiloh Code is involved.
evidence in litigation in which Shiloh is involved.
</li>
</ol>
<h3>VII. Transmittals from Us</h3>
@ -251,6 +267,8 @@
</div>
</div>
</main>
<button id="back-to-top">^ TOP</button>
<div id="message"></div>
<footer id="footer"></footer>
</body>

View File

@ -1,52 +0,0 @@
<!--
██ ███████ ███████ ██ ██ ███████ ██ ███████ ██ ██ ██ ███ ██ ██████
██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ████ ██ ██
██ █████ ███████ ██ ██ ███████ ██ ███████ █████ ██ ██ ██ ██ ██ ███
██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██
█████ ███████ ███████ ██████ ███████ ██ ███████ ██ ██ ██ ██ ████ ██████
-->
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Latest News | Shiloh Code</title>
<meta name="description" content="Read about Shiloh in the news." />
<meta name="author" content="Shiloh" />
<meta property="og:title" content="shiloh code" />
<meta property="og:type" content="website" />
<meta property="og:url" content="https://www.shilohcode.com" />
<meta property="og:description" content="Read about Shiloh in the news." />
<meta property="og:image" content="./assets/shiloh_logo_black.png" />
<link rel="icon" href="./assets/favicon.ico" />
<link rel="icon" href="./assets/" type="image/svg+xml" />
<link rel="apple-touch-icon" href="/apple-touch-icon.png" />
<link rel="stylesheet" href="css/styles.css?v=1.0" />
<script src="./js/jquery-3.7.1.min.js"></script>
<script src="./js/main.js"></script>
<script src="./js/navbar.js"></script>
</head>
<body>
<header id="header"></header>
<main>
<div class="flex-column bg-vid">
<div>
<h1>news room</h1>
<p>coming soon</p>
<div class="flex-row"></div>
</div>
</div>
</main>
<div id="message"></div>
<footer id="footer"></footer>
</body>
</html>

8
robots.txt Normal file
View File

@ -0,0 +1,8 @@
User-agent: *
Allow: /
Disallow: /components/
Disallow: /js/
Disallow: /css/
Disallow: /assets/
Sitemap: https://www.shilohcode.com/sitemap.xml

View File

@ -1,196 +0,0 @@
<!--
██ ███████ ███████ ██ ██ ███████ ██ ███████ ██ ██ ██ ███ ██ ██████
██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ████ ██ ██
██ █████ ███████ ██ ██ ███████ ██ ███████ █████ ██ ██ ██ ██ ██ ███
██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██
█████ ███████ ███████ ██████ ███████ ██ ███████ ██ ██ ██ ██ ████ ██████
-->
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Services | Shiloh Code</title>
<meta
name="description"
content="Our services include: Managed IT, Server Hosting, Staff-Augmentation, Contract-to-Hire, Backup and Disaster Recovery, Email Solutions, Cloud Solutions, Web Development, Full-Stack Software Development, Onsite Computer Support, Business Continuity Plan, Remote IT, VOIP Phones, Network Cabling and Installations, Security Cameras, Migration to Open-Source, Decentralized, Fully-Owned Solutions."
/>
<meta name="author" content="Shiloh" />
<meta property="og:title" content="shiloh code" />
<meta property="og:type" content="website" />
<meta property="og:url" content="https://www.shilohcode.com" />
<meta
property="og:description"
content="Our services include: Managed IT, Server Hosting, Staff-Augmentation, Contract-to-Hire, Backup and Disaster Recovery, Email Solutions, Cloud Solutions, Web Development, Full-Stack Software Development, Onsite Computer Support, Business Continuity Plan, Remote IT, VOIP Phones, Network Cabling and Installations, Security Cameras, Migration to Open-Source, Decentralized, Fully-Owned Solutions."
/>
<meta property="og:image" content="./assets/shiloh_logo_black.png" />
<link rel="icon" href="./assets/favicon.ico" />
<link rel="icon" href="./assets/" type="image/svg+xml" />
<link rel="apple-touch-icon" href="/apple-touch-icon.png" />
<link rel="stylesheet" href="css/styles.css?v=1.0" />
<script src="./js/jquery-3.7.1.min.js"></script>
<script src="./js/main.js"></script>
<script src="./js/navbar.js"></script>
</head>
<body>
<header id="header"></header>
<main>
<div class="flex-column bg-vid">
<div>
<h1>services</h1>
<div class="flex-row">
<p>
we do managed IT, web-hosting, development, support, security, and
communication solutions, to help businesses fully own their
technology.
</p>
</div>
<div class="flex-row">
<a class="button-1" role="button" href="#webhosting">Web-Hosting</a>
<a class="button-1" role="button" href="#it">Managed IT</a>
<a class="button-1" role="button" href="#software"
>Software Development</a
>
</div>
</div>
<video autoplay loop muted poster="/assets/services.png">
<source
src="https://cdn.lasthourhosting.org/shiloh/services.webm"
type="video/webm"
/>
</video>
</div>
<div class="flex-column">
<div>
<h3>we designed solutions for 97+ companies including:</h3>
<div>
<img
src="./assets/Answers_in_Genesis_logo.png"
alt="Answers in Genesis"
width="300px"
/>
<img
src="./assets/GOProject_Web.png"
alt="Global Orphan Project"
width="300px"
/>
<img
src="./assets/Biglife_logo.png"
alt="Christian Cinema"
width="300px"
/>
</div>
<h3>trained 85+ teams</h3>
<h3>handled 50+ migrations</h3>
<h3>reduced monthly costs by over 39%</h3>
<h3>with experience in:</h3>
<p>
containerization, decentralization, UI/UX design, hypervisors,
groupware, programming frameworks, e-commerce, API, R&D, billing
software, e-commerce, marketing automation, VOIP and PBX, mail
servers, ethernet cabling, security cameras, tech debt, security,
cost auditing.
</p>
</div>
</div>
<div id="webhosting" class="flex-column bg-vid">
<div>
<img
src="./assets/last_hour_hosting_logo_blue.png"
alt="last hour hosting logo"
/>
<h3>starting at $29/mo.</h3>
<p>managed websites, hosting, and cloud services.</p>
<div class="flex-row">
<a class="button-1" role="button" href="https://lasthourhosting.org"
>Host With Us</a
>
</div>
<video autoplay loop muted poster="/assets/lasthour.png">
<source
src="https://cdn.lasthourhosting.org/shiloh/lasthour.webm"
type="video/webm"
/>
</video>
</div>
</div>
<div id="it" class="flex-column bg-vid">
<div>
<h2>managed IT</h2>
<p>
remote or on-site our managed IT provides you with proactive, expert
care. reduce overhead costs with open-source and a solution you
fully own.
</p>
<video autoplay loop muted poster="/assets/managed-it.png">
<source
src="https://cdn.lasthourhosting.org/shiloh/managed-it.webm"
type="video/webm"
/>
</video>
</div>
</div>
<div id="software" class="flex-column">
<h2>full-stack dev</h2>
<p>
enjoy greater flexibility, lower costs, security, and community-driven
innovation, all while aligning with Christian values.
</p>
<div class="flex-row">
<div>
<img
src="./assets/prestashop_logo.png"
alt="Prestashop Logo"
width="300px"
/>
<img
src="./assets/ERPnext_logo.png"
alt="ERPnext Logo"
width="300px"
/>
<img
src="./assets/Nextcloud_Logo.png"
alt="Nextcloud Logo"
width="300px"
/>
<img
src="./assets/WordPress-logotype-alternative.png"
alt="Nextcloud Logo"
width="300px"
/>
<img src="./assets/linux-logo.png" alt="Linux Logo" width="200px" />
</div>
</div>
</div>
<div class="flex-column bg-vid-main">
<div>
<h1>contact us</h1>
<div class="flex-row">
<div class="flex-container">
<a
class="button-1"
role="button"
href="mailto:hello-izmqxby3qjkffhh6w7a9s2j3qwj7zu93iji7gxjcn(AT)shilohcode(DOT)com"
>email</a
>
</div>
</div>
</div>
</div>
</main>
<div id="message"></div>
<footer id="footer"></footer>
</body>
</html>

73
sitemap.xml Normal file
View File

@ -0,0 +1,73 @@
<?xml version="1.0" encoding="UTF-8"?>
<urlset
xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
xmlns:xhtml="http://www.w3.org/1999/xhtml"
xmlns:image="http://www.google.com/schemas/sitemap-image/1.1"
xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9
http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd">
<url>
<loc>https://www.shilohcode.com/</loc>
<lastmod>2026-07-07</lastmod>
<changefreq>weekly</changefreq>
<priority>1.00</priority>
<image:image>
<image:loc>https://www.shilohcode.com/assets/shiloh-logo-white-1.png</image:loc>
<image:title>Shiloh Code</image:title>
</image:image>
</url>
<url>
<loc>https://www.shilohcode.com/solutions</loc>
<lastmod>2026-07-07</lastmod>
<changefreq>weekly</changefreq>
<priority>0.90</priority>
<image:image>
<image:loc>https://www.shilohcode.com/assets/last_hour_hosting_logo_blue.png</image:loc>
<image:title>Last Hour Hosting</image:title>
</image:image>
</url>
<url>
<loc>https://www.shilohcode.com/about</loc>
<lastmod>2026-07-07</lastmod>
<changefreq>monthly</changefreq>
<priority>0.80</priority>
</url>
<url>
<loc>https://www.shilohcode.com/community</loc>
<lastmod>2026-07-07</lastmod>
<changefreq>monthly</changefreq>
<priority>0.70</priority>
</url>
<url>
<loc>https://www.shilohcode.com/contact</loc>
<lastmod>2026-07-07</lastmod>
<changefreq>monthly</changefreq>
<priority>0.70</priority>
</url>
<url>
<loc>https://www.shilohcode.com/careers</loc>
<lastmod>2026-07-07</lastmod>
<changefreq>monthly</changefreq>
<priority>0.60</priority>
</url>
<url>
<loc>https://www.shilohcode.com/creed</loc>
<lastmod>2026-07-07</lastmod>
<changefreq>yearly</changefreq>
<priority>0.50</priority>
</url>
<url>
<loc>https://www.shilohcode.com/legal</loc>
<lastmod>2026-07-07</lastmod>
<changefreq>yearly</changefreq>
<priority>0.30</priority>
</url>
</urlset>

456
solutions.html Normal file
View File

@ -0,0 +1,456 @@
<!--
██ ███████ ███████ ██ ██ ███████ ██ ███████ ██ ██ ██ ███ ██ ██████
██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ████ ██ ██
██ █████ ███████ ██ ██ ███████ ██ ███████ █████ ██ ██ ██ ██ ██ ███
██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██
█████ ███████ ███████ ██████ ███████ ██ ███████ ██ ██ ██ ██ ████ ██████
-->
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Hosting, IT & Software Services | Last Hour Hosting by Shiloh | Idaho</title>
<meta
name="description"
content="Last Hour Hosting is the tech project under the Shiloh umbrella. Managed web hosting from $29/mo, full-service managed IT, and custom full-stack software development from a 100% U.S.-based Christian team in Bonners Ferry, Idaho."
/>
<meta name="author" content="Shiloh" />
<meta name="keywords" content="managed web hosting, managed IT services, custom software development, privacy-first hosting, self-hosted infrastructure, web hosting Idaho, IT services Bonners Ferry, open-source migration" />
<meta name="theme-color" content="#3a5952" />
<meta name="geo.region" content="US-ID" />
<meta name="geo.placename" content="Bonners Ferry" />
<link rel="canonical" href="https://www.shilohcode.com/solutions" />
<meta property="og:title" content="Hosting, IT & Software | Last Hour Hosting" />
<meta property="og:type" content="website" />
<meta property="og:url" content="https://www.shilohcode.com/solutions" />
<meta
property="og:description"
content="Last Hour Hosting, the tech project under the Shiloh umbrella. Managed web hosting from $29/mo, managed IT, and custom software. Self-hosted. Privacy-first. 100% U.S.-based."
/>
<meta property="og:image" content="./assets/shiloh-logo-white-1.png" />
<meta property="og:site_name" content="Shiloh" />
<meta name="twitter:card" content="summary_large_image" />
<link rel="icon" href="./assets/favicon.ico" sizes="any" />
<link rel="icon" href="./assets/favicon.jpg" type="image/jpeg" />
<link rel="apple-touch-icon" href="./assets/favicon.jpg" />
<link rel="preconnect" href="https://cdn.lasthourhosting.org" crossorigin />
<link rel="dns-prefetch" href="https://cdn.lasthourhosting.org" />
<link rel="stylesheet" href="css/styles.css?v=1.4" />
<script src="./js/main.js" defer></script>
<script src="./js/navbar.js" defer></script>
<script src="./js/back-to-top.js" defer></script>
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Organization",
"@id": "https://www.shilohcode.com/#organization",
"name": "Shiloh",
"alternateName": "Shiloh LLC",
"url": "https://www.shilohcode.com/solutions",
"logo": "https://www.shilohcode.com/assets/shiloh-logo-white-1.png",
"description": "Shiloh means peace. A 100% U.S.-based Christian team in Bonners Ferry, Idaho. Last Hour Hosting is the project that handles all things tech.",
"email": "support@shilohcode.com",
"priceRange": "$$",
"address": {
"@type": "PostalAddress",
"streetAddress": "6653 Main Street #401",
"addressLocality": "Bonners Ferry",
"addressRegion": "ID",
"postalCode": "83805",
"addressCountry": "US"
},
"geo": { "@type": "GeoCoordinates", "latitude": 48.6913, "longitude": -116.3163 },
"areaServed": "US",
"subOrganization": [
{ "@type": "Organization", "name": "Last Hour Hosting", "url": "https://lasthourhosting.org" }
]
}
</script>
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "BreadcrumbList",
"itemListElement": [
{ "@type": "ListItem", "position": 1, "name": "Home", "item": "https://www.shilohcode.com/" },
{ "@type": "ListItem", "position": 2, "name": "Services", "item": "https://www.shilohcode.com/solutions" }
]
}
</script>
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Service",
"serviceType": "Managed Web Hosting",
"name": "Managed Web Hosting",
"description": "Fully managed website hosting, cloud infrastructure, and migration services on self-hosted open-source platforms.",
"provider": { "@id": "https://www.shilohcode.com/#organization" },
"areaServed": "US",
"offers": {
"@type": "Offer",
"price": "29",
"priceCurrency": "USD",
"url": "https://lasthourhosting.org",
"priceSpecification": {
"@type": "UnitPriceSpecification",
"price": "29",
"priceCurrency": "USD",
"unitText": "month"
}
}
}
</script>
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Service",
"serviceType": "Managed IT Services",
"name": "Managed IT",
"description": "Proactive remote and on-site IT management, network support, security, and disaster recovery for small and mid-sized organizations.",
"provider": { "@id": "https://www.shilohcode.com/#organization" },
"areaServed": "US"
}
</script>
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Service",
"serviceType": "Custom Software Development",
"name": "Full-Stack Software Development",
"description": "Custom web, mobile, and business software built on open-source stacks you fully own and control.",
"provider": { "@id": "https://www.shilohcode.com/#organization" },
"areaServed": "US"
}
</script>
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "FAQPage",
"mainEntity": [
{
"@type": "Question",
"name": "How much does managed hosting cost?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Managed web hosting plans start at $29/month and include free SSL, daily backups, 24/7 monitoring, and migration assistance. Custom plans are available for higher-traffic sites."
}
},
{
"@type": "Question",
"name": "Do you offer on-site IT support?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Yes. We provide remote and on-site managed IT services throughout northern Idaho, eastern Washington, and western Montana, and remote IT support nationwide."
}
},
{
"@type": "Question",
"name": "What technologies do you work with?",
"acceptedAnswer": {
"@type": "Answer",
"text": "We specialize in open-source and self-hosted platforms including WordPress, Nextcloud, PrestaShop, ERPNext, Linux, Docker, and a wide range of modern web frameworks."
}
},
{
"@type": "Question",
"name": "Will I own my data and code?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Yes. All hosting, software, and IT engagements are built on open-source, open-standard, and open-data principles. You retain full ownership of your data, code, and infrastructure at all times."
}
},
{
"@type": "Question",
"name": "Where is Shiloh located?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Shiloh is a 100% U.S.-based team headquartered in Bonners Ferry, Idaho, and serves clients across the United States and internationally. Last Hour Hosting is the project that handles all tech services."
}
}
]
}
</script>
</head>
<body>
<header id="header"></header>
<main>
<section class="reveal flex-column bg-vid" aria-labelledby="solutions-heading">
<div class="cursor-glow" aria-hidden="true"></div>
<div class="flex">
<h1 id="solutions-heading">managed hosting, IT, and custom software</h1>
<p>
Stress-free, privacy-first technology services for businesses, ministries,
and creators. Take control of your tech without doing the work yourself.
</p>
<div class="flex-row">
<a class="button-1" role="button" href="#webhosting">Managed Web Hosting</a>
<a class="button-1" role="button" href="#it">Managed IT</a>
<a class="button-1" role="button" href="#software">Custom Software</a>
</div>
</div></section>
<section class="flex-column" aria-label="Why Last Hour Hosting">
<div class="flex">
<h2>why businesses choose Last Hour Hosting</h2>
<p>
Most managed-service providers lock you into proprietary platforms you
can't leave without losing everything. We took a different path.
Last Hour Hosting builds every solution on <strong>open-source, open-standard,
and open-data</strong> foundations, so you always own your infrastructure,
your data, and your code.
</p>
<h3>Our track record</h3>
<p>
We have designed custom technology solutions for <strong>97+
organizations</strong>, including:
</p>
<div class="client-logos" aria-label="Selected clients">
<img
src="./assets/Answers_in_Genesis_logo.png"
alt="Answers in Genesis. Last Hour Hosting client"
class="logo-client"
loading="lazy"
/>
<img
src="./assets/GOProject_Web.png"
alt="Global Orphan Project. Last Hour Hosting client"
class="logo-client"
loading="lazy"
/>
<img
src="./assets/Biglife_logo.png"
alt="Christian Cinema (Biglife). Last Hour Hosting client"
class="logo-client"
loading="lazy"
/>
</div>
<p>
We have trained <strong>85+ internal teams</strong>, completed
<strong>50+ cloud and platform migrations</strong>, and helped clients
<strong>reduce their monthly technology costs by an average of 39%</strong>.
</p>
<h3>experience across the stack</h3>
<p>
containerization · decentralization · UI/UX design · hypervisors ·
groupware · modern programming frameworks · e-commerce · API
development · R&amp;D · billing systems · marketing automation · VOIP
and PBX · mail servers · ethernet cabling · security cameras · tech
debt reduction · security hardening · cost auditing
</p>
</div>
</section>
<section id="webhosting" class="reveal flex-column bg-vid" aria-labelledby="hosting-heading">
<div class="flex">
<img
class="logo-hosting"
src="./assets/last_hour_hosting_logo_blue.png"
alt="Last Hour Hosting"
/>
<h2 id="hosting-heading">hosting and WordPress builds, transparently priced</h2>
<p>
Last Hour Hosting is our in-house managed-hosting platform: fully
managed websites, virtual servers, and cloud services running on
self-hosted open-source infrastructure. We handle setup, security,
SSL, backups, monitoring, and ongoing maintenance so you can focus on
your content and your customers. We also build WordPress sites for
ministries, creators, and small businesses, end to end, on a
flat-rate quote.
</p>
<div class="plans" aria-label="Hosting and build plans">
<div class="plan-card" tabindex="0" role="button" aria-label="Website hosting plan">
<div class="front-face">
<span class="name">Website Hosting</span>
<span class="price">$29<small>/mo</small></span>
<p class="blurb">With Last Hour web hosting, you get all the dedicated features, tools, and guidance you need to build and launch a truly impressive website.</p>
<ul>
<li>99.9% uptime, monitored 24/7</li>
<li>Free SSL, migrations, and daily backups</li>
<li>Real human support, no ticket black holes</li>
<li>Open-source stack, fully owned by you</li>
</ul>
<a class="button-1 pick" role="button" target="_blank" rel="noopener noreferrer" href="https://lasthourhosting.org">Start hosting</a>
</div>
<div class="flipped-face">
<h3>Website Hosting</h3>
<p>Self-hosted WordPress, Nextcloud, and custom apps on open-source infrastructure you fully own. Privacy-first, US-based, and run by people who answer the phone.</p>
<a class="button-2 pick" role="button" target="_blank" rel="noopener noreferrer" href="https://lasthourhosting.org">View on Last Hour &rarr;</a>
</div>
</div>
<div class="plan-card featured" tabindex="0" role="button" aria-label="Starter WordPress website">
<span class="ribbon">most popular</span>
<div class="front-face">
<span class="name">Starter WordPress Website</span>
<span class="price">$500</span>
<p class="blurb">Done for you homepage or landing page custom built by our team.</p>
<ul>
<li>Custom-built homepage or landing page</li>
<li>7-day delivery</li>
<li>Mobile-responsive, performance-tuned</li>
<li>Hands-off handoff to your team</li>
</ul>
<a class="button-1 pick" role="button" target="_blank" rel="noopener noreferrer" href="https://cloud.shilohcode.com/apps/calendar/appointment/en6GjxFM9K25?service=website">Start your site</a>
</div>
<div class="flipped-face">
<h3>Starter WordPress Website</h3>
<p>Best for landing pages, podcast sites, ministry homepages, and small business introductions. We design, build, and hand off in 7 days.</p>
<a class="button-2 pick" role="button" target="_blank" rel="noopener noreferrer" href="https://cloud.shilohcode.com/apps/calendar/appointment/en6GjxFM9K25?service=website">Book a kickoff &rarr;</a>
</div>
</div>
<div class="plan-card" tabindex="0" role="button" aria-label="Small to medium business WordPress website">
<div class="front-face">
<span class="name">Small to Medium Size Business WordPress Website</span>
<span class="price">$1,495</span>
<p class="blurb">Up to 5-page custom built WordPress website.</p>
<ul>
<li>Up to 5 custom pages, built end to end</li>
<li>10-day delivery</li>
<li>SEO, performance, and accessibility baked in</li>
<li>Hands-on training at handoff</li>
</ul>
<a class="button-1 pick" role="button" target="_blank" rel="noopener noreferrer" href="https://cloud.shilohcode.com/apps/calendar/appointment/en6GjxFM9K25?service=website">Get a 5-page site</a>
</div>
<div class="flipped-face">
<h3>Small to Medium Business Site</h3>
<p>For ministries, creators, and small businesses that need a real site, not a template. We handle the build, you keep ownership of everything.</p>
<a class="button-2 pick" role="button" target="_blank" rel="noopener noreferrer" href="https://cloud.shilohcode.com/apps/calendar/appointment/en6GjxFM9K25?service=website">Book a kickoff &rarr;</a>
</div>
</div>
</div>
<ul class="trust-list" aria-label="Hosting benefits">
<li><strong>99.9% uptime</strong>, monitored 24/7 with rapid response</li>
<li><strong>Free SSL, free migrations, daily backups</strong> included on every plan</li>
<li><strong>Real human support</strong>. No ticket black holes, no outsourced call centers</li>
<li><strong>Open-source stack</strong>: WordPress, Nextcloud, custom apps all welcome</li>
<li><strong>Privacy-first</strong>. Your data, your server, your control</li>
</ul>
<div class="flex-row">
<a class="button-1" role="button" target="_blank" rel="noopener noreferrer" href="https://lasthourhosting.org"
>View hosting plans</a
>
<a
class="button-2"
role="button"
target="_blank"
rel="noopener noreferrer"
href="https://cloud.shilohcode.com/apps/calendar/appointment/en6GjxFM9K25?service=hosting"
>Talk to our hosting team</a
>
</div></div>
</section>
<section id="it" class="reveal flex-column bg-vid" aria-labelledby="it-heading">
<div class="flex">
<h2 id="it-heading">managed IT services</h2>
<p>
Remote and on-site managed IT for small and mid-sized organizations
across the Pacific Northwest and beyond. We provide proactive
monitoring, security, backup and disaster recovery, network and
cabling installation, VOIP, security cameras, and ongoing technical
support, built on open-source platforms you fully own.
</p>
<p>
Our managed IT plans are designed to <strong>reduce overhead,
eliminate vendor lock-in, and give you a single point of contact</strong>
for everything from user support to infrastructure planning.
</p>
<div class="flex-row">
<a
class="button-1"
role="button"
target="_blank"
rel="noopener noreferrer"
href="https://cloud.shilohcode.com/apps/calendar/appointment/en6GjxFM9K25?service=it"
>Schedule a free IT consultation</a
>
</div></div>
</section>
<section id="software" class="reveal flex-column bg-vid" aria-labelledby="software-heading">
<div class="flex">
<h2 id="software-heading">full-stack software development</h2>
<p>
Custom web, mobile, and business software built on modern
open-source frameworks. We deliver greater flexibility, lower long-term
cost, and stronger security than proprietary alternatives. We
hand over full source-code ownership at the end of every project.
</p>
<p>
<strong>Drag the nodes to explore the stack. Hover for relationships.</strong>
</p>
<div class="constellation" id="constellation" aria-label="Interactive tech stack">
<svg aria-hidden="true"></svg>
<div class="node" tabindex="0" data-key="linux" data-label="Linux base" data-links="docker,wordpress,nextcloud,erpnext,prestashop">Linux</div>
<div class="node" tabindex="0" data-key="docker" data-label="Containerized" data-links="linux,wordpress,nextcloud,erpnext,prestashop">Docker</div>
<div class="node" tabindex="0" data-key="wordpress" data-label="WordPress CMS" data-links="linux,docker">WordPress</div>
<div class="node" tabindex="0" data-key="nextcloud" data-label="Nextcloud" data-links="linux,docker">Nextcloud</div>
<div class="node" tabindex="0" data-key="erpnext" data-label="ERPNext" data-links="linux,docker">ERPNext</div>
<div class="node" tabindex="0" data-key="prestashop" data-label="PrestaShop" data-links="linux,docker">PrestaShop</div>
<div class="tooltip" role="tooltip"></div>
<div class="legend">Drag · Hover · Tab through the stack</div>
</div>
<div class="flex-row">
<a
class="button-1"
role="button"
target="_blank"
rel="noopener noreferrer"
href="https://cloud.shilohcode.com/apps/calendar/appointment/en6GjxFM9K25?service=software"
>Schedule a software consultation</a
>
</div>
</div>
</section>
<section class="reveal flex-column bg-vid" aria-labelledby="contact-heading">
<div class="flex">
<h2 id="contact-heading">let's talk</h2>
<p>
Whether it's hosting, IT, software, or anything else, our 100% U.S.-based team in Bonners Ferry, Idaho is happy to talk.
</p>
<div class="flex-row">
<div class="flex-container">
<a
class="button-1"
role="button"
href="mailto:support@shilohcode.com"
>email us</a
>
<a
class="button-1"
role="button"
target="_blank"
rel="noopener noreferrer"
href="https://cloud.shilohcode.com/apps/calendar/appointment/en6GjxFM9K25"
>schedule a call</a
>
<a
class="button-2"
role="button"
target="_blank"
rel="noopener noreferrer"
href="https://matrix.to/#/!GuDYWQtHSPmYRubiRH%3As.shilohcode.com?via=s.shilohcode.com&via=matrix.org&via=matrix.mailefant.de"
>join the chat</a
>
</div>
</div>
</div>
</section>
</main>
<button id="back-to-top">^ TOP</button>
<div id="message"></div>
<footer id="footer"></footer>
</body>
</html>