Does NDK include all of the major client parts that would allow any starting dev to catch up with existing clients, or would there still be some significant amount of work to do?
Discussion
I don't think NDK includes any UI components. But otherwise, just feature wise, NDK has most of the things that you need. On a project I am working on I had to use nostr-tools along with NDK for certain things, but didn't have to write any nostr specific logic by hand.
For a more comprehensive starting point, Osty by nostr:npub18c556t7n8xa3df2q82rwxejfglw5przds7sqvefylzjh8tjne28qld0we7 looks solid:
Also ngine
NDK is a stateless library by nature so we need to do extra stuff to handle states on our applications. addressing this issue we have a wrapper library around NDK which is called Nostr-Hooks, it's a stateful library for developing React applications on Nostr.