diff --git a/src/identity/interaction/email-password/handler/RegistrationHandler.ts b/src/identity/interaction/email-password/handler/RegistrationHandler.ts
index 62b548e1c4..354ecad547 100644
--- a/src/identity/interaction/email-password/handler/RegistrationHandler.ts
+++ b/src/identity/interaction/email-password/handler/RegistrationHandler.ts
@@ -135,7 +135,11 @@ export class RegistrationHandler extends HttpHandler {
if (result.createPod) {
podBaseUrl = podBaseUrl ?? this.identifierGenerator.generate(result.podName!);
try {
- await this.podManager.createPod(podBaseUrl, { ...result.data, webId: result.webId! });
+ await this.podManager.createPod(podBaseUrl, {
+ ...result.data,
+ podBaseUrl: podBaseUrl.path,
+ webId: result.webId!
+ });
} catch (error: unknown) {
// In case pod creation errors we don't want to keep the account
if (result.register) {
diff --git a/templates/pod/README$.md.hbs b/templates/pod/README$.md.hbs
new file mode 100644
index 0000000000..5d3e5d8478
--- /dev/null
+++ b/templates/pod/README$.md.hbs
@@ -0,0 +1,22 @@
+# Welcome to your pod
+
+## A place to store your data
+Your pod is a **secure storage space** for your documents and data.
+
+You can choose to share those with other people and apps.
+
+As the owner of this pod,
+identified by {{webId}},
+you have access to all of your documents.
+
+## Working with your pod
+The easiest way to interact with pods
+is through Solid apps.
+
+For example,
+you can open your pod in [Databrowser](https://solid.github.io/mashlib/dist/browse.html?uri={{podBaseUrl}}).
+
+## Learn more
+The [Solid website](https://solidproject.org/)
+and the people on its [forum](https://forum.solidproject.org/)
+will be glad to help you on your journey.
diff --git a/templates/pod/README.acl.hbs b/templates/pod/README.acl.hbs
new file mode 100644
index 0000000000..2fdd88b2f7
--- /dev/null
+++ b/templates/pod/README.acl.hbs
@@ -0,0 +1,12 @@
+@prefix acl: .
+@prefix foaf: .
+
+<#public>
+ acl:accessTo <./README>;
+ acl:agentClass foaf:Agent;
+ acl:mode acl:Read.
+
+<#owner>
+ acl:accessTo <./README>;
+ acl:agent <{{webId}}>;
+ acl:mode acl:Read, acl:Write, acl:Control.
diff --git a/test/unit/identity/interaction/email-password/handler/RegistrationHandler.test.ts b/test/unit/identity/interaction/email-password/handler/RegistrationHandler.test.ts
index dcefd7f2bb..67e6b5368e 100644
--- a/test/unit/identity/interaction/email-password/handler/RegistrationHandler.test.ts
+++ b/test/unit/identity/interaction/email-password/handler/RegistrationHandler.test.ts
@@ -20,6 +20,7 @@ describe('A RegistrationHandler', (): void => {
const password = 'superSecretPassword';
const confirmPassword = password;
const podName = 'alice';
+ const podBaseUrl = 'http://test.com/alice/';
// Strings instead of booleans because this is form data
const createWebId = 'true';
const register = 'true';
@@ -178,7 +179,8 @@ describe('A RegistrationHandler', (): void => {
expect(identifierGenerator.generate).toHaveBeenCalledTimes(1);
expect(identifierGenerator.generate).toHaveBeenLastCalledWith(podName);
expect(podManager.createPod).toHaveBeenCalledTimes(1);
- expect(podManager.createPod).toHaveBeenLastCalledWith({ path: `${baseUrl}${podName}/` }, params);
+ expect(podManager.createPod).toHaveBeenLastCalledWith(
+ { path: `${baseUrl}${podName}/` }, { podBaseUrl, ...params });
expect(accountStore.create).toHaveBeenCalledTimes(0);
expect(accountStore.verify).toHaveBeenCalledTimes(0);
@@ -198,7 +200,8 @@ describe('A RegistrationHandler', (): void => {
expect(identifierGenerator.generate).toHaveBeenLastCalledWith(podName);
(params as any).oidcIssuer = baseUrl;
expect(podManager.createPod).toHaveBeenCalledTimes(1);
- expect(podManager.createPod).toHaveBeenLastCalledWith({ path: `${baseUrl}${podName}/` }, params);
+ expect(podManager.createPod).toHaveBeenLastCalledWith(
+ { path: `${baseUrl}${podName}/` }, { podBaseUrl, ...params });
expect(accountStore.verify).toHaveBeenCalledTimes(1);
expect(accountStore.verify).toHaveBeenLastCalledWith(email);
@@ -219,7 +222,8 @@ describe('A RegistrationHandler', (): void => {
expect(identifierGenerator.generate).toHaveBeenLastCalledWith(podName);
(params as any).oidcIssuer = baseUrl;
expect(podManager.createPod).toHaveBeenCalledTimes(1);
- expect(podManager.createPod).toHaveBeenLastCalledWith({ path: `${baseUrl}${podName}/` }, params);
+ expect(podManager.createPod).toHaveBeenLastCalledWith(
+ { path: `${baseUrl}${podName}/` }, { podBaseUrl, ...params });
expect(accountStore.deleteAccount).toHaveBeenCalledTimes(1);
expect(accountStore.deleteAccount).toHaveBeenLastCalledWith(email);
@@ -239,9 +243,9 @@ describe('A RegistrationHandler', (): void => {
expect(accountStore.create).toHaveBeenLastCalledWith(email, generatedWebID, password);
expect(accountStore.verify).toHaveBeenCalledTimes(1);
expect(accountStore.verify).toHaveBeenLastCalledWith(email);
- const podParams = { ...params, oidcIssuer: baseUrl, webId: generatedWebID };
expect(podManager.createPod).toHaveBeenCalledTimes(1);
- expect(podManager.createPod).toHaveBeenLastCalledWith({ path: `${baseUrl}${podName}/` }, podParams);
+ expect(podManager.createPod).toHaveBeenLastCalledWith(
+ { path: `${baseUrl}${podName}/` }, { ...params, podBaseUrl, oidcIssuer: baseUrl, webId: generatedWebID });
expect(ownershipValidator.handleSafe).toHaveBeenCalledTimes(0);
expect(accountStore.deleteAccount).toHaveBeenCalledTimes(0);