SEO conventions
Marketing pages are server-rendered with semantic HTML and full meta tags.
Implemented
-
<title>and<meta name="description">per page - OpenGraph + Twitter card meta on every page
-
Canonical URL via
app_urlconfig -
application/ld+jsonSoftwareApplicationblock on/and/pricing -
Public
sitemap.xmllisting every public route plus generated docs -
robots.txt(inpriv/static) referencing the sitemap
Performance hooks
-
Tailwind v4 + esbuild minification (no
tailwind.config.js). -
phx.digestadds longCache-Controlheaders on hashed assets. -
A single
app.cssandapp.jsbundle keep the asset round trip count low.
Adding a new page
-
Add a route in
router.ex. -
Provide a controller action that assigns
:page_titleand:meta_description. -
If it should appear in the sitemap, add the path to
PageController.sitemap/2(or, for docs, simply drop a new.mdinto thedocs/directory —Docs.list_pages/0will pick it up at compile time).