diff --git a/apps/api/src/app/endpoints/sitemap/sitemap.service.ts b/apps/api/src/app/endpoints/sitemap/sitemap.service.ts index e7e05330f..cf4b5052f 100644 --- a/apps/api/src/app/endpoints/sitemap/sitemap.service.ts +++ b/apps/api/src/app/endpoints/sitemap/sitemap.service.ts @@ -120,6 +120,10 @@ export class SitemapService { { languageCode: 'en', routerLink: ['2025', '11', 'black-weeks-2025'] + }, + { + languageCode: 'en', + routerLink: ['2026', '04', 'ghostfolio-3'] } ] .map(({ languageCode, routerLink }) => { diff --git a/apps/api/src/middlewares/html-template.middleware.ts b/apps/api/src/middlewares/html-template.middleware.ts index c958718f6..2b8820e81 100644 --- a/apps/api/src/middlewares/html-template.middleware.ts +++ b/apps/api/src/middlewares/html-template.middleware.ts @@ -83,6 +83,10 @@ const locales = { '/en/blog/2025/11/black-weeks-2025': { featureGraphicPath: 'assets/images/blog/black-weeks-2025.jpg', title: `Black Weeks 2025 - ${title}` + }, + '/en/blog/2026/04/ghostfolio-3': { + featureGraphicPath: 'assets/images/blog/ghostfolio-3.jpg', + title: `Announcing Ghostfolio 3.0 - ${title}` } }; diff --git a/apps/client/src/app/pages/blog/2026/04/ghostfolio-3/ghostfolio-3-page.component.ts b/apps/client/src/app/pages/blog/2026/04/ghostfolio-3/ghostfolio-3-page.component.ts new file mode 100644 index 000000000..52e61262c --- /dev/null +++ b/apps/client/src/app/pages/blog/2026/04/ghostfolio-3/ghostfolio-3-page.component.ts @@ -0,0 +1,20 @@ +import { publicRoutes } from '@ghostfolio/common/routes/routes'; + +import { Component } from '@angular/core'; +import { MatButtonModule } from '@angular/material/button'; +import { RouterModule } from '@angular/router'; + +@Component({ + host: { class: 'page' }, + imports: [MatButtonModule, RouterModule], + selector: 'gf-ghostfolio-3-page', + templateUrl: './ghostfolio-3-page.html' +}) +export class Ghostfolio3PageComponent { + public routerLinkAbout = publicRoutes.about.routerLink; + public routerLinkAboutChangelog = + publicRoutes.about.subRoutes.changelog.routerLink; + public routerLinkBlog = publicRoutes.blog.routerLink; + public routerLinkFeatures = publicRoutes.features.routerLink; + public routerLinkMarkets = publicRoutes.markets.routerLink; +} diff --git a/apps/client/src/app/pages/blog/2026/04/ghostfolio-3/ghostfolio-3-page.html b/apps/client/src/app/pages/blog/2026/04/ghostfolio-3/ghostfolio-3-page.html new file mode 100644 index 000000000..2639fb422 --- /dev/null +++ b/apps/client/src/app/pages/blog/2026/04/ghostfolio-3/ghostfolio-3-page.html @@ -0,0 +1,275 @@ +
+
+
+
+
+

Ghostfolio 3.0

+
2026-04-03
+ Ghostfolio 3.0 Teaser +
+
+

+ Since late 2020, when + Ghostfolio took shape, the + main goal has remained the same: to simplify investment tracking + while prioritizing user privacy and enable investors to make + informed decisions. Our journey so far has been incredible, with + over 250 releases since the + second major release, + close to 2’300’000 pulls on Docker Hub, and collaboration with 275+ + contributors from around the globe. These achievements emphasize the + growing recognition for our project and the path we are on. +

+

+ Now, we are thrilled to present Ghostfolio 3.0, another milestone in + our journey to empower investors. +

+
+
+

Introducing Ghostfolio 3.0

+

+ Ghostfolio 3.0 is the evolution of our + open source wealth management software, elevating both user and developer experiences. We have extended + data import capabilities, added comprehensive analytics, increased + stability, and utilized the latest technology to deliver these + improvements. Here is a closer look at a selection of the + improvements you can expect from this + release, alongside + uncounted smaller additions and enhancements. +

+

Extended Data Import Capabilities

+

+ Importing account activities is an important aspect of any portfolio + management software. With Ghostfolio 3.0, we have extended our data + import functionality, ensuring a seamless experience for users. Our + system supports multiple formats to make the experience more + seamless. Additionally, there is an API, providing you with even + greater flexibility and control over how you import transactions. +

+

Comprehensive Analytics

+

+ Understanding your wealth is key. The latest release offers more + comprehensive analytics to categorize your securities, providing + invaluable insights into your investment portfolio for making + informed decisions and optimizing diversification. +

+

Reliable Stability

+

+ Ensuring the stability of software is crucial, and a platform for + managing your wealth is no exception. The increased robustness of + our architecture means that you can count on Ghostfolio to be there + when you need it most, no matter the + market conditions. +

+

Cutting-Edge Technology Stack

+

+ Ghostfolio 3.0 leverages the latest tech stack to deliver a superior + user and developer experience. We have upgraded to + Angular 21, + Nest.js 11, + Prisma 7, and + Nx 22, ensuring that + the software is at the forefront of innovation. This upgrade allows + us to provide you with the best possible user experience, making + investment tracking more intuitive than ever before. +

+
+
+

Thriving Ghostfolio Community

+

+ In open source software (OSS) projects like Ghostfolio, the + community is the driving force behind its success. Without the + incredible support of our users and contributors, it would not have + been possible. As we celebrate the launch of Ghostfolio 3.0, we are + delighted to showcase the growth of the Ghostfolio community: +

+
    +
  • + Ghostfolio has accumulated 8000+ stars on + GitHub, highlighting the appreciation and adoption of our platform by + the community. +
  • +
  • + Our + Slack + community has expanded to over 1250 members, + creating a space for like-minded investors to connect, share + insights, and collaborate. +
  • +
  • + On + X + (formerly Twitter), over + 700 investors and personal finance enthusiasts + follow Ghostfolio, keen to stay updated on the latest + developments. +
  • +
+

+ This is just the beginning. Ghostfolio is dedicated to ongoing + improvement and helping grow a vibrant community of investors. We + invite you to join us on this exciting journey. +

+

+ Join our Slack community: Connect with fellow + investors, share your insights, and stay updated on the latest news + by joining our + Slack + community. It is a dynamic space where you can learn, collaborate, + and grow together with us. +

+

+ Follow us on X: For release updates and market + insights, follow + Ghostfolio on X. It is the perfect place to stay informed and connect with our + team. +

+

+ Give us a Star: If you have found value in + Ghostfolio or appreciate our commitment to simplifying investment + tracking, please consider giving us a star on + GitHub. Your support helps us reach a wider audience and make a + difference in the world of wealth management. +

+

+ Become a contributor: If you are a developer + passionate about open source projects and personal finance, we + welcome your contributions. + Join our developer community, collaborate with like-minded people, and help shape the future of + Ghostfolio. +

+
+
+

+ Ghostfolio 3.0 represents a major step forward in our mission to + empower investors, and we could not be more excited about the future + of the project. Together, we can build an outstanding tool that + makes our lives easier. Thank you for being a part of the Ghostfolio + community. +

+

Thomas from Ghostfolio

+
+
+
    +
  • + Angular +
  • +
  • + Announcement +
  • +
  • + Collaboration +
  • +
  • + Community +
  • +
  • + Contribution +
  • +
  • + Evolution +
  • +
  • + Fintech +
  • +
  • + Ghostfolio +
  • +
  • + Ghostfolio 3.0 +
  • +
  • + Investment +
  • +
  • + Nest.js +
  • +
  • + Nx +
  • +
  • + Open Source +
  • +
  • + OSS +
  • +
  • + Personal Finance +
  • +
  • + Platform +
  • +
  • + Portfolio +
  • +
  • + Prisma +
  • +
  • + Privacy +
  • +
  • + Release +
  • +
  • + Software +
  • +
  • + Stack +
  • +
  • + Technology +
  • +
  • + Wealth Management +
  • +
+
+ +
+
+
+
diff --git a/apps/client/src/app/pages/blog/blog-page.html b/apps/client/src/app/pages/blog/blog-page.html index e84cb303d..d60fd1bcf 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 90d27bdfb..9afb35d46 100644 --- a/apps/client/src/app/pages/blog/blog-page.routes.ts +++ b/apps/client/src/app/pages/blog/blog-page.routes.ts @@ -218,5 +218,14 @@ export const routes: Routes = [ (c) => c.BlackWeeks2025PageComponent ), title: 'Black Weeks 2025' + }, + { + canActivate: [AuthGuard], + path: '2026/04/ghostfolio-3', + loadComponent: () => + import('./2026/04/ghostfolio-3/ghostfolio-3-page.component').then( + (c) => c.Ghostfolio3PageComponent + ), + title: 'Ghostfolio 3.0' } ]; diff --git a/apps/client/src/assets/images/blog/ghostfolio-3.jpg b/apps/client/src/assets/images/blog/ghostfolio-3.jpg new file mode 100644 index 000000000..2a2c787e8 Binary files /dev/null and b/apps/client/src/assets/images/blog/ghostfolio-3.jpg differ