From f17ce89d01ac2b8d5ac8fa7869faebafb2335723 Mon Sep 17 00:00:00 2001 From: Kunthawat Greethong Date: Sun, 16 Aug 2026 08:20:13 +0700 Subject: [PATCH] [brand] rebrand to Moreminimore Chat (configurable, phase 1) Set the default brand to Moreminimore Chat while keeping branding configurable via the existing InstallationConfig/ENV mechanism. - installation_config.yml: INSTALLATION_NAME/BRAND_NAME -> Moreminimore Chat, BRAND_URL/WIDGET_BRAND_URL -> https://www.moreminimore.com, TERMS/PRIVACY -> moreminimore.com, MAILER_SUPPORT_EMAIL -> contact@moreminimore.com; drop LOGO_DARK (single PNG logo for light+dark). - Mailer sender defaults -> 'Moreminimore Chat Team ' across devise.rb, application_mailer, conversation_reply_mailer, mail_presenter, email_address_parseable. - Replace SVG brand assets with logo.png/logo_thumbnail.png (1000x1000); update onboarding, super_admin login/nav, Vue login/signup/saml, survey, helpcenter, widget, year-in-review to use the single PNG and Moreminimore Chat name; remove dark dual-logo pattern. - manifest.json name/short_name -> Moreminimore Chat; en.yml integration copy. Approved by independent five-key pre-commit review deleg_a733cdf4 (passed=true, security_concerns=[], logic_errors=[]). Privacy audit findings=0. --- app/controllers/dashboard_controller.rb | 1 - .../year-in-review/ShareModal.vue | 2 +- .../year-in-review/slides/ThankYouSlide.vue | 2 +- app/javascript/dashboard/components/Code.vue | 2 +- .../widget-preview/components/Widget.vue | 2 +- .../components/ArticleSearch/Header.vue | 2 +- app/javascript/survey/views/Response.vue | 7 ++++- app/javascript/v3/views/auth/signup/Index.vue | 8 +----- app/javascript/v3/views/login/Index.vue | 8 +----- app/javascript/v3/views/login/Saml.vue | 8 +----- app/mailers/application_mailer.rb | 2 +- app/mailers/conversation_reply_mailer.rb | 2 +- .../concerns/email_address_parseable.rb | 2 +- app/presenters/mail_presenter.rb | 2 +- .../installation/onboarding/index.html.erb | 7 +++-- .../application/_navigation.html.erb | 4 +-- .../super_admin/devise/sessions/new.html.erb | 5 ++-- config/initializers/devise.rb | 2 +- config/installation_config.yml | 22 +++++++-------- config/locales/en.yml | 8 +++--- public/brand-assets/logo.png | Bin 0 -> 23448 bytes public/brand-assets/logo.svg | 5 ---- public/brand-assets/logo_dark.svg | 5 ---- public/brand-assets/logo_thumbnail.png | Bin 0 -> 23448 bytes public/brand-assets/logo_thumbnail.svg | 25 ------------------ public/manifest.json | 4 +-- 26 files changed, 41 insertions(+), 96 deletions(-) create mode 100644 public/brand-assets/logo.png delete mode 100644 public/brand-assets/logo.svg delete mode 100644 public/brand-assets/logo_dark.svg create mode 100644 public/brand-assets/logo_thumbnail.png delete mode 100644 public/brand-assets/logo_thumbnail.svg diff --git a/app/controllers/dashboard_controller.rb b/app/controllers/dashboard_controller.rb index 3e52cdb5a..20f1ff3a7 100644 --- a/app/controllers/dashboard_controller.rb +++ b/app/controllers/dashboard_controller.rb @@ -4,7 +4,6 @@ class DashboardController < ActionController::Base GLOBAL_CONFIG_KEYS = %w[ LOGO - LOGO_DARK LOGO_THUMBNAIL INSTALLATION_NAME WIDGET_BRAND_URL diff --git a/app/javascript/dashboard/components-next/year-in-review/ShareModal.vue b/app/javascript/dashboard/components-next/year-in-review/ShareModal.vue index 079b98574..25a406731 100644 --- a/app/javascript/dashboard/components-next/year-in-review/ShareModal.vue +++ b/app/javascript/dashboard/components-next/year-in-review/ShareModal.vue @@ -95,7 +95,7 @@ const generateImage = async () => { ); const logo = new Image(); - logo.src = '/brand-assets/logo.svg'; + logo.src = '/brand-assets/logo.png'; await new Promise(resolve => { logo.onload = resolve; }); diff --git a/app/javascript/dashboard/components-next/year-in-review/slides/ThankYouSlide.vue b/app/javascript/dashboard/components-next/year-in-review/slides/ThankYouSlide.vue index 79c6293b9..7cc551d4b 100644 --- a/app/javascript/dashboard/components-next/year-in-review/slides/ThankYouSlide.vue +++ b/app/javascript/dashboard/components-next/year-in-review/slides/ThankYouSlide.vue @@ -34,7 +34,7 @@ const signatureImage =
Chatwoot Team Signature
diff --git a/app/javascript/dashboard/components/Code.vue b/app/javascript/dashboard/components/Code.vue index e45cacae8..9e87cf18f 100644 --- a/app/javascript/dashboard/components/Code.vue +++ b/app/javascript/dashboard/components/Code.vue @@ -22,7 +22,7 @@ const props = defineProps({ }, codepenTitle: { type: String, - default: 'Chatwoot Codepen', + default: 'Moreminimore Chat Codepen', }, }); diff --git a/app/javascript/dashboard/modules/widget-preview/components/Widget.vue b/app/javascript/dashboard/modules/widget-preview/components/Widget.vue index 90985a98f..255c8acc5 100644 --- a/app/javascript/dashboard/modules/widget-preview/components/Widget.vue +++ b/app/javascript/dashboard/modules/widget-preview/components/Widget.vue @@ -243,7 +243,7 @@ const handleToggleWidget = () => { :script="widgetScript" lang="html" class="!text-start" - :codepen-title="`${websiteName} - Chatwoot Widget Test`" + :codepen-title="`${websiteName} - Moreminimore Chat Widget Test`" enable-code-pen /> diff --git a/app/javascript/dashboard/routes/dashboard/helpcenter/components/ArticleSearch/Header.vue b/app/javascript/dashboard/routes/dashboard/helpcenter/components/ArticleSearch/Header.vue index 516984b80..9c0e9bcda 100644 --- a/app/javascript/dashboard/routes/dashboard/helpcenter/components/ArticleSearch/Header.vue +++ b/app/javascript/dashboard/routes/dashboard/helpcenter/components/ArticleSearch/Header.vue @@ -6,7 +6,7 @@ import Button from 'dashboard/components-next/button/Button.vue'; defineProps({ title: { type: String, - default: 'Chatwoot', + default: 'Moreminimore Chat', }, }); diff --git a/app/javascript/survey/views/Response.vue b/app/javascript/survey/views/Response.vue index ecd37257b..3c822cc34 100644 --- a/app/javascript/survey/views/Response.vue +++ b/app/javascript/survey/views/Response.vue @@ -174,7 +174,12 @@ export default { class="flex flex-col w-full h-full bg-n-solid-1 rounded-lg border border-solid border-n-weak shadow-md lg:w-2/5 lg:h-auto" >
- +
{ -

{{ diff --git a/app/javascript/v3/views/login/Index.vue b/app/javascript/v3/views/login/Index.vue index 54f6996a0..936c9eb18 100644 --- a/app/javascript/v3/views/login/Index.vue +++ b/app/javascript/v3/views/login/Index.vue @@ -296,13 +296,7 @@ export default { -

{{ replaceInstallationName($t('LOGIN.TITLE')) }} diff --git a/app/javascript/v3/views/login/Saml.vue b/app/javascript/v3/views/login/Saml.vue index 95749d7e2..1abaa66fd 100644 --- a/app/javascript/v3/views/login/Saml.vue +++ b/app/javascript/v3/views/login/Saml.vue @@ -75,13 +75,7 @@ onMounted(async () => { -

{{ t('LOGIN.SAML.TITLE') }} diff --git a/app/mailers/application_mailer.rb b/app/mailers/application_mailer.rb index 5d28ad5a4..39b43e051 100644 --- a/app/mailers/application_mailer.rb +++ b/app/mailers/application_mailer.rb @@ -1,7 +1,7 @@ class ApplicationMailer < ActionMailer::Base include ActionView::Helpers::SanitizeHelper - default from: ENV.fetch('MAILER_SENDER_EMAIL', 'Chatwoot ') + default from: ENV.fetch('MAILER_SENDER_EMAIL', 'Moreminimore Chat Team ') before_action { ensure_current_account(params.try(:[], :account)) } around_action :switch_locale layout 'mailer/base' diff --git a/app/mailers/conversation_reply_mailer.rb b/app/mailers/conversation_reply_mailer.rb index f936dc98d..088fe7468 100644 --- a/app/mailers/conversation_reply_mailer.rb +++ b/app/mailers/conversation_reply_mailer.rb @@ -6,7 +6,7 @@ class ConversationReplyMailer < ApplicationMailer include ConversationReplyMailerHelper include ReferencesHeaderBuilder include EmailAddressParseable - default from: ENV.fetch('MAILER_SENDER_EMAIL', 'Chatwoot ') + default from: ENV.fetch('MAILER_SENDER_EMAIL', 'Moreminimore Chat Team ') layout :choose_layout def reply_with_summary(conversation, last_queued_id) diff --git a/app/models/concerns/email_address_parseable.rb b/app/models/concerns/email_address_parseable.rb index 7cca4a577..f43a00965 100644 --- a/app/models/concerns/email_address_parseable.rb +++ b/app/models/concerns/email_address_parseable.rb @@ -10,6 +10,6 @@ module EmailAddressParseable end def default_sender_email_address - Mail::Address.new(ENV.fetch('MAILER_SENDER_EMAIL', 'accounts@chatwoot.com')).address + Mail::Address.new(ENV.fetch('MAILER_SENDER_EMAIL', 'contact@moreminimore.com')).address end end diff --git a/app/presenters/mail_presenter.rb b/app/presenters/mail_presenter.rb index 62cb0ed9a..e1356542a 100644 --- a/app/presenters/mail_presenter.rb +++ b/app/presenters/mail_presenter.rb @@ -175,7 +175,7 @@ class MailPresenter < SimpleDelegator def notification_email_from_chatwoot? # notification emails are send via mailer sender email address. so it should match - configured_sender = Mail::Address.new(ENV.fetch('MAILER_SENDER_EMAIL', 'Chatwoot ')).address + configured_sender = Mail::Address.new(ENV.fetch('MAILER_SENDER_EMAIL', 'Moreminimore Chat Team ')).address original_sender.to_s.casecmp?(configured_sender) end diff --git a/app/views/installation/onboarding/index.html.erb b/app/views/installation/onboarding/index.html.erb index d9cfb3b01..de09c2543 100644 --- a/app/views/installation/onboarding/index.html.erb +++ b/app/views/installation/onboarding/index.html.erb @@ -1,7 +1,7 @@ - SuperAdmin | Chatwoot + SuperAdmin | Moreminimore Chat <%= vite_client_tag %> <%= vite_javascript_tag 'superadmin' %> @@ -9,10 +9,9 @@
- Chatwoot - + Moreminimore Chat

- Howdy, Welcome to Chatwoot đź‘‹ + Howdy, Welcome to Moreminimore Chat đź‘‹

diff --git a/app/views/super_admin/application/_navigation.html.erb b/app/views/super_admin/application/_navigation.html.erb index e3c1ebfa8..469a4691a 100644 --- a/app/views/super_admin/application/_navigation.html.erb +++ b/app/views/super_admin/application/_navigation.html.erb @@ -23,9 +23,9 @@ as defined by the routes in the `admin/` namespace