feat: backup our static pages

This commit is contained in:
Naomi Carrigan 2025-02-20 14:58:22 -08:00
parent b3ec4e8b2b
commit 5b4ff40f79
Signed by: naomi
SSH Key Fingerprint: SHA256:rca1iUI2OhAM6n4FIUaFcZcicmri0jgocqKiTTAfrt8
8 changed files with 679 additions and 0 deletions

18
bsky/index.html Normal file
View File

@ -0,0 +1,18 @@
<!DOCTYPE html>
<html lang="en">
<head>
<title>BlueSky Handle Generator</title>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<meta name="description" content="This site allows you to provision a custom Bluesky handle under Naomi's naomi.party domain, entirely free!" />
<script src="https://cdn.nhcarrigan.com/headers/index.js" async defer></script>
</head>
<body>
<main>
<h1>BlueSky Handle Generator</h1>
<section>
<p>This site allows you to provision a custom Bluesky handle under Naomi's naomi.party domain, entirely free!</p>
<p>Currently we do not have a way to do this automatically - if you would like to request a handle, please reach out in our <a href="https://chat.naomi.lgbt">Discord server</a>.
</main>
</body>
</html>

28
chat/index.html Normal file
View File

@ -0,0 +1,28 @@
<!DOCTYPE html>
<html lang="en">
<head>
<title>Connect with NHCarrigan</title>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<meta name="description" content="We offer a few different ways to get in touch. This page outlines them all." />
<script src="https://cdn.nhcarrigan.com/headers/index.js" async defer></script>
</head>
<body>
<main>
<h1>Connect with NHCarrigan</h1>
<section>
<p>We offer a few ways to get in touch:</p>
<h2>Forum</h2>
<p>Our forum can be found at <a href="https://forum.nhcarrigan.com">forum.nhcarrigan.com</a>.</p>
<h2>IRC</h2>
<p>We offer a simple web-based IRC client you can use at <a href="https://irc.nhcarrigan.com">irc.nhcarrigan.com</a>.</p>
<p>Or if you prefer, you may connect to <code>irc.nhcarrigan.com:6697</code> with your favourite client.</p>
<h2>Matrix</h2>
<p>You can find our Matrix space at <code>#home:matrix.nhcarrigan.com</code>. This <strong>should</strong> be federated, but if that fails you can still sign up for an account on our home server!</p>
<h2>Fediverse</h2>
<p>We host our own instance of Sharkey, a Mastodon-compliant platform. You can find us at <a href="https://fedi.nhcarrigan.com/@naomi">fedi.nhcarrigan.com</a>. Signups are restricted, but you can follow us from your favourite Mastodon server.</p>
<h2>Code</h2>
<p>Our code repositories are found on our self-hosted Gitea instance at <a href="https://git.nhcarrigan.com">git.nhcarrigan.com</a>.
</main>
</body>
</html>

34
games/beccalia/index.html Normal file
View File

@ -0,0 +1,34 @@
<!DOCTYPE html>
<html lang="en">
<head>
<title>Beccalia Games</title>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<meta name="description" content="Welcome to the Beccalia game series!" />
<script src="https://cdn.nhcarrigan.com/headers/index.js" async defer></script>
</head>
<body>
<main>
<h1>Beccalia Games</h1>
<section>
<p>Welcome to the Beccalia game series! These games feature our two original characters, Becca Lyria and Rosalia Nightsong. Click the links below to play the games!</p>
</section>
<section>
<h2>Links</h2>
<p>
<a href="https://beccalia.nhcarrigan.com/prologue">
🩵 Prologue
</a>
</p>
<p>
<a href="https://beccalia.nhcarrigan.com/origins">
🩷 Origins (Demo)
</a>
</p>
<p>
We are currently on a hiatus from game development. But we may return in the future - be sure to join our Discord server so you don't miss any updates~!
</p>
</section>
</main>
</body>
</html>

39
games/index.html Normal file
View File

