Skip to content

Conversation

@Georges-GNM
Copy link
Contributor

@Georges-GNM Georges-GNM commented Dec 10, 2025

What does this change?

Part of the AI tag page project - the tool uploads json content for the AI curated storylines to s3 with the required data for DCR to be able to render it.

On discussion with the WebEx and F&C teams, we agreed that frontend would be pulling this and passing it to DCR. So this PR implements that - we define the relevant classes and objects to be able to provide the StorylinesContent to the DotcomTagPagesRenderingModel.

This will be displayed during an AB test in January, so for the purposes of testing and development, we just set up a 0% experiment (ensuring this logic doesn’t get called unless opted in) without restricting which pages this can appear on. the plan is to just run them on two pages (though possibly slightly more, so still a bit tbd); a subsequent PR will add a check to make sure we’re only displaying this on the desired pages. 


The relevant DCR PR is here.

Testing

Can best be tested with the DCR PR and checking the content appears on the desired page.

Checklist

@github-actions
Copy link
Contributor

github-actions bot commented Dec 10, 2025

@Georges-GNM Georges-GNM changed the title Gl/add TPSG content Add tag page experiment and pull storylines content Dec 15, 2025
@Georges-GNM Georges-GNM added Accessibility Audit Accessibility Audit Outcome feature Departmental tracking: work on a new feature and removed Accessibility Audit Accessibility Audit Outcome labels Dec 15, 2025
@Georges-GNM Georges-GNM self-assigned this Dec 15, 2025
@Georges-GNM Georges-GNM force-pushed the gl/add-tag-page-supercharger-content branch from 565483a to 5ab720c Compare December 15, 2025 10:54
Copy link
Contributor

@fredex42 fredex42 left a comment

Choose a reason for hiding this comment

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

LGTM, put in a couple of suggestions for alternate names for the expieriment

participationGroup = Perc0D,
)

object AITagPageContent
Copy link
Contributor

Choose a reason for hiding this comment

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

AIStorylines? TagPageAIStorylines ?

@Georges-GNM Georges-GNM force-pushed the gl/add-tag-page-supercharger-content branch from b58a392 to fa73ec3 Compare December 16, 2025 10:36
@Georges-GNM Georges-GNM marked this pull request as ready for review December 30, 2025 15:40
@Georges-GNM Georges-GNM requested a review from a team as a code owner December 30, 2025 15:40
// These mirror the definitions from DCR: https://github.com/guardian/dotcom-rendering/blob/main/dotcom-rendering/src/types/mainMedia.ts
// In DCR, we effectively bypass the usual transformations done to Frontend/CAPI data,
// but need to provide the fields below so multimedia cards can render correctly
sealed trait TPSGMediaData {
Copy link
Contributor

Choose a reason for hiding this comment

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

TPSG ?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Ah yeah, that's a reference to the Tag Page Supercharger tool - wanted to distinguish it from the IIRC existing media data class. Can rename that to storyline though to keep it more consistent 👍

implicit val mediaDataDecoder: Decoder[TPSGMediaData] =
Decoder.instance { cursor =>
cursor.get[String]("type").flatMap {
case "YoutubeVideo" => cursor.as[TPSGVideo]
Copy link
Contributor

Choose a reason for hiding this comment

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

Now that we have self-hosted video and vertical formats, will the storylines be supporting any of these?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

That's a good question - I think so far the video data has only been youtube ones (i.e. the only video articles getting displayed are ones with youtube videos), but I wouldn't rule it out.

Technically, the type doesn't really matter - the videos aren't meant to be playable where this is getting displayed, mainly we just want the media pill to be displaying correctly. But would definitely be best to make sure it's the correct type. That might be ok for a follow up PR though, I'll probably need to adapt some stuff in the tool for this as well.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

feature Departmental tracking: work on a new feature

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants