Skip to content

Commit 86b592b

Browse files
committed
deploy: fbfa904
1 parent f301251 commit 86b592b

8 files changed

Lines changed: 8 additions & 8 deletions

File tree

projects/TobiBoard/index.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -111,7 +111,7 @@ <h2 id="two-optional-ai-features">Two optional AI features</h2>
111111
<li><strong>Text Fix</strong> — select rough text, hit Fix; get back a clean, well-formatted message in the same language.</li>
112112
</ul>
113113
<p>Both are <strong>off by default</strong> and only run when you add your own <a href="https://openrouter.ai/">OpenRouter</a> or <a href="https://ppq.ai/">PayPerQ</a> key. Nothing leaves your device until you opt in, and OpenRouter routes default to <strong>zero data retention</strong>. No account, no subscription, no telemetry, no backend.</p>
114-
<p>Your typing never leaves the device, your API key is encrypted with the Android Keystore, and the microphone is only used while you’re actively dictating. → <a href="/tobiboard/privacy">Privacy policy</a></p>
114+
<p>Your typing never leaves the device, your API key is encrypted with the Android Keystore, and the microphone is only used while you’re actively dictating. → <a href="/projects/tobiboard/privacy">Privacy policy</a></p>
115115
<h2 id="get-it">Get it</h2>
116116
<ul>
117117
<li><strong>APK</strong> — download from <a href="https://github.com/leinss/TobiBoard/releases/latest">GitHub Releases</a>.</li>

projects/TobiReader/index.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -112,7 +112,7 @@ <h2 id="what-it-does">What it does</h2>
112112
</ul>
113113
<h2 id="private-by-design">Private by design</h2>
114114
<p>Everything that matters happens locally. The only time data leaves your phone is through features <strong>you</strong> turn on and point at endpoints <strong>you</strong> control: fetching the feeds you subscribe to, syncing to your own FreshRSS server, or summarizing/translating with your own AI key. There is no backend, no telemetry, and no profiling.</p>
115-
<p><a href="/tobireader/privacy">Privacy policy</a></p>
115+
<p><a href="/projects/tobireader/privacy">Privacy policy</a></p>
116116
<h2 id="get-it">Get it</h2>
117117
<p>Currently in <strong>private beta</strong> on Android via Google Play internal testing. A public release is planned — check back here, or get in touch for an invite.</p> </article> </div> <script type="application/ld+json">{"@context":"https://schema.org","@type":"SoftwareApplication","name":"TobiReader","description":"A private, local-first RSS/Atom reader with on-device read-aloud, optional bring-your-own-key AI summaries, and self-hosted FreshRSS sync.","url":"https://leinss.xyz/projects/TobiReader/","operatingSystem":"Android","applicationCategory":"NewsApplication","author":{"@type":"Person","name":"Tobias Leinss","url":"https://leinss.xyz/"}}</script> </main> <footer class="animate"> <div class="mx-auto max-w-[840px] px-5"> <div class="relative"> <div class="absolute right-0 -top-20"> <button id="back-to-top" class="relative group w-fit flex pl-8 pr-3 py-1.5 flex-nowrap rounded-sm border border-black/15 dark:border-white/20 hover:bg-black/5 dark:hover:bg-white/5 hover:text-black dark:hover:text-white transition-colors duration-300 ease-in-out"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" class="absolute top-1/2 left-2 -translate-y-1/2 size-4 stroke-2 fill-none stroke-current rotate-90"> <line x1="5" y1="12" x2="19" y2="12" class="translate-x-2 group-hover:translate-x-0 scale-x-0 group-hover:scale-x-100 transition-transform duration-300 ease-in-out"></line> <polyline points="12 5 5 12 12 19" class="translate-x-1 group-hover:translate-x-0 transition-transform duration-300 ease-in-out"></polyline> </svg> <div class="text-sm">
118118
Back to top

