diff --git a/README.md b/README.md
index 8aeac40..891fb3d 100644
--- a/README.md
+++ b/README.md
@@ -69,21 +69,25 @@
 
 ### Client discoverability
 
+A particular directory in the namespace --
+`users/vanadium.bot@gmail.com/apps/chat/public` -- has been created with
+permissions that allow anybody to mount and glob inside that directory.
+
 When a client joins the chat room, it generates a random string and attempts to
 mount itself in the public [mounttable server][mounttable] under the name
-`apps/chat/public/<random_string>`.  If that name is already taken, the client
-will pick a new random string and try again.
+`users/vanadium.bot@gmail.com/apps/chat/public/<random_string>`.  If that name
+is already taken, the client will pick a new random string and try again.
 
 The client sets permissions on that name which prevent peers from mounting on
 the same name, but allow them to resolve that name to the client's endpoint.
 The client essentially "owns" that particular name in the mounttable.
 
 To find other peers, the client sends a `Glob` RPC to the mounttable, asking
-for all names matching `apps/chat/public/*`.  The results of this Glob
-correspond to peers in the chat room.  Each result contains the peer's
-endpoint and its [blessing pattern][blessings].  The blessing pattern is used
-to identify the peer in the chat UI, and to ensure that messages are only sent
-to intended recipients.
+for all names matching `users/vanadium.bot@gmail.com/apps/chat/public/*`.  The
+results of this Glob correspond to peers in the chat room.  Each result
+contains the peer's endpoint and its [blessing pattern][blessings].  The
+blessing pattern is used to identify the peer in the chat UI, and to ensure
+that messages are only sent to intended recipients.
 
 Chat currently only supports a single chat room called `public`, but eventually
 it will support multiple rooms, including private rooms visible to only certain
diff --git a/clients/shell/src/chat/main.go b/clients/shell/src/chat/main.go
index 720e4a6..02ccde9 100644
--- a/clients/shell/src/chat/main.go
+++ b/clients/shell/src/chat/main.go
@@ -18,8 +18,6 @@
 	"github.com/nlacasse/gocui"
 
 	"v.io/v23"
-	"v.io/v23/naming"
-
 	"v.io/x/lib/vlog"
 )
 
@@ -27,8 +25,7 @@
 	mounttable = flag.String("mounttable", "/ns.dev.v.io:8101", "Mounttable where channel is mounted.")
 	proxy      = flag.String("proxy", "proxy.dev.v.io:8100", "Proxy to listen on.")
 	// TODO(nlacasse): Allow these to be set by a flag.
-	appName     = "apps/chat"
-	channelName = "public"
+	channelName = "users/vanadium.bot@gmail.com/apps/chat/public"
 )
 
 const welcomeText = `***Welcome to Vanadium Chat***
@@ -111,7 +108,7 @@
 		g.Close()
 	}
 
-	cr, err := newChannel(ctx, *mounttable, *proxy, naming.Join(appName, channelName))
+	cr, err := newChannel(ctx, *mounttable, *proxy, channelName)
 	if err != nil {
 		log.Panicln(err)
 	}
diff --git a/clients/web/js/channel.js b/clients/web/js/channel.js
index 61ea044..69acec6 100644
--- a/clients/web/js/channel.js
+++ b/clients/web/js/channel.js
@@ -15,6 +15,9 @@
 var ServiceVdl = require('./chat/vdl');
 var util = require('./util');
 
+// TODO(nlacasse): Make this configurable.
+var CHANNEL_NAME = 'users/vanadium.bot@gmail.com/apps/chat/public';
+
 // Member is a member of the channel.
 function Member(blessings, path) {
   // The member's blessings.
@@ -36,10 +39,10 @@
 // Channel encapsulates the logic for a client of the Vanadium Chat.  It
 // inherits from EventEmitter and emits 'members', 'message', and 'ready'
 // events.
-function Channel(rt, channelName) {
+function Channel(rt) {
   EventEmitter.call(this);
 
-  this.channelName_ = path.join('apps/chat', channelName);
+  this.channelName_ = CHANNEL_NAME;
 
   this.accountName_ = rt.accountName;
   this.namespace_ = rt.namespace();
diff --git a/clients/web/js/chat/vdl/index.js b/clients/web/js/chat/vdl/index.js
index 487230f..f8309f0 100644
--- a/clients/web/js/chat/vdl/index.js
+++ b/clients/web/js/chat/vdl/index.js
@@ -29,27 +29,27 @@
 
 // Services:
 
-
-
+  
+    
 function Chat(){}
 module.exports.Chat = Chat
 
-
-
+    
+      
 Chat.prototype.sendMessage = function(ctx, text) {
   throw new Error('Method SendMessage not implemented');
 };
+     
 
-
-
+    
 Chat.prototype._serviceDescription = {
   name: 'Chat',
   pkgPath: 'chat/vdl',
   doc: "",
   embeds: [],
   methods: [
-
-
+    
+      
     {
     name: 'SendMessage',
     doc: "// SendMessage sends a message to a user.",
@@ -64,6 +64,11 @@
     outStream: null,
     tags: []
   },
-
+     
   ]
 };
+
+   
+ 
+
+
diff --git a/clients/web/js/components.js b/clients/web/js/components.js
index 25b461c..317dff3 100644
--- a/clients/web/js/components.js
+++ b/clients/web/js/components.js
@@ -128,7 +128,7 @@
     window.addEventListener('beforeunload', function() {
       if (chan) chan.leave();
     });
-    chan = new Channel(rt, 'public');
+    chan = new Channel(rt);
 
     chan.on('ready', removeSplash);
 
