diff --git a/CHANGELOG.md b/CHANGELOG.md
index 51ae02bdd..8105a407e 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -10,6 +10,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
### Added
- Introduced support for automatically gathering required exchange rates, exposed as an environment variable (`ENABLE_FEATURE_GATHER_NEW_EXCHANGE_RATES`)
+- Added a blog post: _Black Weeks 2025_
### Changed
diff --git a/apps/api/src/app/endpoints/sitemap/sitemap.service.ts b/apps/api/src/app/endpoints/sitemap/sitemap.service.ts
index 359a29531..e7e05330f 100644
--- a/apps/api/src/app/endpoints/sitemap/sitemap.service.ts
+++ b/apps/api/src/app/endpoints/sitemap/sitemap.service.ts
@@ -116,6 +116,10 @@ export class SitemapService {
{
languageCode: 'en',
routerLink: ['2025', '09', 'hacktoberfest-2025']
+ },
+ {
+ languageCode: 'en',
+ routerLink: ['2025', '11', 'black-weeks-2025']
}
]
.map(({ languageCode, routerLink }) => {
diff --git a/apps/api/src/middlewares/html-template.middleware.ts b/apps/api/src/middlewares/html-template.middleware.ts
index 892b1ab5e..c958718f6 100644
--- a/apps/api/src/middlewares/html-template.middleware.ts
+++ b/apps/api/src/middlewares/html-template.middleware.ts
@@ -79,6 +79,10 @@ const locales = {
'/en/blog/2025/09/hacktoberfest-2025': {
featureGraphicPath: 'assets/images/blog/hacktoberfest-2025.png',
title: `Hacktoberfest 2025 - ${title}`
+ },
+ '/en/blog/2025/11/black-weeks-2025': {
+ featureGraphicPath: 'assets/images/blog/black-weeks-2025.jpg',
+ title: `Black Weeks 2025 - ${title}`
}
};
diff --git a/apps/client/src/app/pages/blog/2025/11/black-weeks-2025/black-weeks-2025-page.component.ts b/apps/client/src/app/pages/blog/2025/11/black-weeks-2025/black-weeks-2025-page.component.ts
new file mode 100644
index 000000000..c5947abf4
--- /dev/null
+++ b/apps/client/src/app/pages/blog/2025/11/black-weeks-2025/black-weeks-2025-page.component.ts
@@ -0,0 +1,18 @@
+import { publicRoutes } from '@ghostfolio/common/routes/routes';
+import { GfPremiumIndicatorComponent } from '@ghostfolio/ui/premium-indicator';
+
+import { Component } from '@angular/core';
+import { MatButtonModule } from '@angular/material/button';
+import { RouterModule } from '@angular/router';
+
+@Component({
+ host: { class: 'page' },
+ imports: [GfPremiumIndicatorComponent, MatButtonModule, RouterModule],
+ selector: 'gf-black-weeks-2025-page',
+ templateUrl: './black-weeks-2025-page.html'
+})
+export class BlackWeeks2025PageComponent {
+ public routerLinkBlog = publicRoutes.blog.routerLink;
+ public routerLinkFeatures = publicRoutes.features.routerLink;
+ public routerLinkPricing = publicRoutes.pricing.routerLink;
+}
diff --git a/apps/client/src/app/pages/blog/2025/11/black-weeks-2025/black-weeks-2025-page.html b/apps/client/src/app/pages/blog/2025/11/black-weeks-2025/black-weeks-2025-page.html
new file mode 100644
index 000000000..e10a64de7
--- /dev/null
+++ b/apps/client/src/app/pages/blog/2025/11/black-weeks-2025/black-weeks-2025-page.html
@@ -0,0 +1,159 @@
+
+
+
+
+
+
Black Weeks 2025
+
2025-11-15
+
+
+
+
+ Save 25% on the
+ Ghostfolio Premium
+
+
+ annual plan and get 3 extra months on top with our
+ exclusive Black Weeks offer.
+
+
+
+
+ Ghostfolio
+ unifies your finances in one place and gives you a clear overview of
+ your portfolio across stocks, ETFs, cryptocurrencies or other
+ assets. Real time analytics and smart evaluations help you
+ understand your financial situation quickly and make confident
+ decisions.
+
+
+
+
+ Grab this limited Black Weeks deal to optimize your financial
+ future.
+