I must commend your efforts for building this for the sake of privacy and the Bitcoin community.
I tested the site and it works fine but Here's my observation and suggestion.
The link attached for checking code in case of technical questions is not bringing out any result. I don't know if it is from my end or it is generally.

You are right.
1. Directly from thread, it works.
https://github.com/jokerjosue/PrivateTalk.
2. From the website, it also works.
https://talk2tag.com/privatetalk/.
3. From the website, "Technical questions? Check the code." does not work.
https://github.com/yourusername/PrivateTalk
Answering the questions raised:
1. A 12-byte random Nonce/IV generated by window.crypto.getRandomValues() is used whenever a message is encrypted. The encryption key is generated uniquely for each message (or derived directly from the user-supplied password/phrase, if extra protection is used). Each message/key combination is unique, with no reuse. Since there is no reuse of the key for multiple messages, the risk of catastrophe due to a duplicate Nonce/IV is virtually non-existent. Anyway, I can try to reinforce that guarantee.
In the short term, you are absolutely right. The chance of this happening is very low, but I am thinking about long term. If this tool becomes popular, as time passes there is an increasing probability of this happening. It would be best to try to reinforce the guarantee if possible. That would future proof that potential problem.
2. The ID generated with 8 bytes (64 bits) of entropy already makes brute-force attacks difficult (there are 18.4 quintillion combinations). However, I recognize that increasing it to 128 bits (16 bytes) would be even more robust. In any case, the practical risk of collision with 8 bytes is extremely low, considering this initial aspect of the project. But I may adjust this.
I'd like to propose another way of thinking for you regarding these matters. It is quite simple. If it does not cost you anything to improve it and if it does not have any real negatives, just do it. In this case, I think increasing it to 16 bytes costs you nothing and comes with no tangible downsides.

3. I made it a priority to avoid any script execution or injected data. On the backend, PHP never returns the original message; only encrypted data. On the frontend, the message content is never inserted as HTML (only as plain text, via textContent). I will continue to monitor possible XSS vectors and if anyone finds any risks, let me know, I will try to resolve them immediately!
I ran it through some online scanners, and it looks good to me but they are not that in depth.
The goal of this project is to provide guarantees to the community that they can use it safely, so the code is open-source to facilitate community auditing.
I hope that you attract someone who is willing to review this properly and who has the capabilities. I'd suggest to look for some subreddits or cryptography mailing lists where it would be appropriate to announce this and ask for feedback.
For XSS I also ran it through this tool.
https://github.com/s0md3v/XSStrike. Check it out if you are not familiar with it.
XSStrike v3.1.5
[~] Checking for DOM vulnerabilities
- Potentially vulnerable objects found
------------------------------------------------------------
3 setTimeout(function(){
4 window.location.reload();
2 function a0e(f,X){var n=a0n....
I shortened it because the output is a bit long and not needed. Try it yourself, it is a good tool!
Not a bit deal, but check out also your headers. They look pretty good, only minor improvements can be done.
https://securityheaders.com/?q=https%3A%2F%2Ftalk2tag.com%2Fprivatetalk%2F&followRedirects=on. If you can then remove the PHP version information. It is better to limit information.