# ZAAI.com > Open-source tools for home energy management, browser productivity, and developer workflows. Designed and built by Manuel Gruber. --- # Imprint URL: https://zaai.com/imprint/ Description: Impressum für ZAAI.com gemäß § 5 TMG. # Imprint Impressum für ZAAI.com gemäß § 5 TMG. ## Impressum Angaben gemäß § 5 TMG Manuel Gruber Am Anger 9a 84140 Gangkofen ## Contact Phone Number: +49 (0) 8721 - 1289833 Email Address: [website2026a@zaai.com](mailto:website2026a@zaai.com) ## Redaktionell verantwortlich Manuel Gruber Am Anger 9a 84140 Gangkofen ## Disclaimer - rechtliche Hinweise ### § 1 Warnhinweis zu Inhalten Die kostenlosen und frei zugänglichen Inhalte dieser Webseite wurden mit größtmöglicher Sorgfalt erstellt. Der Anbieter dieser Webseite übernimmt jedoch keine Gewähr für die Richtigkeit und Aktualität der bereitgestellten kostenlosen und frei zugänglichen journalistischen Ratgeber und Nachrichten. Namentlich gekennzeichnete Beiträge geben die Meinung des jeweiligen Autors und nicht immer die Meinung des Anbieters wieder. Allein durch den Aufruf der kostenlosen und frei zugänglichen Inhalte kommt keinerlei Vertragsverhältnis zwischen dem Nutzer und dem Anbieter zustande, insoweit fehlt es am Rechtsbindungswillen des Anbieters. ### § 2 Externe Links Diese Website enthält Verknüpfungen zu Websites Dritter (“externe Links”). Diese Websites unterliegen der Haftung der jeweiligen Betreiber. Der Anbieter hat bei der erstmaligen Verknüpfung der externen Links die fremden Inhalte daraufhin überprüft, ob etwaige Rechtsverstöße bestehen. Zu dem Zeitpunkt waren keine Rechtsverstöße ersichtlich. Der Anbieter hat keinerlei Einfluss auf die aktuelle und zukünftige Gestaltung und auf die Inhalte der verknüpften Seiten. Das Setzen von externen Links bedeutet nicht, dass sich der Anbieter die hinter dem Verweis oder Link liegenden Inhalte zu Eigen macht. Eine ständige Kontrolle der externen Links ist für den Anbieter ohne konkrete Hinweise auf Rechtsverstöße nicht zumutbar. Bei Kenntnis von Rechtsverstößen werden jedoch derartige externe Links unverzüglich gelöscht. ### § 3 Urheber- und Leistungsschutzrechte Die auf dieser Website veröffentlichten Inhalte unterliegen dem deutschen Urheber- und Leistungsschutzrecht. Jede vom deutschen Urheber- und Leistungsschutzrecht nicht zugelassene Verwertung bedarf der vorherigen schriftlichen Zustimmung des Anbieters oder jeweiligen Rechteinhabers. Dies gilt insbesondere für Vervielfältigung, Bearbeitung, Übersetzung, Einspeicherung, Verarbeitung bzw. Wiedergabe von Inhalten in Datenbanken oder anderen elektronischen Medien und Systemen. ### § 4 Besondere Nutzungsbedingungen Soweit besondere Bedingungen für einzelne Nutzungen dieser Website von den vorgenannten Paragraphen abweichen, wird an entsprechender Stelle ausdrücklich darauf hingewiesen. In diesem Falle gelten im jeweiligen Einzelfall die besonderen Nutzungsbedingungen. ## Verbraucherstreitbeilegung / Universalschlichtungsstelle Wir sind nicht bereit oder verpflichtet, an Streitbeilegungsverfahren vor einer Verbraucherschlichtungsstelle teilzunehmen. --- # Privacy Policy URL: https://zaai.com/privacy/ Description: Datenschutzerklärung für ZAAI.com gemäß DS-GVO. # Privacy Policy Datenschutzerklärung für ZAAI.com gemäß DS-GVO. ## Datenschutz Wir informieren Sie nachfolgend gemäß den gesetzlichen Vorgaben des Datenschutzrechts (insb. gemäß BDSG n.F. und der europäischen Datenschutz-Grundverordnung ‘DS-GVO’) über die Art, den Umfang und Zweck der Verarbeitung personenbezogener Daten durch unser Unternehmen. Diese Datenschutzerklärung gilt auch für unsere Websites und Sozial-Media-Profile. Bezüglich der Definition von Begriffen wie etwa “personenbezogene Daten” oder “Verarbeitung” verweisen wir auf Art. 4 DS-GVO. ### Name und Kontaktdaten des / der Verantwortlichen Unser/e Verantwortliche/r (nachfolgend “Verantwortlicher”) i.S.d. Art. 4 Zif. 7 DS-GVO ist: Manuel Gruber Am Anger 9a 84140 Gangkofen [website2026a@zaai.com](mailto:website2026a@zaai.com) ### Datenarten, Zwecke der Verarbeitung und Kategorien betroffener Personen Nachfolgend informieren wir Sie über Art, Umfang und Zweck der Erhebung, Verarbeitung und Nutzung personenbezogener Daten. #### 1\. Arten der Daten, die wir verarbeiten - Nutzungsdaten (Zugriffszeiten, besuchte Websites etc.) - Bestandsdaten (Name, Adresse etc.) - Kontaktdaten (Telefonnummer, E-Mail, Fax etc.) - Inhaltsdaten (Texteingaben, Videos, Fotos etc.) - Kommunikationsdaten (IP-Adresse etc.) #### 2\. Zwecke der Verarbeitung nach Art. 13 Abs. 1 c) DS-GVO - Website technisch und wirtschaftlich optimieren - Leichten Zugang zur Website ermöglichen - Kontaktaufnahme bei juristischer Beanstandung durch Dritte - Kommerzielle Nutzung der Website unterstützen - Nutzererfahrung verbessern - Website benutzerfreundlich gestalten - Wirtschaftlicher Betrieb der Werbung und Website - Marketing / Vertrieb / Werbung - Erstellung von Statistiken - Vermeidung von SPAM und Missbrauch - Kundenservice und Kundenpflege #### 3\. Kategorien der betroffenen Personen nach Art. 13 Abs. 1 e) DS-GVO - Besucher/Nutzer der Website Die betroffenen Personen werden zusammenfassend als “Nutzer” bezeichnet. ### Rechtsgrundlagen der Verarbeitung personenbezogener Daten 1. Wenn wir Ihre Einwilligung für die Verarbeitung personenbezogenen Daten eingeholt haben, ist Art. 6 Abs. 1 S. 1 lit. a) DS-GVO Rechtsgrundlage. 2. Ist die Verarbeitung zur Erfüllung eines Vertrags oder zur Durchführung vorvertraglicher Maßnahmen erforderlich, die auf Ihre Anfrage hin erfolgen, so ist Art. 6 Abs. 1 S. 1 lit. b) DS-GVO Rechtsgrundlage. 3. Ist die Verarbeitung zur Erfüllung einer rechtlichen Verpflichtung erforderlich, der wir unterliegen (z.B. gesetzliche Aufbewahrungspflichten), so ist Art. 6 Abs. 1 S. 1 lit. c) DS-GVO Rechtsgrundlage. 4. Ist die Verarbeitung erforderlich, um lebenswichtige Interessen der betroffenen Person oder einer anderen natürlichen Person zu schützen, so ist Art. 6 Abs. 1 S. 1 lit. d) DS-GVO Rechtsgrundlage. 5. Ist die Verarbeitung zur Wahrung unserer oder der berechtigten Interessen eines Dritten erforderlich und überwiegen diesbezüglich Ihre Interessen oder Grundrechte und Grundfreiheiten nicht, so ist Art. 6 Abs. 1 S. 1 lit. f) DS-GVO Rechtsgrundlage. ### Bereitstellung unserer Website und Erstellung von Logfiles Wenn Sie unsere Webseite lediglich informatorisch nutzen (also keine Registrierung und auch keine anderweitige Übermittlung von Informationen), erheben wir nur die personenbezogenen Daten, die Ihr Browser an unseren Server übermittelt. Wenn Sie unsere Website betrachten möchten, erheben wir die folgenden Daten: - IP-Adresse - Internet-Service-Provider des Nutzers - Datum und Uhrzeit des Abrufs - Browsertyp - Sprache und Browser-Version - Inhalt des Abrufs - Zeitzone - Zugriffsstatus/HTTP-Statuscode - Datenmenge - Websites, von denen die Anforderung kommt - Betriebssystem Diese Daten dienen dem Zweck der nutzerfreundlichen, funktionsfähigen und sicheren Auslieferung unserer Website an Sie mit Funktionen und Inhalten sowie deren Optimierung und statistischen Auswertung. Rechtsgrundlage hierfür ist unser in den obigen Zwecken auch liegendes berechtigtes Interesse an der Datenverarbeitung nach Art. 6 Abs. 1 S.1 lit. f) DS-GVO. Wir speichern aus Sicherheitsgründen diese Daten in Server-Logfiles für die Speicherdauer von 30 Tagen. Nach Ablauf dieser Frist werden diese automatisch gelöscht, es sei denn wir benötigen deren Aufbewahrung zu Beweiszwecken bei Angriffen auf die Serverinfrastruktur oder anderen Rechtsverletzungen. ### Cookies Wir verwenden sog. Cookies bei Ihrem Besuch unserer Website. Cookies sind kleine Textdateien, die Ihr Internet-Browser auf Ihrem Rechner ablegt und speichert. Wenn Sie unsere Website erneut aufrufen, geben diese Cookies Informationen ab, um Sie automatisch wiederzuerkennen. **Es werden folgende Cookie-Arten unterschieden:** - **Notwendige, essentielle Cookies:** zum Betrieb der Webseite unbedingt erforderlich (z. B. die Cookie-Zustimmung selbst). - **Session-Cookies:** werden zum Wiedererkennen mehrfacher Nutzung eines Angebots durch denselben Nutzer benötigt. - **Persistente Cookies:** bleiben auch nach dem Schließen des Browsers gespeichert. - **Cookies von Drittanbietern:** z. B. Google Analytics 4 sowie PostHog im vollen Modus (mit Cookies, identifizierten Profilen und ggf. Session-Replay). Diese werden ausschließlich nach Ihrer ausdrücklichen Einwilligung über das Cookie-Banner gesetzt. PostHog läuft darüber hinaus in einer cookielosen Variante zur reinen Reichweitenmessung. Diese setzt keine Cookies und benötigt keine Einwilligung (siehe Abschnitt “PostHog”). In den Sicherheitseinstellungen Ihres Browsers können Sie die Cookies jederzeit löschen. Sie können Ihre Einwilligung jederzeit widerrufen oder anpassen: Cookie-Einstellungen verwalten ### Google Analytics Mit Ihrer Zustimmung verwenden wir das Webseitenanalyse-Tool “Google Analytics” (Dienstanbieter: Google Ireland Limited, Gordon House, Barrow Street, Dublin 4, Irland). Beim Besuch unserer Website setzt Google nach Ihrer Einwilligung einen Cookie auf Ihren Computer, um die Benutzung unserer Website analysieren zu können. Wir haben die IP-Anonymisierung “anonymizeIP” aktiviert, wodurch die IP-Adressen nur gekürzt weiterverarbeitet werden. - **Zweck:** Analyse, Optimierung und Verbesserung unserer Website. - **Rechtsgrundlage:** Ihre Einwilligung gemäß Art. 6 Abs. 1 S. 1 lit. a) DS-GVO. - **Speicherdauer:** Die mit Cookies, Nutzerkennungen oder Werbe-IDs verknüpften Daten werden nach 14 Monaten automatisch gelöscht. - **Datenübermittlung:** Google Irland und USA. Wir haben mit Google eine Vereinbarung zur Auftragsverarbeitung nach Art. 28 DS-GVO geschlossen. - **Widerspruch:** Sie können der Erfassung jederzeit widersprechen, indem Sie das Cookie-Banner aufrufen und “Analytics” deaktivieren oder das offizielle Browser-Plugin von Google installieren: [tools.google.com/dlpage/gaoptout](https://tools.google.com/dlpage/gaoptout). ### PostHog (zwei Stufen) Wir nutzen PostHog (PostHog Inc., Hosting in der EU in Frankfurt) zur Produkt- und Nutzungsanalyse. PostHog wird in zwei Stufen eingesetzt: **1\. Cookielose Reichweitenmessung: immer aktiv (ohne Einwilligung).** Beim Aufruf einer Seite läuft PostHog im sog. “cookieless mode”: es werden **keine Cookies** und **keine sonstigen Daten auf Ihrem Endgerät** gespeichert oder ausgelesen. Eindeutige Besucher werden serverseitig durch einen datenschutzfreundlichen, täglich rotierenden Hash gezählt, aus dem keine Personendaten abgeleitet werden können. Da kein Speicher- oder Auslesevorgang auf Ihrem Endgerät stattfindet, ist § 25 TDDDG nicht anwendbar; eine Einwilligung ist hierfür nicht erforderlich. Rechtsgrundlage für die serverseitige Verarbeitung der hierzu nötigen technischen Informationen ist unser berechtigtes Interesse an der grundlegenden Reichweitenmessung gemäß Art. 6 Abs. 1 S. 1 lit. f) DS-GVO. **2\. Vollständige Produktanalyse: nur mit Ihrer Einwilligung.** Erst wenn Sie im Cookie-Banner “Akzeptieren” wählen oder im Bereich “Verwalten” die Kategorie “Analytics” aktivieren, schaltet PostHog spätestens beim nächsten Seitenaufruf in den vollen Modus mit Cookies, persistenter Sitzungserkennung, identifizierten Profilen sowie ggf. Session-Replay-Funktionen. Rechtsgrundlage hierfür ist Ihre Einwilligung gemäß Art. 6 Abs. 1 S. 1 lit. a) DS-GVO i.V.m. § 25 Abs. 1 TDDDG. Sie können die Einwilligung jederzeit widerrufen, indem Sie im Cookie-Banner “Verwalten” → “Analytics” deaktivieren; PostHog kehrt dann automatisch in den cookielosen Modus zurück. ### Präsenz in sozialen Medien Wir unterhalten Profile in sozialen Medien (LinkedIn, GitHub). Bei der Nutzung und dem Aufruf unseres Profils im jeweiligen Netzwerk durch Sie gelten die jeweiligen Datenschutzhinweise und Nutzungsbedingungen des jeweiligen Netzwerks. Rechtsgrundlage: Unser berechtigtes Interesse gemäß Art. 6 Abs. 1 S. 1 lit. f) DS-GVO bzw. Ihre Einwilligung gemäß Art. 6 Abs. 1 S. 1 lit. a). - **LinkedIn:** LinkedIn Ireland Unlimited Company, Wilton Place, Dublin 2, Irland. [Datenschutzerklärung](https://www.linkedin.com/legal/privacy-policy) - **GitHub:** GitHub Inc., 88 Colin P Kelly Jr St, San Francisco, CA 94107, USA. [Datenschutzerklärung](https://docs.github.com/en/site-policy/privacy-policies/github-privacy-statement) ### Rechte der betroffenen Person 1. **Widerspruch oder Widerruf:** Soweit die Verarbeitung auf Ihrer Einwilligung beruht, haben Sie das Recht, die Einwilligung jederzeit zu widerrufen. 2. **Recht auf Auskunft:** Sie haben das Recht, von uns eine Bestätigung darüber zu verlangen, ob Sie betreffende personenbezogene Daten verarbeitet werden (Art. 15 DS-GVO). 3. **Recht auf Berichtigung:** Art. 16 DS-GVO. 4. **Recht auf Löschung:** Art. 17 DS-GVO. 5. **Recht auf Einschränkung der Verarbeitung:** Art. 18 DS-GVO. 6. **Recht auf Datenübertragbarkeit:** Art. 20 DS-GVO. 7. **Recht auf Beschwerde bei einer Aufsichtsbehörde:** Sie können sich an die Aufsichtsbehörde Ihres Aufenthaltsorts wenden. ### Datensicherheit Um alle personenbezogenen Daten zu schützen, haben wir geeignete technische und organisatorische Sicherheitsmaßnahmen getroffen. Alle Daten zwischen Ihrem Browser und unserem Server werden über eine sichere SSL/TLS-Verbindung verschlüsselt übertragen. **Stand: 2026-04-26** --- # 12 tools in 2026 URL: https://zaai.com/products/2026/ Description: One new tool every month of 2026. See the schedule and what's already shipped. 2026 # 12 tools in 2026, one every month. I committed to shipping one new tool every month of 2026. Here's the schedule and what's already shipped. 1. ## 01 January [](https://zaai.com/clean-autofill/) [![Clean Autofill icon](https://zaai.com/clean-autofill/icon-128.png)](https://zaai.com/clean-autofill/) ### [Clean Autofill](https://zaai.com/clean-autofill/) [![Available in the Chrome Web Store](https://zaai.com/distribution/chrome-icon.svg) Chrome Web Store](https://chromewebstore.google.com/detail/clean-autofill/klbbkndjohchnidkbnjijdbggfadpppf) [Open Details](https://zaai.com/clean-autofill/) Chrome ExtensionEmailsAutofillGmailDomains Generate a unique email address for every signup. Track who shares your data, filter spam easily, and stay in control. All without typing. 2. ## 02 February [](https://zaai.com/git-same/) [![Folder with Git branch icon](https://zaai.com/git-same/icon.svg)](https://zaai.com/git-same/) ### [Git-Same](https://zaai.com/git-same/) [![Install with Homebrew](https://zaai.com/distribution/homebrew.svg) Homebrew](https://github.com/ZAAI-com/homebrew-tap/blob/main/Casks/git-same.rb) [Open Details](https://zaai.com/git-same/) GitCLIHomebrewmacOSFinder AppFinder Badges Mirror GitHub org and repo structures locally. One Homebrew install, interactive TUI, parallel cloning. 3. ## 03 March [](https://zaai.com/jekyll-aeo/) [![Jekyll logo](https://zaai.com/jekyll/icon.png)](https://zaai.com/jekyll-aeo/) ### [Jekyll-AEO](https://zaai.com/jekyll-aeo/) [![Install from RubyGems](https://zaai.com/distribution/rubygems.svg)](https://rubygems.org/gems/jekyll-aeo)[Open Details](https://zaai.com/jekyll-aeo/) JekyllRubyGemAEOAI Search Make your Jekyll site visible to AI search engines, assistants, and LLMs. One gem, zero config, eight features. 4. ## 04 April [](https://zaai.com/do-git-work/) [![Do Git Work app icon](https://zaai.com/do-git-work/AppIcon.png)](https://zaai.com/do-git-work/) ### [Do Git Work](https://zaai.com/do-git-work/) [![Download on the App Store](https://zaai.com/distribution/app-store.svg)](https://apps.apple.com/us/app/do-git-work/id6760287404)[Open Details](https://zaai.com/do-git-work/) GitGitHub ProfileiOS App Track your commits from your Home Screen and Lock Screen. Beautiful widgets, streak tracking, and a 7-day graph. No GitHub sign-in required. 5. ## 05 May [](https://zaai.com/dx26/) [![DX26 logo](https://zaai.com/dx26/icon.svg)](https://zaai.com/dx26/) ### [DX26](https://zaai.com/dx26/) [Open Details](https://zaai.com/dx26/) Next.jsReactTailwindCatalystZustandBunAIPrototype A Next.js prototype of a result-first coding-agent chat product. The live demo shows a scripted ZAAI-com todo-app thread with decisions, artifacts, agent fan-out, failures, and a PR handoff. 6. ## 06 June [](https://zaai.com/c5h/) [![C5h app icon](https://zaai.com/c5h/AppIcon.png)](https://zaai.com/c5h/) ### [C5h](https://zaai.com/c5h/) [Open Details](https://zaai.com/c5h/) macOSClaude CodeCodexSchedulingDeveloper Tool Plan, trigger, and track your 5-hour Claude Code and Codex windows from a native macOS app. 7. ## 07 July [](https://zaai.com/astro-aeo/) [![Astro logo](https://zaai.com/astro/icon.svg)](https://zaai.com/astro-aeo/) ### [Astro-AEO](https://zaai.com/astro-aeo/) [![Install from npm](https://zaai.com/distribution/npm.svg)](https://www.npmjs.com/package/astro-aeo)[Open Details](https://zaai.com/astro-aeo/) AstroNPMAEOAI Search Make your Astro site visible to AI search engines, assistants, and LLMs. One integration, zero config, nine features. 8. ## 08 August [](https://zaai.com/clean-google-maps/) [![Clean Google Maps icon](https://zaai.com/clean-google-maps/icon-128.png)](https://zaai.com/clean-google-maps/) ### [Clean Google Maps](https://zaai.com/clean-google-maps/) [![Available in the Chrome Web Store](https://zaai.com/distribution/chrome-icon.svg) Chrome Web Store](https://chromewebstore.google.com/detail/clean-google-maps/kdhglacniobgebpechcldajbgbmmodhh) [Open Details](https://zaai.com/clean-google-maps/) Chrome ExtensionGoogle MapsMarkersDecluttering Shrink Google Maps pins, or turn them into small coloured dots. Your places and labels all stay exactly where they are. 9. ## 09 September Upcoming 10. ## 10 October Upcoming 11. ## 11 November Upcoming 12. ## 12 December Upcoming Browse [all products](https://zaai.com/products/) or view them [grouped by year](https://zaai.com/products/years/). --- # Products by year URL: https://zaai.com/products/years/ Description: Every product I've shipped, grouped by year, from 2026 back to the early 2010s. Products # Every product I've shipped, grouped by year. From the 2026 monthly cadence back to early Jekyll plugins. Older work from 2010 to 2019 is grouped together as 201X. ## 2026 One new tool every month. Here's what's shipped so far. - [](https://zaai.com/clean-google-maps/) [![Clean Google Maps icon](https://zaai.com/clean-google-maps/icon-128.png)](https://zaai.com/clean-google-maps/) ### [Clean Google Maps](https://zaai.com/clean-google-maps/) [![Available in the Chrome Web Store](https://zaai.com/distribution/chrome-icon.svg) Chrome Web Store](https://chromewebstore.google.com/detail/clean-google-maps/kdhglacniobgebpechcldajbgbmmodhh) [Open Details](https://zaai.com/clean-google-maps/) Chrome ExtensionGoogle MapsMarkersDecluttering Shrink Google Maps pins, or turn them into small coloured dots. Your places and labels all stay exactly where they are. - [](https://zaai.com/astro-aeo/) [![Astro logo](https://zaai.com/astro/icon.svg)](https://zaai.com/astro-aeo/) ### [Astro-AEO](https://zaai.com/astro-aeo/) [![Install from npm](https://zaai.com/distribution/npm.svg)](https://www.npmjs.com/package/astro-aeo)[Open Details](https://zaai.com/astro-aeo/) AstroNPMAEOAI Search Make your Astro site visible to AI search engines, assistants, and LLMs. One integration, zero config, nine features. - [](https://zaai.com/c5h/) [![C5h app icon](https://zaai.com/c5h/AppIcon.png)](https://zaai.com/c5h/) ### [C5h](https://zaai.com/c5h/) [Open Details](https://zaai.com/c5h/) macOSClaude CodeCodexSchedulingDeveloper Tool Plan, trigger, and track your 5-hour Claude Code and Codex windows from a native macOS app. - [](https://zaai.com/dx26/) [![DX26 logo](https://zaai.com/dx26/icon.svg)](https://zaai.com/dx26/) ### [DX26](https://zaai.com/dx26/) [Open Details](https://zaai.com/dx26/) Next.jsReactTailwindCatalystZustandBunAIPrototype A Next.js prototype of a result-first coding-agent chat product. The live demo shows a scripted ZAAI-com todo-app thread with decisions, artifacts, agent fan-out, failures, and a PR handoff. - [](https://zaai.com/do-git-work/) [![Do Git Work app icon](https://zaai.com/do-git-work/AppIcon.png)](https://zaai.com/do-git-work/) ### [Do Git Work](https://zaai.com/do-git-work/) [![Download on the App Store](https://zaai.com/distribution/app-store.svg)](https://apps.apple.com/us/app/do-git-work/id6760287404)[Open Details](https://zaai.com/do-git-work/) GitGitHub ProfileiOS App Track your commits from your Home Screen and Lock Screen. Beautiful widgets, streak tracking, and a 7-day graph. No GitHub sign-in required. - [](https://zaai.com/jekyll-aeo/) [![Jekyll logo](https://zaai.com/jekyll/icon.png)](https://zaai.com/jekyll-aeo/) ### [Jekyll-AEO](https://zaai.com/jekyll-aeo/) [![Install from RubyGems](https://zaai.com/distribution/rubygems.svg)](https://rubygems.org/gems/jekyll-aeo)[Open Details](https://zaai.com/jekyll-aeo/) JekyllRubyGemAEOAI Search Make your Jekyll site visible to AI search engines, assistants, and LLMs. One gem, zero config, eight features. - [](https://zaai.com/git-same/) [![Folder with Git branch icon](https://zaai.com/git-same/icon.svg)](https://zaai.com/git-same/) ### [Git-Same](https://zaai.com/git-same/) [![Install with Homebrew](https://zaai.com/distribution/homebrew.svg) Homebrew](https://github.com/ZAAI-com/homebrew-tap/blob/main/Casks/git-same.rb) [Open Details](https://zaai.com/git-same/) GitCLIHomebrewmacOSFinder AppFinder Badges Mirror GitHub org and repo structures locally. One Homebrew install, interactive TUI, parallel cloning. - [](https://zaai.com/clean-autofill/) [![Clean Autofill icon](https://zaai.com/clean-autofill/icon-128.png)](https://zaai.com/clean-autofill/) ### [Clean Autofill](https://zaai.com/clean-autofill/) [![Available in the Chrome Web Store](https://zaai.com/distribution/chrome-icon.svg) Chrome Web Store](https://chromewebstore.google.com/detail/clean-autofill/klbbkndjohchnidkbnjijdbggfadpppf) [Open Details](https://zaai.com/clean-autofill/) Chrome ExtensionEmailsAutofillGmailDomains Generate a unique email address for every signup. Track who shares your data, filter spam easily, and stay in control. All without typing. ## 2025 Energy tools and the start of the monthly shipping cadence. - [](https://zaai.com/powernight/) [![PowerNight app icon](https://zaai.com/powernight/icon.png)](https://zaai.com/powernight/) ### [PowerNight](https://zaai.com/powernight/) [![Available on Docker Hub](https://zaai.com/distribution/docker.svg)](https://hub.docker.com/r/zaaicom/powernight)[Open Details](https://zaai.com/powernight/) EnergyTesla PowerwallDocker Container Charge your Tesla Powerwall from the grid overnight, automatically. Local-first web UI. ## 2024 Home energy management, the foundation year. - [](https://zaai.com/powerbeat/) [![Powerbeat app icon](https://zaai.com/powerbeat/icon.png)](https://zaai.com/powerbeat/) ### [Powerbeat](https://zaai.com/powerbeat/) [Open Details](https://zaai.com/powerbeat/) EnergyHome Energy ManagerUI Prototype Solar, battery, EV charging, and daily energy decisions in one interface, built for homeowners. ## 2010 to 2019 The 2010s, from Jekyll plugins to early Chrome extensions. - [](https://zaai.com/jekyll-roadmap/) [![Jekyll logo](https://zaai.com/jekyll/icon.png)](https://zaai.com/jekyll-roadmap/) ### [Jekyll Roadmap](https://zaai.com/jekyll-roadmap/) [![Install from RubyGems](https://zaai.com/distribution/rubygems.svg)](https://rubygems.org/gems/jekyll-roadmap)[Open Details](https://zaai.com/jekyll-roadmap/) JekyllRubyGemProduct Management Publish Gantt-style roadmaps as static pages inside your Jekyll site. No extra tooling. - [](https://zaai.com/jekyll-filepath/) [![Jekyll logo](https://zaai.com/jekyll/icon.png)](https://zaai.com/jekyll-filepath/) ### [Jekyll FilePath](https://zaai.com/jekyll-filepath/) [![Install from RubyGems](https://zaai.com/distribution/rubygems.svg)](https://rubygems.org/gems/jekyll-filepath)[Open Details](https://zaai.com/jekyll-filepath/) JekyllRubyGem Stop hardcoding image paths in every markdown file. One Liquid tag for predictable asset URLs. - [](https://zaai.com/clean-trello/) [![Trello Clean extension icon](https://zaai.com/clean-trello/icon.png)](https://zaai.com/clean-trello/) ### [Clean-Trello](https://zaai.com/clean-trello/) [![Available in the Chrome Web Store](https://zaai.com/distribution/chrome-icon.svg) Chrome Web Store](https://chromewebstore.google.com/detail/trello-clean/iodgmlcdnnjgiejimnifloaaaehkbdno) [Open Details](https://zaai.com/clean-trello/) Chrome ExtensionTrello.com Hides Trello's persistent 'Add a list…' column so your boards stay clean. --- # Products URL: https://zaai.com/products/ Description: Tools I've designed and built, from home energy management to browser extensions and developer utilities. Products # Tools I've designed and built. From home energy management to browser extensions and developer utilities. Each product includes source code, documentation, and the thinking behind it. ## iOS Apps Native iPhone tools that live where you do, on the Home Screen and Lock Screen. Useful, glanceable, and quiet about it. - [](https://zaai.com/do-git-work/) [![Do Git Work app icon](https://zaai.com/do-git-work/AppIcon.png)](https://zaai.com/do-git-work/) ### [Do Git Work](https://zaai.com/do-git-work/) [![Download on the App Store](https://zaai.com/distribution/app-store.svg)](https://apps.apple.com/us/app/do-git-work/id6760287404)[Open Details](https://zaai.com/do-git-work/) GitGitHub ProfileiOS App Track your commits from your Home Screen and Lock Screen. Beautiful widgets, streak tracking, and a 7-day graph. No GitHub sign-in required. ## Developer Tools Command-line utilities, plugins, and prototypes that smooth out the friction in everyday development. Each one does a single job and stays out of the way. - [](https://zaai.com/astro-aeo/) [![Astro logo](https://zaai.com/astro/icon.svg)](https://zaai.com/astro-aeo/) ### [Astro-AEO](https://zaai.com/astro-aeo/) [![Install from npm](https://zaai.com/distribution/npm.svg)](https://www.npmjs.com/package/astro-aeo)[Open Details](https://zaai.com/astro-aeo/) AstroNPMAEOAI Search Make your Astro site visible to AI search engines, assistants, and LLMs. One integration, zero config, nine features. - [](https://zaai.com/c5h/) [![C5h app icon](https://zaai.com/c5h/AppIcon.png)](https://zaai.com/c5h/) ### [C5h](https://zaai.com/c5h/) [Open Details](https://zaai.com/c5h/) macOSClaude CodeCodexSchedulingDeveloper Tool Plan, trigger, and track your 5-hour Claude Code and Codex windows from a native macOS app. - [](https://zaai.com/dx26/) [![DX26 logo](https://zaai.com/dx26/icon.svg)](https://zaai.com/dx26/) ### [DX26](https://zaai.com/dx26/) [Open Details](https://zaai.com/dx26/) Next.jsReactTailwindCatalystZustandBunAIPrototype A Next.js prototype of a result-first coding-agent chat product. The live demo shows a scripted ZAAI-com todo-app thread with decisions, artifacts, agent fan-out, failures, and a PR handoff. - [](https://zaai.com/jekyll-aeo/) [![Jekyll logo](https://zaai.com/jekyll/icon.png)](https://zaai.com/jekyll-aeo/) ### [Jekyll-AEO](https://zaai.com/jekyll-aeo/) [![Install from RubyGems](https://zaai.com/distribution/rubygems.svg)](https://rubygems.org/gems/jekyll-aeo)[Open Details](https://zaai.com/jekyll-aeo/) JekyllRubyGemAEOAI Search Make your Jekyll site visible to AI search engines, assistants, and LLMs. One gem, zero config, eight features. - [](https://zaai.com/git-same/) [![Folder with Git branch icon](https://zaai.com/git-same/icon.svg)](https://zaai.com/git-same/) ### [Git-Same](https://zaai.com/git-same/) [![Install with Homebrew](https://zaai.com/distribution/homebrew.svg) Homebrew](https://github.com/ZAAI-com/homebrew-tap/blob/main/Casks/git-same.rb) [Open Details](https://zaai.com/git-same/) GitCLIHomebrewmacOSFinder AppFinder Badges Mirror GitHub org and repo structures locally. One Homebrew install, interactive TUI, parallel cloning. ## Energy Apps Tools that pull every solar inverter, battery, and EV into one place. Built around real households, real bills, and the German energy mix. - [](https://zaai.com/powernight/) [![PowerNight app icon](https://zaai.com/powernight/icon.png)](https://zaai.com/powernight/) ### [PowerNight](https://zaai.com/powernight/) [![Available on Docker Hub](https://zaai.com/distribution/docker.svg)](https://hub.docker.com/r/zaaicom/powernight)[Open Details](https://zaai.com/powernight/) EnergyTesla PowerwallDocker Container Charge your Tesla Powerwall from the grid overnight, automatically. Local-first web UI. - [](https://zaai.com/powerbeat/) [![Powerbeat app icon](https://zaai.com/powerbeat/icon.png)](https://zaai.com/powerbeat/) ### [Powerbeat](https://zaai.com/powerbeat/) [Open Details](https://zaai.com/powerbeat/) EnergyHome Energy ManagerUI Prototype Solar, battery, EV charging, and daily energy decisions in one interface, built for homeowners. ## Chrome Extensions Browser extensions that fix small daily annoyances in the services I use most. Privacy-first by default, with no telemetry and the source on GitHub. - [](https://zaai.com/clean-google-maps/) [![Clean Google Maps icon](https://zaai.com/clean-google-maps/icon-128.png)](https://zaai.com/clean-google-maps/) ### [Clean Google Maps](https://zaai.com/clean-google-maps/) [![Available in the Chrome Web Store](https://zaai.com/distribution/chrome-icon.svg) Chrome Web Store](https://chromewebstore.google.com/detail/clean-google-maps/kdhglacniobgebpechcldajbgbmmodhh) [Open Details](https://zaai.com/clean-google-maps/) Chrome ExtensionGoogle MapsMarkersDecluttering Shrink Google Maps pins, or turn them into small coloured dots. Your places and labels all stay exactly where they are. - [](https://zaai.com/clean-autofill/) [![Clean Autofill icon](https://zaai.com/clean-autofill/icon-128.png)](https://zaai.com/clean-autofill/) ### [Clean Autofill](https://zaai.com/clean-autofill/) [![Available in the Chrome Web Store](https://zaai.com/distribution/chrome-icon.svg) Chrome Web Store](https://chromewebstore.google.com/detail/clean-autofill/klbbkndjohchnidkbnjijdbggfadpppf) [Open Details](https://zaai.com/clean-autofill/) Chrome ExtensionEmailsAutofillGmailDomains Generate a unique email address for every signup. Track who shares your data, filter spam easily, and stay in control. All without typing. - [](https://zaai.com/clean-trello/) [![Trello Clean extension icon](https://zaai.com/clean-trello/icon.png)](https://zaai.com/clean-trello/) ### [Clean-Trello](https://zaai.com/clean-trello/) [![Available in the Chrome Web Store](https://zaai.com/distribution/chrome-icon.svg) Chrome Web Store](https://chromewebstore.google.com/detail/trello-clean/iodgmlcdnnjgiejimnifloaaaehkbdno) [Open Details](https://zaai.com/clean-trello/) Chrome ExtensionTrello.com Hides Trello's persistent 'Add a list…' column so your boards stay clean. ## Ruby Gems Plugins for Jekyll-powered sites and the broader Ruby ecosystem. Drop them in, edit your config, ship the same day. - [](https://zaai.com/jekyll-roadmap/) [![Jekyll logo](https://zaai.com/jekyll/icon.png)](https://zaai.com/jekyll-roadmap/) ### [Jekyll Roadmap](https://zaai.com/jekyll-roadmap/) [![Install from RubyGems](https://zaai.com/distribution/rubygems.svg)](https://rubygems.org/gems/jekyll-roadmap)[Open Details](https://zaai.com/jekyll-roadmap/) JekyllRubyGemProduct Management Publish Gantt-style roadmaps as static pages inside your Jekyll site. No extra tooling. - [](https://zaai.com/jekyll-filepath/) [![Jekyll logo](https://zaai.com/jekyll/icon.png)](https://zaai.com/jekyll-filepath/) ### [Jekyll FilePath](https://zaai.com/jekyll-filepath/) [![Install from RubyGems](https://zaai.com/distribution/rubygems.svg)](https://rubygems.org/gems/jekyll-filepath)[Open Details](https://zaai.com/jekyll-filepath/) JekyllRubyGem Stop hardcoding image paths in every markdown file. One Liquid tag for predictable asset URLs. --- # ZAAI Product Engineering Lab: Tools by Manuel Gruber URL: https://zaai.com/ Description: Open-source tools for home energy management, browser productivity, and developer workflows. Designed and built by Manuel Gruber. Manuel Gruber · Product Builder # Building simple solutions for complex problems. Two decades of product leadership across Munich, Berlin, Singapore, Dubai, and San Francisco, now turned toward home energy, browser privacy, and developer tooling. A new app release every month this year. [Read the commitment for 2026.](https://zaai.com/products/2026/) [zaai-com](https://github.com/zaai-com) [manuelgruber](https://github.com/manuelgruber) [manuelgruber](https://www.linkedin.com/in/manuelgruber/) ## Featured Two of my favorite Git utilities, built to remove everyday friction. - [](https://zaai.com/git-same/) [![Folder with Git branch icon](https://zaai.com/git-same/icon.svg)](https://zaai.com/git-same/) ### [Git-Same](https://zaai.com/git-same/) [![Install with Homebrew](https://zaai.com/distribution/homebrew.svg) Homebrew](https://github.com/ZAAI-com/homebrew-tap/blob/main/Casks/git-same.rb) [Open Details](https://zaai.com/git-same/) GitCLIHomebrewmacOSFinder AppFinder Badges Mirror GitHub org and repo structures locally. One Homebrew install, interactive TUI, parallel cloning. - [](https://zaai.com/do-git-work/) [![Do Git Work app icon](https://zaai.com/do-git-work/AppIcon.png)](https://zaai.com/do-git-work/) ### [Do Git Work](https://zaai.com/do-git-work/) [![Download on the App Store](https://zaai.com/distribution/app-store.svg)](https://apps.apple.com/us/app/do-git-work/id6760287404)[Open Details](https://zaai.com/do-git-work/) GitGitHub ProfileiOS App Track your commits from your Home Screen and Lock Screen. Beautiful widgets, streak tracking, and a 7-day graph. No GitHub sign-in required. ## Explore everything Each project reflects a real problem: home energy fragmentation, email privacy, developer workflow friction. Source code, documentation, and the reasoning behind each design decision ship together. [Continue to all products →](https://zaai.com/products/) --- # Astro-AEO URL: https://zaai.com/astro-aeo/ Description: Make your Astro site visible to AI search engines, assistants, and LLMs. One integration, zero config, nine features. ![Astro logo](https://zaai.com/astro/icon.svg) NPM Package # Your Astro site, ready for every AI search. One integration hooks into astro build and generates everything AI systems need to discover, parse, and cite your content: clean markdown copies, llms.txt, structured JSON-LD, crawler policies, and domain identity. Zero config, no external services. [View on npm](https://www.npmjs.com/package/astro-aeo) [GitHub →](https://github.com/ZAAI-com/Astro-AEO) $npx astro add astro-aeo CopyCopied [npm](https://www.npmjs.com/package/astro-aeo) [GitHub](https://github.com/ZAAI-com/Astro-AEO) [README](https://github.com/ZAAI-com/Astro-AEO#readme) [Setup prompt](https://zaai.com/astro-aeo/setup-prompt/) ## What AI reads, before and after. No AI crawler except Google renders JavaScript, so most systems see your raw HTML. A typical page is 85-95% markup. The .md copy keeps the meaning and drops the noise.
index.html (what most bots see)
<!doctype html>
<html lang="en">
  <head>
    <script src="/_astro/client.9f2a.js"></script>
    <link rel="stylesheet" href="/_astro/index.4c1b.css" />
  </head>
  <body>
    <nav class="site-header"><!-- 40 nav links --></nav>
    <div class="layout-grid">
      <main>
        <h1>Launching v2.0</h1>
        <p>Our biggest release yet.</p>
      </main>
    </div>
    <footer class="site-footer"><!-- ... --></footer>
    <script src="/_astro/analytics.7d3e.js"></script>
  </body>
