Skip to content

Added sitemap#19

Merged
eloiberlinger1 merged 7 commits intoprodfrom
main
Apr 16, 2026
Merged

Added sitemap#19
eloiberlinger1 merged 7 commits intoprodfrom
main

Conversation

@eloiberlinger1
Copy link
Copy Markdown
Member

No description provided.

eloiberlinger1 and others added 4 commits April 8, 2026 18:37
Copilot AI review requested due to automatic review settings April 16, 2026 19:21
Copy link
Copy Markdown
Contributor

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request enhances SEO and documentation by integrating react-helmet-async, adding robots.txt and sitemap.xml, and updating the README.md. It also refines a useEffect dependency in the editor. Feedback highlights an invalid package version for react-helmet-async, a typo in the documentation, and the need to localize hardcoded French SEO metadata to maintain multilingual support.

Comment thread frontend/package.json Outdated
Comment thread README.md Outdated
Comment on lines +44 to +55
<title>SetRsoft – Éditeur 3D Bouldering en ligne</title>
<meta name="description" content="Éditeur 3D virtuel pour créer vos blocs d'escalade bouldering. Simulation, routesetting, partage de séquences." />
<script type="application/ld+json">{JSON.stringify({
"@context": "https://schema.org",
"@type": "SoftwareApplication",
"name": "SetRsoft",
"applicationCategory": "SportsApplication",
"operatingSystem": "Web",
"description": "Éditeur 3D de blocs d'escalade bouldering en ligne. Routesetting virtuel.",
"url": "https://setrsoft.com",
"offers": { "@type": "Offer", "price": "0" }
})}</script>
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

The SEO title, description, and JSON-LD structured data are hardcoded in French. Since the project uses react-i18next, these strings should be localized using the t() function to ensure the metadata matches the user's selected language.

Comment on lines +12 to +13
<title>Contact – SetRsoft</title>
<meta name="description" content="Contactez l'équipe SetRsoft pour intégrer l'éditeur 3D dans votre salle d'escalade bouldering." />
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

The SEO metadata is hardcoded in French. It should be localized using t() to support the application's multilingual capabilities.

Comment on lines +12 to +13
<title>Partenaires – SetRsoft</title>
<meta name="description" content="Salles d'escalade partenaires de SetRsoft, logiciel de routesetting 3D bouldering." />
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

The SEO metadata is hardcoded in French. It should be localized using t() to support the application's multilingual capabilities.

eloiberlinger1 and others added 2 commits April 16, 2026 21:23
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds basic SEO artifacts (sitemap/robots) and page-level metadata management to improve discoverability of the frontend SPA.

Changes:

  • Add sitemap.xml and robots.txt under frontend/public/.
  • Introduce react-helmet-async (HelmetProvider + per-page <Helmet> tags) to set titles/descriptions and JSON-LD.
  • Minor fixes/adjustments: editor analytics effect deps, update a dataset link, update default index.html metadata, README link text.

Reviewed changes

Copilot reviewed 10 out of 11 changed files in this pull request and generated 8 comments.

