Full-featured, easy-to-use Notes client application framework
As alternative to using @DBLookup for keywords there should be @GetProfileField("Keywords";NameofKeyword). To get there have an agent (triggered on update, by a view action or schedule) that runs through the documents in the keyword view and creates a profile named "Keywords" and one field per Keyword document. Makes forms soo much faster. Since you use the Profile only as Cache the usual problems with profiles don't apply.
The approach I've taken in the past With profile documents has had some problems with failure to update in a timely fashion, so maybe you have a more robust approach?