</html>
about.md (what Astro-AEO ships)
# Launching v2.0

Our biggest release yet.
Clean markdown is 20-30% fewer tokens than HTML. A site-wide llms-full.txt reaches 90%+ token reduction overall. ## One build, every AI artifact. Run astro build and Astro-AEO writes these alongside your static site. Real files, real formats, committed to your repo. output of astro build ``` dist/ ├─ index.html ├─ about/index.html ├─ about.md ← clean markdown copy ├─ blog/launching-v2.md ├─ llms.txt ← site index ├─ llms-full.txt ← full concatenation ├─ robots.txt ← search allow / training block └─ .well-known/ └─ domain-profile.json docs/Url-Map.md ← committable page map ``` `about.md` per page A clean markdown copy of every HTML page, nav and scripts stripped. ``` # Launching v2.0 Our biggest release yet. The full post, as clean markdown... ``` `llms.txt` site index A structured index of your whole site, per the llmstxt.org spec. ``` # My Website > A website about building great products ## Pages - [About](/about.md): Our company and mission - [Pricing](/pricing.md): Plans for every tier ## Blog Posts - [Launching v2.0](/blog/launching-v2.md): Our biggest release yet ``` `llms-full.txt` full corpus Every page's markdown concatenated into one file for full-context reads. ``` # My Website ## /about.md # About Our company and mission... ## /pricing.md # Pricing Plans for every tier... ``` `robots.txt` bot policy Allows search and retrieval bots, blocks training bots. ``` User-agent: OAI-SearchBot # allow search Allow: / User-agent: GPTBot # block training Disallow: / Sitemap: https://yoursite.com/sitemap-index.xml # llms.txt: https://yoursite.com/llms.txt ``` `.well-known/domain-profile.json` identity Authoritative site identity, per the AI Domain Data spec. ``` { "name": "My Website", "url": "https://yoursite.com", "description": "A website about building great products", "sameAs": ["https://github.com/you"] } ``` `docs/Url-Map.md` audit A committable table of every page: URL, markdown path, title, date. ``` | URL | Markdown | Title | Last modified | |---|---|---|---| | /about/ | /about.md | About | 2026-07-06 | | /pricing/ | /pricing.md | Pricing | 2026-07-01 | ``` ## How it works Astro-AEO hooks into the standard Astro integration lifecycle. No separate build step, no post-processing scripts, no external services. 1. 1 ### Astro renders Every route is rendered to static HTML during astro build, after your other integrations run. 2. 2 ### HTML is collected At the astro:build:done hook, Astro-AEO reads each HTML page exactly once. 3. 3 ### Markdown is extracted Turndown strips nav, footers, scripts, and styles, leaving clean structured markdown. 4. 4 ### Artifacts fan out One pass writes the .md copy, llms.txt, robots.txt, domain profile, and URL map. 5. 5 ### Output is validated npx astro-aeo validate confirms every artifact exists and is well formed. ## Nine features, one install. Four are on by default, one ships as importable components, three are opt-in, and one is a CLI you run whenever you like. - ### Generate .md files A clean .md companion for every page: content preserved, nav, scripts, and styles removed. Title, description, and date can be prepended as frontmatter. - ### Inject link tags Adds to every page so AI crawlers discover the machine-readable copy without knowing your URL scheme. - ### Generate llms.txt A structured /llms.txt index plus a concatenated /llms-full.txt, following the llmstxt.org spec. Sections are configurable by glob, RegExp, or predicate. - ### Generate JSON-LD Importable schema.org components from astro-aeo/components: FAQPage, HowTo, BreadcrumbList, Organization, Speakable, and Article. - ### Generate robots.txt One policy that allows search and retrieval bots, blocks training bots, and adds Sitemap and llms.txt directives. Warns before replacing a robots.txt you already ship. - ### Generate domain profile Publishes /.well-known/domain-profile.json for authoritative site identity, per the AI Domain Data spec. Auto-populated from your config. - ### Generate URL map A committable docs/Url-Map.md table of every page, with URLs, markdown paths, titles, and last-modified dates, for use as a content audit. - ### Preview in dev astro dev serves llms.txt, robots.txt, and every .md companion live. See what AI crawlers will read while you edit, with no build step. - ### Validate output npx astro-aeo validate checks llms.txt, markdown links, alternate tags, and the domain profile. Use --strict to fail on warnings and --json for CI. ### Six JSON-LD components Import from `astro-aeo/components` and drop into any layout. Each renders a single, XSS-safe script tag; BreadcrumbList builds itself from the URL.
ComponentMarks upUse it on
BreadcrumbListSite hierarchy, derived from the URLMost pages, no props needed
OrganizationBrand identityThe homepage
FAQPageQuestion and answer pairsFAQ, docs, support
HowToStep-by-step instructionsTutorials and guides
SpeakableVoice-readable sectionsAssistant-friendly pages
ArticleHeadline, author, and datesBlog posts and news
src/layouts/Base.astroCopyCopied ``` --- import { FaqJsonLd, BreadcrumbJsonLd } from 'astro-aeo/components'; --- ``` ## Allow the search bots, block the trainers. The generated robots.txt lets your content appear in AI answers while keeping it out of training datasets. You get the citation benefit without feeding the models. ### Allowed: search and retrieval - OAI-SearchBot - ChatGPT-User - Claude-SearchBot - Claude-User - PerplexityBot - Googlebot - Bingbot - Applebot-Extended ### Blocked: model training - GPTBot - ClaudeBot - Google-Extended - Applebot - Meta-ExternalAgent - Amazonbot robots.txt ``` User-agent: OAI-SearchBot # allow search Allow: / User-agent: GPTBot # block training Disallow: / Sitemap: https://yoursite.com/sitemap-index.xml # llms.txt: https://yoursite.com/llms.txt ``` ### The AI crawler landscape
CompanySearch / retrieval botTraining botNotes
OpenAIOAI-SearchBot, ChatGPT-UserGPTBotChatGPT-User no longer respects robots.txt
AnthropicClaude-SearchBot, Claude-UserClaudeBotRespects robots.txt and Crawl-delay
PerplexityPerplexityBot, Perplexity-UserNonePerplexity-User ignores robots.txt
GoogleGooglebotGoogle-ExtendedThe only platform that renders JavaScript
MicrosoftBingbotNonePowers a large share of ChatGPT citations
AppleApplebot-ExtendedApplebotApple Intelligence
MetaNoneMeta-ExternalAgentTraining only
AmazonNoneAmazonbotTraining and Alexa
## Quick start, under five minutes. Three steps to an AI-readable site. Follow the [setup prompt](https://zaai.com/astro-aeo/setup-prompt/) to hand the whole thing to your coding agent. 1. ### 1 Install Wire the integration automatically, or add it by hand with `bun add astro-aeo`. AutomaticManual npx astro add astro-aeoCopyCopied terminal ``` npx astro add astro-aeo ``` 2. ### 2 Build Check dist/ for a .md companion per page, plus llms.txt and llms-full.txt at the root. terminalCopyCopied ``` astro build ``` 3. ### 3 Validate Confirm the output is complete and well formed. Add `--strict` for CI. terminalCopyCopied ``` npx astro-aeo validate ``` ## Built for every AI platform. Cited domains overlap little across platforms, so a shared technical foundation (clean markdown, llms.txt, domain profile, robots.txt) is the highest-leverage investment: it works everywhere at once.
PlatformLeans onNotable source
ChatGPTReferring domains, domain trafficWikipedia and the Bing index
PerplexityRecency, semantic relevanceReddit and its own index
ClaudeBrand authority, content qualityBrave Search
Google AI OverviewsSchema markup, E-E-A-TGoogle Search
### What the research says The GEO study ([Generative Engine Optimization](https://arxiv.org/abs/2311.09735), Princeton, Georgia Tech, Allen AI, and IIT Delhi; ACM SIGKDD 2024) tested nine optimization methods. Citing sources, adding quotations, and adding statistics each lifted visibility 30-40%. Keyword stuffing did not help. Astro-AEO makes your content technically accessible. These principles make it worth citing once it is.
Answer first
Lead each section with a direct, concise answer. AI systems extract the opening of a relevant section most often.
Fact density
Include concrete statistics, data points, and cited sources. This is the highest-impact content change GEO found.
Clear hierarchy
Use H2 and H3 headings as semantic boundaries and keep sections focused, the shape retrieval prefers.
Tables and lists
AI systems reliably extract structured tabular data and numbered steps, so lead with them where you can.
Content freshness
Refresh on a regular cadence. Astro-AEO writes last-modified dates into the URL map automatically.
Neutral tone
Encyclopedic, authoritative prose surfaces in AI answers more often than opinion-heavy writing.
## Built with - TypeScript - Astro - Turndown - Schema.org JSON-LD ### Designed to coexist Astro-AEO works alongside the integrations you already use. Your sitemap URL lands in the generated robots.txt automatically, it runs after @astrojs/mdx and @astrojs/react render your pages, and it skips redirect stubs. Install them together and they cooperate with nothing to configure. Node 20 or newer. Astro 5 or newer. MIT licensed. Built and maintained by [ZAAI](https://zaai.com/). ## Questions worth asking.
Does Astro-AEO work with my existing Astro setup?
Yes. It runs after @astrojs/mdx and @astrojs/react render your pages, complements @astrojs/sitemap, and skips redirect stubs. Whatever produces HTML gets a markdown copy.
Does it need external services or API keys?
No. Everything is generated locally during astro build. There are no external calls and no runtime dependencies.
What is the difference between llms.txt and llms-full.txt?
llms.txt is a structured index of your site with a link to each page's markdown. llms-full.txt concatenates every page's markdown into a single file for full-context ingestion.
Will it overwrite a robots.txt I already have?
No. It warns before replacing a robots.txt you ship in public/, and it adds Sitemap and llms.txt directives to the policy it generates.
Which Node and Astro versions are required?
Node 20 or newer and Astro 5 or newer. Astro-AEO is MIT licensed.
## Make your Astro site AI-readable. One astro add, and every page ships a clean markdown copy, an llms.txt index, and a crawler policy. [View on npm](https://www.npmjs.com/package/astro-aeo) [GitHub](https://github.com/ZAAI-com/Astro-AEO) --- # C5h URL: https://zaai.com/c5h/ Description: Plan, trigger, and track your 5-hour Claude Code and Codex windows from a native macOS app. ![C5h app icon](https://zaai.com/c5h/AppIcon.png) macOS App # Plan your 5-hour Claude windows like meetings. A native macOS app for planning, triggering, and tracking your 5-hour Claude Code and Codex windows. ## Install Install with Homebrew on macOS 26 (Tahoe) or later. $brew install --cask zaai-com/tap/c5h CopyCopied The cask is signed and notarized. Then launch C5h and connect your Claude and Codex CLIs from the Providers tab. ## Plan it, run it, see what shipped. C5h lays your planned 5-hour blocks next to the actual runs, so the day reads at a glance. 06:00 07:00 08:00 09:00 10:00 11:00 Planned Claude Code · 5h 06:00 to 11:00 Actual Claude Code · 5h 06:00 to 11:00
C5h Today calendar packed with 5-hour windows across Claude and Codex, each block labeled with its 5-hour and 7-day usage
A full day on the Today calendar: Claude and Codex windows side by side, planned blocks beside live runs, and every block labeled with its 5-hour and 7-day usage, so you always know how much headroom is left before a limit. It even captures the upgrade from Claude Pro to Claude Max 5x at 13:40, where the same usage suddenly barely registers against the new, higher limit.
## Built for the 5-hour rhythm - ### Calendar planning Drop 5-hour windows on a day or week grid for each provider. Drag to move, click to inspect. - ### Multi-provider, one app Claude Code and OpenAI Codex side by side. Pick a provider per window, run prompts against either. - ### Scheduled prompts Attach a prompt to a window and the helper fires the CLI at the right time, even with the app closed. - ### Usage tracking Token and cost snapshots per provider, with a 7-day sparkline on the dashboard. - ### Local-first Every plan, run, and log lives in SQLite under ~/Library/Application Support/C5h. No cloud, no sync, no account. - ### Native macOS SwiftUI, real menu bar, real notifications, real LaunchAgent. No Electron, no web view. ## How it works 1. 1 ### Plan Drop a 5-hour window on the calendar for Claude or Codex. 2. 2 ### Schedule Optionally attach a prompt to run at the start of the window. 3. 3 ### Run The helper fires the CLI and captures stdout, stderr, exit code, and tool version. 4. 4 ### Review Planned vs actual blocks render side by side. Logs, usage, and run details are one click away. ## Why not just a script
 C5hRaw CLICron and scripts
