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.

Self-hosting

The installer is for running the stack, not just cloning the source repositories:

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.

To download stack files without starting Docker:

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

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.

Stack

Role Tool
Language TypeScript TypeScript
Runtime Bun Bun
Build Vite Vite
UI React React
Routing and server state TanStack TanStack Router + Query
Styling Tailwind CSS Tailwind CSS
Components shadcn/ui shadcn/ui + Radix UI Radix UI
Quality Biome Biome + Knip Knip
Deployment Docker Docker Compose
License MIT

Source repositories

If you only want the source code, clone the repositories directly:

git clone https://github.com/Priveetee/TypeType.git
git clone https://github.com/Priveetee/TypeType-Server.git
git clone https://github.com/Priveetee/TypeType-Downloader.git
git clone https://github.com/Priveetee/TypeType-Token.git

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

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

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