To create a WebRTC video chat app, you need to get the user's permission to access their media devices using the MediaStream API. Then, create a local media stream and display it in a video element using the URL.createObjectURL method. Additionally, you must set up a signaling server that can relay messages between the participants, such as offer, answer, and candidate. You can use any server-side technology, such as Node.js, PHP, or Python, to implement the signaling logic. After that, create a peer connection object using the RTCPeerConnection API and add the local media stream to it with the addStream method. To initiate the connection, generate an offer with the createOffer method and send it to the other participant via the signaling server. When you receive an answer from them via the signaling server, set it as the remote description using the setRemoteDescription method. Then exchange ICE candidates between both participants using the onicecandidate and addIceCandidate methods to find the best network path for the connection. Finally, receive and display the remote media stream from the other participant in another video element using the URL.createObjectURL method.