Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
73 commits
Select commit Hold shift + click to select a range
86cabfe
Add the untranslated locale to the global list of languages
elisescu Dec 11, 2025
8879b32
Add a new instruction for Claude
elisescu Dec 4, 2025
b356d56
Use the same header logo for all screen sizes
elisescu Dec 1, 2025
2c9d68b
Change the order of the navigation links in the global header
elisescu Dec 1, 2025
433e80c
New homepage: Add the staff picks and hero CTAs sections
elisescu Dec 1, 2025
65e7bd4
New homepage: Add the what is Metaculus page
elisescu Dec 2, 2025
bbae4b1
New homepage: Add the Forecasts section
elisescu Dec 3, 2025
1027b8e
New homepage: Add the tournaments section
elisescu Dec 4, 2025
2bcdc81
New homepage: add the Futureeval section
elisescu Dec 4, 2025
9336729
New homepage: add the research and updates section
elisescu Dec 5, 2025
a8577a7
New homepage: Add the new footer changes
elisescu Dec 5, 2025
c53d3ed
New homepage: Add the categories section
elisescu Dec 5, 2025
6e334a4
New homepage: update the padding and max width
elisescu Dec 11, 2025
bd6eeb9
New homepage: Replace the featured-in images
elisescu Dec 11, 2025
0eb0a3e
Fix several linter and type issues
elisescu Dec 11, 2025
bb411ba
Add Suspense fallback loaders to homepage sections
elisescu Dec 17, 2025
79b5055
Refactor HeroCTACard to use variant-based styling
elisescu Dec 17, 2025
f3bb6b4
Refactor MedalRow component to use a record for medal types
elisescu Dec 17, 2025
c058e3d
Optimize data fetching on homepage with Promise.all
elisescu Dec 17, 2025
2ba7e60
Rename 'posts' to 'post_titles' in categories API and components
elisescu Dec 17, 2025
5db9bcb
Refactor LanguageMenu to directly use APP_LANGUAGES
elisescu Dec 17, 2025
75cf72e
Move out the MetaculusTextLogo into a separate file
elisescu Dec 18, 2025
52fd56a
Account for the user's language preferences in the footer language se…
elisescu Dec 18, 2025
b66d929
Update API call in HomePageForecasts to use getPostsWithCPForHomepage
elisescu Dec 18, 2025
0f1b319
Handle API errors silently in fetchSiteStats and update getSiteStats …
elisescu Dec 18, 2025
fd3d0d6
Add featured logos as separate components and refactor imports in why…
elisescu Dec 18, 2025
71b0711
Refactor tournaments section to filter ongoing tournaments for homepa…
elisescu Dec 18, 2025
b81776d
Add ExploreImagesGrid component and refactor homepage_forecasts to us…
elisescu Dec 18, 2025
4de9d2a
Update category URL construction to include POST_FOR_MAIN_FEED constant
elisescu Dec 18, 2025
fb98f08
Refactor tournament link generation to use getProjectLink utility
elisescu Dec 18, 2025
d7317ad
Fix several linter issues on the new home page
elisescu Dec 18, 2025
f5f65c9
Remove the LanguageMenu and ThemeToggle components from Header
elisescu Dec 18, 2025
86c7217
Update StaffPicks component styles for improved layout
elisescu Dec 18, 2025
a445fcc
Refactor StaffPicks component for better styling and layout
elisescu Dec 18, 2025
101abb6
Update text color in homepage_forecasts and staff_picks components
elisescu Dec 18, 2025
2c1995c
Remove the right padding for landing page CTA on small screens
elisescu Dec 18, 2025
6125870
Refactor layout of featured items in WhyMetaculus component
elisescu Dec 19, 2025
cd700a9
Show at most 3 questions on the homepage on small screens
elisescu Dec 19, 2025
624f1c3
Expand the ExploreImagesGrid to fill the same space as its siblings
elisescu Dec 19, 2025
1dce8b7
Update text styles in FutureEvalSection, ResearchAndUpdates, and Tour…
elisescu Dec 19, 2025
5e5e7fe
Various style fixes to the ResearchAndUpdates component
elisescu Dec 19, 2025
e824f18
Adjust emoji text size in CategoryCard component
elisescu Dec 19, 2025
026a3ac
Revert "Rename 'posts' to 'post_titles' in categories API and compone…
elisescu Dec 19, 2025
13b1f96
Link to the question page from the homepage category section
elisescu Dec 19, 2025
e886aa9
Update the bottom footer links to align left
elisescu Dec 19, 2025
d2ad3ea
Use 3 cols homepage grid on lg screens before switching to 4 cols
elisescu Dec 19, 2025
d824a1d
Fix linter issues
elisescu Dec 19, 2025
b2233d5
Fix the right padding on the new homepage hero section
elisescu Dec 19, 2025
b3139be
Fix the integration tests with the new footer
elisescu Dec 19, 2025
d375687
Add support for using PH on the NextJS server side
elisescu Dec 19, 2025
d3cc9cd
Use the new live tournament card component for new landing page
elisescu Jan 5, 2026
add9d31
Adjust padding classes in homepage hero section
elisescu Jan 5, 2026
cab6d55
Update hero section titles in multiple languages
elisescu Jan 5, 2026
f032271
Use the embla carousel for the hero sections
elisescu Jan 5, 2026
71e4932
Update footer component to set max width for bottom links
elisescu Jan 5, 2026
afca0aa
Minor copy fix on the landing page
elisescu Jan 5, 2026
205fa84
Change the homepage categories section title on desktop
elisescu Jan 5, 2026
9522cfb
Exclude notebooks from categories section on homepage
elisescu Jan 6, 2026
40d3941
Remove the images from the the new homepage hero cards
elisescu Jan 7, 2026
7ba7357
Update the copy on the new landing page hero section
elisescu Jan 7, 2026
9e778a3
Make sure the homepage questions are part of public projects
elisescu Jan 7, 2026
b9fcf24
Only include ongoing tournaments on new homepage page
elisescu Jan 8, 2026
3b8f4e2
Several copy updates to the FutureEval section
elisescu Jan 8, 2026
7fb26a3
Minor copy change on the Forecasts homepage section
elisescu Jan 8, 2026
43e4bb1
Small adjustments to the Explore all SVG image position
elisescu Jan 8, 2026
a18a6fc
Minor adjustments to the "featured in" logos on the new landing page …
elisescu Jan 8, 2026
abc07e5
Hew homepage FutureEval section adjustments
elisescu Jan 8, 2026
cb09931
Update the footer with the new design
elisescu Jan 8, 2026
a00c2db
Remove unused imports
elisescu Jan 9, 2026
33cab6b
Replace the old homepage with the new one
elisescu Jan 9, 2026
3980f64
Filter categories to include only those with top_n_post_ids
elisescu Jan 9, 2026
54d9014
Show continuous question tiles more compact on the new landing page
elisescu Jan 12, 2026
3548a8e
Update the article links where Metaculus is featured in
elisescu Jan 12, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions Claude.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
- Check the existing code style and follow it
- Destructure imports when possible (eg. import { foo } from 'bar')
- Do not add excesive comments. Add comments only to document what would be surprising to a senior engineer.
- For any frontend content visible to the user, use the translation mechanism used across the whole frontend.`const t = useTranslations()` and then `t("stringKey")` while addingt the "stringKey" to all the correspondong language files (en.json, es.json, etc).

