diff --git a/crates/i18n/src/sprintf/grammar.pest b/crates/i18n/src/sprintf/grammar.pest
index 4e3bd136f..8620b0edd 100644
--- a/crates/i18n/src/sprintf/grammar.pest
+++ b/crates/i18n/src/sprintf/grammar.pest
@@ -1,16 +1,8 @@
-// Copyright 2023 The Matrix.org Foundation C.I.C.
+// Copyright 2024 New Vector Ltd.
+// Copyright 2023, 2024 The Matrix.org Foundation C.I.C.
//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
+// SPDX-License-Identifier: AGPL-3.0-only
+// Please see LICENSE in the repository root for full details.
message = _{ (text | percent | placeholder)* ~ EOI }
diff --git a/crates/iana-codegen/src/main.rs b/crates/iana-codegen/src/main.rs
index c19b574f9..253c2ca52 100644
--- a/crates/iana-codegen/src/main.rs
+++ b/crates/iana-codegen/src/main.rs
@@ -75,19 +75,11 @@ impl Display for File {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
writeln!(
f,
- r#"// Copyright 2023 The Matrix.org Foundation C.I.C.
+ r#"// Copyright 2024 New Vector Ltd.
+// Copyright 2023, 2024 The Matrix.org Foundation C.I.C.
//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
+// SPDX-License-Identifier: AGPL-3.0-only
+// Please see LICENSE in the repository root for full details.
#![allow(clippy::doc_markdown)]
diff --git a/frontend/index.html b/frontend/index.html
index 5f4a698a8..789ad52a7 100644
--- a/frontend/index.html
+++ b/frontend/index.html
@@ -1,17 +1,9 @@
diff --git a/templates/app.html b/templates/app.html
index 26ff64187..52a6243a0 100644
--- a/templates/app.html
+++ b/templates/app.html
@@ -1,18 +1,10 @@
{#
+Copyright 2024 New Vector Ltd.
Copyright 2023, 2024 The Matrix.org Foundation C.I.C.
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-
-http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-#}
+SPDX-License-Identifier: AGPL-3.0-only
+Please see LICENSE in the repository root for full details.
+-#}
{# Must be kept in sync with frontend/index.html #}
{% set _ = translator(lang) %}
diff --git a/templates/base.html b/templates/base.html
index 80ad006db..116e7e272 100644
--- a/templates/base.html
+++ b/templates/base.html
@@ -1,18 +1,10 @@
{#
-Copyright 2021, 2022 The Matrix.org Foundation C.I.C.
+Copyright 2024 New Vector Ltd.
+Copyright 2021-2024 The Matrix.org Foundation C.I.C.
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-#}
+SPDX-License-Identifier: AGPL-3.0-only
+Please see LICENSE in the repository root for full details.
+-#}
{% set _ = translator(lang) %}
diff --git a/templates/components/back_to_client.html b/templates/components/back_to_client.html
index fa355d5fe..d767dd579 100644
--- a/templates/components/back_to_client.html
+++ b/templates/components/back_to_client.html
@@ -1,18 +1,10 @@
{#
-Copyright 2021 The Matrix.org Foundation C.I.C.
+Copyright 2024 New Vector Ltd.
+Copyright 2021-2024 The Matrix.org Foundation C.I.C.
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-#}
+SPDX-License-Identifier: AGPL-3.0-only
+Please see LICENSE in the repository root for full details.
+-#}
{% macro link(text, uri, mode, params, type="button", kind="primary", destructive=False) %}
{% if type == "button" %}
diff --git a/templates/components/button.html b/templates/components/button.html
index 9c1e005be..e956f1c41 100644
--- a/templates/components/button.html
+++ b/templates/components/button.html
@@ -1,18 +1,10 @@
{#
-Copyright 2021-2023 The Matrix.org Foundation C.I.C.
+Copyright 2024 New Vector Ltd.
+Copyright 2021-2024 The Matrix.org Foundation C.I.C.
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-#}
+SPDX-License-Identifier: AGPL-3.0-only
+Please see LICENSE in the repository root for full details.
+-#}
{% macro link(text, href="#", class="", size="lg") %}
{{ text }}
diff --git a/templates/components/captcha.html b/templates/components/captcha.html
index f7cf67160..09bb91938 100644
--- a/templates/components/captcha.html
+++ b/templates/components/captcha.html
@@ -1,18 +1,10 @@
{#
+Copyright 2024 New Vector Ltd.
Copyright 2024 The Matrix.org Foundation C.I.C.
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-#}
+SPDX-License-Identifier: AGPL-3.0-only
+Please see LICENSE in the repository root for full details.
+-#}
{% macro form(class="") -%}
{%- if captcha|default(False) -%}
diff --git a/templates/components/errors.html b/templates/components/errors.html
index aa23ef5c4..e622fdc12 100644
--- a/templates/components/errors.html
+++ b/templates/components/errors.html
@@ -1,18 +1,10 @@
{#
+Copyright 2024 New Vector Ltd.
Copyright 2022-2024 The Matrix.org Foundation C.I.C.
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-#}
+SPDX-License-Identifier: AGPL-3.0-only
+Please see LICENSE in the repository root for full details.
+-#}
{% macro form_error_message(error) -%}
{% if error.kind == "invalid_credentials" %}
diff --git a/templates/components/field.html b/templates/components/field.html
index 7981a47dd..10704d90c 100644
--- a/templates/components/field.html
+++ b/templates/components/field.html
@@ -1,18 +1,10 @@
{#
-Copyright 2021, 2022 The Matrix.org Foundation C.I.C.
+Copyright 2024 New Vector Ltd.
+Copyright 2021-2024 The Matrix.org Foundation C.I.C.
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-#}
+SPDX-License-Identifier: AGPL-3.0-only
+Please see LICENSE in the repository root for full details.
+-#}
{% set cnt = counter() %}
diff --git a/templates/components/footer.html b/templates/components/footer.html
index 5373c0e84..02c0d31d3 100644
--- a/templates/components/footer.html
+++ b/templates/components/footer.html
@@ -1,18 +1,10 @@
{#
-Copyright 2023 The Matrix.org Foundation C.I.C.
+Copyright 2024 New Vector Ltd.
+Copyright 2023, 2024 The Matrix.org Foundation C.I.C.
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-
-http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-#}
+SPDX-License-Identifier: AGPL-3.0-only
+Please see LICENSE in the repository root for full details.
+-#}
\ No newline at end of file
+
diff --git a/templates/components/icon.html b/templates/components/icon.html
index 8f7b1a128..6321fd8fa 100644
--- a/templates/components/icon.html
+++ b/templates/components/icon.html
@@ -1,18 +1,10 @@
{#
-Copyright 2023 The Matrix.org Foundation C.I.C.
+Copyright 2024 New Vector Ltd.
+Copyright 2023, 2024 The Matrix.org Foundation C.I.C.
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-
-http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-#}
+SPDX-License-Identifier: AGPL-3.0-only
+Please see LICENSE in the repository root for full details.
+-#}
{# Regenerate with the following shell script:
@@ -1065,4 +1057,3 @@ done