Show a summary per file
File Description
frontend/src/main.tsx Wrap app in HelmetProvider to enable runtime head management.
frontend/src/features/showcase/HomePage.tsx Add Helmet title/description + JSON-LD; update dataset link.
frontend/src/features/showcase/PartnersPage.tsx Add Helmet title/description.
frontend/src/features/showcase/ContactPage.tsx Add Helmet title/description.
frontend/src/features/editor/EditorApp.tsx Fix useEffect dependency list; whitespace cleanup.
frontend/public/sitemap.xml Add static sitemap entries for key marketing pages.
frontend/public/robots.txt Add crawl rules + sitemap reference.
frontend/package.json Add react-helmet-async dependency.
frontend/package-lock.json Lockfile updates for new dependency tree.
frontend/index.html Update default title/meta/OG tags + canonical.
README.md Add a link to YouTube search results for context.
Files not reviewed (1)
  • frontend/package-lock.json: Language not supported

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines +43 to +46
<Helmet>
<title>SetRsoft – Éditeur 3D Bouldering en ligne</title>
<meta name="description" content="Éditeur 3D virtuel pour créer vos blocs d'escalade bouldering. Simulation, routesetting, partage de séquences." />
<script type="application/ld+json">{JSON.stringify({
Copy link

Copilot AI Apr 16, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The page <title> and meta description are hard-coded in French, while the rest of the page is localized via i18next. This will show French metadata even when the active language is English/DE/etc; consider sourcing these values from translation keys (e.g., t('seo.home.title'), t('seo.home.description')) and adding those keys to each locale JSON.

Copilot uses AI. Check for mistakes.
Comment on lines +46 to +55
<script type="application/ld+json">{JSON.stringify({
"@context": "https://schema.org",
"@type": "SoftwareApplication",
"name": "SetRsoft",
"applicationCategory": "SportsApplication",
"operatingSystem": "Web",
"description": "Éditeur 3D de blocs d'escalade bouldering en ligne. Routesetting virtuel.",
"url": "https://setrsoft.com",
"offers": { "@type": "Offer", "price": "0" }
})}</script>
Copy link

Copilot AI Apr 16, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This structured-data <script> is created inline with JSON.stringify(...) on every render. Consider hoisting the JSON-LD object/string outside the component or memoizing it to avoid unnecessary work during re-renders (especially if the component state updates).

Copilot uses AI. Check for mistakes.
Comment on lines +11 to +14
<Helmet>
<title>Partenaires – SetRsoft</title>
<meta name="description" content="Salles d'escalade partenaires de SetRsoft, logiciel de routesetting 3D bouldering." />
</Helmet>
Copy link

Copilot AI Apr 16, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The page <title> and meta description are hard-coded in French even though the UI text uses i18next translations. To avoid incorrect language metadata for non-FR users/crawlers, consider using translated values (new i18n keys per locale) instead of hard-coded strings.

Copilot uses AI. Check for mistakes.
Comment on lines +12 to +13
<title>Contact – SetRsoft</title>
<meta name="description" content="Contactez l'équipe SetRsoft pour intégrer l'éditeur 3D dans votre salle d'escalade bouldering." />
Copy link

Copilot AI Apr 16, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The page <title> and meta description are hard-coded in French even though the UI text uses i18next translations. To avoid incorrect language metadata for non-FR users/crawlers, consider using translated values (new i18n keys per locale) instead of hard-coded strings.

Suggested change
<title>Contact – SetRsoft</title>
<meta name="description" content="Contactez l'équipe SetRsoft pour intégrer l'éditeur 3D dans votre salle d'escalade bouldering." />
<title>{t('contact.metaTitle')}</title>
<meta name="description" content={t('contact.metaDescription')} />

Copilot uses AI. Check for mistakes.
User-agent: *
Allow: /
Disallow: /editor/
Disallow: /gym/
Copy link

Copilot AI Apr 16, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Disallow: /gym/ will not match the /gym route (no trailing slash) used by the router, so crawlers may still index the gym dashboard. Consider changing this to Disallow: /gym (and similarly decide whether /editor itself should be blocked in addition to /editor/*).

Suggested change
Disallow: /gym/
Disallow: /gym

Copilot uses AI. Check for mistakes.
Comment thread frontend/index.html
Comment on lines +11 to +15
<title>SetRsoft – Éditeur 3D de blocs d'escalade bouldering</title>
<meta name="description" content="SetRsoft est un éditeur 3D en ligne pour créer des blocs et voies d'escalade bouldering. Routesetting virtuel, simulation 3D, partage de séquences." />
<meta name="keywords" content="éditeur 3D escalade, bouldering editor, routesetting en ligne, créer voie escalade, virtual climbing wall, bloc escalade 3D" />
<meta property="og:title" content="SetRsoft – Éditeur 3D escalade bouldering" />
<meta property="og:description" content="Créez et partagez vos blocs d'escalade en 3D. Éditeur virtuel bouldering en ligne." />
Copy link

Copilot AI Apr 16, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

These default SEO tags in index.html are hard-coded in French, but the app is configured for multiple locales (i18next with fallbackLng=en). If you expect non-FR users/SEO, consider making the default metadata language-neutral/English, or add a prerender/SSR strategy so metadata can be emitted per-locale rather than relying on a single static index.html.

Suggested change
<title>SetRsoft – Éditeur 3D de blocs d'escalade bouldering</title>
<meta name="description" content="SetRsoft est un éditeur 3D en ligne pour créer des blocs et voies d'escalade bouldering. Routesetting virtuel, simulation 3D, partage de séquences." />
<meta name="keywords" content="éditeur 3D escalade, bouldering editor, routesetting en ligne, créer voie escalade, virtual climbing wall, bloc escalade 3D" />
<meta property="og:title" content="SetRsoft – Éditeur 3D escalade bouldering" />
<meta property="og:description" content="Créez et partagez vos blocs d'escalade en 3D. Éditeur virtuel bouldering en ligne." />
<title>SetRsoft – 3D bouldering route editor</title>
<meta name="description" content="SetRsoft is an online 3D editor for creating bouldering problems and climbing routes. Virtual routesetting, 3D simulation, and sequence sharing." />
<meta name="keywords" content="3D climbing editor, bouldering editor, online routesetting, create climbing route, virtual climbing wall, 3D bouldering" />
<meta property="og:title" content="SetRsoft – 3D bouldering route editor" />
<meta property="og:description" content="Create and share your 3D climbing problems online with a virtual bouldering editor." />

Copilot uses AI. Check for mistakes.
Comment thread README.md

SetRsoft is an open source community driven software. Test it live on the website http://www.setrsoft.com/

For better understanding the purpose of this project you can have a look at [one of those videos](https://www.youtube.com/results?search_query=routesetting+in+climbing+gym).
Copy link

Copilot AI Apr 16, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Spelling/grammar: "puropose" is misspelled, and the sentence reads ungrammatically ("have a look to"). Consider updating to "For a better understanding of the purpose of this project, you can have a look at one of these videos ...".

Suggested change
For better understanding the purpose of this project you can have a look at [one of those videos](https://www.youtube.com/results?search_query=routesetting+in+climbing+gym).
For a better understanding of the purpose of this project, you can have a look at [one of those videos](https://www.youtube.com/results?search_query=routesetting+in+climbing+gym).

Copilot uses AI. Check for mistakes.
Comment on lines +1 to +6
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>https://setrsoft.com/</loc>
<changefreq>weekly</changefreq>
<priority>1.0</priority>
Copy link

Copilot AI Apr 16, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The PR title suggests this change only adds a sitemap, but this PR also introduces runtime SEO metadata via react-helmet-async (HelmetProvider + per-page meta) and updates robots.txt/README/links. Consider updating the PR title/description to reflect the broader SEO scope so reviewers know what to focus on.

Copilot uses AI. Check for mistakes.
@eloiberlinger1 eloiberlinger1 merged commit 02ce305 into prod Apr 16, 2026
1 of 2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants