Files
www/htdocs/index.html
T
2026-11-01 15:58:11 -05:00

329 lines
24 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!doctype html>
<html lang="en">
<!--#include virtual="/common/header.html" -->
<body>
<!--#include virtual="/common/topnav.html" -->
<main id="main-content">
<section class="hero" aria-labelledby="hero-title">
<div class="hero-inner">
<p class="eyebrow">eom.dev · An independent community with Eric Meehan</p>
<h1 id="hero-title">Follow your curiosity.<br>Join in.</h1>
<p class="hero-copy">Some days I'm making music or exploring somewhere new. Other days I'm building an engineering project or spending time in a game. This is where I share it all—and invite you to bring your own interests, make things, and play along.</p>
<div class="hero-actions">
<a class="button button-primary" href="/members/register/">Join the community</a>
<a class="button button-secondary" href="#work">Explore what's happening</a>
<a class="quiet-link" href="https://discourse.eom.dev/latest">Visit the forum</a>
</div>
<p class="hero-note">Joining is free. Explore the public work first, or create an account to take part. Independently hosted with open-source software.</p>
</div>
<div class="hero-art" aria-hidden="true">
<span class="orbit orbit-one"></span>
<span class="orbit orbit-two"></span>
<span class="orbit orbit-three"></span>
<span class="orbit-core">eom<br>.dev</span>
</div>
</section>
<section class="section intro-section" id="work" aria-labelledby="work-title">
<div class="section-heading">
<p class="eyebrow">Different interests. One place to connect.</p>
<h2 id="work-title">Make, explore, and play.</h2>
<p>Travel and films, music, engineering, and gaming all belong here. Pick what interests you—watch, listen, try a project, or join a game. There's no single main thing.</p>
</div>
<div class="path-grid">
<article class="path-card path-play">
<p class="card-kicker">Out in the world</p>
<h3>Films &amp; places</h3>
<p>Travel, unexpected detours, and recordings from out in the world. Come along through the films and share your own discoveries on the forum.</p>
<a class="text-link" href="#films">Come along <span aria-hidden="true">→</span></a>
</article>
<article class="path-card path-create">
<p class="card-kicker">Sound &amp; expression</p>
<h3>Music</h3>
<p>Originals, covers, and performances by musicians I encounter. Listen, talk about what you're making, and share what catches your ear.</p>
<a class="text-link" href="#music">Start listening <span aria-hidden="true">→</span></a>
</article>
<article class="path-card path-build">
<p class="card-kicker">Curiosity at work</p>
<h3>Creative engineering</h3>
<p>Open-source tools and experiments built out of curiosity. Explore the code, compare notes, or bring a project of your own.</p>
<a class="text-link" href="#projects">Explore the projects <span aria-hidden="true">→</span></a>
</article>
<article class="path-card path-game">
<p class="card-kicker">Shared worlds &amp; friendly competition</p>
<h3>Gaming</h3>
<p>Game servers, community worlds, and experiments you can play together. Drop in, explore, or follow the gaming streams.</p>
<a class="text-link" href="#gaming">Find your next game <span aria-hidden="true">→</span></a>
</article>
</div>
</section>
<section class="section films-section" id="films" aria-labelledby="films-title" data-peertube-feed data-channels="eric_channel" data-title="Films &amp; places">
<div class="section-heading section-heading-row">
<div>
<p class="eyebrow">A camera, an open ear, somewhere to go</p>
<h2 id="films-title">Films &amp; places.</h2>
<p>Travel films and everyday discoveries, from planned trips to unexpected detours. Recordings of the musicians I meet are in the <a href="#music">music section</a>.</p>
</div>
<a class="text-link" href="https://peertube.eom.dev/video-channels/eric_channel">More travel &amp; everyday discoveries <span aria-hidden="true">→</span></a>
</div>
<p class="feed-status" data-feed-status role="status" aria-live="polite">Selected recordings below. Latest uploads load automatically when available.</p>
<div class="film-grid latest-grid" data-feed-items>
<article class="project-card media-card">
<a class="media-image" href="https://peertube.eom.dev/videos/watch/b16e17cc-2545-40ad-b9fa-b9200400aff5" aria-label="Watch I Got Heat Stroke in the Great Smokey Mountains">
<img src="https://peertube.eom.dev/lazy-static/thumbnails/c75393d3-9acd-4a9d-bbd0-7f370662c208.png" width="560" height="315" loading="lazy" decoding="async" alt="">
<span class="media-label" aria-hidden="true">Watch film ↗</span>
</a>
<div class="media-copy">
<p class="card-kicker">Travel film · North Carolina</p>
<h3>I Got Heat Stroke in the Great Smokey Mountains</h3>
<p>A backpacking trip takes an unexpected turn: kayaking, Asheville, and the buskers I met along the way.</p>
<a class="text-link" href="https://peertube.eom.dev/videos/watch/b16e17cc-2545-40ad-b9fa-b9200400aff5">Watch the trip <span aria-hidden="true">→</span></a>
</div>
</article>
<article class="project-card media-card">
<a class="media-image" href="https://peertube.eom.dev/videos/watch/678e7a68-9beb-48b2-b4cc-8cfede773a81" aria-label="Watch La Banda Maguey at La Fiesta del Pueblo">
<img src="https://peertube.eom.dev/lazy-static/thumbnails/bae0a54a-27b7-4604-ba10-556c21d32474.png" width="560" height="315" loading="lazy" decoding="async" alt="">
<span class="media-label" aria-hidden="true">Watch performance ↗</span>
</a>
<div class="media-copy">
<p class="card-kicker">Performance recording · Raleigh</p>
<h3>La Banda Maguey at La Fiesta del Pueblo</h3>
<p>La Banda Maguey performing in downtown Raleigh. A little of the festival, recorded and shared.</p>
<div class="project-links">
<a class="text-link" href="https://peertube.eom.dev/videos/watch/678e7a68-9beb-48b2-b4cc-8cfede773a81">Watch the performance <span aria-hidden="true">→</span></a>
<a class="text-link" href="https://www.bandamaguey.com/">Meet the musicians</a>
</div>
</div>
</article>
</div>
</section>
<section class="section music-section" id="music" aria-labelledby="music-title" data-peertube-feed data-channels="eric_music" data-title="Music">
<div class="music-copy">
<p class="eyebrow">From the guitar to the recording</p>
<h2 id="music-title">Making room for music.</h2>
<p>Original recordings, covers, and performances by musicians I meet along the way.</p>
<p>Listen to the latest uploads here, or explore more in the <a class="text-link" href="#peertube-library">channels and collections</a>.</p>
<div class="about-links">
<a class="button button-primary" href="https://peertube.eom.dev/video-playlists/bde0cf4d-318f-4865-b205-b11104a7c46b">Explore my originals</a>
<a class="text-link" href="https://peertube.eom.dev/video-channels/eric_music">Browse the music channel <span aria-hidden="true">→</span></a>
</div>
</div>
<p class="feed-status" data-feed-status role="status" aria-live="polite">Selected recording below. Latest uploads load automatically when available.</p>
<div class="film-grid latest-grid" data-feed-items>
<a class="music-feature media-image" href="https://peertube.eom.dev/videos/watch/f9613754-234e-4053-b194-341154f007c5" aria-label="Watch and listen to Tidal Waltz">
<img src="https://peertube.eom.dev/lazy-static/thumbnails/32b4d3ba-a871-4f5c-942d-4001948c1295.jpg" width="560" height="315" loading="lazy" decoding="async" alt="">
<span class="media-label" aria-hidden="true">Tidal Waltz · Music &amp; film ↗</span>
</a>
</div>
</section>
<section class="section featured-section" id="projects" aria-labelledby="projects-title">
<div class="section-heading section-heading-row">
<div>
<p class="eyebrow">The workshop · Made here, shared openly</p>
<h2 id="projects-title">My projects.</h2>
<p>Tools, experiments, and open-source work I build and contribute to across organizations. Explore my recent public activity below.</p>
</div>
<a class="text-link" href="https://gitea.eom.dev/eric?tab=activity">Follow my public activity <span aria-hidden="true">→</span></a>
</div>
<div id="gitea-projects">
<p class="feed-status" data-project-status role="status" aria-live="polite">Selected project below. Recent public pushes load automatically when available.</p>
<div class="project-grid latest-grid" data-project-items>
<article class="project-card">
<div class="project-mark mark-blue" aria-hidden="true">&lt;/&gt;</div>
<p class="card-kicker">Open-source tools &amp; infrastructure</p>
<h3>The code behind this corner of the internet</h3>
<p>Explore the repositories behind my projects and independent publishing setup. Take a look at how things work, learn from the code, or adapt it for your own space.</p>
<div class="project-links">
<a class="text-link" href="https://gitea.eom.dev/explore/repos">Browse the source <span aria-hidden="true">→</span></a>
</div>
</article>
</div>
</div>
<div class="workshop-recordings" data-peertube-feed data-channels="eric_tech" data-title="Engineering">
<h3>Latest engineering videos</h3>
<p>Build notes, technical explorations, and the process behind the projects.</p>
<p class="feed-status" data-feed-status role="status" aria-live="polite">Latest uploads load automatically when available. Browse the engineering channel directly if it is unavailable.</p>
<div class="film-grid latest-grid" data-feed-items>
<p><a class="text-link" href="https://peertube.eom.dev/video-channels/eric_tech">Browse the engineering channel</a></p>
</div>
</div>
</section>
<section class="section featured-section gaming-section" id="gaming" aria-labelledby="gaming-title">
<div class="section-heading section-heading-row">
<div>
<p class="eyebrow">Game servers &amp; shared worlds</p>
<h2 id="gaming-title">Come play. Make yourself at home.</h2>
<p>Luanti is the main community world I host. The Button is ready to play, and Wikideck is an experiment still in development. Explore below or catch up with the gaming streams.</p>
</div>
<a class="text-link" href="https://peertube.eom.dev/video-channels/eric_gaming">Browse the gaming channel <span aria-hidden="true">→</span></a>
</div>
<div class="project-grid gaming-grid">
<article class="project-card">
<div class="project-mark mark-green" aria-hidden="true">▦</div>
<p class="card-kicker">Season V · Public server</p>
<h3>Luanti</h3>
<p>Explore a low-gravity world with eleven team islands, markets and an adventure-map spawn. Connect with a Luanti client at <code>luanti.eom.dev:30000</code>.</p>
<div class="project-links">
<a class="text-link" href="https://discourse.eom.dev/t/luanti-season-v/690">Season V details <span aria-hidden="true">→</span></a>
</div>
</article>
<article class="project-card">
<div class="project-mark mark-red" aria-hidden="true">●</div>
<p class="card-kicker">A social experiment</p>
<h3>The Button</h3>
<p>One shared countdown, six risk zones, and a season of nerve. Play, follow the standings, or inspect the code.</p>
<div class="project-links">
<a class="text-link" href="https://button.eom.dev/">Play the game <span aria-hidden="true">→</span></a>
<a class="text-link" href="https://gitea.eom.dev/Gaming/the-button">View the source</a>
</div>
</article>
<article class="project-card">
<div class="project-mark mark-blue" aria-hidden="true">▧</div>
<p class="card-kicker">Experimental card game</p>
<h3>Wikideck</h3>
<p>Mine, collect and trade illustrated Wikipedia cards. This is an experimental, unaudited project; its public network has not launched.</p>
<div class="project-links">
<a class="text-link" href="https://gitea.eom.dev/WikiDeck/wikideck">Explore Wikideck <span aria-hidden="true">→</span></a>
</div>
</article>
</div>
<div class="workshop-recordings" data-peertube-feed data-channels="eric_gaming" data-title="Gaming">
<h3>Latest gaming videos &amp; streams</h3>
<p>Catch up on the games and worlds we spend time in together.</p>
<p class="feed-status" data-feed-status role="status" aria-live="polite">Latest uploads load automatically when available. Browse the gaming channel directly if it is unavailable.</p>
<div class="film-grid latest-grid" data-feed-items>
<p><a class="text-link" href="https://peertube.eom.dev/video-channels/eric_gaming">Browse gaming videos and streams</a></p>
</div>
</div>
</section>
<section class="section films-section" id="peertube-library" aria-labelledby="library-title">
<div class="section-heading">
<p class="eyebrow">Channels &amp; collections · Always something to explore</p>
<h2 id="library-title">Find a thread. Follow it.</h2>
<p>Original music, live performances, trips, and experiments, organized on PeerTube. New public channels and playlists appear here automatically; each collection shows its three most recently published videos.</p>
</div>
<div class="collection-controls">
<label for="peertube-collection">Choose a channel or playlist</label>
<select id="peertube-collection" disabled><option>Loading channels and playlists…</option></select>
<a class="text-link" data-library-link href="https://peertube.eom.dev/accounts/eric/videos">Browse all publications <span aria-hidden="true">→</span></a>
</div>
<p class="feed-status" data-library-status role="status" aria-live="polite">The collection browser loads automatically when available. You can always browse directly on PeerTube.</p>
<div class="film-grid latest-grid" data-library-items></div>
<noscript><p>Enable JavaScript to see the latest uploads here, or follow the channel and playlist links to browse on PeerTube.</p></noscript>
</section>
<section class="community-band" aria-labelledby="community-title">
<div>
<p class="eyebrow">More than an audience</p>
<h2 id="community-title">Bring what you're into.</h2>
<p>Share a recording or a travel story, ask about a build, or meet us in Luanti. The forum and chat are places to compare notes, share your own work, and find something to do together.</p>
<p>I share project notes, things I've learned, and ideas on Discourse. <a class="text-link" href="https://discourse.eom.dev/">Writing on Discourse <span aria-hidden="true">→</span></a></p>
</div>
<div class="community-actions">
<a class="button button-primary" href="/members/register/">Create a free account</a>
<a class="button button-secondary" href="https://discourse.eom.dev/latest">Join the discussion</a>
<a class="button button-secondary" href="https://mastodon.eom.dev/@eric/">Follow on Mastodon</a>
<a class="quiet-link" href="https://owncast.eom.dev/">Check the live channel</a>
</div>
</section>
<section class="about-section section" id="about" aria-labelledby="about-title">
<div class="about-photo">
<img src="/static/profile_2026.jpg" width="300" height="300" loading="lazy" alt="Eric Meehan">
</div>
<div class="about-copy">
<p class="eyebrow">The person behind the work</p>
<h2 id="about-title">Hi, I'm Eric.</h2>
<p>I'm Eric, based in Raleigh, North Carolina. I work full-time in software, and my own time moves between music, travel, engineering projects, and gaming. This community is a home for that mix, not a platform dedicated to just one of those interests.</p>
<p>I use open-source software to own the means of production and publish on my own terms. I believe in a decentralized internet, and I share code and educational content to help others build independent spaces too.</p>
<div class="about-links">
<a class="text-link" href="https://mastodon.eom.dev/@eric/">Follow on Mastodon <span aria-hidden="true">→</span></a>
<a class="text-link" href="mailto:eric@eom.dev">Get in touch</a>
<a class="text-link" href="/eric@eom.dev.pub">View my GPG key</a>
</div>
</div>
</section>
<section class="section services-section" id="services" aria-labelledby="services-title">
<div class="section-heading">
<p class="eyebrow">The open-source home behind the work</p>
<h2 id="services-title">An independent space to connect.</h2>
<p>These services are where I publish and the community connects. Browse public videos and posts without a paid membership. Free accounts include forums, chat, and Git hosting; Gold (Level 3) and above add Mastodon and PeerTube account access.</p>
</div>
<div class="project-grid">
<article class="project-card service-card">
<div class="project-mark service-mark"><img src="https://discourse.eom.dev/uploads/default/optimized/1X/_129430568242d1b7f853bb13ebea28b3f6af4e7_2_32x32.png" width="32" height="32" loading="lazy" decoding="async" alt=""></div>
<p class="card-kicker">Free · Level 0 and above</p>
<h3>Discourse · Forums</h3>
<p>Talk about the music, films, and projects. Bronze and above also get exclusive member content.</p>
<a class="text-link" href="https://discourse.eom.dev/">Visit the forum <span aria-hidden="true">→</span></a>
</article>
<article class="project-card service-card">
<div class="project-mark service-mark"><img src="https://element.eom.dev/vector-icons/144.5a63bf2.png" width="32" height="32" loading="lazy" decoding="async" alt=""></div>
<p class="card-kicker">Free · Level 0 and above</p>
<h3>Matrix · Chat</h3>
<p>Keep in touch in community rooms through Element. Bronze and above also get exclusive member content.</p>
<a class="text-link" href="https://element.eom.dev/">Open Matrix chat <span aria-hidden="true">→</span></a>
</article>
<article class="project-card service-card">
<div class="project-mark service-mark"><img src="https://gitea.eom.dev/assets/img/favicon.svg" width="32" height="32" loading="lazy" decoding="async" alt=""></div>
<p class="card-kicker">Free · Level 0 and above</p>
<h3>Gitea · Source code</h3>
<p>Explore the code behind the projects, learn from it, or collaborate on something of your own.</p>
<a class="text-link" href="https://gitea.eom.dev/">Explore Gitea <span aria-hidden="true">→</span></a>
</article>
<article class="project-card service-card">
<div class="project-mark service-mark"><img src="https://mastodon.eom.dev/packs/assets/favicon-48x48-DMnduFKh.png" width="32" height="32" loading="lazy" decoding="async" alt=""></div>
<p class="card-kicker">Gold · Levels 3–5</p>
<h3>Mastodon · Updates</h3>
<p>Follow public updates, or participate with an eom.dev account and connect with the wider fediverse.</p>
<a class="text-link" href="https://mastodon.eom.dev/">Visit Mastodon <span aria-hidden="true">→</span></a>
</article>
<article class="project-card service-card">
<div class="project-mark service-mark"><img src="https://peertube.eom.dev/client/assets/images/favicon.png" width="32" height="32" loading="lazy" decoding="async" alt=""></div>
<p class="card-kicker">Gold · Levels 3–5</p>
<h3>PeerTube · Films &amp; music</h3>
<p>Watch public recordings freely. Gold and above can also take part with an eom.dev PeerTube account.</p>
<a class="text-link" href="https://peertube.eom.dev/">Visit PeerTube <span aria-hidden="true">→</span></a>
</article>
<article class="project-card service-card">
<div class="project-mark service-mark"><img src="https://owncast.eom.dev/favicon.ico" width="32" height="32" loading="lazy" decoding="async" alt=""></div>
<p class="card-kicker">Public live channel</p>
<h3>Owncast · Live streams</h3>
<p>Drop in for performances, experiments, and work in progress when the channel is on air.</p>
<a class="text-link" href="https://owncast.eom.dev/">Check the live channel <span aria-hidden="true">→</span></a>
</article>
</div>
<p><a class="text-link" href="/members/register/">Create a free community account <span aria-hidden="true">→</span></a> · <a class="text-link" href="/members/">Compare membership benefits</a></p>
</section>
<section class="support-section" id="support" aria-labelledby="support-title">
<div class="support-copy">
<p class="eyebrow">More room to make</p>
<h2 id="support-title">Help the next song, film, or experiment happen.</h2>
<p>Memberships and one-time contributions fund the time, recording, travel, and independent publishing behind my creative work.</p>
<p>Your support gives me room to keep making and sharing. Releases follow the work, with no fixed schedule or promise of a particular project.</p>
</div>
<div class="support-actions">
<a class="button button-primary" href="/members/">Explore memberships</a>
<a class="button button-secondary" href="https://donate.stripe.com/dRm28qczOcDx05Nfd9cQU00">Make a one-time contribution</a>
<details class="crypto-support">
<summary>Other ways to support</summary>
<p>Monero contributions can be sent to this public address:</p>
<code class="wallet-address">48mFvxYDSCzMy5a3Zaj7ewApbX4GwXVXX9T1JC8mqBC19s9UcrNq8eaKkQ6GKdhHGQGmhdpvMd3mcbjf4eQbP8Yv7KdAREw</code>
<p>The <a href="/xmrig.json">XMRig configuration</a> is an example for running your own miner on P2Pool, not a contribution link. Replace the example wallet with your own.</p>
</details>
</div>
</section>
</main>
<script type="module" src="/static/peertube-feeds.mjs"></script>
<script type="module" src="/static/gitea-projects.mjs"></script>
<!--#include virtual="/common/footer.html" -->
</body>
</html>