projects/kAIros/index.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -108,7 +108,7 @@ <h2 id="what-it-does">What it does</h2>
108108
<li><strong>Motivational messages</strong> tailored to your goals and current progress.</li>
109109
<li><strong>Your AI, your choice</strong> — run the coach fully <strong>on-device</strong> (offline and private, no data leaves your phone), on your <strong>own LAN server</strong>, or in the cloud.</li>
110110
</ul>
111-
<p>Built with React Native and Expo. Your account and goals live on a self-hosted EU server; the on-device model runs locally via llama.cpp. → <a href="/kairos/privacy">Privacy policy</a></p> </article> </div> <script type="application/ld+json">{"@context":"https://schema.org","@type":"SoftwareApplication","name":"kAIros","description":"An AI-guided goal-tracking app: define goals through conversation, break them into steps, and stay on track with reminders and personalized nudges.","url":"https://leinss.xyz/projects/kAIros/","operatingSystem":"iOS · Android","applicationCategory":"LifestyleApplication","author":{"@type":"Person","name":"Tobias Leinss","url":"https://leinss.xyz/"}}</script> </main> <footer class="animate"> <div class="mx-auto max-w-[840px] px-5"> <div class="relative"> <div class="absolute right-0 -top-20"> <button id="back-to-top" class="relative group w-fit flex pl-8 pr-3 py-1.5 flex-nowrap rounded-sm border border-black/15 dark:border-white/20 hover:bg-black/5 dark:hover:bg-white/5 hover:text-black dark:hover:text-white transition-colors duration-300 ease-in-out"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" class="absolute top-1/2 left-2 -translate-y-1/2 size-4 stroke-2 fill-none stroke-current rotate-90"> <line x1="5" y1="12" x2="19" y2="12" class="translate-x-2 group-hover:translate-x-0 scale-x-0 group-hover:scale-x-100 transition-transform duration-300 ease-in-out"></line> <polyline points="12 5 5 12 12 19" class="translate-x-1 group-hover:translate-x-0 transition-transform duration-300 ease-in-out"></polyline> </svg> <div class="text-sm">
111+
<p>Built with React Native and Expo. Your account and goals live on a self-hosted EU server; the on-device model runs locally via llama.cpp. → <a href="/projects/kairos/privacy">Privacy policy</a></p> </article> </div> <script type="application/ld+json">{"@context":"https://schema.org","@type":"SoftwareApplication","name":"kAIros","description":"An AI-guided goal-tracking app: define goals through conversation, break them into steps, and stay on track with reminders and personalized nudges.","url":"https://leinss.xyz/projects/kAIros/","operatingSystem":"iOS · Android","applicationCategory":"LifestyleApplication","author":{"@type":"Person","name":"Tobias Leinss","url":"https://leinss.xyz/"}}</script> </main> <footer class="animate"> <div class="mx-auto max-w-[840px] px-5"> <div class="relative"> <div class="absolute right-0 -top-20"> <button id="back-to-top" class="relative group w-fit flex pl-8 pr-3 py-1.5 flex-nowrap rounded-sm border border-black/15 dark:border-white/20 hover:bg-black/5 dark:hover:bg-white/5 hover:text-black dark:hover:text-white transition-colors duration-300 ease-in-out"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" class="absolute top-1/2 left-2 -translate-y-1/2 size-4 stroke-2 fill-none stroke-current rotate-90"> <line x1="5" y1="12" x2="19" y2="12" class="translate-x-2 group-hover:translate-x-0 scale-x-0 group-hover:scale-x-100 transition-transform duration-300 ease-in-out"></line> <polyline points="12 5 5 12 12 19" class="translate-x-1 group-hover:translate-x-0 transition-transform duration-300 ease-in-out"></polyline> </svg> <div class="text-sm">
112112
Back to top
113113
</div> </button> </div> </div> <div class="rounded-lg border border-black/10 dark:border-white/10 bg-black/5 dark:bg-white/5 p-6 mt-4"> <h2 class="font-semibold text-black dark:text-white mb-1">Stay in the loop</h2> <p class="text-sm mb-4">Get occasional updates on projects, tech insights, and new blog posts.</p> <form id="newsletter-form" class="flex gap-2"> <label for="newsletter-email" class="sr-only">Email address</label> <input id="newsletter-email" type="email" placeholder="your@email.com" required class="flex-1 px-3 py-2 text-sm rounded-md border border-black/15 dark:border-white/15 bg-white dark:bg-slate-800 text-black dark:text-white placeholder:text-black/40 dark:placeholder:text-white/40 focus:outline-hidden focus:ring-1 focus:ring-black/25 dark:focus:ring-white/25"> <button id="newsletter-btn" type="submit" class="px-4 py-2 text-sm font-medium rounded-md bg-black dark:bg-white text-white dark:text-black hover:bg-black/80 dark:hover:bg-white/80 transition-colors whitespace-nowrap">
114114
Subscribe
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
<!DOCTYPE html><html lang="en"> <head><!-- Global Metadata --><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><link rel="icon" type="image/x-icon" href="/favicon.ico" media="(prefers-color-scheme: dark)"><link rel="icon" type="image/x-icon" href="/favicon.ico" media="(prefers-color-scheme: light)"><link rel="icon" type="image/x-icon" href="/favicon.ico"><meta name="generator" content="Astro v6.4.2"><!-- Sitemap --><link rel="sitemap" href="/sitemap-index.xml"><!-- Font preloads --><link rel="preload" href="/_astro/ibm-plex-sans-latin-400-normal.CDDApCn2.woff2" as="font" type="font/woff2" crossorigin><link rel="preload" href="/_astro/ibm-plex-sans-latin-500-normal.6ng42L7E.woff2" as="font" type="font/woff2" crossorigin><link rel="preload" href="/_astro/ibm-plex-sans-latin-600-normal.CuJfVYMP.woff2" as="font" type="font/woff2" crossorigin><link rel="preload" href="/_astro/lora-latin-400-normal.DnxXpLNu.woff2" as="font" type="font/woff2" crossorigin><link rel="preload" href="/_astro/lora-latin-600-normal.B-3RcLOQ.woff2" as="font" type="font/woff2" crossorigin><!-- Canonical URL --><link rel="canonical" href="https://leinss.xyz/kairos/delete/"><!-- hreflang alternates (translated content) --><!-- Primary Meta Tags --><title>kAIros — Delete Your Account &amp; Data | Tobias Leinss</title><meta name="title" content="kAIros — Delete Your Account &amp; Data | Tobias Leinss"><meta name="description" content="How to request deletion of your kAIros account and all associated data"><!-- Open Graph / Facebook --><meta property="og:type" content="website"><meta property="og:url" content="https://leinss.xyz/kairos/delete/"><meta property="og:title" content="kAIros — Delete Your Account &amp; Data | Tobias Leinss"><meta property="og:description" content="How to request deletion of your kAIros account and all associated data"><meta property="og:image" content="https://leinss.xyz/og.png"><!-- Twitter --><meta property="twitter:card" content="summary_large_image"><meta property="twitter:url" content="https://leinss.xyz/kairos/delete/"><meta property="twitter:title" content="kAIros — Delete Your Account &amp; Data | Tobias Leinss"><meta property="twitter:description" content="How to request deletion of your kAIros account and all associated data"><meta property="twitter:image" content="https://leinss.xyz/og.png"><meta name="astro-view-transitions-enabled" content="true"><meta name="astro-view-transitions-fallback" content="animate"><script type="module" src="/_astro/ClientRouter.astro_astro_type_script_index_0_lang.CAqDO0tx.js"></script><!-- RSS Link --><link rel="alternate" type="application/rss+xml" title="Tobias Leinss" href="https://leinss.xyz/rss.xml"><!-- JSON-LD Structured Data --><script defer src="https://umami.funnel.leinss.xyz/script.js" data-website-id="bd21affd-05bc-4aeb-b312-c913f438ca90"></script><script type="module" src="/_astro/Head.astro_astro_type_script_index_0_lang.ErkTv1Ox.js"></script><script type="module">window.addEventListener("load",()=>{typeof feather<"u"&&feather.replace()});document.addEventListener("astro:before-swap",e=>[...e.newDocument.head.querySelectorAll('link[as="font"]')].forEach(n=>n.remove()));</script><script>
1+
<!DOCTYPE html><html lang="en"> <head><!-- Global Metadata --><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><link rel="icon" type="image/x-icon" href="/favicon.ico" media="(prefers-color-scheme: dark)"><link rel="icon" type="image/x-icon" href="/favicon.ico" media="(prefers-color-scheme: light)"><link rel="icon" type="image/x-icon" href="/favicon.ico"><meta name="generator" content="Astro v6.4.2"><!-- Sitemap --><link rel="sitemap" href="/sitemap-index.xml"><!-- Font preloads --><link rel="preload" href="/_astro/ibm-plex-sans-latin-400-normal.CDDApCn2.woff2" as="font" type="font/woff2" crossorigin><link rel="preload" href="/_astro/ibm-plex-sans-latin-500-normal.6ng42L7E.woff2" as="font" type="font/woff2" crossorigin><link rel="preload" href="/_astro/ibm-plex-sans-latin-600-normal.CuJfVYMP.woff2" as="font" type="font/woff2" crossorigin><link rel="preload" href="/_astro/lora-latin-400-normal.DnxXpLNu.woff2" as="font" type="font/woff2" crossorigin><link rel="preload" href="/_astro/lora-latin-600-normal.B-3RcLOQ.woff2" as="font" type="font/woff2" crossorigin><!-- Canonical URL --><link rel="canonical" href="https://leinss.xyz/projects/kairos/delete/"><!-- hreflang alternates (translated content) --><!-- Primary Meta Tags --><title>kAIros — Delete Your Account &amp; Data | Tobias Leinss</title><meta name="title" content="kAIros — Delete Your Account &amp; Data | Tobias Leinss"><meta name="description" content="How to request deletion of your kAIros account and all associated data"><!-- Open Graph / Facebook --><meta property="og:type" content="website"><meta property="og:url" content="https://leinss.xyz/projects/kairos/delete/"><meta property="og:title" content="kAIros — Delete Your Account &amp; Data | Tobias Leinss"><meta property="og:description" content="How to request deletion of your kAIros account and all associated data"><meta property="og:image" content="https://leinss.xyz/og.png"><!-- Twitter --><meta property="twitter:card" content="summary_large_image"><meta property="twitter:url" content="https://leinss.xyz/projects/kairos/delete/"><meta property="twitter:title" content="kAIros — Delete Your Account &amp; Data | Tobias Leinss"><meta property="twitter:description" content="How to request deletion of your kAIros account and all associated data"><meta property="twitter:image" content="https://leinss.xyz/og.png"><meta name="astro-view-transitions-enabled" content="true"><meta name="astro-view-transitions-fallback" content="animate"><script type="module" src="/_astro/ClientRouter.astro_astro_type_script_index_0_lang.CAqDO0tx.js"></script><!-- RSS Link --><link rel="alternate" type="application/rss+xml" title="Tobias Leinss" href="https://leinss.xyz/rss.xml"><!-- JSON-LD Structured Data --><script defer src="https://umami.funnel.leinss.xyz/script.js" data-website-id="bd21affd-05bc-4aeb-b312-c913f438ca90"></script><script type="module" src="/_astro/Head.astro_astro_type_script_index_0_lang.ErkTv1Ox.js"></script><script type="module">window.addEventListener("load",()=>{typeof feather<"u"&&feather.replace()});document.addEventListener("astro:before-swap",e=>[...e.newDocument.head.querySelectorAll('link[as="font"]')].forEach(n=>n.remove()));</script><script>
22
function init() {
33
preloadTheme();
44
onScroll();

0 commit comments

Comments
 (0)