Add new blog posts for Nova AI and OmniEmu, and create robots.txt and sitemap.xml

- Created nova-devlog.html detailing the development of Nova AI, emphasizing its local operation and privacy features.
- Created omniemu-devlog.html explaining the motivation behind OmniEmu, a cross-platform emulator manager.
- Added robots.txt to manage web crawler access and disallow specific directories.
- Added sitemap.xml to improve site indexing and navigation for search engines.
This commit is contained in:
2026-07-26 13:27:02 -05:00
parent 38276dca93
commit cc103cde03
20 changed files with 2158 additions and 1 deletions
+80
View File
@@ -4,6 +4,11 @@
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>OmniEmu 2.0 | Miles Wolf Allen</title>
<meta name="description" content="OmniEmu 2.0 — cross-platform emulator manager, game launcher, and ROM library for Windows, macOS, and Linux. Install 20+ emulators with one click.">
<link rel="canonical" href="https://milesallen.site/projects/omniemu.html">
<meta property="og:title" content="OmniEmu 2.0 | Miles Wolf Allen">
<meta property="og:description" content="Cross-platform emulator manager, game launcher, and ROM library. Install 20+ emulators with one click.">
<meta property="og:image" content="https://milesallen.site/og.png">
<link rel="preconnect" href="https://fonts.googleapis.com">
<link href="https://fonts.googleapis.com/css2?family=Press+Start+2P&family=Space+Mono:wght@400;700&family=Inter:wght@400;500;600;800&display=swap" rel="stylesheet">
<link rel="icon" type="image/svg+xml" href="../favicon.svg">
@@ -12,6 +17,18 @@
<body>
<div class="cursor-dot" id="cursorDot"></div>
<div class="cursor-ring" id="cursorRing"></div>
<div class="progress-bar" id="progressBar"></div>
<button class="theme-toggle" id="themeToggle" aria-label="Toggle theme"></button>
<div class="shortcut-modal" id="shortcutModal">
<div class="shortcut-card">
<h3>Keyboard Shortcuts</h3>
<div class="shortcut-row"><span>Go Home</span><kbd>H</kbd></div>
<div class="shortcut-row"><span>Go to GitHub</span><kbd>G</kbd></div>
<div class="shortcut-row"><span>Toggle theme</span><kbd>T</kbd></div>
<div class="shortcut-row"><span>Show shortcuts</span><kbd>?</kbd></div>
<div class="close-hint">Press Esc or ? to close</div>
</div>
</div>
<div class="flash" id="flash"></div>
<div class="toast-stack" id="toastStack"></div>
<nav class="mobile-nav">
@@ -177,6 +194,30 @@
</div>
</section>
<section class="reveal">
<div class="section-divider"></div>
<h2 class="section-title">How It Compares</h2>
<p class="section-subtitle">OmniEmu vs other emulator managers</p>
<div class="table-wrapper">
<table>
<thead>
<tr><th>Feature</th><th>OmniEmu</th><th>EmuDeck</th><th>LaunchBox</th><th>RetroArch</th></tr>
</thead>
<tbody>
<tr><td>Cross-platform</td><td class="check">Win/Mac/Linux</td><td class="check">Win/Mac/Linux/SteamOS</td><td class="cross">Windows only</td><td class="check">Win/Mac/Linux</td></tr>
<tr><td>One-click emulator install</td><td class="check">Yes</td><td class="check">Yes</td><td class="cross">No</td><td class="cross">No</td></tr>
<tr><td>ROM library browsing</td><td class="check">Yes</td><td class="cross">No</td><td class="check">Yes</td><td class="cross">No</td></tr>
<tr><td>Auto game art scraping</td><td class="check">Yes</td><td class="check">Yes</td><td class="check">Paid</td><td class="cross">No</td></tr>
<tr><td>RetroAchievements</td><td class="check">Yes</td><td class="cross">No</td><td class="cross">No</td><td class="check">Yes</td></tr>
<tr><td>Controller navigation</td><td class="check">Yes</td><td class="cross">No</td><td class="cross">No</td><td class="check">Yes</td></tr>
<tr><td>Cloud save sync</td><td class="check">Yes</td><td class="check">Yes</td><td class="cross">No</td><td class="cross">No</td></tr>
<tr><td>Decomp project installer</td><td class="check">Yes</td><td class="cross">No</td><td class="cross">No</td><td class="cross">No</td></tr>
<tr><td>Free & open source</td><td class="check">Yes</td><td class="check">Yes</td><td class="cross">Paid</td><td class="check">Yes</td></tr>
</tbody>
</table>
</div>
</section>
<section class="reveal">
<div class="section-divider"></div>
<h2 class="section-title">Tech Stack</h2>
@@ -350,5 +391,44 @@
});
})();
</script>
<script>
(function(){
var bar=document.getElementById('progressBar');
window.addEventListener('scroll',function(){
var pct=window.scrollY/(document.body.scrollHeight-window.innerHeight)*100;
bar.style.width=pct+'%';
},{passive:true});
})();
(function(){
var btn=document.getElementById('themeToggle');
var saved=localStorage.getItem('theme');
if(saved==='light')document.body.classList.add('light');
function updateIcon(){btn.textContent=document.body.classList.contains('light')?'\u263E':'\u2600';}
updateIcon();
btn.addEventListener('click',function(){
document.body.classList.toggle('light');
localStorage.setItem('theme',document.body.classList.contains('light')?'light':'dark');
updateIcon();
});
})();
(function(){
var modal=document.getElementById('shortcutModal');
function toggleModal(){modal.classList.toggle('open');}
window.addEventListener('keydown',function(e){
if(e.key==='?'){e.preventDefault();toggleModal();}
if(e.key==='Escape')modal.classList.remove('open');
if(e.key==='t'||e.key==='T'){
if(document.activeElement&&document.activeElement.tagName==='INPUT')return;
document.body.classList.toggle('light');
localStorage.setItem('theme',document.body.classList.contains('light')?'light':'dark');
var btn=document.getElementById('themeToggle');
btn.textContent=document.body.classList.contains('light')?'\u263E':'\u2600';
}
if(e.key==='h'||e.key==='H')window.location.href='../index.html';
if(e.key==='g'||e.key==='G')window.location.href='https://github.com/mileswolfallen2';
});
modal.addEventListener('click',function(e){if(e.target===modal)modal.classList.remove('open');});
})();
</script>
</body>
</html>