Calendar planning for 5-hour windowsYesNoNo
Claude Code and Codex in one UIYesNoNo
Per-provider token and cost trackingYesPartialNo
Scheduled background runsYesNoYes
Searchable run log with stdout and stderrYesPartialPartial
Native macOS UI, no terminal neededYesNoNo
## Providers - Claude Code ✓ - OpenAI Codex ✓ ## Screens
C5h dashboard with usage trend, active windows, weekly limits, provider health, and recent runs
Dashboard: usage trend, active 5-hour windows, weekly limits, provider health, and recent runs
Today calendar with planned 5-hour windows beside actual runs for each provider
Today: planned windows beside actual runs, per provider
Today calendar packed with 5-hour windows across Claude and Codex
Today: a packed day of 5-hour windows across Claude and Codex
Week calendar of 5-hour windows for Claude and Codex
Week: 5-hour windows across the week for Claude and Codex
Logs view with command runs, status, duration, and a run detail panel
Logs: every command run with status, duration, and full detail
Providers view with detected Claude and Codex CLIs, status, and commands
Providers: detected Claude and Codex CLIs with status and commands
Settings view with data paths, LaunchAgent, helper health, refresh, and time zone
Settings: data paths, LaunchAgent, helper health, refresh, and time zone
## Under the hood - SwiftUI - Swift Concurrency - GRDB SQLite - SMAppService LaunchAgent - Foundation Process ## Install Install with Homebrew on macOS 26 (Tahoe) or later. $brew install --cask zaai-com/tap/c5h CopyCopied The cask is signed and notarized. Then launch C5h and connect your Claude and Codex CLIs from the Providers tab. --- # Clean Autofill URL: https://zaai.com/clean-autofill/ Description: Generate a unique email address for every signup. Track who shares your data, filter spam easily, and stay in control. All without typing. ![Clean Autofill icon](https://zaai.com/clean-autofill/icon-128.png) Chrome Extension # One-click email autofill, for every website. Generate a unique email address for every signup. Track who shares your data, filter spam easily, and stay in control. All without typing. [![Available in the Chrome Web Store](https://zaai.com/clean-autofill/chrome-web-store-badge.png)](https://chromewebstore.google.com/detail/clean-autofill/klbbkndjohchnidkbnjijdbggfadpppf)[Add to Chrome](https://chromewebstore.google.com/detail/clean-autofill/klbbkndjohchnidkbnjijdbggfadpppf) ## How It Works Three steps. One-time setup. Then it's just one click.
1 Configure once

