diff --git a/CHANGELOG.md b/CHANGELOG.md
index 2fc599fcf..35ca028a3 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -7,10 +7,18 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
## Unreleased
+### Added
+
+- Added an automatic refresh every 30 seconds to the users table in the admin control panel
+
### Changed
- Refactored the backend logging to use the instance-based `Logger`
+### Fixed
+
+- Fixed a layout issue in the asset profile dialog of the admin control by truncating long titles
+
## 3.7.0 - 2026-06-02
### Added
diff --git a/apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.scss b/apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.scss
index 73c0c0d74..db23cf0a7 100644
--- a/apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.scss
+++ b/apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.scss
@@ -14,4 +14,8 @@
top: 0;
}
}
+
+ .mat-mdc-dialog-title {
+ padding-right: 0.5rem !important;
+ }
}
diff --git a/apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html b/apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
index b2a7e0a05..61ca6a6da 100644
--- a/apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
+++ b/apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
@@ -1,10 +1,10 @@
-
-
- {{ assetProfile?.name ?? data.symbol }}
-
+
+ {{
+ assetProfile?.name ?? data.symbol
+ }}
-
+
{
+ this.fetchUsers({
+ pageIndex: this.paginator().pageIndex,
+ showLoading: false
+ });
+ });
}
protected formatDistanceToNow(aDateString: string) {
@@ -267,8 +278,13 @@ export class GfAdminUsersComponent implements OnInit {
);
}
- private fetchUsers({ pageIndex }: { pageIndex: number } = { pageIndex: 0 }) {
- this.isLoading = true;
+ private fetchUsers({
+ pageIndex = 0,
+ showLoading = true
+ }: { pageIndex?: number; showLoading?: boolean } = {}) {
+ if (showLoading) {
+ this.isLoading = true;
+ }
if (pageIndex === 0 && this.paginator()) {
this.paginator().pageIndex = 0;
@@ -281,7 +297,7 @@ export class GfAdminUsersComponent implements OnInit {
})
.pipe(takeUntilDestroyed(this.destroyRef))
.subscribe(({ count, users }) => {
- this.dataSource = new MatTableDataSource(users);
+ this.dataSource.data = users;
this.totalItems = count;
this.isLoading = false;
diff --git a/apps/client/src/styles.scss b/apps/client/src/styles.scss
index 4321622a1..045de2eb6 100644
--- a/apps/client/src/styles.scss
+++ b/apps/client/src/styles.scss
@@ -1,10 +1,11 @@
@use '@angular/material' as mat;
+@use 'sass:color';
-@import './styles/bootstrap';
-@import './styles/table';
-@import './styles/variables';
+@use './styles/bootstrap';
+@use './styles/table' as table;
+@use './styles/variables' as variables;
-@import 'svgmap/style.min';
+@use 'svgmap/style.min';
:root {
--dark-background: rgb(25, 25, 25);
@@ -12,8 +13,10 @@
--light-background: rgb(255, 255, 255);
--dark-primary-text:
- #{red($dark-primary-text)}, #{green($dark-primary-text)},
- #{blue($dark-primary-text)}, #{alpha($dark-primary-text)};
+ #{color.channel(variables.$dark-primary-text, 'red')},
+ #{color.channel(variables.$dark-primary-text, 'green')},
+ #{color.channel(variables.$dark-primary-text, 'blue')},
+ #{color.channel(variables.$dark-primary-text, 'alpha')};
--dark-secondary-text: 0, 0, 0, 0.54;
--dark-accent-text: 0, 0, 0, 0.87;
--dark-warn-text: 0, 0, 0, 0.87;
@@ -21,8 +24,10 @@
--dark-dividers: 0, 0, 0, 0.12;
--dark-focused: 0, 0, 0, 0.12;
--light-primary-text:
- #{red($light-primary-text)}, #{green($light-primary-text)},
- #{blue($light-primary-text)}, #{alpha($light-primary-text)};
+ #{color.channel(variables.$light-primary-text, 'red')},
+ #{color.channel(variables.$light-primary-text, 'green')},
+ #{color.channel(variables.$light-primary-text, 'blue')},
+ #{color.channel(variables.$light-primary-text, 'alpha')};
--light-secondary-text: 255, 255, 255, 0.7;
--light-accent-text: 255, 255, 255, 1;
--light-warn-text: 255, 255, 255, 1;
@@ -240,7 +245,7 @@ body {
}
.gf-table {
- @include gf-table(true);
+ @include table.gf-table(true);
}
.mat-mdc-dialog-container {
@@ -353,7 +358,7 @@ ngx-skeleton-loader {
}
.gf-table {
- @include gf-table;
+ @include table.gf-table;
}
.gf-text-wrap-balance {
diff --git a/libs/common/src/lib/interfaces/product.ts b/libs/common/src/lib/interfaces/product.ts
index 5ef023ff8..6cd88fbe8 100644
--- a/libs/common/src/lib/interfaces/product.ts
+++ b/libs/common/src/lib/interfaces/product.ts
@@ -13,5 +13,6 @@ export interface Product {
pricingPerYear?: string;
regions?: string[];
slogan?: string;
+ url?: string;
useAnonymously?: boolean;
}
diff --git a/libs/common/src/lib/personal-finance-tools.ts b/libs/common/src/lib/personal-finance-tools.ts
index 063b4254c..23697e63b 100644
--- a/libs/common/src/lib/personal-finance-tools.ts
+++ b/libs/common/src/lib/personal-finance-tools.ts
@@ -7,7 +7,8 @@ export const personalFinanceTools: Product[] = [
key: 'allinvestview',
languages: ['English'],
name: 'AllInvestView',
- slogan: 'All your Investments in One View'
+ slogan: 'All your Investments in One View',
+ url: 'https://www.allinvestview.com'
},
{
founded: 2019,
@@ -16,14 +17,16 @@ export const personalFinanceTools: Product[] = [
key: 'allvue-systems',
name: 'Allvue Systems',
origin: 'United States',
- slogan: 'Investment Software Suite'
+ slogan: 'Investment Software Suite',
+ url: 'https://www.allvuesystems.com'
},
{
founded: 2016,
key: 'alphatrackr',
languages: ['English'],
name: 'AlphaTrackr',
- slogan: 'Investment Portfolio Tracking Tool'
+ slogan: 'Investment Portfolio Tracking Tool',
+ url: 'https://www.alphatrackr.com'
},
{
founded: 2017,
@@ -31,7 +34,8 @@ export const personalFinanceTools: Product[] = [
key: 'altoo',
name: 'Altoo Wealth Platform',
origin: 'Switzerland',
- slogan: 'Simplicity for Complex Wealth'
+ slogan: 'Simplicity for Complex Wealth',
+ url: 'https://altoo.io'
},
{
founded: 2018,
@@ -40,7 +44,8 @@ export const personalFinanceTools: Product[] = [
key: 'altruist',
name: 'Altruist',
origin: 'United States',
- slogan: 'The wealth platform built for independent advisors'
+ slogan: 'The wealth platform built for independent advisors',
+ url: 'https://altruist.com'
},
{
founded: 2023,
@@ -50,7 +55,8 @@ export const personalFinanceTools: Product[] = [
name: 'Amsflow Portfolio',
origin: 'Singapore',
pricingPerYear: '$228',
- slogan: 'Portfolio Visualizer'
+ slogan: 'Portfolio Visualizer',
+ url: 'https://amsflow.com'
},
{
founded: 2018,
@@ -61,7 +67,8 @@ export const personalFinanceTools: Product[] = [
name: 'Anlage.App',
origin: 'Austria',
pricingPerYear: '$120',
- slogan: 'Analyze and track your portfolio.'
+ slogan: 'Analyze and track your portfolio.',
+ url: 'https://anlage.app'
},
{
founded: 2022,
@@ -70,14 +77,16 @@ export const personalFinanceTools: Product[] = [
languages: ['English'],
name: 'Asseta',
origin: 'United States',
- slogan: 'The Intelligent Family Office Suite'
+ slogan: 'The Intelligent Family Office Suite',
+ url: 'https://www.asseta.ai'
},
{
founded: 2016,
key: 'atominvest',
name: 'Atominvest',
origin: 'United Kingdom',
- slogan: 'Portfolio Management'
+ slogan: 'Portfolio Management',
+ url: 'https://www.atominvest.co'
},
{
founded: 2020,
@@ -87,7 +96,8 @@ export const personalFinanceTools: Product[] = [
name: 'Balance Pro',
origin: 'United States',
pricingPerYear: '$47.99',
- slogan: 'The Smarter Way to Track Your Finances'
+ slogan: 'The Smarter Way to Track Your Finances',
+ url: 'https://www.balancepro.app'
},
{
hasFreePlan: false,
@@ -96,7 +106,8 @@ export const personalFinanceTools: Product[] = [
name: 'Banktivity',
origin: 'United States',
pricingPerYear: '$59.99',
- slogan: 'Proactive money management app for macOS & iOS'
+ slogan: 'Proactive money management app for macOS & iOS',
+ url: 'https://www.banktivity.com'
},
{
founded: 2022,
@@ -104,7 +115,8 @@ export const personalFinanceTools: Product[] = [
hasSelfHostingAbility: false,
key: 'basil-finance',
name: 'Basil Finance',
- slogan: 'The ultimate solution for tracking and managing your investments'
+ slogan: 'The ultimate solution for tracking and managing your investments',
+ url: 'https://basil.fi'
},
{
founded: 2020,
@@ -114,7 +126,8 @@ export const personalFinanceTools: Product[] = [
name: 'Beanvest',
origin: 'France',
pricingPerYear: '$100',
- slogan: 'Stock Portfolio Tracker for Smart Investors'
+ slogan: 'Stock Portfolio Tracker for Smart Investors',
+ url: 'https://beanvest.com'
},
{
founded: 2024,
@@ -123,7 +136,8 @@ export const personalFinanceTools: Product[] = [
languages: ['Deutsch', 'English', 'Français', 'Italiano'],
name: 'BlueBudget',
origin: 'Switzerland',
- slogan: 'Schweizer Budget App für einfache & smarte Budgetplanung'
+ slogan: 'Schweizer Budget App für einfache & smarte Budgetplanung',
+ url: 'https://www.bluebudget.ch'
},
{
founded: 2015,
@@ -134,13 +148,15 @@ export const personalFinanceTools: Product[] = [
note: 'Originally named as NewRetirement',
origin: 'United States',
pricingPerYear: '$144',
- slogan: 'Take control with retirement planning tools that begin with you'
+ slogan: 'Take control with retirement planning tools that begin with you',
+ url: 'https://www.boldin.com'
},
{
key: 'budgetpulse',
name: 'BudgetPulse',
origin: 'United States',
- slogan: 'Giving life to your finance!'
+ slogan: 'Giving life to your finance!',
+ url: 'https://www.budgetpulse.com'
},
{
founded: 2007,
@@ -151,7 +167,8 @@ export const personalFinanceTools: Product[] = [
origin: 'United States',
pricingPerYear: '$48',
regions: ['Global'],
- slogan: 'Take control of your financial future'
+ slogan: 'Take control of your financial future',
+ url: 'https://www.buxfer.com'
},
{
hasFreePlan: true,
@@ -160,7 +177,8 @@ export const personalFinanceTools: Product[] = [
name: 'Capitally',
origin: 'Poland',
pricingPerYear: '€80',
- slogan: 'Optimize your investments performance'
+ slogan: 'Optimize your investments performance',
+ url: 'https://www.mycapitally.com'
},
{
founded: 2022,
@@ -185,7 +203,8 @@ export const personalFinanceTools: Product[] = [
key: 'cobalt',
name: 'Cobalt',
origin: 'United States',
- slogan: 'Next-Level Portfolio Monitoring'
+ slogan: 'Next-Level Portfolio Monitoring',
+ url: 'https://www.cobalt.pe'
},
{
founded: 2017,
@@ -195,7 +214,8 @@ export const personalFinanceTools: Product[] = [
name: 'CoinStats',
origin: 'Armenia',
pricingPerYear: '$168',
- slogan: 'Manage All Your Wallets & Exchanges From One Place'
+ slogan: 'Manage All Your Wallets & Exchanges From One Place',
+ url: 'https://coinstats.app'
},
{
founded: 2013,
@@ -206,14 +226,16 @@ export const personalFinanceTools: Product[] = [
name: 'CoinTracking',
origin: 'Germany',
pricingPerYear: '$120',
- slogan: 'The leading Crypto Portfolio Tracker & Tax Calculator'
+ slogan: 'The leading Crypto Portfolio Tracker & Tax Calculator',
+ url: 'https://cointracking.info'
},
{
founded: 2019,
key: 'compound-planning',
name: 'Compound Planning',
origin: 'United States',
- slogan: 'Modern Wealth & Investment Management'
+ slogan: 'Modern Wealth & Investment Management',
+ url: 'https://compoundplanning.com'
},
{
founded: 2019,
@@ -223,7 +245,8 @@ export const personalFinanceTools: Product[] = [
name: 'Copilot Money',
origin: 'United States',
pricingPerYear: '$95',
- slogan: 'Do money better with Copilot'
+ slogan: 'Do money better with Copilot',
+ url: 'https://www.copilot.money'
},
{
founded: 2014,
@@ -232,7 +255,8 @@ export const personalFinanceTools: Product[] = [
name: 'CountAbout',
origin: 'United States',
pricingPerYear: '$9.99',
- slogan: 'Customizable and Secure Personal Finance App'
+ slogan: 'Customizable and Secure Personal Finance App',
+ url: 'https://countabout.com'
},
{
founded: 2023,
@@ -240,14 +264,16 @@ export const personalFinanceTools: Product[] = [
key: 'danti',
name: 'Danti',
origin: 'United Kingdom',
- slogan: 'Digitising Generational Wealth'
+ slogan: 'Digitising Generational Wealth',
+ url: 'https://danti.io'
},
{
founded: 2020,
key: 'de.fi',
languages: ['English'],
name: 'De.Fi',
- slogan: 'DeFi Portfolio Tracker'
+ slogan: 'DeFi Portfolio Tracker',
+ url: 'https://de.fi'
},
{
founded: 2016,
@@ -258,7 +284,8 @@ export const personalFinanceTools: Product[] = [
name: 'DeFi Portfolio Tracker by Zerion',
origin: 'United States',
pricingPerYear: '$99',
- slogan: 'DeFi Portfolio Tracker for All Chains'
+ slogan: 'DeFi Portfolio Tracker for All Chains',
+ url: 'https://zerion.io/defi-portfolio-tracker'
},
{
founded: 2022,
@@ -269,7 +296,8 @@ export const personalFinanceTools: Product[] = [
name: 'DEGIRO Portfolio Tracker by Capitalyse',
origin: 'Netherlands',
pricingPerYear: '€24',
- slogan: 'Democratizing Data Analytics'
+ slogan: 'Democratizing Data Analytics',
+ url: 'https://capitalyse.app/app/degiro'
},
{
founded: 2017,
@@ -280,7 +308,8 @@ export const personalFinanceTools: Product[] = [
note: 'Acquired by eToro',
origin: 'Belgium',
pricingPerYear: '$150',
- slogan: 'The app to track all your investments. Make smart moves only.'
+ slogan: 'The app to track all your investments. Make smart moves only.',
+ url: 'https://delta.app'
},
{
hasFreePlan: true,
@@ -289,7 +318,8 @@ export const personalFinanceTools: Product[] = [
languages: ['English'],
name: 'Digrin',
pricingPerYear: '$49.90',
- slogan: 'Dividend Portfolio Tracker'
+ slogan: 'Dividend Portfolio Tracker',
+ url: 'https://www.digrin.com'
},
{
founded: 2019,
@@ -300,7 +330,8 @@ export const personalFinanceTools: Product[] = [
name: 'DivvyDiary',
origin: 'Germany',
pricingPerYear: '€65',
- slogan: 'Your personal Dividend Calendar'
+ slogan: 'Your personal Dividend Calendar',
+ url: 'https://divvydiary.com'
},
{
founded: 2009,
@@ -309,7 +340,8 @@ export const personalFinanceTools: Product[] = [
name: 'Empower',
note: 'Originally named as Personal Capital',
origin: 'United States',
- slogan: 'Get answers to your money questions'
+ slogan: 'Get answers to your money questions',
+ url: 'https://www.empower.com'
},
{
alias: '8figures',
@@ -317,7 +349,8 @@ export const personalFinanceTools: Product[] = [
key: 'eightfigures',
name: '8FIGURES',
origin: 'United States',
- slogan: 'Portfolio Tracker Designed by Professional Investors'
+ slogan: 'Portfolio Tracker Designed by Professional Investors',
+ url: 'https://8figures.com'
},
{
founded: 2010,
@@ -325,7 +358,8 @@ export const personalFinanceTools: Product[] = [
key: 'etops',
name: 'etops',
origin: 'Switzerland',
- slogan: 'Your financial superpower'
+ slogan: 'Your financial superpower',
+ url: 'https://www.etops.com'
},
{
founded: 2020,
@@ -335,7 +369,8 @@ export const personalFinanceTools: Product[] = [
name: 'Exirio',
origin: 'United States',
pricingPerYear: '$100',
- slogan: 'All your wealth, in one place.'
+ slogan: 'All your wealth, in one place.',
+ url: 'https://www.exirio.com'
},
{
founded: 2018,
@@ -345,7 +380,8 @@ export const personalFinanceTools: Product[] = [
name: 'Fey',
origin: 'Canada',
pricingPerYear: '$300',
- slogan: 'Make better investments.'
+ slogan: 'Make better investments.',
+ url: 'https://fey.com'
},
{
founded: 2023,
@@ -356,7 +392,8 @@ export const personalFinanceTools: Product[] = [
name: 'Fina',
origin: 'United States',
pricingPerYear: '$115',
- slogan: 'Flexible Financial Management'
+ slogan: 'Flexible Financial Management',
+ url: 'https://www.fina.money'
},
{
founded: 2023,
@@ -366,7 +403,8 @@ export const personalFinanceTools: Product[] = [
name: 'Finanzfluss Copilot',
origin: 'Germany',
pricingPerYear: '€69.99',
- slogan: 'Portfolio Tracker für dein Vermögen'
+ slogan: 'Portfolio Tracker für dein Vermögen',
+ url: 'https://www.finanzfluss.de/copilot'
},
{
founded: 2020,
@@ -374,7 +412,8 @@ export const personalFinanceTools: Product[] = [
languages: ['Deutsch', 'English', 'Français'],
name: 'Finary',
origin: 'United States',
- slogan: 'Real-Time Portfolio Tracker & Stock Tracker'
+ slogan: 'Real-Time Portfolio Tracker & Stock Tracker',
+ url: 'https://finary.com'
},
{
founded: 2021,
@@ -385,14 +424,16 @@ export const personalFinanceTools: Product[] = [
name: 'FINATEKA',
origin: 'United States',
slogan:
- 'The most convenient mobile application for personal finance accounting'
+ 'The most convenient mobile application for personal finance accounting',
+ url: 'https://finateka.com'
},
{
founded: 2022,
key: 'fincake',
name: 'Fincake',
origin: 'British Virgin Islands',
- slogan: 'Easy-to-use Portfolio Tracker'
+ slogan: 'Easy-to-use Portfolio Tracker',
+ url: 'https://fincake.io'
},
{
founded: 2021,
@@ -400,7 +441,8 @@ export const personalFinanceTools: Product[] = [
key: 'finvest',
name: 'Finvest',
origin: 'United States',
- slogan: 'Grow your wealth in a stress-free way'
+ slogan: 'Grow your wealth in a stress-free way',
+ url: 'https://www.getfinvest.com'
},
{
founded: 2023,
@@ -409,7 +451,8 @@ export const personalFinanceTools: Product[] = [
name: 'FinWise',
origin: 'South Africa',
pricingPerYear: '€69.99',
- slogan: 'Personal finances, simplified'
+ slogan: 'Personal finances, simplified',
+ url: 'https://finwiseapp.io'
},
{
founded: 2021,
@@ -420,7 +463,8 @@ export const personalFinanceTools: Product[] = [
name: 'FIREkit',
origin: 'Ukraine',
pricingPerYear: '$40',
- slogan: 'A simple solution to track your wealth online'
+ slogan: 'A simple solution to track your wealth online',
+ url: 'https://firekit.space'
},
{
hasFreePlan: true,
@@ -430,7 +474,8 @@ export const personalFinanceTools: Product[] = [
name: 'folishare',
origin: 'Austria',
pricingPerYear: '$65',
- slogan: 'Take control over your investments'
+ slogan: 'Take control over your investments',
+ url: 'https://www.folishare.com'
},
{
hasFreePlan: true,
@@ -448,7 +493,8 @@ export const personalFinanceTools: Product[] = [
origin: 'Argentina',
pricingPerYear: '$60',
regions: ['Global'],
- slogan: 'Take control of your finances from WhatsApp'
+ slogan: 'Take control of your finances from WhatsApp',
+ url: 'https://gasti.pro'
},
{
founded: 2020,
@@ -459,7 +505,8 @@ export const personalFinanceTools: Product[] = [
name: 'getquin',
origin: 'Germany',
pricingPerYear: '€48',
- slogan: 'Portfolio Tracker, Analysis & Community'
+ slogan: 'Portfolio Tracker, Analysis & Community',
+ url: 'https://www.getquin.com'
},
{
hasFreePlan: true,
@@ -471,6 +518,18 @@ export const personalFinanceTools: Product[] = [
origin: 'Germany',
slogan: 'Volle Kontrolle über deine Investitionen'
},
+ {
+ founded: 2024,
+ hasFreePlan: true,
+ hasSelfHostingAbility: false,
+ key: 'gustav',
+ languages: ['Français'],
+ name: 'Gustav',
+ origin: 'France',
+ pricingPerYear: '€59.99',
+ slogan: 'Prenez enfin le contrôle de votre argent',
+ url: 'https://get-gustav.com'
+ },
{
hasFreePlan: true,
hasSelfHostingAbility: false,
@@ -479,6 +538,7 @@ export const personalFinanceTools: Product[] = [
name: 'Holistic',
origin: 'Germany',
slogan: 'Die All-in-One Lösung für dein Vermögen.',
+ url: 'https://holistic.capital',
useAnonymously: true
},
{
@@ -487,7 +547,8 @@ export const personalFinanceTools: Product[] = [
key: 'honeydue',
name: 'Honeydue',
origin: 'United States',
- slogan: 'Finance App for Couples'
+ slogan: 'Finance App for Couples',
+ url: 'https://www.honeydue.com'
},
{
founded: 2022,
@@ -515,7 +576,8 @@ export const personalFinanceTools: Product[] = [
key: 'investify',
name: 'Investify',
origin: 'Pakistan',
- slogan: 'Advanced portfolio tracking and stock market information'
+ slogan: 'Advanced portfolio tracking and stock market information',
+ url: 'https://www.investify.pk'
},
{
founded: 2021,
@@ -527,6 +589,7 @@ export const personalFinanceTools: Product[] = [
origin: 'Switzerland',
pricingPerYear: '$156',
slogan: 'Track all your assets, investments and portfolios in one place',
+ url: 'https://invmon.com',
useAnonymously: true
},
{
@@ -537,7 +600,8 @@ export const personalFinanceTools: Product[] = [
name: 'justETF',
origin: 'Germany',
pricingPerYear: '€119',
- slogan: 'ETF portfolios made simple'
+ slogan: 'ETF portfolios made simple',
+ url: 'https://www.justetf.com'
},
{
founded: 2018,
@@ -546,7 +610,8 @@ export const personalFinanceTools: Product[] = [
key: 'koinly',
name: 'Koinly',
origin: 'Singapore',
- slogan: 'Track all your crypto wallets in one place'
+ slogan: 'Track all your crypto wallets in one place',
+ url: 'https://koinly.io'
},
{
founded: 2016,
@@ -556,7 +621,8 @@ export const personalFinanceTools: Product[] = [
name: 'Koyfin',
origin: 'United States',
pricingPerYear: '$468',
- slogan: 'Comprehensive financial data analysis'
+ slogan: 'Comprehensive financial data analysis',
+ url: 'https://www.koyfin.com'
},
{
founded: 2019,
@@ -566,7 +632,8 @@ export const personalFinanceTools: Product[] = [
name: 'Kubera®',
origin: 'United States',
pricingPerYear: '$249',
- slogan: 'The Time Machine for your Net Worth'
+ slogan: 'The Time Machine for your Net Worth',
+ url: 'https://www.kubera.com'
},
{
founded: 2021,
@@ -575,7 +642,8 @@ export const personalFinanceTools: Product[] = [
languages: ['Deutsch', 'English'],
name: 'Leafs',
origin: 'Switzerland',
- slogan: 'Sustainability insights for wealth managers'
+ slogan: 'Sustainability insights for wealth managers',
+ url: 'https://leafs.ch'
},
{
founded: 2018,
@@ -585,7 +653,8 @@ export const personalFinanceTools: Product[] = [
name: 'Magnifi',
origin: 'United States',
pricingPerYear: '$132',
- slogan: 'AI Investing Assistant'
+ slogan: 'AI Investing Assistant',
+ url: 'https://magnifi.com'
},
{
founded: 2022,
@@ -597,14 +666,16 @@ export const personalFinanceTools: Product[] = [
origin: 'Germany',
pricingPerYear: '€168',
regions: ['Global'],
- slogan: 'Track your investments'
+ slogan: 'Track your investments',
+ url: 'https://markets.sh'
},
{
founded: 2010,
key: 'masttro',
name: 'Masttro',
origin: 'United States',
- slogan: 'Your platform for wealth in full view'
+ slogan: 'Your platform for wealth in full view',
+ url: 'https://masttro.com'
},
{
founded: 2021,
@@ -619,7 +690,8 @@ export const personalFinanceTools: Product[] = [
origin: 'United States',
pricingPerYear: '$145',
regions: ['United States'],
- slogan: 'Your financial future, in your control'
+ slogan: 'Your financial future, in your control',
+ url: 'https://github.com/maybe-finance/maybe'
},
{
hasFreePlan: false,
@@ -630,7 +702,8 @@ export const personalFinanceTools: Product[] = [
origin: 'United States',
pricingPerYear: '$204',
regions: ['Canada', 'United States'],
- slogan: 'The smartest way to track your crypto'
+ slogan: 'The smartest way to track your crypto',
+ url: 'https://www.merlincrypto.com'
},
{
founded: 1991,
@@ -649,7 +722,8 @@ export const personalFinanceTools: Product[] = [
name: 'Monarch Money',
origin: 'United States',
pricingPerYear: '$99.99',
- slogan: 'The modern way to manage your money'
+ slogan: 'The modern way to manage your money',
+ url: 'https://www.monarch.com'
},
{
founded: 1999,
@@ -659,7 +733,8 @@ export const personalFinanceTools: Product[] = [
name: 'Moneydance',
origin: 'Scotland',
pricingPerYear: '$100',
- slogan: 'Personal Finance Manager for Mac, Windows, and Linux'
+ slogan: 'Personal Finance Manager for Mac, Windows, and Linux',
+ url: 'https://moneydance.com'
},
{
hasFreePlan: true,
@@ -668,7 +743,8 @@ export const personalFinanceTools: Product[] = [
name: 'Money Peak',
note: 'Originally named as goSPATZ',
origin: 'Germany',
- slogan: 'Dein smarter Finance Assistant'
+ slogan: 'Dein smarter Finance Assistant',
+ url: 'https://moneypeak.ai'
},
{
founded: 2007,
@@ -677,14 +753,16 @@ export const personalFinanceTools: Product[] = [
note: 'License is a perpetual license',
origin: 'United States',
pricingPerYear: '$59.99',
- slogan: 'Have total control of your financial life'
+ slogan: 'Have total control of your financial life',
+ url: 'https://www.moneyspire.com'
},
{
key: 'moneywiz',
name: 'MoneyWiz',
origin: 'United States',
pricingPerYear: '$29.99',
- slogan: 'Get money management superpowers'
+ slogan: 'Get money management superpowers',
+ url: 'https://www.wiz.money'
},
{
hasFreePlan: false,
@@ -692,7 +770,8 @@ export const personalFinanceTools: Product[] = [
key: 'monse',
name: 'Monse',
pricingPerYear: '$60',
- slogan: 'Gain financial control and keep your data private.'
+ slogan: 'Gain financial control and keep your data private.',
+ url: 'https://monse.app'
},
{
founded: 2025,
@@ -703,7 +782,8 @@ export const personalFinanceTools: Product[] = [
name: 'Monsy',
origin: 'Indonesia',
pricingPerYear: '$20',
- slogan: 'Smart, simple, stress-free money tracking.'
+ slogan: 'Smart, simple, stress-free money tracking.',
+ url: 'https://www.monsy.app'
},
{
hasFreePlan: true,
@@ -713,7 +793,18 @@ export const personalFinanceTools: Product[] = [
name: 'Morningstar® Portfolio Manager',
origin: 'United States',
slogan:
- 'Track your equity, fund, investment trust, ETF and pension investments in one place.'
+ 'Track your equity, fund, investment trust, ETF and pension investments in one place.',
+ url: 'https://www.morningstar.com/mm'
+ },
+ {
+ hasFreePlan: true,
+ hasSelfHostingAbility: false,
+ key: 'myfinancetools',
+ languages: ['Deutsch', 'English', 'Español', 'Français', 'Português'],
+ name: 'MyFinanceTools',
+ pricingPerYear: '$36',
+ slogan: 'Your Personal Finance Command Center',
+ url: 'https://myfinancetools.io'
},
{
founded: 2020,
@@ -723,7 +814,8 @@ export const personalFinanceTools: Product[] = [
name: 'Crypto Portfolio Tracker by Nansen',
origin: 'Singapore',
pricingPerYear: '$1188',
- slogan: 'Your Complete Crypto Portfolio, Reimagined'
+ slogan: 'Your Complete Crypto Portfolio, Reimagined',
+ url: 'https://www.nansen.ai/crypto-portfolio-tracker'
},
{
founded: 2017,
@@ -733,7 +825,17 @@ export const personalFinanceTools: Product[] = [
name: 'Navexa',
origin: 'Australia',
pricingPerYear: '$90',
- slogan: 'The Intelligent Portfolio Tracker'
+ slogan: 'The Intelligent Portfolio Tracker',
+ url: 'https://www.navexa.com'
+ },
+ {
+ hasFreePlan: true,
+ hasSelfHostingAbility: false,
+ key: 'networthy',
+ name: 'Networthy',
+ pricingPerYear: '€49.99',
+ slogan: 'Your Personal Financial Analyst, powered by AI.',
+ url: 'https://networthy.pro'
},
{
founded: 2020,
@@ -745,21 +847,24 @@ export const personalFinanceTools: Product[] = [
origin: 'Germany',
pricingPerYear: '€99.99',
regions: ['Austria', 'Germany', 'Switzerland'],
- slogan: 'Dein Vermögen immer im Blick'
+ slogan: 'Dein Vermögen immer im Blick',
+ url: 'https://www.parqet.com'
},
{
hasSelfHostingAbility: false,
key: 'peek',
name: 'Peek',
origin: 'Singapore',
- slogan: 'Feel in control of your money without spreadsheets or shame'
+ slogan: 'Feel in control of your money without spreadsheets or shame',
+ url: 'https://peek.money'
},
{
key: 'pennies',
name: 'Pennies',
origin: 'United States',
pricingPerYear: '$39.99',
- slogan: 'Your money. Made simple.'
+ slogan: 'Your money. Made simple.',
+ url: 'https://www.getpennies.com'
},
{
founded: 2022,
@@ -769,7 +874,8 @@ export const personalFinanceTools: Product[] = [
name: 'PinkLion',
origin: 'Germany',
pricingPerYear: '€50',
- slogan: 'Invest smarter, not harder'
+ slogan: 'Invest smarter, not harder',
+ url: 'https://pinklion.xyz'
},
{
founded: 2023,
@@ -780,7 +886,8 @@ export const personalFinanceTools: Product[] = [
name: 'Plainzer',
origin: 'Poland',
pricingPerYear: '$74',
- slogan: 'Free dividend tracker for your portfolio'
+ slogan: 'Free dividend tracker for your portfolio',
+ url: 'https://plainzer.com'
},
{
founded: 2023,
@@ -788,7 +895,8 @@ export const personalFinanceTools: Product[] = [
key: 'plannix',
name: 'Plannix',
origin: 'Italy',
- slogan: 'Your Personal Finance Hub'
+ slogan: 'Your Personal Finance Hub',
+ url: 'https://www.plannix.co'
},
{
founded: 2015,
@@ -798,7 +906,8 @@ export const personalFinanceTools: Product[] = [
name: 'PocketGuard',
origin: 'United States',
pricingPerYear: '$74.99',
- slogan: 'Budgeting App & Finance Planner'
+ slogan: 'Budgeting App & Finance Planner',
+ url: 'https://pocketguard.com'
},
{
founded: 2008,
@@ -810,7 +919,8 @@ export const personalFinanceTools: Product[] = [
origin: 'New Zealand',
pricingPerYear: '$120',
regions: ['Global'],
- slogan: 'Know where your money is going'
+ slogan: 'Know where your money is going',
+ url: 'https://www.pocketsmith.com'
},
{
hasFreePlan: false,
@@ -820,7 +930,8 @@ export const personalFinanceTools: Product[] = [
name: 'Portfolio Dividend Tracker',
origin: 'Netherlands',
pricingPerYear: '€60',
- slogan: 'Manage all your portfolios'
+ slogan: 'Manage all your portfolios',
+ url: 'https://portfoliodividendtracker.com'
},
{
hasFreePlan: true,
@@ -829,7 +940,8 @@ export const personalFinanceTools: Product[] = [
languages: ['English'],
name: 'Portfolio Visualizer',
pricingPerYear: '$360',
- slogan: 'Tools for Better Investors'
+ slogan: 'Tools for Better Investors',
+ url: 'https://www.portfoliovisualizer.com'
},
{
hasFreePlan: true,
@@ -849,7 +961,8 @@ export const personalFinanceTools: Product[] = [
name: 'Portseido',
origin: 'Thailand',
pricingPerYear: '$96',
- slogan: 'Portfolio Performance and Dividend Tracker'
+ slogan: 'Portfolio Performance and Dividend Tracker',
+ url: 'https://www.portseido.com'
},
{
founded: 2021,
@@ -859,7 +972,8 @@ export const personalFinanceTools: Product[] = [
name: 'ProjectionLab',
origin: 'United States',
pricingPerYear: '$108',
- slogan: 'Build Financial Plans You Love.'
+ slogan: 'Build Financial Plans You Love.',
+ url: 'https://projectionlab.com'
},
{
founded: 2022,
@@ -869,7 +983,19 @@ export const personalFinanceTools: Product[] = [
name: 'Pro Stock Tracker',
origin: 'United Kingdom',
pricingPerYear: '$60',
- slogan: 'The stock portfolio tracker built for long-term investors'
+ slogan: 'The stock portfolio tracker built for long-term investors',
+ url: 'https://prostocktracker.com'
+ },
+ {
+ hasFreePlan: true,
+ hasSelfHostingAbility: false,
+ key: 'rallies',
+ languages: ['English'],
+ name: 'Rallies',
+ pricingPerYear: '$99.99',
+ slogan:
+ 'Your entire financial life in one app, monitored continuously by agents',
+ url: 'https://rallies.ai'
},
{
founded: 2015,
@@ -877,7 +1003,8 @@ export const personalFinanceTools: Product[] = [
key: 'rocket-money',
name: 'Rocket Money',
origin: 'United States',
- slogan: 'Track your net worth'
+ slogan: 'Track your net worth',
+ url: 'https://www.rocketmoney.com'
},
{
founded: 2019,
@@ -897,14 +1024,16 @@ export const personalFinanceTools: Product[] = [
name: 'Seeking Alpha',
origin: 'United States',
pricingPerYear: '$239',
- slogan: 'Stock Market Analysis & Tools for Investors'
+ slogan: 'Stock Market Analysis & Tools for Investors',
+ url: 'https://seekingalpha.com'
},
{
founded: 2022,
key: 'segmio',
name: 'Segmio',
origin: 'Romania',
- slogan: 'Wealth Management and Net Worth Tracking'
+ slogan: 'Wealth Management and Net Worth Tracking',
+ url: 'https://www.segmio.com'
},
{
founded: 2007,
@@ -915,7 +1044,8 @@ export const personalFinanceTools: Product[] = [
origin: 'New Zealand',
pricingPerYear: '$135',
regions: ['Global'],
- slogan: 'Stock Portfolio Tracker'
+ slogan: 'Stock Portfolio Tracker',
+ url: 'https://www.sharesight.com'
},
{
hasFreePlan: true,
@@ -932,7 +1062,8 @@ export const personalFinanceTools: Product[] = [
name: 'Simple Portfolio',
origin: 'Czech Republic',
pricingPerYear: '€80',
- slogan: 'Stock Portfolio Tracker'
+ slogan: 'Stock Portfolio Tracker',
+ url: 'https://simpleportfolio.app'
},
{
founded: 2014,
@@ -942,7 +1073,8 @@ export const personalFinanceTools: Product[] = [
name: 'Stock Portfolio Tracker & Visualizer by Simply Wall St',
origin: 'Australia',
pricingPerYear: '$120',
- slogan: 'Smart portfolio tracker for informed investors'
+ slogan: 'Smart portfolio tracker for informed investors',
+ url: 'https://simplywall.st'
},
{
founded: 2021,
@@ -952,7 +1084,8 @@ export const personalFinanceTools: Product[] = [
name: 'Snowball Analytics',
origin: 'France',
pricingPerYear: '$80',
- slogan: 'Simple and powerful portfolio tracker'
+ slogan: 'Simple and powerful portfolio tracker',
+ url: 'https://snowball-analytics.com'
},
{
key: 'splashmoney',
@@ -966,13 +1099,15 @@ export const personalFinanceTools: Product[] = [
key: 'stock-events',
name: 'Stock Events',
origin: 'Germany',
- slogan: 'Track all your Investments'
+ slogan: 'Track all your Investments',
+ url: 'https://stockevents.app'
},
{
key: 'stockle',
name: 'Stockle',
origin: 'Finland',
- slogan: 'Supercharge your investments tracking experience'
+ slogan: 'Supercharge your investments tracking experience',
+ url: 'https://stockle.app'
},
{
founded: 2008,
@@ -991,7 +1126,8 @@ export const personalFinanceTools: Product[] = [
name: 'Stock Rover',
origin: 'United States',
pricingPerYear: '$79.99',
- slogan: 'Investment Research and Portfolio Management'
+ slogan: 'Investment Research and Portfolio Management',
+ url: 'https://www.stockrover.com'
},
{
hasFreePlan: true,
@@ -1001,7 +1137,8 @@ export const personalFinanceTools: Product[] = [
name: 'Stonksfolio',
origin: 'Bulgaria',
pricingPerYear: '€49.90',
- slogan: 'Visualize all of your portfolios'
+ slogan: 'Visualize all of your portfolios',
+ url: 'https://stonksfolio.com'
},
{
hasFreePlan: true,
@@ -1010,7 +1147,8 @@ export const personalFinanceTools: Product[] = [
name: 'Sumio',
origin: 'Czech Republic',
pricingPerYear: '$20',
- slogan: 'Sum up and build your wealth.'
+ slogan: 'Sum up and build your wealth.',
+ url: 'https://www.sumio.app'
},
{
founded: 2016,
@@ -1020,7 +1158,8 @@ export const personalFinanceTools: Product[] = [
origin: 'United States',
pricingPerYear: '$79',
slogan:
- 'Your financial life in a spreadsheet, automatically updated each day'
+ 'Your financial life in a spreadsheet, automatically updated each day',
+ url: 'https://tiller.com'
},
{
founded: 2011,
@@ -1030,7 +1169,27 @@ export const personalFinanceTools: Product[] = [
name: 'Tradervue',
origin: 'United States',
pricingPerYear: '$360',
- slogan: 'The Trading Journal to Improve Your Trading Performance'
+ slogan: 'The Trading Journal to Improve Your Trading Performance',
+ url: 'https://www.tradervue.com'
+ },
+ {
+ hasFreePlan: true,
+ hasSelfHostingAbility: false,
+ key: 'trefolio',
+ languages: [
+ 'Deutsch',
+ 'English',
+ 'Español',
+ 'Français',
+ 'Italiano',
+ 'Nederlands',
+ 'Polski',
+ 'Português'
+ ],
+ name: 'trefolio',
+ pricingPerYear: '€60',
+ slogan: 'The Extra Leaf for Your Portfolio',
+ url: 'https://trefolio.com'
},
{
founded: 2020,
@@ -1052,7 +1211,8 @@ export const personalFinanceTools: Product[] = [
name: 'Turbobulls',
origin: 'Romania',
pricingPerYear: '€39.99',
- slogan: 'Your complete financial dashboard. Actually private.'
+ slogan: 'Your complete financial dashboard. Actually private.',
+ url: 'https://www.turbobulls.com'
},
{
hasFreePlan: true,
@@ -1063,6 +1223,7 @@ export const personalFinanceTools: Product[] = [
origin: 'Switzerland',
pricingPerYear: '$300',
slogan: 'Your Portfolio. Revealed.',
+ url: 'https://www.utluna.com',
useAnonymously: true
},
{
@@ -1072,7 +1233,8 @@ export const personalFinanceTools: Product[] = [
name: 'Vyzer',
origin: 'United States',
pricingPerYear: '$348',
- slogan: 'Virtual Family Office for Smart Wealth Management'
+ slogan: 'Virtual Family Office for Smart Wealth Management',
+ url: 'https://vyzer.co'
},
{
founded: 2020,
@@ -1082,7 +1244,8 @@ export const personalFinanceTools: Product[] = [
name: 'Walletguide',
origin: 'Germany',
pricingPerYear: '€90',
- slogan: 'Personal finance reimagined with AI'
+ slogan: 'Personal finance reimagined with AI',
+ url: 'https://walletguide.com'
},
{
hasSelfHostingAbility: false,
@@ -1102,7 +1265,8 @@ export const personalFinanceTools: Product[] = [
languages: ['English'],
name: 'Wealthbrain',
origin: 'United Arab Emirates',
- slogan: 'Portfolio Management System'
+ slogan: 'Portfolio Management System',
+ url: 'https://wealthbrain.com'
},
{
founded: 2024,
@@ -1113,7 +1277,8 @@ export const personalFinanceTools: Product[] = [
languages: ['English'],
name: 'Wealthfolio',
origin: 'Canada',
- slogan: 'Desktop Investment Tracker'
+ slogan: 'Desktop Investment Tracker',
+ url: 'https://wealthfolio.app'
},
{
founded: 2015,
@@ -1124,7 +1289,8 @@ export const personalFinanceTools: Product[] = [
name: 'Wealthica',
origin: 'Canada',
pricingPerYear: '$50',
- slogan: 'See all your investments in one place'
+ slogan: 'See all your investments in one place',
+ url: 'https://wealthica.com'
},
{
founded: 2018,
@@ -1132,7 +1298,8 @@ export const personalFinanceTools: Product[] = [
key: 'wealthposition',
name: 'WealthPosition',
pricingPerYear: '$60',
- slogan: 'Personal Finance & Budgeting App'
+ slogan: 'Personal Finance & Budgeting App',
+ url: 'https://www.wealthposition.com'
},
{
founded: 2018,
@@ -1141,7 +1308,8 @@ export const personalFinanceTools: Product[] = [
languages: ['English'],
name: 'Wealthy Tracker',
origin: 'India',
- slogan: 'One app to manage all your investments'
+ slogan: 'One app to manage all your investments',
+ url: 'https://www.wealthy.in/tracker'
},
{
key: 'whal',
@@ -1170,7 +1338,8 @@ export const personalFinanceTools: Product[] = [
name: 'YNAB (You Need a Budget)',
origin: 'United States',
pricingPerYear: '$109',
- slogan: 'Change Your Relationship With Money'
+ slogan: 'Change Your Relationship With Money',
+ url: 'https://www.ynab.com'
},
{
founded: 2019,
@@ -1180,6 +1349,7 @@ export const personalFinanceTools: Product[] = [
name: 'Ziggma',
origin: 'United States',
pricingPerYear: '$84',
- slogan: 'Your solution for investing success'
+ slogan: 'Your solution for investing success',
+ url: 'https://ziggma.com'
}
];