# Workflow
- Be sure to run the linter, type checker, formatter and try to build the code when you’re done making a series of code changes.
52 changes: 49 additions & 3 deletions front_end/messages/cs.json
Original file line number Diff line number Diff line change
Expand Up @@ -355,7 +355,7 @@
"outOfRank": "z {total}",
"comments": "Komentáře",
"questions": "Otázky",
"viewMore": "Zobrazit více...",
"viewMore": "Zobrazit více",
"randomQuestion": "Náhodná otázka",
"notebooks": "Poznámkové bloky",
"otherWithCount": "{count, plural, =1 {# další} other {# dalších} }",
Expand Down Expand Up @@ -638,6 +638,8 @@
"newsLetter": "Newsletter",
"research": "Výzkum",
"updates": "Aktualizace",
"researchAndUpdates": "Výzkum a aktualizace",
"seeMore": "Zobrazit více",
"posts": "příspěvky",
"notebook": "notebook",
"notebookExample": "obsah založený na textu, který není otázkou",
Expand Down Expand Up @@ -1346,7 +1348,7 @@
"learnAboutPotentialWays": "Zjistěte způsoby, jak s námi můžete spolupracovat",
"launchTournament": "Spustit turnaj",
"launchTournamentOnMetaculus": "Spustit turnaj <span>na Metaculus</span>",
"launchTournamentDescription": "Získejte jasno ve svých klíčových otázkách a objevte přední předpovídače. Uskočíme turnaj a doručíme vám použitelné poznatky.",
"launchTournamentDescription": "Získejte poznatky a objevte přední předpovídače",
"ourMostAccurateForecasters": "Naši nejpřesnější předpovídači poskytují kalibrované předpovědi s jasným odůvodněním, což umožňuje rozhodovatelům jednat s důvěrou.",
"metaculusHasYearsOfExperience": "Metaculus má roky zkušeností s navrhováním a provozováním turnajů k vytvoření jasnosti v otázkách, které jsou pro organizace nejdůležitější.",
"tellUsYourGoal": "Řekněte nám vaše cíle",
Expand Down Expand Up @@ -1824,5 +1826,49 @@
"tournamentsInfoScoringLink": "Co jsou předpovídací skóre?",
"tournamentsInfoPrizesLink": "Jak jsou rozdělovány ceny?",
"featured": "Doporučené",
"othersCount": "Ostatní ({count})"
"staffPicks": "Výběr personálu",
"othersCount": "Ostatní ({count})",
"hero1TopTitle": "Platforma Metaculus",
"heroIndividualsTitle": "Rozhodujte se na základě důvěryhodných komunitních předpovědí",
"exploreQuestions": "Prozkoumat otázky",
"heroIndividualsDescription": "Získejte spolehlivé informace o tématech, která vás zajímají",
"hero2TopTitle": "Služby",
"partnerWithMetaculus": "Spolupracujte s Metaculus",
"hireProForecasters": "Najměte profesionální prognostiky",
"hireProForecastersDescription": "Získejte odborné předpovědi pro vaše klíčové otázky",
"hostPrivateInstances": "Hostujte soukromé instance",
"hostPrivateInstancesDescription": "Objevte poznatky z vaší organizace",
"whatsMetaculus": "Co je Metaculus?",
"metaculusDescription": "Metaculus je online platforma pro předpovídání a agregační nástroj, který pracuje na zlepšení lidského uvažování a koordinace v tématech globálního významu.",
"openQuestions": "Otevřené otázky",
"forecastsSubmitted": "Odeslaných předpovědí",
"yearsOfPrediction": "Let předpovídání",
"featuredIn": "Zmíněno v",
"popular": "Populární",
"exploreAll": "Prozkoumat vše",
"exploreNTournaments": "Prozkoumat {count} turnajů",
"metaculusFutureEval": "Metaculus FutureEval",
"futureEvalDescription": "FutureEval měří schopnost AI předpovídat budoucí události. Je zaručeně odolné proti únikům.",
"futureEvalTagline": "Používáme předpovídání jako způsob hodnocení rozumování ve srovnání s realitou.",
"modelLeaderboard": "Žebříček modelů",
"modelLeaderboardDescription": "Spouštíme všechny hlavní modely s jednoduchým výzvou na většinu otevřených otázek předpovídání na Metaculus a sbíráme jejich předpovědi.",
"botsVsHumans": "Boti vs Lidé",
"botsVsHumansDescription": "Pořádáme sezónní a dvoutýdenní turnaje botů, otevřené pro všechny tvůrce. Boti soutěží proti sobě navzájem a jsou porovnáváni s nejlepšími lidskými předpovídači.",
"startCompeting": "Začněte soutěžit",
"startCompetingDescription": "Připojte se k více než 100 týmům a jednotlivým tvůrcům botů, kteří soutěží o cenový fond ve výši 50 000 dolarů na jaře 2026 nebo se zúčastněte dvoutýdenního",
"miniBench": "MiniBench",
"leaderboardDataNotAvailable": "Údaje o žebříčku nejsou momentálně k dispozici, prosím, zkontrolujte později!",
"viewLess": "Zobrazit méně",
"explore": "Prozkoumat",
"company": "Společnost",
"resources": "Zdroje",
"publicBenefitCorporation": "Obecně prospěšná společnost",
"tournamentsForAIBots": "Turnaje pro AI roboty",
"futureEval": "Budoucí posouzení",
"launchATournament": "Spusťte turnaj",
"tournamentsInfoTitle": "Nejsme <predmarket>trh s prognózami</predmarket>. Můžete se účastnit zdarma a vyhrát peněžní ceny za přesné předpovědi.",
"tournamentsInfoScoringLink": "Co jsou prognostické skóre?",
"tournamentsInfoPrizesLink": "Jak jsou rozdělovány ceny?",
"allCategoriesTopQuestions": "Nejlepší otázky v každé kategorii",
"thousandsOfOpenQuestions": "20 000+ otevřených otázek"
}
49 changes: 46 additions & 3 deletions front_end/messages/en.json
Original file line number Diff line number Diff line change
@@ -1,4 +1,25 @@
{
"exploreNTournaments": "Explore {count} tournaments",
"popular": "Popular",
"exploreAll": "Explore all",
"thousandsOfOpenQuestions": "20,000+ open questions",
"whatsMetaculus": "What's Metaculus?",
"metaculusDescription": "Metaculus is an online forecasting platform and aggregation engine working to improve human reasoning and coordination on topics of global importance.",
"openQuestions": "Open questions",
"forecastsSubmitted": "Forecasts submitted",
"yearsOfPrediction": "Years of prediction",
"featuredIn": "Featured in",
"hero1TopTitle": "Metaculus Platform",
"heroIndividualsTitle": "Make decisions based on trusted community forecasts",
"exploreQuestions": "Explore questions",
"heroIndividualsDescription": "Get reliable insights on the topics that matter to you",
"hero2TopTitle": "Services",
"partnerWithMetaculus": "Partner with Metaculus",
"hireProForecasters": "Hire Pro Forecasters",
"hireProForecastersDescription": "Get expert forecasts on your critical questions",
"hostPrivateInstances": "Host private instances",
"hostPrivateInstancesDescription": "Surface insights from within your organization",
"staffPicks": "Staff Picks",
"current_week": "Current Week",
"placementFirst": "1st place",
"placementSecond": "2nd place",
Expand Down Expand Up @@ -466,7 +487,7 @@
"comments": "Comments",
"questions": "Questions",
"leaderboardQuestions": "Leaderboard Questions",
"viewMore": "View more...",
"viewMore": "View more",
"randomQuestion": "Random Question",
"notebooks": "Notebooks",
"otherWithCount": "{count, plural, =1 {# other} other {# others} }",
Expand Down Expand Up @@ -624,6 +645,12 @@
"termsOfUse": "Terms of Use",
"faq": "FAQ",
"contact": "Contact",
"company": "Company",
"resources": "Resources",
"publicBenefitCorporation": "Public Benefit Corporation",
"tournamentsForAIBots": "Tournaments for AI bots",
"futureEval": "FutureEval",
"launchATournament": "Launch a Tournament",
"contactUs": "Contact Us",
"thankYouForGettingInTouch": "Thank you for getting in touch. We’ll get back to you soon!",
"yourEmail": "Your Email",
Expand Down Expand Up @@ -851,6 +878,8 @@
"newsLetter": "Newsletter",
"research": "Research",
"updates": "Updates",
"researchAndUpdates": "Research and updates",
"seeMore": "See more",
"posts": "posts",
"notebook": "notebook",
"existingQuestion": "Existing Question",
Expand Down Expand Up @@ -1476,7 +1505,7 @@
"learnAboutPotentialWays": "Learn about ways you can work with us",
"launchTournament": "Launch a Tournament",
"launchTournamentOnMetaculus": "Launch a Tournament <span>on Metaculus</span>",
"launchTournamentDescription": "Gain clarity on your key questions and discover top forecasters. We'll run the tournament and deliver the actionable insights to you.",
"launchTournamentDescription": "Get insights and discover top forecasters",
"ourMostAccurateForecasters": "Our most accurate forecasters deliver calibrated predictions paired with clear reasoning, empowering decision-makers to act with confidence.",
"metaculusHasYearsOfExperience": "Metaculus has years of experience designing and operating tournaments to provide clarity on the issues most important to organizations.",
"tellUsYourGoal": "Tell Us Your Goals",
Expand Down Expand Up @@ -1818,5 +1847,19 @@
"tournamentsTabIndexes": "Indexes",
"tournamentsTabArchived": "Archived",
"featured": "Featured",
"none": "none"
"none": "none",
"metaculusFutureEval": "Metaculus FutureEval",
"futureEvalDescription": "FutureEval measures AI's ability to predict future outcomes. It is guaranteed leak-proof.",
"futureEvalTagline": "We use forecasting as a way to evaluate reasoning against reality.",
"modelLeaderboard": "Model leaderboard",
"modelLeaderboardDescription": "We run all major models with a simple prompt on most open Metaculus forecasting questions, and collect their forecasts.",
"botsVsHumans": "Bots vs Humans",
"botsVsHumansDescription": "We run seasonal and biweekly bot tournaments, open to all builders. Bots compete against each other and are benchmarked against top human forecasters.",
"startCompeting": "Start competing",
"startCompetingDescription": "Join 100+ teams and individual bot builders competing for a $50,000 prize pool in Spring 2026 or enter the biweekly",
"miniBench": "MiniBench",
"leaderboardDataNotAvailable": "Leaderboard data not currently available, please check back soon!",
"viewLess": "View less",
"allCategoriesTopQuestions": "Top questions in every category",
"explore": "Explore"
}
52 changes: 49 additions & 3 deletions front_end/messages/es.json
Original file line number Diff line number Diff line change
Expand Up @@ -362,7 +362,7 @@
"outOfRank": "de {total}",
"comments": "Comentarios",
"questions": "Preguntas",
"viewMore": "Ver más...",
"viewMore": "Ver más",
"randomQuestion": "Pregunta Aleatoria",
"notebooks": "Cuadernos",
"otherWithCount": "{count, plural, =1 {# otro} other {# otros} }",
Expand Down Expand Up @@ -640,6 +640,8 @@
"newsLetter": "Boletín",
"research": "Investigación",
"updates": "Actualizaciones",
"researchAndUpdates": "Investigación y actualizaciones",
"seeMore": "Ver más",
"posts": "publicaciones",
"notebook": "notebook",
"notebookExample": "contenido basado en texto que no es una pregunta",
Expand Down Expand Up @@ -1346,7 +1348,7 @@
"learnAboutPotentialWays": "Conoce las maneras en que puedes trabajar con nosotros",
"launchTournament": "Lanzar un Torneo",
"launchTournamentOnMetaculus": "Lanzar un Torneo <span>en Metaculus</span>",
"launchTournamentDescription": "Obtén claridad sobre tus preguntas clave y descubre a los mejores pronosticadores. Nos encargaremos del torneo y te entregaremos los conocimientos prácticos.",
"launchTournamentDescription": "Obtén insights y descubre a los mejores pronosticadores",
"ourMostAccurateForecasters": "Nuestros pronosticadores más precisos entregan predicciones calibradas acompañadas de un razonamiento claro, capacitando a los tomadores de decisiones para actuar con confianza.",
"metaculusHasYearsOfExperience": "Metaculus tiene años de experiencia diseñando y operando torneos para proporcionar claridad sobre los temas más importantes para las organizaciones.",
"tellUsYourGoal": "Cuéntanos Tus Objetivos",
Expand Down Expand Up @@ -1824,5 +1826,49 @@
"tournamentsInfoScoringLink": "¿Qué son las puntuaciones de predicción?",
"tournamentsInfoPrizesLink": "¿Cómo se distribuyen los premios?",
"featured": "Destacado",
"othersCount": "Otros ({count})"
"staffPicks": "Selecciones del personal",
"othersCount": "Otros ({count})",
"hero1TopTitle": "Plataforma Metaculus",
"heroIndividualsTitle": "Toma decisiones basadas en pronósticos comunitarios confiables",
"exploreQuestions": "Explorar preguntas",
"heroIndividualsDescription": "Obtén información confiable sobre los temas que te importan",
"hero2TopTitle": "Servicios",
"partnerWithMetaculus": "Colabora con Metaculus",
"hireProForecasters": "Contrata pronosticadores profesionales",
"hireProForecastersDescription": "Obtén pronósticos expertos para tus preguntas críticas",
"hostPrivateInstances": "Aloja instancias privadas",
"hostPrivateInstancesDescription": "Descubre información desde dentro de tu organización",
"whatsMetaculus": "¿Qué es Metaculus?",
"metaculusDescription": "Metaculus es una plataforma de pronósticos en línea y motor de agregación que trabaja para mejorar el razonamiento humano y la coordinación en temas de importancia global.",
"openQuestions": "Preguntas abiertas",
"forecastsSubmitted": "Pronósticos enviados",
"yearsOfPrediction": "Años de predicción",
"featuredIn": "Destacado en",
"popular": "Popular",
"exploreAll": "Explorar todo",
"exploreNTournaments": "Explorar {count} torneos",
"metaculusFutureEval": "Metaculus FutureEval",
"futureEvalDescription": "FutureEval mide la capacidad de la inteligencia artificial para predecir resultados futuros. Está garantizado que no tiene fugas.",
"futureEvalTagline": "Usamos la previsión como una forma de evaluar el razonamiento frente a la realidad.",
"modelLeaderboard": "Clasificación de modelos",
"modelLeaderboardDescription": "Probaremos todos los modelos principales con un simple aviso en la mayoría de las preguntas de previsión abiertas de Metaculus, y recogeremos sus previsiones.",
"botsVsHumans": "Bots vs Humanos",
"botsVsHumansDescription": "Organizamos torneos estacionales y quincenales de bots, abiertos a todos los desarrolladores. Los bots compiten entre sí y se comparan con los mejores pronosticadores humanos.",
"startCompeting": "Empieza a competir",
"startCompetingDescription": "Únete a más de 100 equipos y constructores de bots individuales que compiten por un premio acumulado de $50,000 en la primavera de 2026 o participa en el",
"miniBench": "MiniBench",
"leaderboardDataNotAvailable": "Datos de clasificación actualmente no disponibles, ¡por favor vuelva pronto!",
"viewLess": "Ver menos",
"explore": "Explorar",
"company": "Empresa",
"resources": "Recursos",
"publicBenefitCorporation": "Corporación de Beneficio Público",
"tournamentsForAIBots": "Torneos para bots de IA",
"futureEval": "EvaluaciónFutura",
"launchATournament": "Iniciar un Torneo",
"tournamentsInfoTitle": "Nosotros <predmarket>no somos un mercado de predicciones</predmarket>. Puedes participar gratis y ganar premios en efectivo por ser preciso.",
"tournamentsInfoScoringLink": "¿Qué son las puntuaciones de pronóstico?",
"tournamentsInfoPrizesLink": "¿Cómo se distribuyen los premios?",
"allCategoriesTopQuestions": "Principales preguntas en cada categoría",
"thousandsOfOpenQuestions": "20,000+ preguntas abiertas"
}
Loading