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..e7faea887
--- /dev/null
+++ b/apps/client/src/app/pages/blog/2025/11/black-weeks-2025/black-weeks-2025-page.html
@@ -0,0 +1,180 @@
+
+
+
+
+
+
Black Weeks 2025
+
2025-11-15
+
+
+
+
+ Take advantage of our exclusive Black Weeks offer
+ and save 25% on your annual
+ Ghostfolio Premium
+
+
+ subscription, plus get 3 months extra for free!
+
+
+
+
+ Ghostfolio
+ is a powerful personal finance dashboard, designed to simplify your
+ investment journey. With this Open Source Software (OSS) platform,
+ you can:
+
+
+
+ Unify your assets : Track your financial
+ portfolio, including stocks, ETFs, cryptocurrencies, etc.
+
+
+ Gain deeper insights : Access real-time analytics
+ and data-driven insights.
+
+
+ Make informed decisions : Empower yourself with
+ actionable information.
+
+
+
+
+
+ Don’t miss this limited-time offer to optimize your financial
+ future.
+
+
+ Get the Deal
+
+
+ For more information, visit our
+ pricing page .
+
+
+
+
+
+ 2025
+
+
+ Black Friday
+
+
+ Black Weeks
+
+
+ Cryptocurrency
+
+
+ Dashboard
+
+
+ Deal
+
+
+ DeFi
+
+
+ ETF
+
+
+ Finance
+
+
+ Fintech
+
+
+ Ghostfolio
+
+
+ Ghostfolio Premium
+
+
+ Hosting
+
+
+ Investment
+
+
+ Open Source
+
+
+ OSS
+
+
+ Personal Finance
+
+
+ Portfolio
+
+
+ Portfolio Tracker
+
+
+ Pricing
+
+
+ Promotion
+
+
+ SaaS
+
+
+ Sale
+
+
+ Software
+
+
+ Stock
+
+
+ Subscription
+
+
+ Wealth
+
+
+ Wealth Management
+
+
+ Web3
+
+
+ Web 3.0
+
+
+
+
+
+
+ Blog
+
+
+ Black Weeks 2025
+
+
+
+
+
+
+
diff --git a/apps/client/src/app/pages/blog/blog-page.html b/apps/client/src/app/pages/blog/blog-page.html
index 88b685d33..e84cb303d 100644
--- a/apps/client/src/app/pages/blog/blog-page.html
+++ b/apps/client/src/app/pages/blog/blog-page.html
@@ -8,6 +8,32 @@
finance
+ @if (hasPermissionForSubscription) {
+
+
+
+
+
+ }
diff --git a/apps/client/src/app/pages/blog/blog-page.routes.ts b/apps/client/src/app/pages/blog/blog-page.routes.ts
index 2b5a4be64..36d111c19 100644
--- a/apps/client/src/app/pages/blog/blog-page.routes.ts
+++ b/apps/client/src/app/pages/blog/blog-page.routes.ts
@@ -209,5 +209,14 @@ export const routes: Routes = [
'./2025/09/hacktoberfest-2025/hacktoberfest-2025-page.component'
).then((c) => c.Hacktoberfest2025PageComponent),
title: 'Hacktoberfest 2025'
+ },
+ {
+ canActivate: [AuthGuard],
+ path: '2025/11/black-weeks-2025',
+ loadComponent: () =>
+ import('./2025/11/black-weeks-2025/black-weeks-2025-page.component').then(
+ (c) => c.BlackWeeks2025PageComponent
+ ),
+ title: 'Black Weeks 2025'
}
];
diff --git a/apps/client/src/assets/images/blog/black-weeks-2025.jpg b/apps/client/src/assets/images/blog/black-weeks-2025.jpg
new file mode 100644
index 000000000..c71827c5e
Binary files /dev/null and b/apps/client/src/assets/images/blog/black-weeks-2025.jpg differ