From cb34c4bc5a9023f4e7f7e7a9d00ea7a50bf0b2f3 Mon Sep 17 00:00:00 2001
From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com>
Date: Fri, 19 Jun 2026 18:30:21 +0200
Subject: [PATCH 1/2] Task/extend personal finance tools (20260619) (#7071)
Extend personal finance tools
---
libs/common/src/lib/personal-finance-tools.ts | 79 +++++++++++++++++++
1 file changed, 79 insertions(+)
diff --git a/libs/common/src/lib/personal-finance-tools.ts b/libs/common/src/lib/personal-finance-tools.ts
index 8698c76f7..744081464 100644
--- a/libs/common/src/lib/personal-finance-tools.ts
+++ b/libs/common/src/lib/personal-finance-tools.ts
@@ -1,6 +1,17 @@
import { Product } from '@ghostfolio/common/interfaces';
export const personalFinanceTools: Product[] = [
+ {
+ hasFreePlan: true,
+ hasSelfHostingAbility: true,
+ key: 'acemoney',
+ name: 'AceMoney',
+ note: 'License is a perpetual license',
+ origin: 'US',
+ pricingPerYear: '$44.95',
+ slogan: 'Lifetime Personal Finance Control, One Single Payment.',
+ url: 'https://www.mechcad.net'
+ },
{
founded: 2023,
hasSelfHostingAbility: false,
@@ -361,6 +372,16 @@ export const personalFinanceTools: Product[] = [
slogan: 'Your financial superpower',
url: 'https://www.etops.com'
},
+ {
+ founded: 2015,
+ hasFreePlan: true,
+ hasSelfHostingAbility: false,
+ key: 'everydollar',
+ name: 'EveryDollar',
+ origin: 'US',
+ slogan: 'Plan, track, find more margin',
+ url: 'https://www.ramseysolutions.com/money/everydollar'
+ },
{
founded: 2020,
hasFreePlan: true,
@@ -497,6 +518,17 @@ export const personalFinanceTools: Product[] = [
slogan: 'Take control over your investments',
url: 'https://www.folishare.com'
},
+ {
+ founded: 1993,
+ hasSelfHostingAbility: true,
+ key: 'fund-manager',
+ name: 'Fund Manager',
+ note: 'License is a perpetual license',
+ origin: 'US',
+ pricingPerYear: '$99',
+ slogan: 'Powerful portfolio management software',
+ url: 'https://www.fundmanagersoftware.com'
+ },
{
hasFreePlan: true,
hasSelfHostingAbility: false,
@@ -528,6 +560,15 @@ export const personalFinanceTools: Product[] = [
slogan: 'Portfolio Tracker, Analysis & Community',
url: 'https://www.getquin.com'
},
+ {
+ hasFreePlan: true,
+ hasSelfHostingAbility: false,
+ key: 'goodbudget',
+ name: 'Goodbudget',
+ origin: 'US',
+ slogan: 'Budget with a why',
+ url: 'https://goodbudget.com'
+ },
{
hasFreePlan: true,
hasSelfHostingAbility: false,
@@ -665,6 +706,16 @@ export const personalFinanceTools: Product[] = [
slogan: 'Sustainability insights for wealth managers',
url: 'https://leafs.ch'
},
+ {
+ founded: 2020,
+ hasFreePlan: false,
+ hasSelfHostingAbility: false,
+ key: 'lunch-money',
+ name: 'Lunch Money',
+ origin: 'CA',
+ slogan: 'Delightfully simple personal finance and budgeting',
+ url: 'https://lunchmoney.app'
+ },
{
founded: 2018,
hasFreePlan: false,
@@ -725,6 +776,16 @@ export const personalFinanceTools: Product[] = [
slogan: 'The smartest way to track your crypto',
url: 'https://www.merlincrypto.com'
},
+ {
+ hasFreePlan: false,
+ hasSelfHostingAbility: false,
+ key: 'mezzi',
+ name: 'Mezzi',
+ origin: 'US',
+ pricingPerYear: '$48',
+ slogan: 'Self-manage your wealth. Get fiduciary advice.',
+ url: 'https://www.mezzi.com'
+ },
{
founded: 1991,
hasSelfHostingAbility: true,
@@ -776,6 +837,15 @@ export const personalFinanceTools: Product[] = [
slogan: 'Have total control of your financial life',
url: 'https://www.moneyspire.com'
},
+ {
+ hasFreePlan: true,
+ hasSelfHostingAbility: true,
+ key: 'moneywell',
+ name: 'MoneyWell',
+ origin: 'US',
+ slogan: 'Personal Budgeting Software for Mac and iOS',
+ url: 'https://moneywell.app'
+ },
{
key: 'moneywiz',
name: 'MoneyWiz',
@@ -1109,6 +1179,15 @@ export const personalFinanceTools: Product[] = [
slogan: 'Stock Portfolio Tracker',
url: 'https://simpleportfolio.app'
},
+ {
+ founded: 2020,
+ hasFreePlan: false,
+ hasSelfHostingAbility: false,
+ key: 'simplifi',
+ name: 'Simplifi by Quicken',
+ origin: 'US',
+ url: 'https://www.quicken.com/products/simplifi'
+ },
{
founded: 2014,
hasFreePlan: true,
From 2589a60f288fbeb4a2ed3d4d44dc58f56ce9fca3 Mon Sep 17 00:00:00 2001
From: David Requeno <108202767+DavidReque@users.noreply.github.com>
Date: Fri, 19 Jun 2026 10:32:32 -0600
Subject: [PATCH 2/2] Task/include selected profile count in market data delete
action (#7064)
* Include selected profile count
* Update changelog
---
CHANGELOG.md | 4 ++++
.../admin-market-data/admin-market-data.html | 13 ++++++++++++-
2 files changed, 16 insertions(+), 1 deletion(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index f964c9cae..0a2337d89 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -7,6 +7,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
## Unreleased
+### Changed
+
+- Added the selected asset profile count to the delete menu item of the historical market data table in the admin control panel
+
### Fixed
- Fixed an issue with the localization of the country names
diff --git a/apps/client/src/app/components/admin-market-data/admin-market-data.html b/apps/client/src/app/components/admin-market-data/admin-market-data.html
index 63d425513..e86e3e631 100644
--- a/apps/client/src/app/components/admin-market-data/admin-market-data.html
+++ b/apps/client/src/app/components/admin-market-data/admin-market-data.html
@@ -239,7 +239,18 @@
[disabled]="!selection.hasValue()"
(click)="onDeleteAssetProfiles()"
>
- Delete Profiles
+ Delete
+ {{
+ selection.selected.length > 1
+ ? selection.selected.length
+ : ''
+ }}
+ {selection.selected.length, plural,
+ =1 {Profile}
+ other {Profiles}
+ }