website/index.tsx
2024-03-05 18:38:42 -05:00

104 lines
3.3 KiB
TypeScript

export const description = "Software developer and open-source enthusiast.";
export default function ({ nav }) {
const sortPosts = (a, b) => {
if (a.data.date < b.data.date) {
return 1;
} else if (a.data.date > b.data.date) {
return -1;
} else {
return 0;
}
};
return (
<>
<p>
I am a software developer, open-source enthusiast, lover of pizza, and
renegade of funk. I speak fluent English and Filipino.
</p>
<p>
You'll most likely find me within{" "}
<a href="https://code.fosterhangdaan.com">my lab</a>{" "}
tinkering with my inventions and the latest JavaScript frameworks. Other
times, I help in the battle for an open web and for user privacy by
contributing in the development of free and open-source software.
</p>
<h2 id="contact-me" tabIndex="-1">
<a className="header-anchor" href="#contact-me">Contact Me</a>
</h2>
<p>
The best method of reaching me is through my email:{" "}
<a href="mailto:foster@hangdaan.email">foster@hangdaan.email</a>.
</p>
<p>
If you'd like an encrypted response, you can send me your GPG public
key. You can find mine in the <a href="/gpg-key/">GPG Key</a> page.
</p>
<h2 id="highlighted-projects" tabIndex="-1">
<a className="header-anchor" href="#highlighted-projects">
Highlighted Projects
</a>
</h2>
<ul>
<li>
<a href="https://code.fosterhangdaan.com/foster/website">
This website
</a>{" "}
&mdash; My personal website &amp; blog.
</li>
<li>
<a href="https://code.fosterhangdaan.com/foster/grub-themes">
GRUB Themes
</a>{" "}
&mdash; Collection of themes for the <strong>GR</strong>and{" "}
<strong>U</strong>nified <strong>B</strong>ootloader.
</li>
<li>
<a href="https://code.fosterhangdaan.com/foster/ipme">IpMe</a>{" "}
&mdash; A self-hostable API for obtaining your public IP address.
</li>
<li>
<a href="https://code.fosterhangdaan.com/foster/bitcoin-core-container">
Bitcoin Core Container
</a>{" "}
&mdash; A containerized Bitcoin node.
</li>
<li>
<a href="https://code.fosterhangdaan.com/foster/monero-node-container">
Monero Node Container
</a>{" "}
&mdash; A containerized Monero node.
</li>
</ul>
<p>
<a href="https://code.fosterhangdaan.com/foster?tab=repositories">
View all projects
</a>
</p>
<h2 id="latest-blog-posts" tabIndex="-1">
<a className="header-anchor" href="#latest-blog-posts">
Latest Blog Posts
</a>
</h2>
<ul>
{nav.menu("/blog/posts").children.sort(sortPosts).slice(0, 5).map((
post,
index,
) => (
<li key={index}>
<a href={post.data.url}>{post.data.title}</a> &mdash;{" "}
<time className="post-list-date">
{Intl.DateTimeFormat("en-CA", { dateStyle: "long" }).format(
post.data.date,
)}
</time>
</li>
))}
</ul>
<p>
<a href="/blog/">View all blog posts</a>
</p>
</>
);
}