Enter your email address or domain in settings. The extension detects your provider automatically.

2 Visit any website

Navigate to any signup or login page. github.com, amazon.com, spotify.com, anywhere.

3 Click the icon

Clean Autofill generates a unique email and fills it into the form. Done.

- github.com → github.com@yourdomain.com Catch-All - github.com → you+github.com@gmail.com Plus Addressing - amazon.com → amazon.com@yourdomain.com Catch-All - amazon.com → you+amazon.com@gmail.com Plus Addressing ## Two Modes, Works With Any Email Clean Autofill supports two email generation modes. The extension detects your provider and shows which mode works for you. ### Plus-Addressing Most Users `you+website.com@gmail.com` - Uses the + trick supported by Gmail, Outlook, ProtonMail, Fastmail, and more - No special setup required. Works with your existing email - Enter your full email address and you're ready to go - Heads-up: a few signup forms strip the + character. Catch-All mode avoids this. ### Catch-All Prefix Power Users `website.com@yourdomain.com` - Uses your custom domain with catch-all email routing - Cleanest format. The site domain becomes the email prefix - Best for users who own their email domain - Resilient: never stripped or blocked by signup forms that reject the + character Most users do fine with Plus-Addressing. If you own a domain, Catch-All is more robust because some signup forms strip the + character. The extension auto-detects your provider and shows which modes work for you. ![Clean Autofill Settings with Plus Addressing mode selected and provider detection](https://zaai.com/clean-autofill/screenshots/Options-2a-Settings-PlusAddressing.png) ## See It In Action One click on any signup form. The email is generated, filled, and ready to go. - ![Clean Autofill popup filling a unique email on Netflix signup](https://zaai.com/clean-autofill/screenshots/Signup-Netflix.com-Filled.png) - ![Clean Autofill popup filling a unique email on TED signup](https://zaai.com/clean-autofill/screenshots/Signup-TED.com-Filled.png) - ![Clean Autofill popup filling a unique email on Ubiquiti signup](https://zaai.com/clean-autofill/screenshots/Signup-UI.com-Filled.png) ## Why Use Unique Email Addresses? Every signup gets its own address. Here's why that matters.
Track Data Leaks
Instantly know which company sold or leaked your email address. Each site has a unique address that traces back to the source.
Filter Your Inbox
Create inbox rules based on which address received the mail. Organize by service without manual labels.
Control Spam
Disable a single address without affecting everything else. Cut off spam at the source.
Stay Organized
Every signup has its own address, automatically. No more wondering which email you used for which service.
## Inside the Extension Configure once, then forget about it. Everything is organized and accessible. - ![Clean Autofill Home tab showing how it works and example email addresses](https://zaai.com/clean-autofill/screenshots/Options-1-Home.png) Home - ![Clean Autofill History tab with searchable list of all generated emails](https://zaai.com/clean-autofill/screenshots/Options-3-History.png) History - ![Clean Autofill Settings with Plus Addressing mode selected and provider detection](https://zaai.com/clean-autofill/screenshots/Options-2a-Settings-PlusAddressing.png) Settings with Plus-Addressing - ![Clean Autofill Settings with Catch-All Prefix mode selected for custom domains](https://zaai.com/clean-autofill/screenshots/Options-2b-Settings-CatchAll.png) Settings with Catch-All - ![Clean Autofill Help tab with step-by-step catch-all setup guides for major providers](https://zaai.com/clean-autofill/screenshots/Options-4-Help.png) Help ## Features Everything you need, nothing you don't.
One-Click Fill
Click the extension icon and your email is instantly generated and filled into the form.
Smart Field Detection
Finds email fields automatically, or fills your currently focused field. Works with React, Vue, and all major frameworks.
Email History New
Searchable log of every email you've generated. Copy or delete any entry. Never forget which address you used.
Provider Detection New
Automatically detects your email provider and shows which modes work for you. Supports 20+ providers.
Chrome Profile Import New
Detects your logged-in Chrome account email for faster setup. One click to use your profile email.
Cross-Device Sync
Settings sync across Chrome browsers via your Google account. Set up once, use everywhere.
## Supported Email Providers Automatic provider detection with 20+ email providers recognized. ![Gmail](https://zaai.com/clean-autofill/providers/gmail.png "Gmail") ![Google Workspace](https://zaai.com/clean-autofill/providers/google-workspace.png "Google Workspace") ![Outlook](https://zaai.com/clean-autofill/providers/outlook.png "Outlook") ![ProtonMail](https://zaai.com/clean-autofill/providers/protonmail.png "ProtonMail")
ProviderPlus AddressingCatch-All
Gmail-
Google Workspace
Outlook / Hotmail / Live-
Microsoft 365
Proton Mail-
Proton Mail for Business
Fastmail-
Mailbox.org-
Custom Domain✓*
iCloud--
Yahoo--
\* If your email host supports plus addressing. ## Privacy-First Nothing leaves the browser. No tricks, no fine print. - No data is collected or transmitted - Your email is stored locally in Chrome's sync storage - No analytics, no tracking, no external servers - Open source. Inspect every line of code [Privacy Policy →](https://github.com/ZAAI-com/Clean-Autofill/blob/main/docs/PRIVACY.md) [View Source Code →](https://github.com/ZAAI-com/Clean-Autofill) ## Get Clean Autofill Free and open source. Available on the Chrome Web Store. [![Available in the Chrome Web Store](https://zaai.com/clean-autofill/chrome-web-store-badge.png)](https://chromewebstore.google.com/detail/clean-autofill/klbbkndjohchnidkbnjijdbggfadpppf)[Add to Chrome](https://chromewebstore.google.com/detail/clean-autofill/klbbkndjohchnidkbnjijdbggfadpppf) [View on GitHub →](https://github.com/ZAAI-com/Clean-Autofill) Open source·Privacy-first·No data collection --- # Clean Google Maps URL: https://zaai.com/clean-google-maps/ Description: Shrink Google Maps pins, or turn them into small coloured dots. Your places and labels all stay exactly where they are. ![Clean Google Maps icon](https://zaai.com/clean-google-maps/icon-128.png) Chrome Extension # See the map, not the pins. Shrink Google Maps pins, or turn them into small coloured dots. Your places and labels all stay exactly where they are. [![Available in the Chrome Web Store](https://zaai.com/clean-autofill/chrome-web-store-badge.png)](https://chromewebstore.google.com/detail/clean-google-maps/kdhglacniobgebpechcldajbgbmmodhh)[Add to Chrome](https://chromewebstore.google.com/detail/clean-google-maps/kdhglacniobgebpechcldajbgbmmodhh) ![Pick a style. Save. Done. The Clean Google Maps popup open over a satellite map of Munich, with Small icons selected and the size slider at 50 percent.](https://zaai.com/clean-google-maps/lead-popup.webp) ## The same view, twice. One account, one camera, one zoom. On the left, the Dots only style. On the right, Google Maps as it ships. This is a signed-in map, so the yellow markers are saved places.
Munich at zoom 13, with every place marker drawn as a small coloured dotThe same Munich view with Google’s original full size place markers covering the cityDots onlyGoogle original
Drag the handle, or focus it and use the arrow keys.
Dots only uses 579 marker pixels here, down from Google’s 78,074. Not one place or label was removed to get there. ## Quieter markers, same map.
Pins stop competing with the map
Markers are redrawn smaller, or replaced by a coloured dot, before Google Maps paints them into the map canvas. Streets, water, parks and place names are untouched.
The colour still tells you what it is
Every dot takes its colour from the pin it replaces. A restaurant stays red, a saved place stays yellow, a custom list stays cyan.
Nothing moves
Markers keep their original dimensions, so anchor points and click targets do not shift. Taps land exactly where they did before.
## Four styles. Pick one. Every frame below is a real capture of the same map. Small icons is the default, at 50 percent, and it is the only style that reads the size slider.
Munich at zoom 13, satellite, with every place marker drawn as a small coloured dot
Dots only
Dots onlyTurn place icons into small coloured dots.Icons & DotsDots at wide views, icons up close.Small iconsKeep markers as icons at one smaller size.Google originalUse Google Maps’ original marker appearance. Icons & Dots and Small icons look alike here for a reason: this view is zoom 13, where the Icons & Dots curve lands at 52.9%, next to Small icons at 50%. The next section is where the two part company. ## Icons & Dots follows your zoom. There is no room for artwork when you are looking at a whole region, so markers become dots. As you zoom in the real Google icons return and keep growing, on a fixed curve, up to 90% at zoom 22.
Bavaria and Austria at zoom 7, with every saved place drawn as a small coloured dot
Zoom 7 · Dots The curve’s target here is 28%, under the 30% legibility floor, so nothing is drawn as an icon.
Central Munich at zoom 17, with place markers at roughly 69 percent of their original size
Zoom 17 · 69.4% Close enough to read a pin at a glance, still smaller than Google draws it.
Dots through zoom 7. The first icon appears at zoom 8 at about 32%, then grows to 90% at zoom 22 and stops. Icons & Dots runs on its own curve and ignores the size slider. ## One click, four choices. The whole interface is one panel. Each card previews three real Google markers, a starred place, a custom-list place and a restaurant, drawn the way that style draws them, so you can see the result before you commit to it. - Dots only. Turn place icons into small coloured dots. - Icons & Dots. Dots at wide views, icons up close. - Small icons. Keep markers as icons at one smaller size. - Google original. Use Google Maps’ original marker appearance. The icon size slider belongs to Small icons alone. Drag it toward smaller or larger markers, then save. Saving refreshes Google Maps when it is the tab you are on, so the change is visible immediately. ![The Clean Google Maps popup showing four marker style cards and the icon size slider](https://zaai.com/clean-google-maps/screenshots/popup.webp) ## What it does not do. This changes marker artwork and nothing else. The limits are worth stating plainly. - It does not remove places or labels. Google still decides what appears on your map. - It does not stop markers overlapping. Two places very close together still sit on top of each other. - It does not touch every marker. Places & saved, sponsored places and landmarks are transformed; public transport badges, road signs and the place you have selected stay Google original in every style. - It does not resize the map canvas, your photos, or any part of Google’s interface. - It does not move click targets, because it never changes a marker’s dimensions. - It is independent and is not affiliated with Google. ## Nothing is sent to us. The work happens in the tab, on images Google already sent you.
Two permissions
activeTab, used only to refresh the Maps tab after you click Save. storage, used only to remember your two settings.
No network requests
The extension calls no server of its own. There is no analytics, no telemetry, no account, and no remote code.
Two stored values
Your marker style and your icon size. That is the whole of it, kept in Chrome’s own synced settings.
Google Maps only
The install prompt lists a lot of sites because Google Maps runs on 187 country domains and Chrome cannot wildcard a top-level domain. It is google.<tld>/maps and nothing else.
## Four clicks to a quieter map. Needs Chrome 111 or later. There is nothing to configure and no account to create. 1. Add Clean Google Maps to Chrome from the Web Store. 2. Open Google Maps. The default is Small icons at 50 percent. 3. Click the extension icon and pick the style you want. 4. Click Save settings. Maps refreshes and the new markers appear. ## Questions.
Does this hide places from the map?
No. It only changes how a marker is drawn. Google decides which places and labels appear, and that decision is untouched. If a place was on your map before, it is still there.
Do my saved and starred places still show up?
Yes. Saved places, starred places and custom list places are all included, and each one keeps its own colour, so a starred place still reads as yours at a glance.
Does it work on google.co.uk or google.de?
Yes. Google Maps runs on 187 country domains and none of them redirect to google.com, so all 187 are covered. That is also why the install prompt lists so many sites: Chrome match patterns cannot wildcard a top-level domain.
Do icons ever come back at their original size?
Icons & Dots grows markers on a fixed curve that reaches 90 percent at zoom 22 and stops there. Small icons follows the size you choose in the popup. Choose Google original whenever you want Maps to draw every marker at its original size.
Can I turn it off without uninstalling it?
Yes. Choose Google original. In that style the extension does nothing at all and Maps draws its own markers.
What happens if something goes wrong?
It falls back to Google’s original marker. A failed transform leaves you with a full size pin, never a missing one or a broken map.
Which Chrome versions are supported?
Chrome 111 and later, on any desktop platform.
Map imagery and marker artwork are Google’s. This extension is independent and is not affiliated with Google. Read the [privacy policy](https://zaai.com/clean-google-maps/privacy/). ## In the Chrome Web Store. The five screenshots on the listing, in the order they appear there. - ![Store screenshot reading “Same map. Fewer pixels of pin.”, showing the same Munich view before and after, split down the middle](https://zaai.com/clean-google-maps/store/1-before-and-after.webp) - ![Store screenshot reading “Dots when you zoom out, icons up close.”, listing that nothing is removed, click targets never move, and no data leaves your browser](https://zaai.com/clean-google-maps/store/2-four-styles.webp) - ![Store screenshot reading “Icons & Dots follows your zoom.”, comparing a zoomed out view of dots with a zoomed in view of icons](https://zaai.com/clean-google-maps/store/3-follows-your-zoom.webp) - ![Store screenshot reading “Pick a style. Save. Done.”, showing the extension popup over a Google Maps view](https://zaai.com/clean-google-maps/store/4-the-popup.webp) - ![Store screenshot reading “Nothing leaves your browser.”, with cards for two permissions, no network requests, two stored values, and Google Maps only](https://zaai.com/clean-google-maps/store/5-privacy.webp) [Open the listing](https://chromewebstore.google.com/detail/clean-google-maps/kdhglacniobgebpechcldajbgbmmodhh) ## Try it on your own map. Free, and off by one click. Choose Google original at any time to switch it back without uninstalling anything. [![Available in the Chrome Web Store](https://zaai.com/clean-autofill/chrome-web-store-badge.png)](https://chromewebstore.google.com/detail/clean-google-maps/kdhglacniobgebpechcldajbgbmmodhh)[Add to Chrome](https://chromewebstore.google.com/detail/clean-google-maps/kdhglacniobgebpechcldajbgbmmodhh) [Privacy policy](https://zaai.com/clean-google-maps/privacy/) --- # Privacy Policy - Clean Google Maps URL: https://zaai.com/clean-google-maps/privacy/ Description: Privacy policy for the Clean Google Maps Chrome extension. No data collection, tracking, or developer-operated servers. Chrome Extension · Part of [Clean Google Maps](https://zaai.com/clean-google-maps/) # Privacy Policy - Clean Google Maps Privacy policy for the Clean Google Maps Chrome extension. No data collection, tracking, or developer-operated servers. **Effective date: August 28, 2026** > Clean Google Maps does not collect, sell, or share personal data. It has no developer-operated servers, analytics, telemetry, advertising, or user accounts. ## Overview Clean Google Maps (“the Extension”) redraws place markers on Google Maps in your browser. This policy explains which settings and permissions it uses and how you can remove its data. ## Settings Stored by the Extension The Extension stores only two preferences: - Your selected marker style - Your selected icon size These preferences are stored with `chrome.storage.sync` so Chrome can make them available in other Chrome browsers where you are signed in and have sync enabled. This storage and synchronization use Google’s Chrome infrastructure. ZAAI does not operate a server for these settings and cannot access them. ## Permissions and Website Access The Extension uses the following Chrome permissions and website access: - **`storage`** stores your marker-style and icon-size preferences in Chrome sync storage. - **`activeTab`** is used only after you click **Save settings**, and only to refresh the active Google Maps tab so your new marker settings appear immediately. - **Google Maps country domains** let the Extension redraw markers locally in your browser on Google Maps. Google Maps operates across many `google./maps` addresses, so Chrome’s install prompt lists those domains individually. The Extension does not use this access on unrelated pages. Marker rendering happens locally in the Google Maps tab, using images that Google Maps has already delivered to your browser. ## Data Not Collected or Shared The Extension does not: - Send data to developer-operated servers - Collect analytics, telemetry, diagnostics, or usage history - Include advertising or advertising identifiers - Create or require a ZAAI account - Sell, rent, disclose, or otherwise share your data - Load remote code ## Chrome and Google Infrastructure Your browser communicates with Google Maps as it normally would, and Chrome may synchronize the two Extension preferences through your Google account when Chrome sync is enabled. Those interactions are handled by Google under its own terms and privacy policies. ZAAI does not receive data from Chrome sync or from your use of Google Maps. ## Resetting or Deleting Your Settings You can restore the default preferences at any time with **Reset settings** in the Extension popup. Uninstalling Clean Google Maps removes the Extension and its local data from that Chrome profile. If Chrome sync is enabled, you can review and delete synchronized browser data through your Google account and Chrome sync controls. ## Changes to This Policy If this privacy policy changes, the revised version will be posted at this URL with an updated effective date. Material changes will also be described in the Extension’s release notes or Chrome Web Store listing where appropriate. ## Contact If you have questions about this privacy policy, contact [zaai-support@manuelgruber.com](mailto:zaai-support@manuelgruber.com). --- # Clean-Trello URL: https://zaai.com/clean-trello/ Description: Hides Trello's persistent 'Add a list…' column so your boards stay clean. ![Trello Clean extension icon](https://zaai.com/clean-trello/icon.png) Chrome Extension # Trello boards, without the noise. Hides Trello's persistent 'Add a list…' column so your boards stay clean. [![Available in the Chrome Web Store](https://zaai.com/distribution/chrome-icon.svg)](https://chromewebstore.google.com/detail/trello-clean/iodgmlcdnnjgiejimnifloaaaehkbdno)[Chrome Web Store](https://chromewebstore.google.com/detail/trello-clean/iodgmlcdnnjgiejimnifloaaaehkbdno) [GitHub →](https://github.com/ZAAI-com/trello-clean-chromium) Clean-Trello came from a specific product instinct: if a UI pattern is useful for onboarding but permanently noisy for experienced users, it should be optional. Trello’s redesign added a persistent “Add a list…” column on the right side of every board. For boards with only a handful of lists, it wastes screen space and introduces an unnecessary horizontal scrollbar. **Before:** Every board has an “Add a list…” column taking up space. **After:** That column is gone, and the board feels less cramped. ## How It Works - Install the extension from the Chrome Web Store - Refresh your Trello board tabs - The “Add a list…” column disappears immediately Under the hood, Clean-Trello uses CSS to hide the element. If you need to add a list, temporarily disable the extension in `chrome://extensions/`. ## Scope The small scope is the strength. Clean-Trello does not try to redesign Trello. It removes one persistent distraction and gets out of the way. ## Highlights - ### Removes the persistent 'Add a list…' bar from Trello boards. - ### Reclaims horizontal space, especially on boards with few columns. - ### Cleans up the interface for experienced Trello users who don't need onboarding hints. ## Tech Stack - CSS - Chrome Extensions - Chromium ## Screenshots
Trello board with the Add a list column removed, showing a cleaner layout
A board view with the extra list column removed.
Side-by-side comparison of a Trello board before and after Clean-Trello
Before and after: one fewer column, more room for your actual lists.
--- # Do Git Work URL: https://zaai.com/do-git-work/ Description: Track your commits from your Home Screen and Lock Screen. Beautiful widgets, streak tracking, and a 7-day graph. No GitHub sign-in required. ![Do Git Work app icon](https://zaai.com/do-git-work/AppIcon.png) iOS App # Your GitHub contributions, on your lockscreen. Track your commits from your Home Screen and Lock Screen. Beautiful widgets, streak tracking, and a 7-day graph. No GitHub sign-in required. [![Download on the App Store](https://developer.apple.com/assets/elements/badges/download-on-the-app-store.svg)](https://apps.apple.com/us/app/do-git-work/id6760287404) ![Dashboard showing today's contributions, 7-day graph, and streak](https://zaai.com/do-git-work/iPhone-Slide-02-Dashboard.png)![Lock Screen with contribution widgets](https://zaai.com/do-git-work/iPhone-Slide-01-Lockscreen-Widgets.png) ## Everything you need, nothing you don't.
Six Widget Sizes

Small, Medium, and Large for your Home Screen. Circular, Inline, and Rectangular for your Lock Screen. Pick what fits.

7-Day Graph

A color-coded contribution graph matching GitHub's own palette. See your week's activity at a glance.

Streak Tracking

Know exactly how many days in a row you've committed. Stay motivated and keep the streak alive.

iCloud Sync

Set your username once. Your settings sync across every iPhone and iPad automatically.

No Sign-In Required

Works with any public GitHub profile. No tokens, no OAuth, no permissions. Just your username.

[![Download on the App Store](https://developer.apple.com/assets/elements/badges/download-on-the-app-store.svg)](https://apps.apple.com/us/app/do-git-work/id6760287404) ![Lock Screen with contribution widgets](https://zaai.com/do-git-work/iPhone-Slide-01-Lockscreen-Widgets.png)![Settings screen with GitHub username configuration](https://zaai.com/do-git-work/iPhone-Slide-03-Setup.png) ## Dashboard The main app screen shows everything in one view: today's count prominently at top, a side-by-side comparison of this week versus last week using color-coded bar graphs, and a stats summary covering weekly, monthly, yearly totals and your current streak. ## How It Works Do Git Work reads your public GitHub contribution graph directly. No authentication is required - if a GitHub profile is public, the contribution data is accessible. The app caches data locally and shares it with the widget extension via App Groups. Refresh intervals are configurable from every 5 minutes to every 12 hours. ![Large widget on Home Screen](https://zaai.com/do-git-work/iPhone-Slide-05-Widget-Large.png)![Medium widget on Home Screen](https://zaai.com/do-git-work/iPhone-Slide-04-Widget-Medium.png) ## Widgets Do Git Work offers six widget configurations designed around Apple's widget system: Home Screen: - **Small** - today's count and your yearly total - **Medium** - today's count with a color-coded 7-day contribution graph - **Large** - the full picture: two-week graph, streak, and all key stats Lock Screen: - **Circular** - today's contribution count - **Inline** - today's count in a single line - **Rectangular** - today's count and yearly total Each widget pulls from cached contribution data, so there is always something to show - even offline. ## Privacy Nothing leaves your device except the HTTPS request to github.com to fetch your contribution page. No analytics, no tracking, no accounts. The only data stored is your GitHub username and preferences, synced via iCloud Key-Value Store. Last 7 days ## Start tracking today. Free on the App Store for iPhone. [![Download on the App Store](https://developer.apple.com/assets/elements/badges/download-on-the-app-store.svg)](https://apps.apple.com/us/app/do-git-work/id6760287404) [Privacy Policy](https://zaai.com/do-git-work/privacy/) [Support](https://zaai.com/do-git-work/support/) --- # Privacy Policy - Do Git Work URL: https://zaai.com/do-git-work/privacy/ Description: Privacy policy for Do Git Work iOS app. No data collection, no tracking. iOS App · Part of [Do Git Work](https://zaai.com/do-git-work/) # Privacy Policy - Do Git Work Privacy policy for Do Git Work iOS app. No data collection, no tracking. **Effective date: April 14, 2026** > Do Git Work does not collect, store, or transmit any personal data to external servers. All data stays on your device and within Apple’s iCloud infrastructure. ## Overview Do Git Work (“the App”) is a GitHub contributions tracker for iOS, developed by ZAAI. This policy explains what data the App accesses, how it is stored, and your rights regarding that data. ## Data the App Accesses The App accesses the following information: - **GitHub username** - entered by you in the App’s settings. This is used solely to fetch your public contribution data from GitHub. - **Public contribution data** - the App reads your public GitHub contribution graph (the same data visible to anyone on your GitHub profile page). This includes daily contribution counts and intensity levels. - **Timezone offset** - extracted from your public GitHub profile page to accurately align contribution dates. ## Data Stored on Your Device The following data is cached locally on your device to power the App’s dashboard and widgets: - Your GitHub username - Cached contribution data (dates, counts, intensity levels) - Your preferred refresh interval - Your GitHub profile’s timezone offset - A timestamp of the last data refresh This data is stored in the App Group container (`group.com.zaai.dogitwork`) so that iOS widgets can display your contribution stats. ## iCloud Sync The App uses Apple’s iCloud Key-Value Store to sync your settings (GitHub username and refresh interval) across your Apple devices. This data is stored and transmitted exclusively through Apple’s iCloud infrastructure. ZAAI does not operate any servers and has no access to your iCloud data. ## Data NOT Collected The App does **not** collect, use, or share any of the following: - Analytics or usage tracking - Advertising identifiers - Location data - Device identifiers - Crash reports (beyond what Apple provides via App Store Connect) - Any form of personal information beyond what you explicitly enter ## Third-Party Services The App makes HTTPS requests to `github.com` to fetch publicly available HTML pages. No third-party SDKs, analytics frameworks, advertising libraries, or external services are integrated into the App. ## Children’s Privacy The App is rated 4+ and does not knowingly collect personal information from children. The App does not require account creation and does not collect any data beyond a publicly visible GitHub username. ## Data Deletion You can delete all data stored by the App at any time by: - Removing your GitHub username in the App’s settings - Deleting the App from your device (this removes all locally cached data) - Removing the App’s iCloud data via Settings \> Apple Account \> iCloud \> Manage Storage ## Changes to This Policy If this privacy policy is updated, the revised version will be posted at this URL with an updated effective date. Material changes will be noted in the App’s release notes. ## Contact If you have questions about this privacy policy, please contact us at [dogitwork@manuelgruber.com](mailto:dogitwork@manuelgruber.com). --- # Support - Do Git Work URL: https://zaai.com/do-git-work/support/ Description: Support for Do Git Work iOS app. iOS App · Part of [Do Git Work](https://zaai.com/do-git-work/) # Support - Do Git Work Support for Do Git Work iOS app. ## Need help? If you have questions, feedback, or run into any issues with Do Git Work, we’re happy to help. **Email:** [dogitwork@manuelgruber.com](mailto:dogitwork@manuelgruber.com) --- # DX26 URL: https://zaai.com/dx26/ Description: A Next.js prototype of a result-first coding-agent chat product. The live demo shows a scripted ZAAI-com todo-app thread with decisions, artifacts, agent fan-out, failures, and a PR handoff. ![DX26 logo](https://zaai.com/dx26/icon.svg) UI Prototype # AI Developer Experience, as result-first chat. A Next.js prototype of a coding-agent shell. The live demo runs a scripted ZAAI-com todo-app chat with product decisions, generated artifacts, parallel agent work, visible failures, and a PR handoff. [Open live demo](https://dx26.zaai.com/) ## The todo app chat, mapped. Four panes, one active thread, and a result-first demo player driving the ZAAI-com todo-app run.
DX26 todo-app chat mid-run with answered feature choices, a proposed tech stack card, and design directions (light theme).
Live DX26 todo-app thread mid-run, with compact cards and active product decisions.
## Built around the todo app run. Six interaction patterns from the current live script, each one a swap-point for a future production system. - ### Result-first chat The main thread stays readable while action cards hold artifacts, diagnostics, and deeper reasoning in nested detail views. - ### Repo-scoped threads The live seed anchors a chat to ZAAI-com, the ZAAI Apps product set, the todo-app repo, and the main branch. - ### Scripted decisions The todo run asks for v1 features, visual direction, navigation, and completion behavior before it shows implementation output. - ### Parallel agent fan-out A single chat can summarize specialist agents for schema, auth, tasks, sharing, realtime sync, and test coverage. - ### Artifacts in the thread Stack notes, schema diagrams, API summaries, UI gallery output, coverage, infrastructure, and PR handoff cards all render inline. - ### Visible failure state A migration-order failure is promoted as a loud top-level blocker instead of being buried inside logs. ## A tour of the result-first shell. Six features from the live ZAAI-com todo-app run, captured straight from the deployed app. ### A repo-scoped workspace Every chat sits inside a familiar shell. The left rail holds repos, trees, branches, and agent chats; the right rail tracks the working tree as the run stages and edits files.
DX26 left rail with the repo tree, branch selector, and agent chats (light theme).
DX26 changes rail tracking staged and unstaged files in the working tree (light theme).
### Decisions with inline previews Before it scaffolds anything, the agent asks the questions that matter and renders the options inline. Pick a navigation pattern from real previews instead of describing one in prose.
A DX26 chat card offering three navigation-pattern previews to choose from (light theme).
### Parallel agent fan-out A single request can split into specialist sub-agents. Here one prompt fans out to six, covering schema, auth, tasks, sharing, sync, and tests, then reports back as one card.
A DX26 card fanning one request out to six specialist sub-agents (light theme).
### Drill into any result The thread stays compact, but every card opens. Expand the tech stack for the full reasoning, a stack table, and a copy-paste setup, all without leaving the chat.
A DX26 result card opened into a full detail drawer with a stack table and setup (light theme).
### Failures surface loudly When something breaks, it is promoted to a bright, colored card with a plain explanation and a link to diagnostics, never buried in a wall of logs.
A DX26 alert card surfacing a failed database migration with a link to diagnostics (light theme).
### A reviewable PR handoff The run ends where review begins. The final card hands the work off as a pull request, with the file count and CI status ready to check.
A DX26 card handing the run off as pull request 42 with CI passed (light theme).
## Result cards, up close. DX26 keeps the main thread readable while detailed work expands into focused cards and drawers.
DX26 backend result card showing six specialist sub-agents completed across schema, auth, tasks, sharing, sync, and tests (light theme).
One request fans out to six specialist agents, then returns as a compact backend result.
DX26 proposed tech stack drawer showing detailed reasoning, stack table, setup command, and follow-up layers (light theme).
A compact card opens into a full detail drawer without leaving the chat.
## A 30-second tour 1. 1 ### Open the todo thread The live demo lands in GitHub.com / ZAAI-com / todo-app with Build the Todo app selected on the main branch. 2. 2 ### Play the result-first run Use the demo player or /play to stream the zaai-todo-result-first script into the active chat. 3. 3 ### Review the handoff Follow the decisions, generated artifacts, test report, migration blocker, and final PR card in one thread. ## Built with - Next.js 16 - React 19 - TypeScript 6 - Tailwind v4 - Catalyst (Tailwind Plus) - assistant-ui - Headless UI - Motion - lucide-react - Zustand 5 - Bun package manager - Render static deploy The assistant-ui runtime is wired into the chat surface. The app is still a static prototype: real UI, scripted data. ## Intentionally not here. The prototype keeps production integrations out of scope so the interaction model can move quickly. - No real AI API yet. The agent output is driven by scripted mock events. - No real GitHub API or git working tree. Seed data hydrates the org, repo, branch, thread, and file-state views. - No backend database. The deployed app is a static export with UI state persisted in localStorage. - No formal test suite or test CI for the prototype repo. Render auto-deploys the static app on commit. ## Screens from the live todo app chat. Captured from the deployed DX26 app at 1440 by 900 with the active ZAAI-com todo-app thread.
DX26 chat card asking the user to choose between three navigation-pattern previews (light theme).
Inline previews turn product decisions into visible choices.
DX26 todo-app chat mid-run with answered feature choices, a proposed tech stack card, and design directions (light theme).
The result-first script mid-run, with compact cards and active decisions.
## Questions worth asking.
What is DX26?
DX26 is a Next.js prototype for a result-first coding-agent chat product. The live route shows a ZAAI-com todo-app thread where a scripted agent plans and builds a collaborative todo app inside a four-pane engineering shell.
What does result-first mean here?
The chat keeps the primary result visible and pushes deeper work into action cards, drawers, artifacts, and diagnostics. The todo app run shows this through stack, schema, API, tests, UI, failure, and PR cards instead of a wall of raw logs.
What does the todo app chat demonstrate?
It starts with product choices, then proposes a Next.js, Postgres, and WebSocket stack, compares design directions, fans out backend work to six agents, shows test coverage, renders UI screens, surfaces a migration blocker, and ends with a PR handoff.
Is the live demo connected to real services?
No. The shell, assistant-ui integration, controls, local state, and rendering are real, but the AI work, GitHub data, git status, and todo app artifacts are scripted prototype data.
## Try the result-first chat. Open the deployed ZAAI-com todo app route. [Open live demo](https://dx26.zaai.com/) --- # Git-Same URL: https://zaai.com/git-same/ Description: Mirror GitHub org and repo structures locally. One Homebrew install, interactive TUI, parallel cloning. ![Git-Same icon](https://zaai.com/git-same/icon.svg) Rust CLI · macOS / Linux # Every GitHub repo you own, synced to your filesystem. Mirror GitHub org and repo structures locally. One Homebrew install, interactive TUI, parallel cloning. [View on GitHub](https://github.com/ZAAI-com/git-same) [Read the docs →](https://github.com/ZAAI-com/git-same/blob/main/docs/README.md) $brew install --cask zaai-com/tap/git-same CopyCopied ![Git-Same TUI dashboard showing workspace status and sync actions](https://zaai.com/git-same/screenshots/tui-dashboard-dark.png) What it mirrors ## The folder structure on GitHub _is_ the folder structure on disk. GitHub URLs on the left, your filesystem tree on the right. Same names, same nesting, no surprises. git-same · mirror plan In sync · 1 user · 2 orgs · 7 repos URL hierarchy github.com git-same sync Filesystem hierarchy ~/same-github/ URL hierarchy - github.com - github.com/manuelgruber - github.com/manuelgruber/.github - github.com/manuelgruber/dotfiles - github.com/zaai-com - github.com/zaai-com/clean-autofill - github.com/zaai-com/git-same - github.com/zaai-com/jekyll-aeo - github.com/zaai-com/powernight - github.com/company1 - github.com/company1/example.ai Filesystem hierarchy - ~/same-github/ - ├── manuelgruber/ - │ ├── .github/ - │ └── dotfiles/ - ├── zaai-com/ - │ ├── clean-autofill/ - │ ├── git-same/ - │ ├── jekyll-aeo/ - │ └── powernight/ - └── company1/ - └── example.ai/ 1 user · 2 orgs · 7 repos · 100% mirrored Sneak Peek Preview ## Finder Badges. Workspaces, visible in Finder. Coming soon Git-Same is bringing workspace status to macOS Finder. Folders managed by Git-Same get a small badge so you can spot synced repos at a glance, without leaving Finder. [Follow releases on GitHub](https://github.com/ZAAI-com/git-same/releases) ![macOS Finder window showing folders with small green Git-Same badges next to repository folders](https://zaai.com/git-same/screenshots/finder-badges.png) Workflow ## Interactive when you want it. Scriptable when you need it. Run `git-same` for the full TUI, or use subcommands directly in repeatable shell workflows. 01 `git-same init` ### Create config Run init to create a config file at ~/.config/git-same/config.toml with sensible defaults. 02 `git-same setup` ### Set up a workspace Choose GitHub.com or GitHub Enterprise, authenticate through GitHub CLI, select organizations, and choose the local root folder. 03 `git-same sync` ### Sync in parallel Clone missing repositories and fetch or pull existing ones concurrently, while skipping local repos with uncommitted work by default. 04 `git-same status` ### Check status anytime See which repositories are dirty, behind upstream, or ready before you switch projects or shut down for the day. Installation ## Three ways to install. On macOS, the signed and notarized Homebrew cask is the recommended path. On Linux and headless macOS, install the `git-same-cli` formula. Both install all aliases automatically. Cargo works on any platform with the Rust toolchain. [GitHub Releases Pre-built binaries for macOS and Linux (x86\_64 + ARM64) and Windows.](https://github.com/ZAAI-com/git-same/releases) [crates.io Install with Cargo when you prefer Rust tooling.](https://crates.io/crates/git-same) Homebrew Cask for macOSCLI-only Homebrew for LinuxCargo brew install --cask zaai-com/tap/git-sameCopyCopied ``` brew install --cask zaai-com/tap/git-same ``` Screenshots ## The whole workspace, visible in the terminal.
Git-Same terminal dashboard in dark mode

TUI dashboard

Workspace stats, quick actions, recent sync activity, and repo health in one terminal view.

Git-Same terminal dashboard in light mode

Light mode

The same dashboard adapts cleanly for light terminal themes.

Git-Same setup wizard selecting GitHub organizations

Workspace setup

Pick providers, organizations, filters, and the local base path interactively.

Git-Same discovering repositories before sync

Discovery

Build the sync plan from GitHub before cloning or fetching anything.

Git-Same sync progress while cloning and fetching repositories

Live sync

Parallel clone and fetch progress with active workers and per-repo status.

Git-Same completed sync summary

Completed run

Review updated, cloned, skipped, and failed repos after the sync finishes.

Git-Same CLI status output listing repository state

CLI status

Script-friendly status checks for dirty repos, behind branches, and workspace health.

Commands ## Every subcommand, in one place.
CommandDescription
git-sameLaunch the interactive TUI (no subcommand)
git-same initCreate config file with sensible defaults
git-same setupInteractive wizard to configure a workspace
git-same syncDiscover, clone new, and fetch/pull existing repos
git-same statusShow git status across all local repos
git-same workspaceList workspaces, set or clear default
git-same scanDiscover repos without cloning or syncing
git-same resetRemove all config, workspaces, and cache
TUI ## Every screen, every shortcut. Run `git-same` without a subcommand to open the full-screen terminal UI. Navigate with keyboard shortcuts across all screens.
ScreenKey bindings
Dashboards: Sync · t: Status · w: Workspaces · ?: Settings
Workspace SelectorEnter: Select · d: Set default · n: New
Init CheckEnter: Check · c: Create config · s: Setup
Setup WizardStep-by-step prompts
Command PickerEnter: Run
ProgressEsc: Back when complete
Repo Status/: Filter · D: Uncommitted · B: Behind · r: Refresh
Org Browser← ↑ ↓ → Navigate
SettingsEsc: Back
Aliases ## Use the name that fits your muscle memory. The Homebrew cask (macOS) and the `git-same-cli` formula (Linux) both install the primary binary plus short aliases automatically. All aliases work identically. `git-same` `gitsame` `gitsa` `gisa` `git same` Note: `cargo install git-same` installs only the primary binary. Both Homebrew install paths include all aliases. CopyCopied ``` # All of these run the same sync git-same sync gitsame sync gitsa sync gisa sync git same sync ``` Requirements ## Uses the tools already in a GitHub developer setup.
git
Git-Same shells out to Git for clone, fetch, pull, and status operations. Must be in your PATH.
GitHub CLI (gh)
Authentication uses gh auth login, so there is no separate token flow to manage. Git-Same calls gh auth token to obtain API credentials.
CopyCopied ``` # Install GitHub CLI brew install gh # Authenticate gh auth login # Sync your workspace git-same sync ``` Roadmap ## What's shipped. What's next. Git-Same 3.0 ships with full GitHub support, an interactive TUI, and signed and notarized macOS builds via Homebrew cask. Provider support for GitLab and Bitbucket is next. ### Shipped - GitHub support - Parallel cloning - Smart filtering - Progress bars - Interactive TUI mode - Workspace management ### Planned - Finder badges in macOS Finder - GitLab support - Bitbucket support - Repo groups - Web dashboard ## Install Git-Same and sync your workspace. Homebrew installs the binary and aliases. After that, run `git-same setup` once and `git-same sync` whenever your GitHub orgs change. $brew install --cask zaai-com/tap/git-same CopyCopied [View on GitHub](https://github.com/ZAAI-com/git-same) [Read the docs →](https://github.com/ZAAI-com/git-same/blob/main/docs/README.md) --- # Jekyll-AEO URL: https://zaai.com/jekyll-aeo/ Description: Make your Jekyll site visible to AI search engines, assistants, and LLMs. One gem, zero config, eight features. ![Jekyll logo](https://zaai.com/jekyll/icon.png) Jekyll Plugin # Your Jekyll site, ready for every AI search. Make your Jekyll site visible to AI search engines, assistants, and LLMs. One gem, zero config, eight features. [![Install from RubyGems](https://zaai.com/distribution/rubygems.svg)](https://rubygems.org/gems/jekyll-aeo)[RubyGems](https://rubygems.org/gems/jekyll-aeo) [GitHub →](https://github.com/ZAAI-com/Jekyll-AEO) Install the Jekyll-AEO gem and follow the setup instructions at [https://zaai.com/jekyll-aeo/setup-prompt/](https://zaai.com/jekyll-aeo/setup-prompt/) **On this page:** - [Why This Matters Now](#why-this-matters-now) - [Features](#features) - [Generate .md Files](#generate-md-files) - [Inject Link Tags](#inject-link-tags) - [Generate llms.txt](#generate-llmstxt) - [Generate JSON-LD](#generate-json-ld) - [Generate robots.txt](#generate-robotstxt) - [Generate Domain Profile](#generate-domain-profile) - [Generate URL Map](#generate-url-map) - [Validate Output](#validate-output) - [AEO GEO Deep Dive](#aeo-geo-deep-dive) - [How It Works](#how-it-works) - [How AI Platforms Find Your Content](#how-ai-platforms-find-your-content) - [AI Crawler Landscape](#ai-crawler-landscape) - [Content Optimization Tips](#content-optimization-tips) - [Proven Results](#proven-results) - [Get Started](#get-started) - [Quick Start](#quick-start) - [Compatibility](#designed-to-coexist) Traditional search traffic is declining 25% by 2026. AI-referred sessions grew 527% in early 2025. When someone asks ChatGPT, Perplexity, or Claude about a topic you’ve written about, your content needs to be in a format they can actually read. Most websites aren’t. Jekyll-AEO fixes that in a single `bundle install`. It hooks into Jekyll’s build lifecycle and produces everything AI systems need to discover, parse, and cite your content: clean markdown copies, a site-wide llms.txt index, structured JSON-LD, crawler policies, and domain identity metadata. No external services, no API calls, no runtime dependencies. ## Why This Matters Now No AI crawler except Google renders JavaScript. Most AI systems see your raw HTML source (navigation menus, tracking scripts, layout divs, and framework boilerplate), not your rendered page. A typical web page is 85-95% markup and 5-15% actual content. The math is brutal: AI systems have finite context windows, and every token wasted on HTML noise is a token that can’t be used to understand your content. Markdown reduces that overhead by 20-30%. A well-structured llms-full.txt file achieves 90%+ token reduction overall. Sites with schema.org structured data get 2.5x more AI citations. FAQPage markup specifically gives a 3.2x higher chance of appearing in AI Overviews. And only ~10% of sites have adopted llms.txt, so the early-mover window is open. * * * ## Features Jekyll-AEO ships eight features. Three are on by default, one is available via a Liquid tag, and four are opt-in. ### Generate .md Files Every HTML page gets a companion `.md` file: your content stripped of Liquid tags, kramdown annotations, and layout noise. Just clean, structured markdown that LLMs can ingest directly. ``` /about/index.html → /about.md /blog/my-post/ → /blog/my-post.md /products/widget/ → /products/widget.md ``` Liquid tags, kramdown annotations, and developer comments are stripped automatically. Content is preserved. Title, description, and last-modified date are prepended from front matter. ### Inject Link Tags Every HTML page automatically gets a `` tag in the `` pointing to its markdown copy. AI crawlers discover the machine-readable version of each page without needing to know your URL scheme. Works in auto-inject mode (default) or data mode for manual template placement. ### Generate llms.txt Following the [llms.txt specification](https://llmstxt.org/) by Jeremy Howard (Answer.AI), Jekyll-AEO generates: - **`/llms.txt`:** A structured index of your entire site, organized by collection, with titles, descriptions, and links to markdown copies - **`/llms-full.txt`:** Every page’s markdown content concatenated into a single file ``` # My Website > A website about building great products ## Pages - [About](/about.md): Learn about our company and mission - [Pricing](/pricing.md): Plans and pricing for all tiers ## Blog Posts - [Launching v2.0](/blog/launching-v2.md): Our biggest release yet ``` Sections auto-generate from your Jekyll collections, or you can define custom sections. Adoption is accelerating: Mintlify has rolled it out across thousands of documentation sites including Anthropic and Cursor. ### Generate JSON-LD Add `{` aeo\_json\_ld `}` to your layout and get schema.org structured data automatically:
SchemaTriggerImpact
BreadcrumbListEvery page except homepageHelps AI understand site hierarchy
OrganizationHomepageBrand identity signal
FAQPagefaq: array in front matter3.2x higher AI Overview appearance
HowTohowto: object in front matterStep-by-step content extraction
Speakablespeakable: true in front matterVoice assistant discovery
ArticleDated pages (skips when jekyll-seo-tag is installed)Authorship and date signals
Add FAQ or HowTo structured data to any page through simple front matter arrays. No manual JSON-LD required. ### Generate robots.txt Control which AI bots can access your site. Jekyll-AEO generates a `robots.txt` that separates search bots (allowed) from training bots (blocked): ``` User-agent: OAI-SearchBot # Allow search Allow: / User-agent: GPTBot # Block training Disallow: / Llms-txt: https://yoursite.com/llms.txt ``` Automatically includes `Sitemap:` and `Llms-txt:` directives, covers all major AI companies, and steps aside if you already have a `robots.txt` in your source directory. ### Generate Domain Profile Publish a `/.well-known/domain-profile.json` file following the [AI Domain Data specification](https://ai-domain-data.org/). This gives AI assistants authoritative metadata about your site’s identity, reducing hallucination and improving how your brand appears in AI-generated answers. Auto-populated from your `_config.yml` site settings. ### Generate URL Map A structured markdown table of every page on your site, with URLs, layouts, redirect mappings, markdown copy paths, and skip reasons. Written to your source directory so it can be committed to version control as a content audit tool. ### Validate Output Verify your AEO output after every build: ``` bundle exec jekyll aeo:validate ``` Checks that llms.txt exists and is properly formatted, all referenced markdown files exist, and domain-profile.json (if present) has valid structure with all required fields. * * * ## AEO GEO Deep Dive * * * ## How AI Platforms Find Your Content Each AI platform has different content preferences. Only 21-25% of cited domains overlap between platforms, so optimizing for ChatGPT alone misses 75-79% of the opportunity.
PlatformPrimary SignalsTop SourceSearch Index
ChatGPTReferring domains, domain trafficWikipedia (47.9% of top-10 citations)Bing (87% match)
PerplexityCredibility, recency, semantic relevanceReddit (47% of responses)Bing + own index
ClaudeBrand authority, content qualityMentions brands in 97.3% of responsesBrave Search (86.7% match)
Google AI OverviewsSchema markup, E-E-A-TMost conservative (48.5% brand mention rate)Google Search
A cross-platform technical foundation (llms.txt, clean markdown, domain profiles, proper robots.txt) is the highest-leverage investment because it works across all platforms simultaneously. * * * ## AI Crawler Landscape Understanding which bots are crawling your site, and why, is essential. Jekyll-AEO’s robots.txt generator gives you granular control.
CompanySearch/Retrieval BotTraining BotNotes
OpenAIOAI-SearchBot, ChatGPT-UserGPTBotChatGPT-User no longer respects robots.txt
AnthropicClaude-SearchBot, Claude-UserClaudeBotRespects robots.txt + Crawl-delay
PerplexityPerplexityBot, Perplexity-UserN/APerplexity-User ignores robots.txt
GoogleGooglebotGoogle-ExtendedOnly platform that renders JavaScript
MicrosoftBingbotN/APowers ChatGPT citations (87% match)
AppleApplebot-ExtendedApplebotApple Intelligence
MetaN/AMeta-ExternalAgentTraining only
AmazonN/AAmazonbotTraining / Alexa
**The strategy:** Allow search/retrieval bots so your content appears in AI answers. Block training bots so it doesn’t end up in training datasets. You get the citation benefits without contributing to model training. * * * ## Content Optimization Tips Jekyll-AEO makes your content technically accessible to AI. To maximize citation frequency, the research says: **What the data shows:**
SignalImpact
Pages with 19+ statistics5.4 avg citations vs. 2.8 without
Pages with expert quotes4.1 avg citations vs. 2.4 without
FAQPage schema markup3.2x higher chance of appearing in AI Overviews
Schema.org structured data2.5x higher citation chance overall
Brand presence on 4+ channelsSignificantly more AI citations
Brand authority0.334 correlation, the single strongest predictor
**Actionable principles:** - **Answer-first structure:** Lead every section with a direct, concise answer. AI systems extract the first 50-150 words of a topically relevant section most frequently. - **Fact density:** Include concrete statistics, data points, and cited sources. This is the highest-impact content optimization. - **Clear hierarchy:** Use H2/H3 headings as semantic boundaries. Keep sections at 120-180 words, the optimal chunk size for RAG retrieval. - **Tables and lists:** AI systems excel at extracting structured tabular data and numbered steps. - **Content freshness:** Visibility drops 2-3 days after publication without updates. A 30-90 day refresh cadence is recommended. Jekyll-AEO adds last-modified dates automatically. - **Neutral tone:** Encyclopedic, authoritative prose is 30% more likely to appear in AI answers than opinion-heavy content. The foundational academic paper [“GEO: Generative Engine Optimization”](https://arxiv.org/abs/2311.09735) (Princeton, Georgia Tech, Allen AI, IIT Delhi; ACM SIGKDD 2024) tested 9 optimization methods and found citing sources, adding quotations, and adding statistics each improve visibility 30-40%. Keyword stuffing is explicitly ineffective for GEO. * * * ## How It Works Jekyll-AEO hooks into Jekyll’s standard build lifecycle. Add the gem, run `jekyll build`, and all outputs are generated alongside your existing site. No separate build step, no external services, no post-processing scripts. Every feature shares the same skip logic: redirect pages, non-HTML outputs, and excluded paths are handled consistently. Per-page outputs (markdown copies, link tags) are generated during the build. Site-wide outputs (llms.txt, robots.txt, domain profile) are generated in a single pass after all pages are written. For a technical deep dive into the build pipeline, see the [README](https://github.com/ZAAI-com/Jekyll-AEO#readme). * * * ## Proven Results Companies investing in AEO and GEO are seeing measurable returns:
CompanyResultMethod
LS Building Products540% boost in AI Overview mentionsContent restructuring + schema
Go Fish DigitalAI traffic converts at 25x traditional searchGEO optimization
RampCitation share 8.1% to 12.2% in one monthMonitoring + optimization
Runpod4x customer growth in 90 daysContent architecture redesign
NerdWallet35% revenue growth despite 20% traffic decreaseAI-first content strategy
B2B SaaS companies report 6-27x higher conversion rates from AI-referred traffic vs. traditional search. The traffic numbers are smaller, but visitors who arrive through AI recommendations arrive with higher intent, better context, and more confidence, because an AI system already evaluated the options and recommended you specifically. * * * ## Get Started * * * ## Quick Start Three steps, under five minutes: **1\. Install** ``` # Gemfile gem "jekyll-aeo" ``` ``` bundle install ``` **2\. Build** ``` bundle exec jekyll build ``` Check your output directory. You’ll find `.md` companions for every page, plus `llms.txt` and `llms-full.txt` at the root. **3\. Validate** ``` bundle exec jekyll aeo:validate ``` That’s it. Your site is now AI-readable. Enable advanced features like robots.txt, domain profiles, and URL maps through `_config.yml` when you’re ready. See the [README](https://github.com/ZAAI-com/Jekyll-AEO#readme) for all configuration options. ## Designed to Coexist Jekyll-AEO works alongside the plugins you already use. It complements jekyll-seo-tag (a different layer: AI outputs vs. HTML meta tags), cooperates with jekyll-sitemap (priority ordering prevents robots.txt conflicts), and respects jekyll-redirect-from (redirect pages are automatically skipped). Nothing to configure. Install both and they cooperate automatically. Ruby \>\= 3.0. Jekyll \>\= 4.0. MIT licensed. Built and maintained by [ZAAI](https://zaai.com/). ## Highlights - ### Generates a clean .md copy of every page, 20-30% fewer tokens than HTML - ### Produces llms.txt and llms-full.txt following the llmstxt.org spec, 90%+ token reduction - ### Injects tags for AI crawler discovery - ### Outputs schema.org JSON-LD: FAQPage, HowTo, BreadcrumbList, Organization, Speakable, Article - ### Generates a robots.txt that allows search bots and blocks training bots - ### Publishes /.well-known/domain-profile.json for authoritative site identity - ### Ships a CLI validator: bundle exec jekyll aeo:validate - ### Zero config to start. Works with jekyll-seo-tag, jekyll-sitemap, jekyll-feed, and jekyll-redirect-from ## Tech Stack - Ruby - Jekyll - Liquid - Schema.org JSON-LD --- # Jekyll FilePath URL: https://zaai.com/jekyll-filepath/ Description: Stop hardcoding image paths in every markdown file. One Liquid tag for predictable asset URLs. ![Jekyll logo](https://zaai.com/jekyll/icon.png) RubyGem # Stop hardcoding image paths, one Liquid tag is enough. Stop hardcoding image paths in every markdown file. One Liquid tag for predictable asset URLs. [![Install from RubyGems](https://zaai.com/distribution/rubygems.svg)](https://rubygems.org/gems/jekyll-filepath)[RubyGems](https://rubygems.org/gems/jekyll-filepath) [RubyDoc →](https://www.rubydoc.info/gems/jekyll-filepath/1.0.0) If you maintain a Jekyll site with images alongside content, you have written the same path prefix dozens of times. Jekyll FilePath replaces that repetition with a single Liquid tag that builds a predictable asset URL based on the current page or post. ## How It Works The plugin exposes a tag with this shape: ``` {`{` filepath filename.png `}`} ``` When rendered, it resolves the current page or post path and returns a `/files/...` URL that matches that document’s location. ## Why It Exists For content-heavy Jekyll sites, small quality-of-life improvements matter. This plugin keeps markdown cleaner, makes asset moves more systematic, and reduces broken links caused by hand-written paths. ## Highlights - ### One Liquid tag to resolve any asset path relative to the current page. - ### Stop hardcoding repeated \`/images/subfolder/file.png\` paths in markdown. - ### Works with pages, posts, and collection documents. ## Tech Stack - Ruby - Jekyll - Liquid --- # Jekyll Roadmap URL: https://zaai.com/jekyll-roadmap/ Description: Publish Gantt-style roadmaps as static pages inside your Jekyll site. No extra tooling. ![Jekyll logo](https://zaai.com/jekyll/icon.png) RubyGem # Gantt-style roadmaps, inside your Jekyll site. Publish Gantt-style roadmaps as static pages inside your Jekyll site. No extra tooling. [![Install from RubyGems](https://zaai.com/distribution/rubygems.svg)](https://rubygems.org/gems/jekyll-roadmap)[RubyGems](https://rubygems.org/gems/jekyll-roadmap) [Template Repo →](https://github.com/ZAAI-com/jekyll-roadmap-template) Teams that publish docs with Jekyll should not need a separate tool for roadmaps. Jekyll Roadmap renders Gantt-style timeline views directly from a dedicated collection, keeping planning artifacts in the same workflow as the rest of the site. ## What It Solves This product sits in the gap between plain markdown documentation and heavyweight roadmap software. It treats roadmap content like site content: - versioned in Git - rendered by Jekyll - deployable as static files A pragmatic fit for teams who already publish docs with Jekyll and want their planning artifacts to live in the same workflow. ## What’s Included The public example template includes: - a `roadmaps` collection - a redirecting landing page - a `gantt` layout for the actual roadmap view - JavaScript options and data files that define the timeline ## Highlights - ### Install as a gem, get a ready-made roadmap theme. - ### Roadmaps live in a dedicated Jekyll collection, version-controlled in Git. - ### Renders interactive Gantt-style timeline views from structured data. ## Tech Stack - Ruby - Jekyll - AngularJS - angular-gantt --- # Powerbeat URL: https://zaai.com/powerbeat/ Description: Solar, battery, EV charging, and daily energy decisions in one interface, built for homeowners. ![Powerbeat app icon](https://zaai.com/powerbeat/icon.png) UI Prototype # Solar, battery, and EV charging, in one home interface. Solar, battery, EV charging, and daily energy decisions in one interface, built for homeowners. ## Introduction Most solar homeowners juggle three or four apps just to understand where their energy is going. Powerbeat is a concept for what happens when you combine the best ideas from those tools into one interface, designed around how homeowners actually think about energy, not how inverter engineers wire their systems. The idea took shape after analyzing a full year of solar data and visiting the Intersolar trade fair in June 2024. A Home Energy Manager should not feel like a collection of disconnected utility apps. ## The Concept Powerbeat is a working-name UI prototype. It does not mirror a single existing app. The goal is to combine the most useful ideas from today’s solar, battery, and EV tools into one product surface. ![Powerbeat concept UI with four-tab navigation for energy management](https://zaai.com/powerbeat/Powerbeat-Preview-2x.png) ## What Solar Owners Actually Need Four patterns emerged from a year of daily solar data: - **Too many apps.** Tesla for the Powerwall, SMA for production forecasting, EVcc for charging and dynamic pricing. The core problem is fragmentation. - **Summer mode vs winter mode.** A typical system is oversized in summer and undersized in winter. The HEMS has to adapt automatically. - **Unpredictable consumption.** The car is the biggest wildcard. A single charge can consume an entire day’s production. - **Daily production is the key question.** Below 20 kWh? You are buying from the grid. Above 60? Charge the car for free.
Daily ProductionDay CategoryCategory Label
0 - 20 kWhGrid Import NeededRed
20 - 40 kWhHouse OnlyOrange
40 - 60 kWhHouse PlusBlue
60 - 100 kWhCharge CarGreen
100+ kWhFull ChargeYellow
## How Home Energy Got Complicated - **Grid only** (Year 2000). One fixed price per kWh. No personal optimization needed. - **Solar system** (Year 2012). Use more energy when the sun is shining, and less when it is not. - **Home battery** (Year 2018). Store daytime energy for nighttime use. - **Dynamic power plan** (Year 2022). Hourly market prices turn timing into an optimization problem. - **Battery charging from grid** (Year 2024). Charging from the grid becomes attractive on cheap winter nights. - **Battery grid export** (Year 2026). Home batteries stop being passive storage and become active market participants. - **Bidirectional car charging** (Year 2026). The car battery becomes part of the home’s energy system. ## User Interface In my view, a strong Home Energy Manager needs four main surfaces:
Powerbeat
Now
Powerbeat
Today
Powerbeat
Devices
Powerbeat
Insights
Energy flow
in real-time
Today’s data
and forecast
Charging
planner
GenAI-powered
reports
Status quo of the energy flow right now.Show today’s solar production, forecast, and pricing context.Decide how devices and cars should be charged.Use LLMs to produce helpful energy reports.
Data in kW:
Solar power, battery charging, home usage, grid export, and more.
Data in kWh:
Generated today, forecast for the rest of the day, comparisons, and more.
Charging modes:
Solar only, fast charging, minimum charging, disabled, and more.
Reports:
Top production days, monthly usage, charge cycles, and other analysis.
NowTodayDevicesInsights
## Now How much power is the roof generating right now, and where is it going? The Now screen answers that question in real time: solar generation, home consumption, battery charge rate, and grid flow, all in one view. The Tesla app uses a house animation for Powerwall users: ![Tesla app house animation showing real-time solar, battery, and grid power flows](https://zaai.com/powerbeat/02-now/Now-Tesla-Powerwall.png) EVcc makes the proportions between energy flows easy to read: ![EVcc interface showing proportional energy flow between solar, home, and grid](https://zaai.com/powerbeat/02-now/Now-EVcc.png) Powerbeat uses a Sankey diagram instead. It shows relative flow volumes and makes devices like the home battery feel like first-class participants in the energy system, not just numbers on a dashboard: ![Powerbeat Sankey diagram showing directional energy flows between solar, battery, home, and grid](https://zaai.com/powerbeat/02-now/Now-Zaai.png) House visuals can still be nice, but only if they are truly personal. If an app shows my house, I want it to be _my_ house, not a generic icon. ## Today The daily production number drives every energy decision. It determines whether the battery charges from the sun, whether the car gets a free charge, or whether the household buys from the grid. The main goal of the Today section is to decide which bucket the current day is heading toward and what that means operationally. The Tesla app only shows today’s generated kWh: ![Tesla app showing total generated kilowatt-hours for the current day](https://zaai.com/powerbeat/03-today/Today-Tesla-Powerwall.png) The SMA inverter app goes further and shows a forecast for the next hours and days, but the forecast data does not update throughout the day: ![SMA inverter app showing solar production forecast for upcoming hours and days](https://zaai.com/powerbeat/03-today/Today-SMA.png) Powerbeat should treat forecast uncertainty more explicitly. A better visualization is a range between best-case and worst-case production: ![Powerbeat today view showing production range between best-case and worst-case forecast](https://zaai.com/powerbeat/03-today/Today-Zaai.png) ## Devices The Devices screen is where energy strategy becomes action. The hard part is not the UI, it is the policy underneath: what should the car do when production is 35 kWh and a cold week is forecast? The answer depends on tariffs, battery state, and a household’s willingness to pay for convenience. ### Charging Modes Every vendor invents its own vocabulary for the same handful of behaviors. EVcc uses `Off`, `Min+Solar`, `Solar`, and `Now`. Tesla’s wallbox app offers `Self-Powered`, `Time-Based Control`, and `Storm Watch`. SMA, KEBA, and Easee each ship variants of the same set. The shared underlying question is simple: should the car wait for the sun, take whatever is on the wire right now, or fall back to a guaranteed minimum? Powerbeat treats charging as a policy decision, not a per-session toggle. Set the rules once, let the system follow them. Four operational questions drive the design: **Device priority.** When solar is scarce, which load wins? Heat pump for the morning shower, car for the school run, or battery for the evening peak? The answer changes by season, time of day, and weekday vs weekend. Those defaults need to be visible on the Devices screen, not buried in a settings menu. **Solar-only vs grid thresholds.** The decision to top up from the grid should be driven by the forecast from `Today`. If tomorrow looks under 20 kWh and tariffs are favorable tonight, charge from the grid. Otherwise wait for the sun. This is the link between the daily forecast and the operational plan. **Automation vs manual override.** Defaults should not surprise. If the household plugs in at 18:00 and expects a full battery by 07:00, the system should hit that target without anyone touching a slider. Overrides exist for the edge cases (an unexpected long drive tomorrow), but the resting state is hands-off. **Seasonal switches.** Summer surplus and winter scarcity are different operating modes, not the same logic with different inputs. In summer, top up everything: house battery, car, hot water. In winter, arbitrage cheap grid hours and reserve the battery for the evening price peak. The screen should make the seasonal mode explicit, not hidden in fine-tuning. Screenshots will follow once the charging-mode panel is in a presentable state. ## Insights Energy data is a time series. The value is in the patterns, not the rows. Traditional dashboards show charts you have to design upfront, which means every new question becomes an engineering task. An LLM-backed surface lets you ask the question first and pick the visualization second. Natural-language queries replace SQL and notebook glue. The bar for a useful report drops from “build a dashboard” to “ask a question.” Exploratory analysis becomes cheap, and the questions a homeowner actually has are not the questions a dashboard designer anticipated. As a starting point, check out the [Custom GPT](https://chatgpt.com/g/g-eGZYNfwpU-my-solar-data) for my solar data from 2023. The following prompts are a useful baseline: ### Plot daily solar production ![Daily solar production plotted as dots across 2023](https://zaai.com/powerbeat/05-insights/solar-daily-dots-2023.png) This is the base view: it shows the annual shape and highlights the months where production drops sharply. ### Other prompts for Powerbeat Insights - **List the top 10 production days in a sorted table.** This surfaces the system’s production ceiling, shows when it happens, and estimates how many “Full Charge” days the system can realistically deliver. - **Calculate monthly battery cycles using a 13.5 kWh battery capacity.** This converts daily energy flowing in and out of the battery into cycle wear, the metric that matters for manufacturer warranties. - **Create a monthly solar production bar chart.** This shows the seasonal envelope, supports sizing decisions, and gives a factual answer to anyone claiming solar does not work in winter. - **Find every streak of 2 or more consecutive days below 20 kWh of solar production.** Return a table with the first day and streak length. This shows how often the household is forced onto the grid for back-to-back days and informs battery sizing. - **Identify likely snow days in 2023 from the production data.** This connects production anomalies with implied weather: a near-zero production day in March, when comparable days produced far more, is a clear signal. ### Limits and Concerns Cloud LLMs see your home telemetry, which is more revealing than most people realize: production patterns leak occupancy, charging habits leak driving routines, and battery state-of-charge leaks evening behavior. Long histories blow past context windows, so multi-year analysis needs aggregation or function-calling. Numerical accuracy needs verification, because an LLM will confidently report a wrong average. A local LLM via Ollama is the obvious next step for the privacy-conscious and the offline-first. Powerbeat is the conceptual surface; **[PowerNight](https://zaai.com/powernight/)** is the production tool that puts these energy ideas into practice. ## Highlights - ### See exactly where your energy is going: solar, battery, home, and grid in one view. - ### Know instantly whether today's solar covers the car, the battery, or just the house. - ### Plan your energy day with forecasts, device priorities, and AI-generated reports. - ### Skips the engineering jargon. Built for solar owners, not inverter engineers. ## Screenshots
Powerbeat concept overview with four-tab navigation for home energy management
Four surfaces for managing home energy: Now, Today, Devices, and Insights.
--- # PowerNight URL: https://zaai.com/powernight/ Description: Charge your Tesla Powerwall from the grid overnight, automatically. Local-first web UI. ![PowerNight app icon](https://zaai.com/powernight/icon.png) Docker # Charge your Powerwall overnight, automatically. Charge your Tesla Powerwall from the grid overnight, automatically. Local-first web UI. [![Available on Docker Hub](https://zaai.com/distribution/docker.svg)](https://hub.docker.com/r/zaaicom/powernight)[Docker Hub](https://hub.docker.com/r/zaaicom/powernight) [GitHub →](https://github.com/ZAAI-com/PowerNight) Electricity is cheaper at night. PowerNight automates overnight Powerwall charging so you store energy at off-peak rates and use it when prices rise, without manual reserve changes or ad-hoc scripts. The product wraps that scheduling workflow in a local-first web interface: a dashboard, a planner, an execution history, and settings screens, all tailored to the Tesla Powerwall. ## How It Works The workflow is straightforward: - Charge from the grid overnight when electricity is cheapest - Use stored energy during higher-priced periods - Manage everything from a browser on the local network PowerNight is built for households that already think in terms of tariff windows, battery reserve, and daily energy arbitrage. ## Quick Start PowerNight runs as a Docker container. A basic setup takes three steps: 1. Pull the image from [Docker Hub](https://hub.docker.com/r/zaaicom/powernight) 2. Configure mounted volumes for persistent storage 3. Open the web UI and connect your Tesla account The [README](https://github.com/ZAAI-com/PowerNight/blob/main/docs/README.md) covers detailed setup including Synology NAS deployment and multi-architecture support. ## Why Local-First PowerNight runs on your local network by design. No cloud subscription, no API middleman, no data leaving your home. The trade-off is intentional: the README explicitly warns against exposing the web UI to the public internet. Docker with SQLite gives you persistence without infrastructure. Deploy once, update by pulling a new image. ## Interfaces PowerNight combines four operational views: - **Dashboard:** live battery level, power flow, and site state - **Planner:** scheduled reserve changes for overnight charging - **History:** execution results, logs, and recent activity - **Settings:** Tesla authorization, site selection, and timezone Install from [Docker Hub](https://hub.docker.com/r/zaaicom/powernight) or review the full [setup guide](https://github.com/ZAAI-com/PowerNight/blob/main/docs/README.md). Contributions welcome on [GitHub](https://github.com/ZAAI-com/PowerNight). ## Highlights - ### Automatically charges your Powerwall when electricity is cheapest. - ### Connects to your Tesla account and gives you a dashboard on your local network. - ### See exactly what happened and what's happening. Full history and live status. - ### Runs as a Docker container with persistent storage. Deploy once, update easily. ## Tech Stack - Python - React - Docker - SQLite - Vite ## Screenshots
Dashboard showing live Powerwall battery percentage, charge rate, and grid power flow
Live Powerwall status, battery level, and power flow.
Scheduling interface with overnight charge tasks and backup reserve percentages
Task scheduling for backup reserve changes.
Execution log listing completed charge tasks with timestamps and results
Structured execution logs and recent activity.
Settings form for Tesla account connection, site selection, and timezone
Tesla account, site selection, and timezone configuration.
---