@ -0,0 +1,39 @@
<!DOCTYPE html>
<html lang="en">
<head>
<title>Games</title>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<meta name="description" content="These are the various games we have developed!" />
<script src="https://cdn.nhcarrigan.com/headers/index.js" async defer></script>
</head>
<body>
<main>
<h1>Games</h1>
<section>
<p>These are the various games we have developed.</p>
</section>
<section>
<h2>Links</h2>
<p>
<a href="https://beccalia.nhcarrigan.com/">
🩵 Beccalia Series
</a>
</p>
<p>
<a href="https://goblin.nhcarrigan.com">
🩷 Ruu's Goblin Quest
</a>
</p>
<p>
<a href="https://loan.nhcarrigan.com">
🩵 Life of a Naomi
</a>
</p>
<p>
We are currently on a hiatus from game development. But we may return in the future - be sure to join our Discord server so you don't miss any updates~!
</p>
</section>
</main>
</body>
</html>

View File

@ -0,0 +1,18 @@
<!DOCTYPE html>
<html lang="en">
<head>
<title>Link Redirector</title>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<meta name="description" content="Naomi's Link Redirection Service" />
<script src="https://cdn.nhcarrigan.com/headers/index.js" async defer></script>
</head>
<body>
<main>
<h1>Link Redirector</h1>
<section>
<p>If you have landed on this page, you've found a subdomain redirect that is improperly set up. Please reach out in our <a href="https://chat.nhcarrigan.com">support server</a> to let us know!</p>
</section>
</main>
</body>
</html>

364
resume/index.html Normal file
View File

