Creator View: Streamlining Profiles & Content

by Editorial Team 46 views
Iklan Headers

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 creators Table: We're introducing a new database table called creators. 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 the items table. 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 creators table, we'll undertake a migration process:
    • Backfill creators from the existing subscriptions table. 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.

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 providerCreatorId from 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 creators table 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!