explaingit

zyronon/douyin

11,443VueAudience · developerComplexity · 3/5LicenseSetup · easy

TLDR

A web app built with Vue 3 that recreates TikTok's vertically scrolling short-video feed in a browser, created as a learning and research project showing how to build smooth mobile-style interfaces.

Mindmap

mindmap
  root((douyin))
    What it does
      TikTok clone
      Vertical scroll feed
      Mobile browser layout
    Tech stack
      Vue 3
      Vite
      Pinia
    Features
      Infinite scroll
      Route caching
      Page animations
    Setup
      Local dev
      Vercel deploy
      Docker
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Things people build with this

USE CASE 1

Clone this repo to learn how to build a TikTok-style vertically scrolling video feed in a browser.

USE CASE 2

Use it as a starting point to prototype a short-video app for a side project or portfolio piece.

USE CASE 3

Study the route caching and animation techniques to apply to your own Vue 3 projects.

Tech stack

Vue 3VitePiniaJavaScriptaxios-mock-adapter

Getting it running

Difficulty · easy Time to first run · 30min

Desktop browsers need mobile emulation mode enabled to see the correct layout.

GPL license, free to use and modify for personal and educational purposes, but not for commercial use, any derived works must also be open-source.

In plain English

Douyin-Vue is a web application that recreates the look and feel of TikTok (known as Douyin in China) for mobile browsers. It is built as a learning and research project to demonstrate how to build a smooth, vertically scrolling short-video feed using modern web tools. The project uses Vue 3, a JavaScript framework for building web interfaces, along with Vite for fast development builds and Pinia for managing application state. The video data is stored locally within the project rather than connecting to a real server, and a library called axios-mock-adapter intercepts network calls and returns that local data, simulating a real backend. Features include the infinite vertical swipe scroll familiar from TikTok, page transition animations, conditional route caching (so previously visited pages load instantly, like navigating a traditional news site), and mobile-responsive layout using dynamic sizing techniques. The project also comes with a series of companion articles walking through how each feature was built. It can be run locally by cloning the repository and running a few commands, or deployed quickly to platforms like Vercel or Docker. When running on a desktop computer, you need to switch the browser into mobile emulation mode to see the correct layout. The project is licensed under GPL and is strictly for learning and research purposes, not commercial use. The video content shown in the demo comes from real public TikTok creators and images from a public social platform.

Copy-paste prompts

Prompt 1
I have a Vue 3 app. Show me how to implement an infinite vertical swipe scroll like TikTok using Vue Router and Pinia for state management.
Prompt 2
Help me add page transition animations to a Vue 3 app similar to TikTok's feed transitions.
Prompt 3
Using douyin-vue as a reference, explain how axios-mock-adapter can simulate a real backend with local video data in a Vue project.
Prompt 4
How do I configure conditional route caching in Vue 3 so previously visited pages load instantly without hitting the server again?
Open on GitHub → Explain another repo

← zyronon on gitmyhub — every repo by this author, as a profile.

Verify against the repo before relying on details.