Skip to content

Priveetee/TypeType

Repository files navigation

TypeType

MIT license

TypeType PipePipe React

TypeType is a self-hosted, privacy-respecting video platform with a modern web client, private user features, and a server-side extraction boundary. It is built for people who want a clean video experience without handing watch history, subscriptions, playlists, and preferences to a public platform.

This project is still young. Expect active changes while watch, recommendations, imports, and mobile layouts continue to mature.

What this is

A TypeScript web application and self-hosting stack for TypeType. The frontend runs in the browser, talks to TypeType-Server over HTTP, and keeps extraction out of the web codebase.

The app focuses on a calm interface for watching videos, managing subscriptions, importing existing data, and keeping user state on your own instance.

What this is not

  • Not a YouTube frontend clone.
  • Not a fork of Piped, FreeTube, LibreTube, Invidious, or NewPipe.
  • Not a standalone extractor. TypeType needs a reachable TypeType-Server instance.
  • Not affiliated with YouTube or any upstream video platform.

Highlights

  • Watch pages with subtitles, audio language selection, progress tracking, playlists, favorites, and watch later.
  • Home recommendations with local privacy controls and feedback actions.
  • Shorts-style vertical browsing for short-form videos.
  • YouTube Takeout and PipePipe backup import flows.
  • Download jobs through a separate downloader service.
  • A Docker Compose stack for self-hosting the frontend, backend, cache, database, token service, and artifact storage.

Stack

Role Tool
Language TypeScript
Runtime Bun
Build Vite
UI React
Routing TanStack Router
Server state TanStack Query
Client state Zustand
Player Vidstack
Styling Tailwind CSS
Components shadcn/ui + Radix UI
Quality Biome, Sherif, Knip
Deployment Docker Compose
License MIT

Self-hosting

The fastest path is the installer:

curl -fsSL https://raw.githubusercontent.com/Priveetee/TypeType/main/scripts/install-stack.sh | bash

It installs to ~/typetype-stack, generates local downloader credentials, chooses free ports when needed, starts the services, and bootstraps Garage.

For an interactive setup from a cloned repository:

./scripts/setup-stack.sh

Manual setup is also supported:

cp .env.example .env
docker compose pull
docker compose up -d
./scripts/bootstrap-garage.sh
docker compose ps

Default local endpoints are http://localhost:8082 for the frontend, http://localhost:8080 for the API, and http://localhost:8081 for the token service. Host ports can be changed through .env.

Local development

Install dependencies:

bun install

Create the frontend environment file:

cp apps/web/.env.example apps/web/.env

Set the API URL:

VITE_API_URL=http://localhost:8080

Run the dev server:

bun run dev

Open http://localhost:5173.

Checks

bun run check
bun run build
bun run knip
bun run sherif

Docker images

Images are published to GitHub Container Registry: typetype, typetype-server, typetype-downloader, and typetype-token. Published tags include latest, main, branch tags, release tags, and sha-<short-sha>.

Updating

Update the whole stack:

docker compose pull
docker compose up -d --force-recreate
docker compose ps

Update only the frontend:

docker compose pull typetype
docker compose up -d --force-recreate --no-deps typetype

Related projects

Acknowledgments

TypeType is a clean rewrite, but the product direction was shaped by existing open-source video clients and extractor projects.

License

MIT. See LICENSE.

About

Privacy-respecting video platform frontend

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages