Migrate the entire monorepo from Biome 2.4.7 to oxlint 1.56.0 (linter) and oxfmt 0.41.0 (formatter) for faster lint/format and broader rule coverage. - Add `.oxlintrc.json` with React, TypeScript, unicorn, import plugins and correctness/suspicious categories - Add `.oxfmtrc.json` with 2-space indent, import sorting, and Tailwind class sorting (all 30+ custom className attributes migrated) - Add `docs/.oxlintrc.json` and `docs/.oxfmtrc.json` with Next.js plugin - Update all 12 workspace package.json scripts: `oxlint`, `oxfmt`, `oxfmt --check` - Add `format:check` turbo task and CI step - Update VS Code settings/extensions to use `oxc.oxc-vscode` - Update CI path triggers from `biome.json` to new config files - Remove all `biome-ignore` comments and fix shadowed variables - Delete `biome.json` and `docs/biome.json` - Reformat entire codebase with oxfmt Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
6.0 KiB
title, description, icon
| title | description | icon |
|---|---|---|
| Using Sofa | A guide to tracking movies and TV shows with Sofa. | Compass |
Dashboard
The dashboard is your home screen after logging in. It shows a personalized overview of your tracking activity.
- Stats — Cards showing movies watched, episodes watched, library size, and completed titles. Each card has a period selector (today, this week, this month, this year).
- Continue Watching — TV shows you're currently watching, with the next unwatched episode highlighted. Click a show to jump to its detail page and pick up where you left off.
- In Your Library — A grid of all titles you're tracking, regardless of status.
- Recommended for You — Personalized suggestions based on titles you've watched and rated highly.
If your library is empty, the dashboard shows an invitation to start exploring.
Tracking Movies & TV Shows
The Status System
Every title in your library has one of three statuses:
| Status | Meaning |
|---|---|
| Watchlist | You plan to watch this |
| In Progress | You're currently watching this |
| Completed | You've finished watching this |
Set a status from any title's detail page by clicking the status button, or press W to cycle through statuses.
Automatic Status Transitions
Sofa automatically updates statuses as you log watches so you don't have to manage them manually:
- First episode watched on a TV show → status changes to In Progress (if it was on your Watchlist or had no status)
- All episodes watched on a TV show → status changes to Completed
- Unwatch an episode on a completed show → status drops back to In Progress
- Mark a movie as watched → status changes to Completed
These same transitions apply when watches are logged automatically via webhook integrations (Plex, Jellyfin, Emby) or imported from another app (Trakt, Simkl, Letterboxd).
Logging Watches
Movies: Click the Mark Watched button on the title page (or press M) to log a watch and mark the movie as completed.
TV episodes: On the title page, expand a season and toggle individual episodes. You can also:
- Mark an entire season — Click the checkmark button on a season header to mark all its episodes as watched.
- Mark all episodes — Mark the entire show as watched in one action.
- Catch up — When you mark an episode as watched while earlier episodes are unwatched, a toast notification offers a "Catch up" button to batch-mark all prior episodes.
Rating Titles
Rate any title from 1 to 5 stars on its detail page. Click a star to set the rating, or click the same star again to clear it. You can also press 1 through 5 on a title page to rate with the keyboard.
Ratings are independent of status — you can rate a title at any point, whether it's on your watchlist or completed. Highly-rated titles contribute to your personalized recommendations.
Exploring & Discovering Content
The Explore page helps you find new things to watch:
- Hero banner — A featured trending title with backdrop, rating, and overview.
- Trending Today — A scrollable row of titles currently trending on TMDB.
- Popular Movies — Browse popular movies, filterable by genre using the dropdown.
- Popular TV Shows — Browse popular TV shows, also filterable by genre.
Title cards show your tracking status as an overlay, so you can see at a glance which titles you've already added to your library.
Search
Press / or ⌘K (Mac) / Ctrl+K (Windows) to open the command palette. Start typing to search movies, TV shows, and people via TMDB.
Results show a poster or profile photo, type badge (Movie, TV, or Person), release year, and rating. Click a result to navigate to its detail page.
The command palette also shows:
- Recent searches — Your last few searches, with options to re-run or clear them.
- Quick actions — Shortcuts to navigate to the dashboard or explore page.
Streaming Availability
Title detail pages include a Where to Watch section showing which streaming services carry the title. Providers are grouped by offer type:
- Stream — Available with a subscription (Netflix, Disney+, etc.)
- Rent — Available to rent digitally
- Buy — Available to purchase digitally
- Free — Available for free
- With Ads — Available on ad-supported tiers
Click a provider's logo to open their page for that title in a new tab.
Streaming availability data is currently limited to the **United States**. Provider information is refreshed automatically every 6 hours for titles in your library.Account Management
Manage your profile in Settings:
- Display name — Click your name to edit it inline.
- Profile picture — Click your avatar to upload a new image (JPEG, PNG, WebP, or GIF) or remove the current one.
- Change password — Available for email/password accounts. Not shown for OIDC/SSO-only accounts.
Keyboard Shortcuts
Press ? anywhere in the app to see the full shortcut reference. Here's a summary:
| Scope | Keys | Action |
|---|---|---|
| Global | / |
Open search |
| Global | ? |
Show keyboard shortcuts |
| Navigation | g then h |
Go to dashboard |
| Navigation | g then e |
Go to explore |
| Title page | w |
Cycle watch status |
| Title page | m |
Mark movie as watched |
| Title page | Escape |
Go back |
| Title page | 1–5 |
Rate 1–5 stars |