diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md
index 92baaa1b21..1522578cfd 100644
--- a/.github/CONTRIBUTING.md
+++ b/.github/CONTRIBUTING.md
@@ -15,6 +15,11 @@ You can also ask questions on [StackOverflow](https://stackoverflow.com/question
Please follow the usual Github workflow. Create a fork of this repository, make your changes and then submit a pull request.
+### Good first issues and bounties
+
+If you're new, check out our docs page for beginner tasks and bounty issues:
+https://conversejs.org/docs/html/good_first_issues.html
+
### Before submitting a pull request
Please read the [style guide](https://conversejs.org/docs/html/style_guide.html) and make sure that your code follows it.
diff --git a/docs/source/configuration.rst b/docs/source/configuration.rst
index eacff43af5..6a7a2b4950 100644
--- a/docs/source/configuration.rst
+++ b/docs/source/configuration.rst
@@ -1718,6 +1718,29 @@ providers_link
The hyperlink on the registration form which points to a directory of public
XMPP servers.
+registration_providers
+----------------------
+
+* Default: ``[]``
+
+An optional array of XMPP provider domains to suggest via autocomplete when the user enters the
+provider on the registration form.
+
+For example:
+
+.. code-block:: javascript
+
+ converse.initialize({
+ registration_providers: [
+ 'conversejs.org',
+ 'jabber.org',
+ 'xmpp.jp',
+ 'trashserver.net',
+ ]
+ });
+
+Suggestions are shown via the ```` component and filtered by prefix.
+
.. _`assets_path`:
assets_path
diff --git a/docs/source/good_first_issues.rst b/docs/source/good_first_issues.rst
new file mode 100644
index 0000000000..6fd96e5679
--- /dev/null
+++ b/docs/source/good_first_issues.rst
@@ -0,0 +1,43 @@
+.. _good_first_issues:
+
+===============================
+Good first issues and bounties
+===============================
+
+New to Converse? Start here. This page points you to beginner‑friendly tasks and
+open bounty items you can work on and get paid for.
+
+Where to look
+-------------
+
+- Good first issues (all):
+ https://github.com/conversejs/converse.js/issues?q=is%3Aopen+label%3A%22good+first+issue%22
+- Good first issues, ranked by upvotes:
+ https://github.com/conversejs/converse.js/issues?q=is%3Aopen+label%3A%22good+first+issue%22+sort%3Areactions-%2B1-desc
+- Bounty issues (USD $100 per issue unless otherwise stated):
+ https://github.com/conversejs/converse.js/issues?q=is%3Aopen+label%3Abounty
+
+Bounty rules (summary)
+----------------------
+
+- Anyone can work on a bounty ticket.
+- Submit a quality PR which:
+ - Includes tests (for UI/behavioral changes, add or update existing tests).
+ - Updates documentation if applicable (README or docs/ where relevant).
+ - Passes CI and adheres to the style guide.
+- Reference the issue number in the PR title/body (e.g. "addresses #1234").
+- Once merged, maintainers will handle payout as per the bounty label policy.
+
+Getting set up
+--------------
+
+- Read the development docs: :doc:`development` and :doc:`testing`.
+- Follow the :doc:`style_guide`.
+- Run the test suite with ``make check`` locally before opening a PR.
+
+Tips
+----
+
+- Prefer smaller, focused PRs.
+- For UX changes, include before/after screenshots or a short clip.
+- If you plan a larger change, comment on the issue first to align.
diff --git a/docs/source/index.rst b/docs/source/index.rst
index 6c5005a7de..8f6ed6b6ff 100644
--- a/docs/source/index.rst
+++ b/docs/source/index.rst
@@ -47,6 +47,7 @@ Table of Contents
session
configuration
development
+ good_first_issues
theming
security
translations
diff --git a/src/plugins/chatview/index.js b/src/plugins/chatview/index.js
index a9fa389d0d..5cc74822c9 100644
--- a/src/plugins/chatview/index.js
+++ b/src/plugins/chatview/index.js
@@ -54,7 +54,8 @@ converse.plugins.add('converse-chatview', {
'call': false,
'clear': true,
'emoji': true,
- 'spoiler': false
+ 'spoiler': false,
+ 'location': true
}
});
diff --git a/src/plugins/chatview/templates/message-form.js b/src/plugins/chatview/templates/message-form.js
index b5bbcfe41b..cca4624daa 100644
--- a/src/plugins/chatview/templates/message-form.js
+++ b/src/plugins/chatview/templates/message-form.js
@@ -15,6 +15,7 @@ export default (el) => {
const show_emoji_button = api.settings.get("visible_toolbar_buttons").emoji;
const show_send_button = api.settings.get("show_send_button");
const show_spoiler_button = api.settings.get("visible_toolbar_buttons").spoiler;
+ const show_location_button = api.settings.get("visible_toolbar_buttons").location;
const show_toolbar = api.settings.get("show_toolbar");
return html`