forked from Shiloh/shiloh-website
Compare commits
16 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
ad97f64374 | ||
|
|
61a57d5fdb | ||
|
|
e578fcf4d0 | ||
|
|
237bafd0c7 | ||
|
|
653daa0671 | ||
|
|
2497ff8c57 | ||
|
|
dba8df0003 | ||
|
|
1d6cf9ad1f | ||
|
|
578ca7e5d4 | ||
|
|
d7fe327beb | ||
|
|
cf27ccb526 | ||
|
|
92316e4bcd | ||
|
|
b698b072d0 | ||
|
|
c3832fa0ca | ||
|
|
bd06d674b8 | ||
|
|
7ce9cebd06 |
3
.vscode/settings.json
vendored
Normal file
3
.vscode/settings.json
vendored
Normal file
@ -0,0 +1,3 @@
|
||||
{
|
||||
"liveServer.settings.port": 5501
|
||||
}
|
||||
130
404.html
Normal file
130
404.html
Normal 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>
|
||||
194
about.html
194
about.html
@ -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>
|
||||
·
|
||||
<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
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
67
brand
@ -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>
|
||||
97
careers.html
97
careers.html
@ -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
114
community.html
Normal 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>
|
||||
@ -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>
|
||||
|
||||
@ -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>
|
||||
|
||||
4
components/streak-badge.html
Normal file
4
components/streak-badge.html
Normal 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">🍃</span>
|
||||
<span><span class="count">0</span>-day streak</span>
|
||||
</div>
|
||||
5
components/theme-toggle.html
Normal file
5
components/theme-toggle.html
Normal 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>
|
||||
123
contact.html
123
contact.html
@ -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
1371
creed.html
File diff suppressed because it is too large
Load Diff
565
css/creed.css
Normal file
565
css/creed.css
Normal 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;
|
||||
}
|
||||
}
|
||||
1990
css/styles.css
1990
css/styles.css
File diff suppressed because it is too large
Load Diff
@ -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>
|
||||
@ -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>
|
||||
500
index.html
500
index.html
@ -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 & 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">🍃</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
16
js/back-to-top.js
Normal 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
234
js/creed.js
Normal 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
5406
js/jquery-3.7.1.min.js
vendored
File diff suppressed because it is too large
Load Diff
526
js/main.js
526
js/main.js
@ -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);
|
||||
});
|
||||
})();
|
||||
|
||||
58
legal.html
58
legal.html
@ -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'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'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>
|
||||
|
||||
52
news.html
52
news.html
@ -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
8
robots.txt
Normal file
@ -0,0 +1,8 @@
|
||||
User-agent: *
|
||||
Allow: /
|
||||
Disallow: /components/
|
||||
Disallow: /js/
|
||||
Disallow: /css/
|
||||
Disallow: /assets/
|
||||
|
||||
Sitemap: https://www.shilohcode.com/sitemap.xml
|
||||
196
services.html
196
services.html
@ -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
73
sitemap.xml
Normal 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
456
solutions.html
Normal 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&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 →</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 →</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 →</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>
|
||||
Loading…
x
Reference in New Issue
Block a user