tangled.org writes issues as atproto data that lives in a user's PDS which is one neat idea.

Radicle stores issue & PR data as git objects. This approach interests me because issue data is as important as the code so we should treat it with the same care as the code. I.e. a tamper-proof cryptographic chain, signed objects, distributed redundancy, well-tread management features like synchronization and packfiles, etc.

Interestingly ATProto uses Merkle Search Trees to store data as commits, so in some respects it is similar to git. It even signs each commit (say you post an issue record to your ATProto personal data server) it is inserted into your merkle search tree based on content and id hashing rules, and then the new root node in the tree is signed so you can verify its integrity.

Now there is absolutely a benefit to co-locating issues and PRs with your code in the same git repo. In a way it becomes much simpler to move your entire repository and all activity when everything is in the same .git folder.

With Tangled your code is stored in your code repository and issues and PRs in your data repository. On the other hand the ATProto stuff is what means your project becomes discoverable and that other users in the network automatically can interact with your repository (likes, issues, etc).