mirror of https://github.com/ghostfolio/ghostfolio
Browse Source
* Setup blog * Add german blog post * Add english blog post * Update changelogpull/238/head
committed by
GitHub
25 changed files with 591 additions and 28 deletions
@ -0,0 +1,19 @@ |
|||
import { NgModule } from '@angular/core'; |
|||
import { RouterModule, Routes } from '@angular/router'; |
|||
import { AuthGuard } from '@ghostfolio/client/core/auth.guard'; |
|||
|
|||
import { HalloGhostfolioPageComponent } from './hallo-ghostfolio-page.component'; |
|||
|
|||
const routes: Routes = [ |
|||
{ |
|||
path: '', |
|||
component: HalloGhostfolioPageComponent, |
|||
canActivate: [AuthGuard] |
|||
} |
|||
]; |
|||
|
|||
@NgModule({ |
|||
imports: [RouterModule.forChild(routes)], |
|||
exports: [RouterModule] |
|||
}) |
|||
export class HalloGhostfolioPageRoutingModule {} |
@ -0,0 +1,7 @@ |
|||
import { Component } from '@angular/core'; |
|||
|
|||
@Component({ |
|||
selector: 'gf-hallo-ghostfolio-page', |
|||
templateUrl: './hallo-ghostfolio-page.html' |
|||
}) |
|||
export class HalloGhostfolioPageComponent {} |
@ -0,0 +1,194 @@ |
|||
<div class="blog container"> |
|||
<div class="row"> |
|||
<div class="col"> |
|||
<article> |
|||
<div class="mb-4 text-center"> |
|||
<h1 class="mb-1" i18n>Hallo Ghostfolio 👋</h1> |
|||
<div class="text-muted"><small>31.07.2021</small></div> |
|||
</div> |
|||
<section class="mb-4"> |
|||
<p> |
|||
In diesem Artikel möchte ich mein neues Open Source Projekt näher |
|||
vorstellen: <a href="https://ghostfol.io">Ghostfolio</a>, eine |
|||
web-basierte Software für das Management der persönlichen Finanzen. |
|||
</p> |
|||
</section> |
|||
<section class="mb-4"> |
|||
<h2 class="h4">Welches Problem löst Ghostfolio?</h2> |
|||
<p> |
|||
Aufgrund der steigenden Inflation und den Negativzinsen befasse ich |
|||
mich seit einiger Zeit, wie ich mein Vermögen möglichst |
|||
diversifiziert anlegen kann. Konkret verfolge ich eine |
|||
<a [routerLink]="['/resources']">Buy and Hold Strategie</a> mit |
|||
Investitionen in verschiedene Anlageklassen verteilt auf |
|||
unterschiedliche Plattformen. Deshalb suchte ich nach einer App, die |
|||
mein Portfolio ganzheitlich zusammenfasst. Bei meiner |
|||
Internetrecherche und Suche in App Stores habe ich mehrere Lösungen |
|||
ausprobiert, doch keine hat mich vollkommen überzeugt: Zu |
|||
kompliziert, zu überladen, nicht optimiert für Smartphones oder zu |
|||
wenig umfassend. |
|||
</p> |
|||
</section> |
|||
<section class="mb-4"> |
|||
<h2 class="h4">Die Vision</h2> |
|||
<p> |
|||
Besonders wichtig ist mir, dass ich in Echtzeit die Übersicht über |
|||
mein gesamtes Vermögen erhalte. Bisher hatte ich nur einmal im Jahr, |
|||
beim Abschluss der Steuererklärung, die aufbereiteten Zahlen zur |
|||
Verfügung. Zum Gesamtbild gehören neben Cash auf dem Sparkonto auch |
|||
länderspezifische Besonderheiten wie beispielsweise die freiwillige |
|||
Altersvorsorge (Säule 3a) in der Schweiz. |
|||
</p> |
|||
<p> |
|||
In der Zwischenzeit habe ich mit vielen Kollegen gesprochen, die |
|||
schon länger investieren. Nicht wenige haben aus denselben |
|||
Überlegungen über die Zeit ein komplexes Spreadsheet angelegt. Ich |
|||
finde, dass dies im Jahr 2021 besser gehen muss. |
|||
</p> |
|||
<div class="container my-4"> |
|||
<div class="row"> |
|||
<div class="col-md-10 offset-md-1"> |
|||
<blockquote class="blockquote m-0"> |
|||
<p class="mb-0"> |
|||
Ghostfolio zeigt das Gesamtbild des Vermögens, um |
|||
bestmögliche Anlage-Entscheidungen zu treffen. |
|||
</p> |
|||
</blockquote> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
<p> |
|||
Ghostfolio soll eine simple Wealth Management Software sein. Diese |
|||
präsentiert jederzeit das aktuelle Vermögen und unterstützt bei |
|||
zukünftigen Investments. Sei es beim Rebalancing des Portfolios in |
|||
Anlageklassen (Aktien, Cryptocurrencies, ETFs, etc.) oder der |
|||
Finanzierung einer Wohnung, Ghostfolio bietet eine solide, |
|||
datengestützte Entscheidungshilfe. |
|||
</p> |
|||
<p> |
|||
Ich lege grossen Wert auf Datenschutz. Als |
|||
<a href="https://github.com/ghostfolio/ghostfolio" |
|||
>Open Source Software</a |
|||
> |
|||
(OSS) kann Ghostfolio vollständig anonym genutzt werden, ohne die |
|||
gierigen Blicke von Grossbanken oder Big Tech. |
|||
</p> |
|||
</section> |
|||
<section class="mb-4"> |
|||
<h2 class="h4">Von der Idee zur Umsetzung</h2> |
|||
<p> |
|||
Vor diesem Hintergrund habe ich das ambitionierte Projekt gestartet |
|||
und in kleinen Schritten eine Software programmiert, die ich rasch |
|||
selbst nutzen konnte. Als Stack habe ich mich für moderne |
|||
Web-Technologien entschieden, die mich persönlich besonders |
|||
interessieren beziehungsweise die ich gerne erlernen und vertiefen |
|||
möchte. Dazu zählen <a href="https://www.docker.com">Docker</a>, |
|||
<a href="https://nx.dev">Nx</a> für das Management des Monorepos, |
|||
<a href="https://nestjs.com">NestJS</a> für das Backend und |
|||
<a href="https://www.postgresql.org">PostgreSQL</a> als Datenbank. |
|||
Der Code ist sowohl im Frontend als auch im Backend in |
|||
<a href="https://www.typescriptlang.org">TypeScript</a> |
|||
geschrieben. |
|||
</p> |
|||
<p> |
|||
Da ich bei einigen Kalkulationen an meine Grenzen gestossen bin, |
|||
habe ich mit verschiedenen Möglichkeiten auseinandergesetzt, um |
|||
Unterstützung zu bekommen. In der Hoffnung, dass andere Leute |
|||
ebenfalls von der Lösung profitieren und bei Interesse mit |
|||
Verbesserungen beitragen können, habe ich den bestehenden Code als |
|||
Open Source Software veröffentlicht. Schon nach kurzer Zeit haben |
|||
<a |
|||
href="https://github.com/ghostfolio/ghostfolio/graphs/contributors" |
|||
>andere Entwickler</a |
|||
> |
|||
mit tollen Erweiterungen an Ghostfolio mitgewirkt. |
|||
</p> |
|||
</section> |
|||
<section class="mb-4"> |
|||
<h2 class="h4">Wie kann ich das Projekt unterstützen?</h2> |
|||
<p> |
|||
Bist du ebenfalls besessen von einer maximal diversifizierten |
|||
Anlagestrategie? Ich freue mich über alle, die Ghostfolio |
|||
ausprobieren. Bist du überzeugt vom Potential der Software? Jede |
|||
Unterstützung für Ghostfolio ist willkommen. Sei es mit einer |
|||
<a href="https://ghostfol.io/pricing">Ghostfolio Premium</a> |
|||
Subscription zur Finanzierung des Hostings, einem positiven Rating |
|||
im |
|||
<a |
|||
href="https://play.google.com/store/apps/details?id=ch.dotsilver.ghostfolio.twa" |
|||
>Google Play Store</a |
|||
>, einem Sternchen auf |
|||
<a href="https://github.com/ghostfolio/ghostfolio">GitHub</a>, |
|||
Feedback, Bug Reports, Feature Requests und natürlich Contributions! |
|||
</p> |
|||
<p> |
|||
Du erreichst mich per E-Mail unter |
|||
<a href="mailto:hi@ghostfol.io">hi@ghostfol.io</a> oder auf Twitter |
|||
<a href="https://twitter.com/ghostfolio_">@ghostfolio_</a>. |
|||
</p> |
|||
<p> |
|||
Ich freue mich, von dir zu hören.<br /> |
|||
Thomas von Ghostfolio |
|||
</p> |
|||
</section> |
|||
<section class="my-5"> |
|||
<ul class="list-inline"> |
|||
<li class="h5"> |
|||
<span class="badge badge-light font-weight-normal mr-2" |
|||
>Aktie</span |
|||
> |
|||
<span class="badge badge-light font-weight-normal mr-2" |
|||
>Altersvorsorge</span |
|||
> |
|||
<span class="badge badge-light font-weight-normal mr-2" |
|||
>Anlage</span |
|||
> |
|||
<span class="badge badge-light font-weight-normal mr-2">App</span> |
|||
<span class="badge badge-light font-weight-normal mr-2" |
|||
>Cryptocurrency</span |
|||
> |
|||
<span class="badge badge-light font-weight-normal mr-2">ETF</span> |
|||
<span class="badge badge-light font-weight-normal mr-2" |
|||
>Feedback</span |
|||
> |
|||
<span class="badge badge-light font-weight-normal mr-2" |
|||
>Fintech</span |
|||
> |
|||
<span class="badge badge-light font-weight-normal mr-2" |
|||
>Ghostfolio</span |
|||
> |
|||
<span class="badge badge-light font-weight-normal mr-2" |
|||
>Investition</span |
|||
> |
|||
<span class="badge badge-light font-weight-normal mr-2" |
|||
>Open Source</span |
|||
> |
|||
<span class="badge badge-light font-weight-normal mr-2">OSS</span> |
|||
<span class="badge badge-light font-weight-normal mr-2" |
|||
>Portfolio</span |
|||
> |
|||
<span class="badge badge-light font-weight-normal mr-2" |
|||
>Software</span |
|||
> |
|||
<span class="badge badge-light font-weight-normal mr-2" |
|||
>Strategie</span |
|||
> |
|||
<span class="badge badge-light font-weight-normal mr-2" |
|||
>Trading</span |
|||
> |
|||
<span class="badge badge-light font-weight-normal mr-2" |
|||
>TypeScript</span |
|||
> |
|||
<span class="badge badge-light font-weight-normal mr-2" |
|||
>Vermögen</span |
|||
> |
|||
<span class="badge badge-light font-weight-normal mr-2" |
|||
>Wealth Management</span |
|||
> |
|||
</li> |
|||
</ul> |
|||
</section> |
|||
</article> |
|||
</div> |
|||
</div> |
|||
</div> |
@ -0,0 +1,15 @@ |
|||
import { CommonModule } from '@angular/common'; |
|||
import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core'; |
|||
import { RouterModule } from '@angular/router'; |
|||
|
|||
import { HalloGhostfolioPageRoutingModule } from './hallo-ghostfolio-page-routing.module'; |
|||
import { HalloGhostfolioPageComponent } from './hallo-ghostfolio-page.component'; |
|||
|
|||
@NgModule({ |
|||
declarations: [HalloGhostfolioPageComponent], |
|||
exports: [], |
|||
imports: [CommonModule, HalloGhostfolioPageRoutingModule, RouterModule], |
|||
providers: [], |
|||
schemas: [CUSTOM_ELEMENTS_SCHEMA] |
|||
}) |
|||
export class HalloGhostfolioPageModule {} |
@ -0,0 +1,19 @@ |
|||
import { NgModule } from '@angular/core'; |
|||
import { RouterModule, Routes } from '@angular/router'; |
|||
import { AuthGuard } from '@ghostfolio/client/core/auth.guard'; |
|||
|
|||
import { HelloGhostfolioPageComponent } from './hello-ghostfolio-page.component'; |
|||
|
|||
const routes: Routes = [ |
|||
{ |
|||
path: '', |
|||
component: HelloGhostfolioPageComponent, |
|||
canActivate: [AuthGuard] |
|||
} |
|||
]; |
|||
|
|||
@NgModule({ |
|||
imports: [RouterModule.forChild(routes)], |
|||
exports: [RouterModule] |
|||
}) |
|||
export class HelloGhostfolioPageRoutingModule {} |
@ -0,0 +1,7 @@ |
|||
import { Component } from '@angular/core'; |
|||
|
|||
@Component({ |
|||
selector: 'gf-hello-ghostfolio-page', |
|||
templateUrl: './hello-ghostfolio-page.html' |
|||
}) |
|||
export class HelloGhostfolioPageComponent {} |
@ -0,0 +1,173 @@ |
|||
<div class="blog container"> |
|||
<div class="row"> |
|||
<div class="col"> |
|||
<article> |
|||
<div class="mb-4 text-center"> |
|||
<h1 class="mb-1" i18n>Hello Ghostfolio 👋</h1> |
|||
<div class="text-muted"><small>31.07.2021</small></div> |
|||
</div> |
|||
<section class="mb-4"> |
|||
<p> |
|||
In this article I would like to introduce my new open source project |
|||
in more detail: <a href="https://ghostfol.io">Ghostfolio</a>, a |
|||
web-based personal finance management software. |
|||
</p> |
|||
</section> |
|||
<section class="mb-4"> |
|||
<h2 class="h4">What problem does Ghostfolio solve?</h2> |
|||
<p> |
|||
Due to rising inflation and negative interest rates, I have been |
|||
looking for some time at how I can invest my assets in the most |
|||
diversified way possible. Specifically, I follow a |
|||
<a [routerLink]="['/resources']">buy and hold strategy</a> with |
|||
investments in different asset classes spread across different |
|||
platforms. Therefore, I was looking for an app that would |
|||
holistically aggregate my portfolio. During my research on the |
|||
internet and in app stores, I have tried several solutions, but none |
|||
of them has convinced me completely: too complicated, too cluttered, |
|||
not optimized for smartphones or not comprehensive enough. |
|||
</p> |
|||
</section> |
|||
<section class="mb-4"> |
|||
<h2 class="h4">The vision</h2> |
|||
<p> |
|||
It is particularly important to me that I get an overview of all my |
|||
assets in real time. Previously, I only had the prepared figures |
|||
available once a year, when I had completed my annual tax |
|||
declaration. In addition to the cash balance in the savings account, |
|||
the overall picture also includes country-specific traits such as |
|||
the voluntary pension plan (pillar 3a) in Switzerland. |
|||
</p> |
|||
<p> |
|||
In the meantime, I have talked to many colleagues who have been |
|||
investing for a longer time. Quite a few have created complex |
|||
spreadsheets from the same considerations. I think that should be |
|||
better in 2021. |
|||
</p> |
|||
<div class="container my-4"> |
|||
<div class="row"> |
|||
<div class="col-md-10 offset-md-1"> |
|||
<blockquote class="blockquote m-0"> |
|||
<p class="mb-0"> |
|||
Ghostfolio presents the big picture of assets to make the |
|||
best possible investment decisions. |
|||
</p> |
|||
</blockquote> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
<p> |
|||
Ghostfolio is supposed to be a simple wealth management software. It |
|||
presents the current assets at any time and supports the decision |
|||
making of future investments. Whether rebalancing the portfolio in |
|||
asset classes (stocks, cryptocurrencies, ETFs, etc.) or financing an |
|||
apartment, Ghostfolio offers solid, data-driven decision support. |
|||
</p> |
|||
<p> |
|||
As I value privacy, data protection is an integral part of |
|||
Ghostfolio. As |
|||
<a href="https://github.com/ghostfolio/ghostfolio" |
|||
>open source software</a |
|||
> |
|||
(OSS), Ghostfolio can be used completely anonymously, without the |
|||
greedy eyes of big banks or big tech. |
|||
</p> |
|||
</section> |
|||
<section class="mb-4"> |
|||
<h2 class="h4">From idea to implementation</h2> |
|||
<p> |
|||
With this background I have started the ambitious project and |
|||
programmed with small steps a software that I could quickly use for |
|||
myself. As a stack, I chose modern web technologies that are |
|||
personally of particular interest or that I would like to learn and |
|||
deepen. These include <a href="https://www.docker.com">Docker</a>, |
|||
<a href="https://nx.dev">Nx</a> for the management of the monorepo, |
|||
<a href="https://nestjs.com">NestJS</a> for the backend and |
|||
<a href="https://www.postgresql.org">PostgreSQL</a> as a database. |
|||
The code of the frontend and backend is written in |
|||
<a href="https://www.typescriptlang.org">TypeScript</a>. |
|||
</p> |
|||
<p> |
|||
Since I have shortly reached my limits with some calculations, I |
|||
have looked into different possibilities to get valuable support. |
|||
Hoping that other people could also benefit from the solution and |
|||
contribute with improvements if interested, I have released the |
|||
existing code as open source software. Very soon, other |
|||
<a |
|||
href="https://github.com/ghostfolio/ghostfolio/graphs/contributors" |
|||
>developers</a |
|||
> |
|||
contributed to Ghostfolio with great enhancements. |
|||
</p> |
|||
</section> |
|||
<section class="mb-4"> |
|||
<h2 class="h4">How can I support the project?</h2> |
|||
<p> |
|||
Are you also obsessed with a maximally diversified investment |
|||
strategy? I'm happy for everyone who tries Ghostfolio. Are you |
|||
convinced of its potential? Any support for Ghostfolio is welcome. |
|||
Be it with a |
|||
<a href="https://ghostfol.io/pricing">Ghostfolio Premium</a> |
|||
Subscription to finance the hosting, a positive rating in the |
|||
<a |
|||
href="https://play.google.com/store/apps/details?id=ch.dotsilver.ghostfolio.twa" |
|||
>Google Play Store</a |
|||
>, a star on |
|||
<a href="https://github.com/ghostfolio/ghostfolio">GitHub</a>, |
|||
feedback, bug reports, feature requests and of course contributions! |
|||
</p> |
|||
<p> |
|||
You can reach me by email at |
|||
<a href="mailto:hi@ghostfol.io">hi@ghostfol.io</a> or on Twitter |
|||
<a href="https://twitter.com/ghostfolio_">@ghostfolio_</a>. |
|||
</p> |
|||
<p> |
|||
I look forward to hearing from you.<br /> |
|||
Thomas from Ghostfolio |
|||
</p> |
|||
</section> |
|||
<section class="my-5"> |
|||
<ul class="list-inline"> |
|||
<li class="h5"> |
|||
<span class="badge badge-light font-weight-normal mr-2" |
|||
>Cryptocurrency</span |
|||
> |
|||
<span class="badge badge-light font-weight-normal mr-2">ETF</span> |
|||
<span class="badge badge-light font-weight-normal mr-2" |
|||
>Fintech</span |
|||
> |
|||
<span class="badge badge-light font-weight-normal mr-2" |
|||
>Ghostfolio</span |
|||
> |
|||
<span class="badge badge-light font-weight-normal mr-2" |
|||
>Investment</span |
|||
> |
|||
<span class="badge badge-light font-weight-normal mr-2" |
|||
>Open Source</span |
|||
> |
|||
<span class="badge badge-light font-weight-normal mr-2">OSS</span> |
|||
<span class="badge badge-light font-weight-normal mr-2" |
|||
>Portfolio</span |
|||
> |
|||
<span class="badge badge-light font-weight-normal mr-2" |
|||
>Software</span |
|||
> |
|||
<span class="badge badge-light font-weight-normal mr-2" |
|||
>Stock</span |
|||
> |
|||
<span class="badge badge-light font-weight-normal mr-2" |
|||
>Strategy</span |
|||
> |
|||
<span class="badge badge-light font-weight-normal mr-2" |
|||
>Wealth</span |
|||
> |
|||
<span class="badge badge-light font-weight-normal mr-2" |
|||
>Wealth Management</span |
|||
> |
|||
</li> |
|||
</ul> |
|||
</section> |
|||
</article> |
|||
</div> |
|||
</div> |
|||
</div> |
@ -0,0 +1,15 @@ |
|||
import { CommonModule } from '@angular/common'; |
|||
import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core'; |
|||
import { RouterModule } from '@angular/router'; |
|||
|
|||
import { HelloGhostfolioPageRoutingModule } from './hello-ghostfolio-page-routing.module'; |
|||
import { HelloGhostfolioPageComponent } from './hello-ghostfolio-page.component'; |
|||
|
|||
@NgModule({ |
|||
declarations: [HelloGhostfolioPageComponent], |
|||
exports: [], |
|||
imports: [CommonModule, HelloGhostfolioPageRoutingModule, RouterModule], |
|||
providers: [], |
|||
schemas: [CUSTOM_ELEMENTS_SCHEMA] |
|||
}) |
|||
export class HelloGhostfolioPageModule {} |
Loading…
Reference in new issue