Skip to content

Instantly share code, notes, and snippets.

View Janady13's full-sized avatar

Joseph W. Anady Janady13

View GitHub Profile
@Janady13
Janady13 / aio-surfaces-workflow.yml
Created May 24, 2026 03:09
GitHub Actions workflow: emit AI citation surfaces via aio-surfaces (rename to .github/workflows/aio-surfaces.yml)
# GitHub Actions workflow that runs aio-surfaces to emit
# llms.txt, aeo.json, entity.json, brand.json on every push to main.
# Reference: https://github.com/Janady13/aio-surfaces
name: AI citation surfaces
on:
push:
branches: [main]
workflow_dispatch:
@Janady13
Janady13 / indexnow_client.py
Created May 24, 2026 03:09
Minimal Python IndexNow client — submit URLs to Bing/Yandex on content change
#!/usr/bin/env python3
"""Minimal IndexNow client — notify Bing + Yandex when content changes.
IndexNow spec: https://www.indexnow.org/
To use:
1. Generate a 32-char hex key at https://www.bing.com/indexnow/getstarted
2. Save it to your site root as `https://yourdomain.com/<key>.txt`
3. Run: python indexnow_client.py <key> https://yourdomain.com/changed-page/
@Janady13
Janady13 / validate_schema_graph.py
Created May 24, 2026 03:09
Python snippet: validate an entity.json Schema.org @graph via validator.schema.org
#!/usr/bin/env python3
"""Validate a Schema.org @graph against Schema.org's official validator.
Useful as a CI pre-deploy step to catch JSON-LD bugs before they ship.
Pairs with aio-surfaces (https://github.com/Janady13/aio-surfaces).
"""
import json
import sys
import urllib.parse
import urllib.request
@Janady13
Janady13 / article-breadcrumb-schema.html
Created May 24, 2026 03:09
Article + BreadcrumbList JSON-LD template (for blog/insights pages)
<!-- Article + BreadcrumbList schema for blog/insights pages -->
<!-- Reference: https://www.thatdevpro.com/insights/framework-schema/ -->
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "BreadcrumbList",
"itemListElement": [
{"@type": "ListItem", "position": 1, "name": "Home", "item": "https://yourdomain.com/"},
{"@type": "ListItem", "position": 2, "name": "Insights", "item": "https://yourdomain.com/insights/"},
@Janady13
Janady13 / speakable-schema.html
Created May 24, 2026 03:09
Speakable schema template for SpeakableSpecification (voice AI surface)
<!-- Speakable schema for voice AI (Google Assistant, Alexa, emerging voice surfaces) -->
<!-- Place inside <head> of pages you want voice AI to read out loud -->
<!-- Reference: https://www.thatdevpro.com/insights/framework-voicesearch/ -->
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "WebPage",
"url": "https://yourdomain.com/your-page/",
"name": "Page Title",
@Janady13
Janady13 / nginx-server-block.conf
Created May 24, 2026 03:09
nginx server block: full security headers + Schema.org JSON-LD via SSI
# nginx server block with full security headers + SSI schema injection
# Reference: https://www.thatdevpro.com/insights/framework-technicalseo/
# Reference: https://github.com/Janady13/seo-sidecar
server {
listen 443 ssl http2;
server_name yourdomain.com www.yourdomain.com;
ssl_certificate /etc/letsencrypt/live/yourdomain.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/yourdomain.com/privkey.pem;
@Janady13
Janady13 / aeo.json
Created May 24, 2026 03:09
aeo.json template — atomic facts for Answer Engine Optimization
{
"$schema": "https://aeo.dev/schema/v1/",
"siteName": "Your Studio Name",
"siteUrl": "https://yourdomain.com",
"lastUpdated": "2026-05-23",
"facts": [
{
"id": "f-identity-1",
"question": "What is Your Studio Name?",
"answer": "Your Studio Name is a [SDVOSB-certified, woman-owned, minority-owned, etc.] [studio/agency/consultancy] based in [Your City], [State]. The company specializes in [services] and operates under the legal name [YOUR LEGAL LLC NAME] (EIN 12-3456789, SAM.gov UEI ABCDEFGHIJK1)."
@Janady13
Janady13 / llms.txt
Created May 24, 2026 03:09
llms.txt template — llmstxt.org spec compliant, with canonical facts section
# Your Studio Name
> Short tagline describing what you do, max 1 sentence.
Longer description of the studio, 1-2 paragraphs. Cover what services you offer, who your clients are, and the differentiating value proposition. AI engines extract this paragraph for "About" queries.
## Canonical Facts
- **Legal name**: YOUR LEGAL LLC NAME
- **Founder**: Your Full Name (https://yourdomain.com/about/)
@Janady13
Janady13 / person-organization-graph.json
Created May 24, 2026 03:09
Schema.org Person + Organization @graph JSON-LD template (with sameAs identifier wiring)
{
"@context": "https://schema.org",
"@graph": [
{
"@type": ["Organization", "ProfessionalService"],
"@id": "https://yourdomain.com/#org",
"name": "Your Studio Name",
"legalName": "YOUR LEGAL LLC NAME",
"url": "https://yourdomain.com",
"logo": "https://yourdomain.com/logo.svg",
@Janady13
Janady13 / robots-ai-crawlers.txt
Created May 24, 2026 03:08
robots.txt: explicit allowlist for the 12 canonical AI crawlers (2026)
# AI crawler allowlist — explicit allow for the 12 canonical AI crawlers
# Maintained at: https://github.com/Janady13/aio-surfaces
# Reference framework: https://www.thatdevpro.com/insights/framework-aicitations/
# OpenAI
User-agent: GPTBot
Allow: /
User-agent: OAI-SearchBot
Allow: /