iArt.ai
AI motion graphics software — the After Effects alternative anyone can use. Create animations and explainer videos from a text prompt in minutes.
Browse trending, popular, airing and top rated TV shows on BeStats, and keep track of what you watch.
MediaTypeScript · PLpgSQLGitHub @kris1027OnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
Movie and TV show tracking with watchlists, watch history, episode progress, and personal ratings. Built with Next.js, Supabase, and TMDB.
Taken from the repository README
Loading the full README. The saved excerpt is shown below.
A movie and TV show tracking app inspired by TV Time. BeStats is being built to help you discover titles, manage a private watchlist, track watched movies and episodes, and rate what you watch. It is a tracking app, not a streaming service.
TMDB supplies catalog metadata. Supabase stores accounts and private user data. The application uses Next.js; the authoritative stack and product rules live in AGENTS.md, with installed versions in package.json.Read the full README ↗A tracker for TV shows, movies and games, inspired by TV Time. You browse and search the catalog, keep a private list of what you plan to watch or play, mark movies and episodes watched, and rate what you finish. BeStats tracks what you watch and play; it does not stream anything.
Live: bestats-sable.vercel.app
TMDB supplies movie and TV metadata, IGDB supplies game metadata, and Supabase stores accounts and your private data. The stack and product rules live in AGENTS.md; installed versions live in package.json.
Every personal rating is kept apart from the TMDB or IGDB community rating, and is labelled that way.
Every planned feature has shipped: features 1 to 25 in the movie and TV scope and G1 to G10 in the games scope. Work now happens in small follow up changes. The decisions behind each feature are in docs/specs/, and the plans for smaller changes in prompts/.
Captured on 2026-10-28 from the running app with live TMDB and IGDB content. Catalog titles and ratings change over time.
Shows home: the On the air carousel, with TMDB community ratings and a plan button on each card.
Movies home: the Popular carousel. A filled bookmark marks a planned movie, a check a watched one, and a blue star your own score.
Watchlist: your planned movies, signed in, with the SHOWS | MOVIES | GAMES tabs and the Watchlist, Upcoming and Watched pages in the navbar.
Games coming soon: upcoming releases from IGDB with their release dates, one of the paged game lists.
You will want Node.js 22 (the version CI and Vercel use) and the pnpm version pinned in the packageManager field of package.json. A running Docker compatible container runtime is needed for local Supabase and the database tests.
From a clone of this repository:
pnpm install --frozen-lockfile
cp .env.example .env.local
If .env.local already exists, update it from the example instead of overwriting it. The committed .env.example explains each setting and where to get it. Keep real credentials in the ignored local file.
Both stay on the server and never reach the browser.
The CLI and project configuration are already in the repo, so you can skip supabase init. With your container runtime running, you can run from the repository root:
pnpm exec supabase start
pnpm exec supabase status
The first start downloads the container images and applies the migrations and the local seed. Local Studio is at 127.0.0.1:54323, and Mailpit, which catches confirmation and recovery emails, is at 127.0.0.1:54324.
To rebuild the database from the migrations and seed, run pnpm exec supabase db reset. It erases local data only. It is also worth running before pnpm test:db, since leftover test data can make the database tests fail.
See the Supabase local development guide for container runtime setup. These commands start local services only; they never touch the cloud project.
pnpm dev:docker
This runs the development server against the local Supabase stack, starting the stack first if it is not running. It sets the local URL, the publishable key and a site URL of http://localhost:3000 for this process only, and those win over .env.local; everything else, such as the TMDB and IGDB credentials, still comes from .env.local. Extra arguments go to next dev. A port other than 3000 is refused, because the local auth redirect allow list in supabase/config.toml only covers that origin.
Use plain pnpm dev when .env.local points at the project you want, such as a cloud project. That project needs the migrations in supabase/migrations/ applied, or every tracking read fails.
Open localhost:3000. / redirects to /shows; movies are at /movies and games at /games. The /showcase page shows the UI components and their states.
The seed creates two confirmed users on the local stack. The database tests use them, and they are handy for trying sign in and tracking:
| Password | |
|---|---|
[email protected] | password-a |
[email protected] | password-b |
They exist only locally and are never applied to a deployed project.
| Command | Purpose |
|---|---|
pnpm dev | Start the development server with the settings in .env.local. |
pnpm dev:docker | Start the development server against the local Supabase stack. |
pnpm typecheck | Generate route types and check TypeScript. |
pnpm lint | Check formatting and lint rules with Biome. |
pnpm lint:ci | The same check as CI, failing on warnings too. |
pnpm format | Apply Biome formatting and fixes. |
pnpm test | Run the fixture based tests; no live providers or credentials needed. |
pnpm test:db | Run the pgTAP database tests against the local Supabase stack. |
pnpm db:types | Regenerate the database types from local Supabase. |
pnpm db:types:check | Check the generated database types still match local Supabase. |
pnpm tmdb:live | Run the opt in live TMDB checks; needs network access and a real token. |
pnpm igdb:live | Run the opt in live IGDB checks; needs network access and real Twitch credentials. |
pnpm build | Create a production build. |
pnpm start | Serve an existing production build. |
The live checks read their credentials from the environment or .env.local and skip when none are set. A placeholder is not a valid credential, and passing fixture tests does not prove a live integration works.
CI runs type checking, linting, the fixture tests and a production build on Node 22. The database tests run when files under supabase/ change.
Vercel hosts the app in Frankfurt (fra1), next to the Supabase project in eu-central-1. Schema and auth settings reach the cloud only from this repo, through supabase db push and supabase config push. The runbook is docs/deploy.md.
| Path | Contents |
|---|---|
| app/ | App Router pages, Server Actions, metadata routes and global styles. |
| components/ | Shared UI built on shadcn/ui and the glass design system. |
| lib/tmdb/ | Server only TMDB access, caching, normalization and fixtures. |
| lib/igdb/ | Server only IGDB access, token handling, catalog filter and fixtures. |
| lib/supabase/ | Browser and server clients, plus the generated database types. |
| lib/ | Auth, tracking, rating and library rules, SEO, legal facts and helpers. |
| proxy.ts | Request middleware: session refresh and early 404s. |
| supabase/ | Local configuration, declarative schemas, migrations, seed and database tests. |
| docs/ | Scopes, specs, reviews, the deploy runbook and screenshots. |
| prompts/ | Implementation plans prepared for approval. |
| .github/ |
This is a solo project built with the help of AI agents. Before you change anything, it helps to read AGENTS.md and the AGENTS.md in the folder you are touching. The usual loop is: write a plan in prompts/, get it approved, implement it, then report the checks you actually ran.
Work on a feat/<slug> branch and merge through a pull request. Changes to main need passing CI and an up to date branch; no approving reviewer is required. Issue forms capture bugs and features with observable acceptance criteria, and blank issues stay available for anything else.
Movie and TV data comes from TMDB and game data from IGDB. TMDB's required notice and the IGDB credit are in the app's footer and on its /terms page.
| CI, issue forms and the pull request template. |