#114 / #117 put the homepage title, JSON-LD, robots.txt, sitemap.xml, and llms.txt on master, plus client-side title and canonical. Live https://hesychia.ai is still the old shell: title Hesychia, no canonical, no JSON-LD. /sitemap.xml and /llms.txt return index.html (text/html). /robots.txt is the old allow-all file.
After that build is what prod serves, a crawler that does not run JS still sees one index.html on every route.
Scope
/, /pricing/, /privacy/, /changelog/, /terms_of_service/, and /account-deletion/ each return their own title, description, canonical, and Open Graph tags in the HTML response, not only after React runs.
Add an og:image (and a Twitter card) so link previews are not title-only.
/robots.txt, /sitemap.xml, and /llms.txt are served as text, not the SPA shell. Refresh sitemap.xmllastmod when those pages change.
Done when
View-source on each public URL shows that page's title, description, and canonical. The three crawler files are plain text.
Out of scope
Founder / about page.
Inventing testimonials or usage counts.
Follow-up to #114.
#114 / #117 put the homepage title, JSON-LD, `robots.txt`, `sitemap.xml`, and `llms.txt` on master, plus client-side title and canonical. Live https://hesychia.ai is still the old shell: title `Hesychia`, no canonical, no JSON-LD. `/sitemap.xml` and `/llms.txt` return `index.html` (`text/html`). `/robots.txt` is the old allow-all file.
After that build is what prod serves, a crawler that does not run JS still sees one `index.html` on every route.
## Scope
- `/`, `/pricing/`, `/privacy/`, `/changelog/`, `/terms_of_service/`, and `/account-deletion/` each return their own title, description, canonical, and Open Graph tags in the HTML response, not only after React runs.
- Add an `og:image` (and a Twitter card) so link previews are not title-only.
- `/robots.txt`, `/sitemap.xml`, and `/llms.txt` are served as text, not the SPA shell. Refresh `sitemap.xml` `lastmod` when those pages change.
## Done when
View-source on each public URL shows that page's title, description, and canonical. The three crawler files are plain text.
## Out of scope
- Founder / about page.
- Inventing testimonials or usage counts.
Closing. The public-page HTML, og:image, Twitter card, and crawler files landed on master in #125. Live https://hesychia.ai is still the October 10 shell until that build and the server-infra nginx change are deployed.
Closing. The public-page HTML, og:image, Twitter card, and crawler files landed on master in #125. Live https://hesychia.ai is still the October 10 shell until that build and the server-infra nginx change are deployed.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Follow-up to #114.
#114 / #117 put the homepage title, JSON-LD,
robots.txt,sitemap.xml, andllms.txton master, plus client-side title and canonical. Live https://hesychia.ai is still the old shell: titleHesychia, no canonical, no JSON-LD./sitemap.xmland/llms.txtreturnindex.html(text/html)./robots.txtis the old allow-all file.After that build is what prod serves, a crawler that does not run JS still sees one
index.htmlon every route.Scope
/,/pricing/,/privacy/,/changelog/,/terms_of_service/, and/account-deletion/each return their own title, description, canonical, and Open Graph tags in the HTML response, not only after React runs.og:image(and a Twitter card) so link previews are not title-only./robots.txt,/sitemap.xml, and/llms.txtare served as text, not the SPA shell. Refreshsitemap.xmllastmodwhen those pages change.Done when
View-source on each public URL shows that page's title, description, and canonical. The three crawler files are plain text.
Out of scope
Closing. The public-page HTML, og:image, Twitter card, and crawler files landed on master in #125. Live https://hesychia.ai is still the October 10 shell until that build and the server-infra nginx change are deployed.