Creator View: Streamlining Profiles & Content
Hey everyone! This is a super exciting update that's going to change how you interact with creators and their content. We're rolling out a Creator View, a centralized hub where you can see all your bookmarks from a specific creator, discover their latest content, and subscribe to their channels. This feature is designed to make it easier to follow your favorite creators and dive deeper into their work. Let's dive into the details!
The Problem: Scattered Content and Limited Discovery
Currently, when you come across content from a creator, the experience is a bit fragmented. You see their name, but there's no easy way to see all the content you've bookmarked from them or explore more of their work. This Creator View fixes this by giving each creator their own dedicated page, acting as a home base for all their content within our platform. Think of it as a one-stop shop for all things related to a particular creator.
Motivation: Enhancing User Experience and Content Exploration
The main driver behind this feature is to improve your experience. We want to make it easier for you to find and consume the content you love. By providing a dedicated Creator View, we're empowering you to:
- Discover More Content: Easily see the latest content from your favorite creators, helping you stay up-to-date and discover new content you might have missed.
- Organize Your Bookmarks: Find all your bookmarked items from a specific creator in one place, making it easier to revisit and reference content.
- Subscribe Directly: Subscribe to creators directly from their profile, streamlining the process of following and supporting the creators you enjoy.
This feature also enhances the overall platform by:
- Improving Data Model: Creating a proper creator entity in the data model, which will unlock future features, such as creator search and recommendations.
- Boosting Content Visibility: Increasing the visibility of creators and their content, encouraging more engagement and support.
This is all about making the user experience more efficient and tailored to your interests.
Architectural Marvel: How the Creator View is Built
This is how it’s all coming together under the hood. Let's get into the technical nitty-gritty of how this feature is built.
Phase 1: Database Schema - Laying the Foundation
- New
creatorsTable: We're introducing a new database table calledcreators. This table is the cornerstone of the new feature, holding all the essential information about each creator. Here’s what it includes:id(ULID, primary key): A unique identifier for each creator.provider(YOUTUBE | SPOTIFY | RSS | SUBSTACK | WEB | X): The platform where the creator publishes content.providerCreatorId: The unique ID of the creator on their respective platform (e.g., YouTube channel ID, Spotify show ID).name,imageUrl,description,externalUrl,handle: Basic creator information.createdAt,updatedAt(Unix ms): Timestamps for tracking creation and updates.
- Items Table Modification: We're adding a
creatorId(foreign key) to theitemstable. This crucial addition links each content item to its creator, enabling efficient organization and retrieval of content. We'll also create an index to optimize joins. - Migration: To populate the
creatorstable, we'll undertake a migration process:- Backfill creators from the existing
subscriptionstable. This table already stores provider IDs, so it’s a natural starting point. - Backfill creators from existing
items. We'll use a hash to link items to creators, which is particularly useful for manually bookmarked content. - Link items to creators, establishing the connections needed for the Creator View.
- Backfill creators from the existing
Phase 2: API Endpoints - Powering the Backend
To make all this data accessible, we're building new API endpoints:
creators.get: Retrieves a creator's information by ID.creators.listBookmarks: Fetches paginated bookmarks from a specific creator.creators.fetchLatestContent: Retrieves the latest content from YouTube and Spotify, with a 10-minute caching mechanism for speed.creators.checkSubscription: Checks whether a user is subscribed to a creator.
Phase 3: Mobile UI - Bringing It to Life
We're creating a new route: /app/creator/[id].tsx, which will be the heart of the Creator View. It will be a stacked section with “Your Bookmarks” and “More from Creator.”
Phase 4: Bookmark Flow Changes - Automatic Creator Creation
When you bookmark content, we'll automatically create a creator entry if one doesn't already exist. This process involves:
- Extracting the
providerCreatorIdfrom API responses and raw metadata. - Finding or creating a creator based on the extracted information.
- Linking the bookmarked item to the appropriate creator.
This will make it easier for you to save and access your favorite creators' content.
Provider Support Matrix: What to Expect
We're launching this feature with support for several providers, with varying levels of functionality. Here's a quick look at the support matrix:
| Provider | Bookmarks | More Content | Subscribe |
|---|---|---|---|
| YOUTUBE | ✅ | ✅ (if connected) | ✅ |
| SPOTIFY | ✅ | ✅ (if connected) | ✅ |
| X | ✅ | ❌ | ❌ |
| RSS | ✅ | ❌ | ❌ |
| SUBSTACK | ✅ | ❌ | ❌ |
| WEB | ✅ | ❌ | ❌ |
Files to be Changed: The Technical Deep Dive
Here’s a look at the files that are being created or modified as part of this release.
| File | Changes |
|---|---|
apps/worker/src/db/schema.ts |
Add creators table, add creatorId to items |
apps/worker/src/trpc/router.ts |
Register creatorsRouter |
apps/worker/src/trpc/routers/creators.ts |
New - all creator endpoints |
apps/worker/src/trpc/routers/bookmarks.ts |
Auto-create creator on save |
apps/worker/src/ingestion/processor.ts |
Auto-create creator on ingestion |
apps/mobile/app/creator/[id].tsx |
New - Creator View screen |
apps/mobile/app/item/[id].tsx |
Make creator row clickable |
apps/mobile/hooks/use-creator.ts |
New - Creator data hooks |
packages/shared/src/types/domain.ts |
Add Creator interface |
Acceptance Criteria: Ensuring Quality
To ensure everything is working correctly, we have a set of acceptance criteria:
- The
creatorstable exists with the correct schema and indexes. - Existing items are linked to creators.
- New bookmarks automatically create creators.
- Tapping a creator's name on a content page navigates to the Creator View.
- The Creator View displays the user's bookmarks from that creator.
- The Creator View fetches the latest content for YouTube and Spotify (if connected).
- The subscribe button works for YouTube and Spotify creators.
- We've implemented empty states for cases where there are no bookmarks or the provider isn’t connected.
- The feature works seamlessly across all content types (video, podcast, article, post).
Future Work: Expanding the Creator Ecosystem
While this is a significant step forward, we have more plans! Some of the future enhancements we're considering include:
- Cross-provider creator merging (unifying profiles for creators who have content on multiple platforms).
- Creator search and discovery.
- Creator following without a full subscription.
We are always working to improve your experience and make our platform the best place to find and consume the content you love. Stay tuned for future updates!
This is a big step towards a more connected and user-friendly experience. We're excited to see how you all use it!