diff --git a/packages/fakeyou.com/package.json b/packages/fakeyou.com/package.json
index ce937ceb29..cefe2e3eaa 100644
--- a/packages/fakeyou.com/package.json
+++ b/packages/fakeyou.com/package.json
@@ -60,6 +60,7 @@
"react-dom": "^16.13.1",
"react-drag-drop-files": "^2.3.9",
"react-i18next": "^11.15.4",
+ "react-iframe": "^1.8.5",
"react-infinite-scroll-component": "^6.1.0",
"react-paginate": "^8.2.0",
"react-range": "^1.8.14",
diff --git a/packages/fakeyou.com/src/v2/view/PageContainer.tsx b/packages/fakeyou.com/src/v2/view/PageContainer.tsx
index bc1b686b43..0c497c8a21 100644
--- a/packages/fakeyou.com/src/v2/view/PageContainer.tsx
+++ b/packages/fakeyou.com/src/v2/view/PageContainer.tsx
@@ -84,6 +84,7 @@ import { GenerateSpeechPage } from "./pages/generate_speech/GenerateSpeechPage";
import VcModelViewPage from "./pages/vc/vc_model_view/VcModelViewPage";
import VcModelEditPage from "./pages/vc/vc_model_edit/VcModelEditPage";
import VcModelDeletePage from "./pages/vc/vc_model_delete/VcModelDeletePage";
+import { StorytellerStudioListPage } from "./pages/storyteller_studio/vc_model_list/StorytellerStudioListPage";
import TopNav from "components/layout/TopNav/TopNav";
import SideNav from "components/layout/SideNav/SideNav";
import MobileMenu from "components/layout/MobileMenu/MobileMenu";
diff --git a/packages/fakeyou.com/src/v2/view/pages/storyteller_studio/vc_model_list/StorytellerStudioListPage.tsx b/packages/fakeyou.com/src/v2/view/pages/storyteller_studio/vc_model_list/StorytellerStudioListPage.tsx
new file mode 100644
index 0000000000..a64beafa5d
--- /dev/null
+++ b/packages/fakeyou.com/src/v2/view/pages/storyteller_studio/vc_model_list/StorytellerStudioListPage.tsx
@@ -0,0 +1,59 @@
+import React, { useState, useEffect, useCallback } from "react";
+import { SessionWrapper } from "@storyteller/components/src/session/SessionWrapper";
+import Iframe from "react-iframe";
+
+import { SessionSubscriptionsWrapper } from "@storyteller/components/src/session/SessionSubscriptionsWrapper";
+import { SsPageHero } from "./components/SsPageHero";
+
+interface Props {
+ sessionWrapper: SessionWrapper;
+ sessionSubscriptionsWrapper: SessionSubscriptionsWrapper;
+}
+
+function StorytellerStudioListPage(props: Props) {
+ return (
+
+
+
+
+
+ {/*
+
+
+ Get rewarded from our $15k prize pool for creating Voice to Voice
+ models!
+
+
+ See details
+
+
*/}
+
+
+ );
+}
+
+const LoadingIcon: React.FC = () => {
+ return (
+ <>
+
+ Loading...
+ >
+ );
+};
+
+export { StorytellerStudioListPage };
diff --git a/packages/fakeyou.com/src/v2/view/pages/storyteller_studio/vc_model_list/components/SsPageHero.tsx b/packages/fakeyou.com/src/v2/view/pages/storyteller_studio/vc_model_list/components/SsPageHero.tsx
new file mode 100644
index 0000000000..110b672a42
--- /dev/null
+++ b/packages/fakeyou.com/src/v2/view/pages/storyteller_studio/vc_model_list/components/SsPageHero.tsx
@@ -0,0 +1,131 @@
+import React, { useMemo } from "react";
+import { SessionWrapper } from "@storyteller/components/src/session/SessionWrapper";
+import { SessionSubscriptionsWrapper } from "@storyteller/components/src/session/SessionSubscriptionsWrapper";
+import { Link } from "react-router-dom";
+import { FontAwesomeIcon } from "@fortawesome/react-fontawesome";
+import {
+ faStar,
+ faUser,
+ faArrowRight,
+ faMicrophoneStand,
+} from "@fortawesome/pro-solid-svg-icons";
+import { Analytics } from "../../../../../../common/Analytics";
+import { WebUrl } from "../../../../../../common/WebUrl";
+import { PageHeaderWithImage } from "../../../../_common/PageHeaderWithImage";
+import { useLocalize } from "hooks";
+
+interface Props {
+ sessionWrapper: SessionWrapper;
+ sessionSubscriptionsWrapper: SessionSubscriptionsWrapper;
+}
+
+export function SsPageHero(props: Props) {
+ const { t } = useLocalize("VcModelListPage");
+ const randomImage = useMemo(() => {
+ const images = ["mascot/may4th.webp"];
+
+ return images[Math.floor(Math.random() * images.length)];
+ }, []);
+
+ let signUpButton = <>>;
+ let viewPricingButton = <>>;
+ let upgradeButton = <>>;
+ let myProfileButton = <>>;
+
+ if (!props.sessionWrapper.isLoggedIn()) {
+ signUpButton = (
+ <>
+ {
+ Analytics.ttsClickHeroSignup();
+ }}
+ >
+
+
+ >
+ );
+ viewPricingButton = (
+ <>
+ {
+ Analytics.ttsClickHeroViewPricing();
+ }}
+ >
+
+
+ >
+ );
+ }
+
+ if (props.sessionWrapper.isLoggedIn()) {
+ let displayName = props.sessionWrapper.getDisplayName() as string; // NB: If logged in, should be string
+ let url = WebUrl.userProfilePage(displayName);
+ myProfileButton = (
+ <>
+ {
+ Analytics.ttsClickHeroViewProfile();
+ }}
+ >
+
+
+ >
+ );
+ if (!props.sessionSubscriptionsWrapper.hasPaidFeatures()) {
+ upgradeButton = (
+ <>
+ {
+ Analytics.ttsClickHeroUpgradePlan();
+ }}
+ >
+
+
+ >
+ );
+ }
+ }
+
+ const titleIcon = (
+
+ );
+ const title = <>Storyteller Studio>;
+ const subText = <>Anyone can make films.>;
+ const actionButtons = (
+ <>
+ {upgradeButton}
+ {signUpButton}
+ {viewPricingButton}
+ {myProfileButton}
+ >
+ );
+
+ return (
+ <>
+
+ >
+ );
+}