@ -0,0 +1,364 @@
<!DOCTYPE html>
<html lang="en">
<head>
<title>Naomi Carrigan</title>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<meta name="description" content="This is Naomi's full work history!" />
<script
src="https://cdn.nhcarrigan.com/headers/index.js"
async
defer
></script>
<style>
hr {
border: 1px solid var(--background);
}
.title {
font-size: 1.3rem;
}
.subtitle {
font-size: 1.15rem;
}
.company {
text-decoration: underline;
}
.type {
font-style: italic;
}
.type::before {
content: " - ";
}
.date {
font-size: 0.8rem;
}
.info {
font-size: 0.8rem;
}
@media screen {
.card {
background: var(--foreground);
color: var(--background);
width: 80%;
max-width: 500px;
margin: auto;
border-radius: 10px;
box-shadow: 4px 4px 4px rgba(0, 0, 0, 0.7);
margin-bottom: 10px;
}
}
@media print {
:root {
font-size: 12px;
}
* {
color: black;
font-family: "Times New Roman", serif;
}
video,
footer,
hr {
display: none !important;
}
}
</style>
</head>
<body>
<main>
<h1>Naomi Carrigan</h1>
<p class="info">
Washington, USA | contact@nhcarrigan.com | https://nhcarrigan.com
</p>
<p>
Passionate technologist dedicated to building inclusive tech communities
and empowering individuals to break into the field. With a rich
background in community management, software engineering, and developer
experience, I strive to create accessible pathways for diverse talent.
</p>
<p>
Interested in hiring me? <a href="https://testimonials.nhcarrigan.com" target="_blank">See what past clients have to say</a>.
</p>
<section>
<h2>Employment</h2>
<!-- MARK: Current
-->
<div class="card">
<p class="title">Developer Experience Consultant</p>
<div>
<span class="company">Deepgram</span>
<span class="type">Contract</span>
</div>
<span class="date">June 2024 - present</span>
<hr />
<p class="subtitle">Community Bot Engineer</p>
<p class="date">July 2023 - June 2024</p>
</div>
<div class="card">
<p class="title">Educational Web Developer and Community Manager</p>
<div>
<span class="company">freeCodeCamp</span>
<span class="type">Contract</span>
</div>
<span class="date">Dec 2020 - present</span>
</div>
<div class="card">
<p class="title">Technomancer</p>
<div>
<span class="company">nhcarrigan</span>
<span class="type">Founder</span>
</div>
<span class="date">Dec 2020 - present</span>
</div>
<!-- MARK: Prior
-->
<div class="card">
<p class="title">Community Manager and Infrastructure Engineer</p>
<div>
<span class="company">Streamcord</span>
<span class="type">Contract</span>
</div>
<span class="date">Aug 2021 - Dec 2024</span>
</div>
<div class="card">
<p class="title">Senior Integrations Engineer</p>
<div>
<span class="company">Rythm</span>
<span class="type">Contract</span>
</div>
<span class="date">Apr 2022 - Oct 2024</span>
</div>
<div class="card">
<p class="title">Twitch Integration Engineer</p>
<div>
<span class="company">BigBadBeaver TV</span>
<span class="type">Freelance</span>
</div>
<span class="date">Oct 2022 - Jan 2024</span>
</div>
<div class="card">
<p class="title">Community Manager</p>
<div>
<span class="company">Tweetshift</span>
<span class="type">Contract</span>
</div>
<span class="date">Jan 2022 - May 2023</span>
</div>
<div class="card">
<p class="title">Community Manager</p>
<div>
<span class="company">4C</span>
<span class="type">Contract</span>
</div>
<span class="date">May 2022 - Nov 2022</span>
</div>
<div class="card">
<p class="title">Community Manager and Open Source Engineer</p>
<div>
<span class="company">Sema</span>
<span class="type">Contract</span>
</div>
<span class="date">May 2022 - Sep 2022</span>
</div>
<div class="card">
<p class="title">Safeway</p>
<div>
<span class="company">Service Operations Manager</span>
<span class="type">Full-time</span>
</div>
<span class="date">Nov 2016 - Apr 2020</span>
<hr />
<p class="subtitle">Person-in-Charge</p>
<p class="date">Aug 2013 - Nov 2016</p>
<hr />
<p class="subtitle">Produce Clerk</p>
<p class="date">Feb 2010 - Aug 2013</p>
<hr />
<p class="subtitle">Courtesy Clerk</p>
<p class="date">Aug 2009 - Feb 2010</p>
</div>
</section>
<section>
<h2>Volunteer</h2>
<!-- MARK: Volun. Current
-->
<div class="card">
<p class="title">Discord Moderator</p>
<div>
<span class="company">Virtual Insanity</span>
</div>
<span class="date">May 2024 - present</span>
</div>
<div class="card">
<p class="title">Discord Moderator</p>
<div>
<span class="company">FruitPursuits</span>
</div>
<span class="date">Mar 2024 - present</span>
</div>
<div class="card">
<p class="title">Development Lead</p>
<div>
<span class="company">Artists for Palestine</span>
</div>
<span class="date">Nov 2023 - present</span>
</div>
<div class="card">
<p class="title">Discord Moderator</p>
<div>
<span class="company">Angel Rose</span>
</div>
<span class="date">Sep 2023 - present</span>
</div>
<div class="card">
<p class="title">
Discord Moderator and Platform Engineering Manager
</p>
<div>
<span class="company">Caylus Crew</span>
</div>
<span class="date">Jun 2021 - present</span>
</div>
<div class="card">
<p class="title">
Discord Administrator and Lead Integrations Engineer
</p>
<div>
<span class="company">Commit Your Code</span>
</div>
<span class="date">Dec 2020 - present</span>
</div>
</section>
<!-- MARK: Volun. Prior
-->
<div class="card">
<p class="title">Hacktoberfest Community Moderator</p>
<div>
<span class="company">DigitalOcean</span>
</div>
<span class="date">Apr 2021 - Oct 2024</span>
</div>
<div class="card">
<p class="title">Discord Administrator and Integrations Engineer</p>
<div>
<span class="company">Azuliah</span>
</div>
<span class="date">Dec 2023 - Apr 2024</span>
</div>
<div class="card">
<p class="title">Discord Moderator</p>
<div>
<span class="company">Rion Kuroko</span>
</div>
<span class="date">Nov 2023 - Jan 2024</span>
</div>
<div class="card">
<p class="title">Senior Discord Moderator</p>
<div>
<span class="company">Rythm</span>
</div>
<span class="date">Feb 2022 - Jul 2022</span>
</div>
<div class="card">
<p class="title">Technical Support Staff</p>
<div>
<span class="company">TweetShift</span>
</div>
<span class="date">Sep 2021 - Feb 2022</span>
</div>
<div class="card">
<p class="title">Discord Moderator</p>
<div>
<span class="company">Rythm</span>
</div>
<span class="date">Sep 2021 - Feb 2022</span>
</div>
<div class="card">
<p class="title">Community Moderator</p>
<div>
<span class="company">Battlesnake</span>
</div>
<span class="date">Jun 2021 - Nov 2022</span>
</div>
<div class="card">
<p class="title">Integrations Engineer</p>
<div>
<span class="company">XCentric Collective</span>
</div>
<span class="date">Apr 2021 - Jul 2023</span>
</div>
<div class="card">
<p class="title">Technical Support Staff</p>
<div>
<span class="company">Streamcord</span>
</div>
<span class="date">Mar 2021 - Aug 2021</span>
</div>
<div class="card">
<p class="title">Discord Administrator</p>
<div>
<span class="company">EddieHub</span>
</div>
<span class="date">Jan 2021 - May 2023</span>
</div>
<div class="card">
<p class="title">Community Moderator</p>
<div>
<span class="company">freeCodeCamp</span>
</div>
<span class="date">Jun 2020 - Dec 2020</span>
</div>
<div class="card">
<p class="title">Shop Steward</p>
<div>
<span class="company">United Food and Commercial Workers</span>
</div>
<span class="date">Sep 2013 - Mar 2016</span>
</div>
<div class="card">
<p class="title">Instructional Assistant</p>
<div>
<span class="company">Vancouver Public Schools</span>
</div>
<span class="date">Sep 2010 - Jun 2014</span>
</div>
</main>
</body>
<script>
const dates = document.querySelectorAll(".date");
const today = new Date();
for (const date of dates) {
const start = new Date("5" + date.textContent.split(" - ")[0]);
const end =
date.textContent.split(" - ")[1] === "present"
? "present"
: new Date("5" + date.textContent.split(" - ")[1]);
const diff =
(end === "present" ? today.getTime() : end.getTime()) - start.getTime();
const diffYears = Math.floor(diff / (1000 * 60 * 60 * 24 * 365.25));
const diffMonths = Math.floor(
(diff % (1000 * 60 * 60 * 24 * 365.25)) / (1000 * 60 * 60 * 24 * 30.44)
);
const diffString = [];
if (diffYears > 0) {
diffString.push(`${diffYears} year${diffYears === 1 ? "" : "s"}`);
}
if (diffMonths > 0) {
diffString.push(`${diffMonths} month${diffMonths === 1 ? "" : "s"}`);
}
if (end === "present") {
date.textContent = `${start.toLocaleDateString("en-GB", {
year: "numeric",
month: "long",
})} - present (${diffString.join(", ")})`;
continue;
}
date.textContent = `${start.toLocaleDateString("en-GB", {
year: "numeric",
month: "long",
})} - ${end.toLocaleDateString("en-GB", {
year: "numeric",
month: "long",
})} (${diffString.join(", ")})`;
}
</script>
</html>

