diff --git a/apps/api/src/assets/sitemap.xml b/apps/api/src/assets/sitemap.xml index 5f7049311..2c8ad34b9 100644 --- a/apps/api/src/assets/sitemap.xml +++ b/apps/api/src/assets/sitemap.xml @@ -58,6 +58,10 @@ https://ghostfol.io/de/ressourcen/personal-finance-tools/open-source-alternative-zu-8figures ${currentDate}T00:00:00+00:00 + + https://ghostfol.io/de/ressourcen/personal-finance-tools/open-source-alternative-zu-allvue-systems + ${currentDate}T00:00:00+00:00 + https://ghostfol.io/de/ressourcen/personal-finance-tools/open-source-alternative-zu-altoo ${currentDate}T00:00:00+00:00 @@ -130,6 +134,10 @@ https://ghostfol.io/de/ressourcen/personal-finance-tools/open-source-alternative-zu-maybe-finance ${currentDate}T00:00:00+00:00 + + https://ghostfol.io/de/ressourcen/personal-finance-tools/open-source-alternative-zu-monarch-money + ${currentDate}T00:00:00+00:00 + https://ghostfol.io/de/ressourcen/personal-finance-tools/open-source-alternative-zu-monse ${currentDate}T00:00:00+00:00 @@ -202,6 +210,10 @@ https://ghostfol.io/de/ressourcen/personal-finance-tools/open-source-alternative-zu-yeekatee ${currentDate}T00:00:00+00:00 + + https://ghostfol.io/de/ressourcen/personal-finance-tools/open-source-alternative-zu-ynab + ${currentDate}T00:00:00+00:00 + https://ghostfol.io/de/ueber-uns ${currentDate}T00:00:00+00:00 @@ -348,6 +360,10 @@ https://ghostfol.io/en/resources/personal-finance-tools/open-source-alternative-to-8figures ${currentDate}T00:00:00+00:00 + + https://ghostfol.io/en/resources/personal-finance-tools/open-source-alternative-to-allvue-systems + ${currentDate}T00:00:00+00:00 + https://ghostfol.io/en/resources/personal-finance-tools/open-source-alternative-to-altoo ${currentDate}T00:00:00+00:00 @@ -420,6 +436,10 @@ https://ghostfol.io/en/resources/personal-finance-tools/open-source-alternative-to-maybe-finance ${currentDate}T00:00:00+00:00 + + https://ghostfol.io/en/resources/personal-finance-tools/open-source-alternative-to-monarch-money + ${currentDate}T00:00:00+00:00 + https://ghostfol.io/en/resources/personal-finance-tools/open-source-alternative-to-monse ${currentDate}T00:00:00+00:00 @@ -492,6 +512,10 @@ https://ghostfol.io/en/resources/personal-finance-tools/open-source-alternative-to-yeekatee ${currentDate}T00:00:00+00:00 + + https://ghostfol.io/en/resources/personal-finance-tools/open-source-alternative-to-ynab + ${currentDate}T00:00:00+00:00 + https://ghostfol.io/es ${currentDate}T00:00:00+00:00 @@ -662,6 +686,10 @@ https://ghostfol.io/it/risorse/personal-finance-tools/alternativa-open-source-a-8figures ${currentDate}T00:00:00+00:00 + + https://ghostfol.io/it/risorse/personal-finance-tools/alternativa-open-source-a-allvue-systems + ${currentDate}T00:00:00+00:00 + https://ghostfol.io/it/risorse/personal-finance-tools/alternativa-open-source-a-altoo ${currentDate}T00:00:00+00:00 @@ -734,6 +762,10 @@ https://ghostfol.io/it/risorse/personal-finance-tools/alternativa-open-source-a-maybe-finance ${currentDate}T00:00:00+00:00 + + https://ghostfol.io/it/risorse/personal-finance-tools/alternativa-open-source-a-monarch-money + ${currentDate}T00:00:00+00:00 + https://ghostfol.io/it/risorse/personal-finance-tools/alternativa-open-source-a-monse ${currentDate}T00:00:00+00:00 @@ -806,6 +838,10 @@ https://ghostfol.io/it/risorse/personal-finance-tools/alternativa-open-source-a-yeekatee ${currentDate}T00:00:00+00:00 + + https://ghostfol.io/it/risorse/personal-finance-tools/alternativa-open-source-a-ynab + ${currentDate}T00:00:00+00:00 + https://ghostfol.io/nl ${currentDate}T00:00:00+00:00 @@ -822,6 +858,10 @@ https://ghostfol.io/nl/bronnen/personal-finance-tools/open-source-alternatief-voor-8figures ${currentDate}T00:00:00+00:00 + + https://ghostfol.io/nl/bronnen/personal-finance-tools/open-source-alternatief-voor-allvue-systems + ${currentDate}T00:00:00+00:00 + https://ghostfol.io/nl/bronnen/personal-finance-tools/open-source-alternatief-voor-altoo ${currentDate}T00:00:00+00:00 @@ -894,6 +934,10 @@ https://ghostfol.io/nl/bronnen/personal-finance-tools/open-source-alternatief-voor-maybe-finance ${currentDate}T00:00:00+00:00 + + https://ghostfol.io/nl/bronnen/personal-finance-tools/open-source-alternatief-voor-monarch-money + ${currentDate}T00:00:00+00:00 + https://ghostfol.io/nl/bronnen/personal-finance-tools/open-source-alternatief-voor-monse ${currentDate}T00:00:00+00:00 @@ -966,6 +1010,10 @@ https://ghostfol.io/nl/bronnen/personal-finance-tools/open-source-alternatief-voor-yeekatee ${currentDate}T00:00:00+00:00 + + https://ghostfol.io/nl/bronnen/personal-finance-tools/open-source-alternatief-voor-ynab + ${currentDate}T00:00:00+00:00 + https://ghostfol.io/nl/functionaliteiten ${currentDate}T00:00:00+00:00 diff --git a/apps/client/src/app/pages/resources/personal-finance-tools/products.ts b/apps/client/src/app/pages/resources/personal-finance-tools/products.ts index 09569d8c1..8e4559fa5 100644 --- a/apps/client/src/app/pages/resources/personal-finance-tools/products.ts +++ b/apps/client/src/app/pages/resources/personal-finance-tools/products.ts @@ -1,5 +1,6 @@ import { Product } from '@ghostfolio/common/interfaces'; +import { AllvueSystemsPageComponent } from './products/allvue-systems-page.component'; import { AltooPageComponent } from './products/altoo-page.component'; import { BeanvestPageComponent } from './products/beanvest-page.component'; import { CapitallyPageComponent } from './products/capitally-page.component'; @@ -19,6 +20,7 @@ import { JustEtfPageComponent } from './products/justetf-page.component'; import { KuberaPageComponent } from './products/kubera-page.component'; import { MarketsShPageComponent } from './products/markets.sh-page.component'; import { MaybeFinancePageComponent } from './products/maybe-finance-page.component'; +import { MonarchMoneyPageComponent } from './products/monarch-money-page.component'; import { MonsePageComponent } from './products/monse-page.component'; import { ParqetPageComponent } from './products/parqet-page.component'; import { PlannixPageComponent } from './products/plannix-page.component'; @@ -37,6 +39,7 @@ import { UtlunaPageComponent } from './products/utluna-page.component'; import { VyzerPageComponent } from './products/vyzer-page.component'; import { WealthicaPageComponent } from './products/wealthica-page.component'; import { YeekateePageComponent } from './products/yeekatee-page.component'; +import { YnabPageComponent } from './products/ynab-page.component'; export const products: Product[] = [ { @@ -62,6 +65,16 @@ export const products: Product[] = [ slogan: 'Open Source Wealth Management', useAnonymously: true }, + { + component: AllvueSystemsPageComponent, + founded: 2019, + hasFreePlan: false, + hasSelfHostingAbility: false, + key: 'allvue-systems', + name: 'Allvue Systems', + origin: $localize`United States`, + slogan: 'Investment Software Suite' + }, { component: AltooPageComponent, founded: 2017, @@ -265,6 +278,17 @@ export const products: Product[] = [ region: $localize`United States`, slogan: 'Your financial future, in your control' }, + { + component: MonarchMoneyPageComponent, + founded: 2019, + hasFreePlan: false, + hasSelfHostingAbility: false, + key: 'monarch-money', + name: 'Monarch Money', + origin: $localize`United States`, + pricingPerYear: '$99.99', + slogan: 'The modern way to manage your money' + }, { component: MonsePageComponent, hasFreePlan: false, @@ -452,5 +476,16 @@ export const products: Product[] = [ origin: $localize`Switzerland`, region: $localize`Switzerland`, slogan: 'Connect. Share. Invest.' + }, + { + component: YnabPageComponent, + founded: 2004, + hasFreePlan: false, + hasSelfHostingAbility: false, + key: 'ynab', + name: 'YNAB (You Need a Budget)', + origin: $localize`United States`, + pricingPerYear: '$99', + slogan: 'Change Your Relationship With Money' } ]; diff --git a/apps/client/src/app/pages/resources/personal-finance-tools/products/allvue-systems-page.component.ts b/apps/client/src/app/pages/resources/personal-finance-tools/products/allvue-systems-page.component.ts new file mode 100644 index 000000000..a8acb3742 --- /dev/null +++ b/apps/client/src/app/pages/resources/personal-finance-tools/products/allvue-systems-page.component.ts @@ -0,0 +1,31 @@ +import { CommonModule } from '@angular/common'; +import { Component } from '@angular/core'; +import { MatButtonModule } from '@angular/material/button'; +import { RouterModule } from '@angular/router'; + +import { products } from '../products'; + +@Component({ + host: { class: 'page' }, + imports: [CommonModule, MatButtonModule, RouterModule], + selector: 'gf-allvue-systems-page', + standalone: true, + styleUrls: ['../product-page-template.scss'], + templateUrl: '../product-page-template.html' +}) +export class AllvueSystemsPageComponent { + public product1 = products.find(({ key }) => { + return key === 'ghostfolio'; + }); + + public product2 = products.find(({ key }) => { + return key === 'allvue-systems'; + }); + + public routerLinkAbout = ['/' + $localize`about`]; + public routerLinkFeatures = ['/' + $localize`features`]; + public routerLinkResourcesPersonalFinanceTools = [ + '/' + $localize`resources`, + 'personal-finance-tools' + ]; +} diff --git a/apps/client/src/app/pages/resources/personal-finance-tools/products/monarch-money-page.component.ts b/apps/client/src/app/pages/resources/personal-finance-tools/products/monarch-money-page.component.ts new file mode 100644 index 000000000..4b21de801 --- /dev/null +++ b/apps/client/src/app/pages/resources/personal-finance-tools/products/monarch-money-page.component.ts @@ -0,0 +1,31 @@ +import { CommonModule } from '@angular/common'; +import { Component } from '@angular/core'; +import { MatButtonModule } from '@angular/material/button'; +import { RouterModule } from '@angular/router'; + +import { products } from '../products'; + +@Component({ + host: { class: 'page' }, + imports: [CommonModule, MatButtonModule, RouterModule], + selector: 'gf-monarch-money-page', + standalone: true, + styleUrls: ['../product-page-template.scss'], + templateUrl: '../product-page-template.html' +}) +export class MonarchMoneyPageComponent { + public product1 = products.find(({ key }) => { + return key === 'ghostfolio'; + }); + + public product2 = products.find(({ key }) => { + return key === 'monarch-money'; + }); + + public routerLinkAbout = ['/' + $localize`about`]; + public routerLinkFeatures = ['/' + $localize`features`]; + public routerLinkResourcesPersonalFinanceTools = [ + '/' + $localize`resources`, + 'personal-finance-tools' + ]; +} diff --git a/apps/client/src/app/pages/resources/personal-finance-tools/products/ynab-page.component.ts b/apps/client/src/app/pages/resources/personal-finance-tools/products/ynab-page.component.ts new file mode 100644 index 000000000..d63f70e25 --- /dev/null +++ b/apps/client/src/app/pages/resources/personal-finance-tools/products/ynab-page.component.ts @@ -0,0 +1,31 @@ +import { CommonModule } from '@angular/common'; +import { Component } from '@angular/core'; +import { MatButtonModule } from '@angular/material/button'; +import { RouterModule } from '@angular/router'; + +import { products } from '../products'; + +@Component({ + host: { class: 'page' }, + imports: [CommonModule, MatButtonModule, RouterModule], + selector: 'gf-ynab-page', + standalone: true, + styleUrls: ['../product-page-template.scss'], + templateUrl: '../product-page-template.html' +}) +export class YnabPageComponent { + public product1 = products.find(({ key }) => { + return key === 'ghostfolio'; + }); + + public product2 = products.find(({ key }) => { + return key === 'ynab'; + }); + + public routerLinkAbout = ['/' + $localize`about`]; + public routerLinkFeatures = ['/' + $localize`features`]; + public routerLinkResourcesPersonalFinanceTools = [ + '/' + $localize`resources`, + 'personal-finance-tools' + ]; +}