7
sync.sh Executable file
View File

@ -0,0 +1,7 @@
#! /usr/bin/bash
dirs=("bsky" "chat" "games" "link-redirector" "resume" "testimonials");
for dir in "${dirs[@]}"; do
rsync -av $dir prod:/home/nhcarrigan
done

171
testimonials/index.html Normal file
View File

@ -0,0 +1,171 @@
<!DOCTYPE html>
<html lang="en">
<head>
<title>Testimonials</title>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<meta
name="description"
content="See what our past clients have to say about our work!"
/>
<script
src="https://cdn.nhcarrigan.com/headers/index.js"
async
defer
></script>
<style>
hr {
border: 1px solid var(--background);
}
.title {
font-size: 1.3rem;
}
.date {
font-size: 0.8rem;
}
@media screen {
.card {
background: var(--foreground);
color: var(--background);
width: 80%;
margin: auto;
border-radius: 10px;
box-shadow: 4px 4px 4px rgba(0, 0, 0, 0.7);
margin-bottom: 10px;
}
}
@media print {
:root {
font-size: 12px;
}
* {
color: black;
font-family: "Times New Roman", serif;
}
video,
footer,
hr {
display: none !important;
}
}
</style>
</head>
<body>
<main>
<h1>Testimonials</h1>
<p>See what our past clients have to say about our work!</p>
<section>
<div class="card">
<p class="title">Alexis Madsen</p>
<p>
Naomi always had the knowledge and information for nearly every
question I ever had. It was such an honor to work with her, and
anyone would be lucky to have the chance for her to work with you or
your team.
</p>
<p class="date">28 October 2024</p>
</div>
<div class="card">
<p class="title">Chris Ohman</p>
<p>
Naomi's erudition on just about every development topic under the
sun, expediency at completing massive technical undertakings solo,
and undeniable passion for the work she does is an ever-present joy
and boon for any organization lucky enough to work with her. As an
example, Naomi composed an extensive and accessible DB comprising
all available traits and behaviors of our Users, whipped up an
extremely user-friendly API that our team of end-users could utilize
seamlessly, and regularly developed additional clever dataflows for
very particular asks. Every aspect of this work was done impeccably
and frictionlessly, and that's just one of the dozens of projects
she developed with our team during the time I worked alongside her.
As brilliant as Naomi is, she's also humble, hilarious, and an
all-around aspirational figure to all people looking to find true
passion for themselves alongside professional success. I strive to
be more like her, and I know I'm not alone in that.
</p>
<p class="date">27 September 2024</p>
</div>
<div class="card">
<p class="title">Alix Takada Sharp</p>
<p>
Naomi is an incredibly dynamic and resourceful professional, always
ready with a multitude of solutions for any challenge. Her
problem-solving skills are like watching a masterful sequence
unfold, earning her the well-deserved nickname 'the technomancer.'
Naomi's strong educational background is evident in her clear and
concise explanations, making complex concepts easily understandable.
She excels in communication, ensuring that everyone feels valued and
integral to the team. Naomi is truly the glue that holds any team
together. Adding her to your team will be a decision you won't
regret.
</p>
<p class="date">15 July 2024</p>
</div>
<div class="card">
<p class="title">Kaitlyn Nichols</p>
<p>
She is a dedicated programmer and spends most of her time either
making bots, or coding. She has an excellent work ethic and goes
until she is satisfied with the end product.
</p>
<p class="date">30 May 2024</p>
</div>
<div class="card">
<p class="title">Katey Berry</p>
<p>
I've worked alongside Naomi on a number of projects, and it is
always a blessing to have her on the team. She is knowledgable,
reliable, and always willing to jump in with creative and efficient
engineering solutions to complex workflow problems. Naomi is also
such a patient teacher, effectively explaining how things work and
enabling others to become more independent. I always look forward to
working with Naomi, and recommend you work with her if you have the
opportunity!
</p>
<p class="date">14 May 2024</p>
</div>
<div class="card">
<p class="title">Francez Urmatan</p>
<p>
Naomi is an absolute trailblazer, and is an amazing person to work
with! Naomi is humorous and also has an amazing attitude to work
with. Her ability to solve complex problems efficiently astounds me.
Not only does she demonstrate outstanding technical knowledge, but
also does an amazing job at elucidating her needs as an engineer.
She is a very warm person and quite easy to work with. Naomi is
immensely perceptive and very calculated with what she does. Naomi
would make an excellent addition to any company that is lucky enough
to hire her!
</p>
<p class="date">2 May 2024</p>
</div>
<div class="card">
<p class="title">Danny Thompson</p>
<p>
If you need a problem solver, look at Naomi. Naomi is a fantastic
part of the online tech community by teaching and offering help to
beginners on their journeys into tech. She has created some great
solutions and is a consistent learner. Naomi has led initiatives
using Javascript and front-end technologies to produce finished
products within a volunteer position. Highly recommend Naomi to any
team.
</p>
<p class="date">6 July 2023</p>
</div>
<div class="card">
<p class="title">Eddie Jaoude</p>
<p>
Naomi has done a fantastic job in creating Becca Bot, which is an
integral part in managing the EddieHub Discord Community. As founder
of EddieHub, Naomi is super helpful to all Community members and an
excellent moderator, from our text channels to audio calls and live
streams. Naomi demonstrates an excellent technical knowledge and is
always keen to share this with the community.
</p>
<p class="date">30 June 2023</p>
</div>
</section>
</main>
</body>
</html>