From 5882b7914ded9fcc3981e91172456d911ad1c588 Mon Sep 17 00:00:00 2001 From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com> Date: Wed, 5 Jan 2022 20:22:59 +0100 Subject: [PATCH] Feature/add first months in open source blog post (#616) * Add blog post * Update changelog --- CHANGELOG.md | 2 + apps/client/src/app/app-routing.module.ts | 7 + .../hallo-ghostfolio-page.html | 107 +++++----- .../hallo-ghostfolio-page.module.ts | 2 - .../hello-ghostfolio-page.html | 76 +++---- .../hello-ghostfolio-page.module.ts | 2 - ...nths-in-open-source-page-routing.module.ts | 19 ++ ...st-months-in-open-source-page.component.ts | 9 + .../first-months-in-open-source-page.html | 185 ++++++++++++++++++ ...first-months-in-open-source-page.module.ts | 13 ++ .../first-months-in-open-source-page.scss | 3 + apps/client/src/app/pages/blog/blog-page.html | 20 ++ apps/client/src/assets/sitemap.xml | 4 + apps/client/src/styles.scss | 2 +- 14 files changed, 356 insertions(+), 95 deletions(-) create mode 100644 apps/client/src/app/pages/blog/2022/01/first-months-in-open-source/first-months-in-open-source-page-routing.module.ts create mode 100644 apps/client/src/app/pages/blog/2022/01/first-months-in-open-source/first-months-in-open-source-page.component.ts create mode 100644 apps/client/src/app/pages/blog/2022/01/first-months-in-open-source/first-months-in-open-source-page.html create mode 100644 apps/client/src/app/pages/blog/2022/01/first-months-in-open-source/first-months-in-open-source-page.module.ts create mode 100644 apps/client/src/app/pages/blog/2022/01/first-months-in-open-source/first-months-in-open-source-page.scss diff --git a/CHANGELOG.md b/CHANGELOG.md index 573fd1161..25317c6e0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,10 +10,12 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Added - Added the _Top 3_ and _Bottom 3_ performers to the analysis page +- Added a blog post ### Fixed - Fixed the routing of the create activity dialog +- Fixed the link color in the blog posts ## 1.99.0 - 01.01.2022 diff --git a/apps/client/src/app/app-routing.module.ts b/apps/client/src/app/app-routing.module.ts index cd4e383cd..8fde79cd7 100644 --- a/apps/client/src/app/app-routing.module.ts +++ b/apps/client/src/app/app-routing.module.ts @@ -59,6 +59,13 @@ const routes: Routes = [ './pages/blog/2021/07/hello-ghostfolio/hello-ghostfolio-page.module' ).then((m) => m.HelloGhostfolioPageModule) }, + { + path: 'en/blog/2022/01/ghostfolio-first-months-in-open-source', + loadChildren: () => + import( + './pages/blog/2022/01/first-months-in-open-source/first-months-in-open-source-page.module' + ).then((m) => m.FirstMonthsInOpenSourcePageModule) + }, { path: 'home', loadChildren: () => diff --git a/apps/client/src/app/pages/blog/2021/07/hallo-ghostfolio/hallo-ghostfolio-page.html b/apps/client/src/app/pages/blog/2021/07/hallo-ghostfolio/hallo-ghostfolio-page.html index cea9ae9da..9e0aadf22 100644 --- a/apps/client/src/app/pages/blog/2021/07/hallo-ghostfolio/hallo-ghostfolio-page.html +++ b/apps/client/src/app/pages/blog/2021/07/hallo-ghostfolio/hallo-ghostfolio-page.html @@ -1,6 +1,6 @@
-
+

Hallo Ghostfolio 👋

@@ -141,58 +141,59 @@
    -
  • - Aktie - Altersvorsorge - Anlage - App - Cryptocurrency - ETF - Feedback - Fintech - Ghostfolio - Investition - Open Source - OSS - Portfolio - Software - Strategie - Trading - TypeScript - Vermögen - Wealth Management +
  • + Aktie +
  • +
  • + Altersvorsorge +
  • +
  • + Anlage +
  • +
  • + App +
  • +
  • + Cryptocurrency +
  • +
  • + Feedback +
  • +
  • + Fintech +
  • +
  • + Ghostfolio +
  • +
  • + Investition +
  • +
  • + Open Source +
  • +
  • + OSS +
  • +
  • + Portfolio +
  • +
  • + Software +
  • +
  • + Strategie +
  • +
  • + Trading +
  • +
  • + TypeScript +
  • +
  • + Vermögen +
  • +
  • + Wealth Management
diff --git a/apps/client/src/app/pages/blog/2021/07/hallo-ghostfolio/hallo-ghostfolio-page.module.ts b/apps/client/src/app/pages/blog/2021/07/hallo-ghostfolio/hallo-ghostfolio-page.module.ts index 203ab2ccc..75eef2a55 100644 --- a/apps/client/src/app/pages/blog/2021/07/hallo-ghostfolio/hallo-ghostfolio-page.module.ts +++ b/apps/client/src/app/pages/blog/2021/07/hallo-ghostfolio/hallo-ghostfolio-page.module.ts @@ -7,9 +7,7 @@ import { HalloGhostfolioPageComponent } from './hallo-ghostfolio-page.component' @NgModule({ declarations: [HalloGhostfolioPageComponent], - exports: [], imports: [CommonModule, HalloGhostfolioPageRoutingModule, RouterModule], - providers: [], schemas: [CUSTOM_ELEMENTS_SCHEMA] }) export class HalloGhostfolioPageModule {} diff --git a/apps/client/src/app/pages/blog/2021/07/hello-ghostfolio/hello-ghostfolio-page.html b/apps/client/src/app/pages/blog/2021/07/hello-ghostfolio/hello-ghostfolio-page.html index d83deb55b..c7260bd23 100644 --- a/apps/client/src/app/pages/blog/2021/07/hello-ghostfolio/hello-ghostfolio-page.html +++ b/apps/client/src/app/pages/blog/2021/07/hello-ghostfolio/hello-ghostfolio-page.html @@ -1,6 +1,6 @@
-
+

Hello Ghostfolio 👋

@@ -136,42 +136,44 @@
    -
  • - Cryptocurrency - ETF - Fintech - Ghostfolio - Investment - Open Source - OSS - Portfolio - Software - Stock - Strategy - Wealth - Wealth Management +
  • + Cryptocurrency +
  • +
  • + ETF +
  • +
  • + Fintech +
  • +
  • + Ghostfolio +
  • +
  • + Investment +
  • +
  • + Open Source +
  • +
  • + OSS +
  • +
  • + Portfolio +
  • +
  • + Software +
  • +
  • + Stock +
  • +
  • + Strategy +
  • +
  • + Wealth +
  • +
  • + Wealth Management
diff --git a/apps/client/src/app/pages/blog/2021/07/hello-ghostfolio/hello-ghostfolio-page.module.ts b/apps/client/src/app/pages/blog/2021/07/hello-ghostfolio/hello-ghostfolio-page.module.ts index c9b7d82f5..a885ef14f 100644 --- a/apps/client/src/app/pages/blog/2021/07/hello-ghostfolio/hello-ghostfolio-page.module.ts +++ b/apps/client/src/app/pages/blog/2021/07/hello-ghostfolio/hello-ghostfolio-page.module.ts @@ -7,9 +7,7 @@ import { HelloGhostfolioPageComponent } from './hello-ghostfolio-page.component' @NgModule({ declarations: [HelloGhostfolioPageComponent], - exports: [], imports: [CommonModule, HelloGhostfolioPageRoutingModule, RouterModule], - providers: [], schemas: [CUSTOM_ELEMENTS_SCHEMA] }) export class HelloGhostfolioPageModule {} diff --git a/apps/client/src/app/pages/blog/2022/01/first-months-in-open-source/first-months-in-open-source-page-routing.module.ts b/apps/client/src/app/pages/blog/2022/01/first-months-in-open-source/first-months-in-open-source-page-routing.module.ts new file mode 100644 index 000000000..96f8ab532 --- /dev/null +++ b/apps/client/src/app/pages/blog/2022/01/first-months-in-open-source/first-months-in-open-source-page-routing.module.ts @@ -0,0 +1,19 @@ +import { NgModule } from '@angular/core'; +import { RouterModule, Routes } from '@angular/router'; +import { AuthGuard } from '@ghostfolio/client/core/auth.guard'; + +import { FirstMonthsInOpenSourcePageComponent } from './first-months-in-open-source-page.component'; + +const routes: Routes = [ + { + path: '', + component: FirstMonthsInOpenSourcePageComponent, + canActivate: [AuthGuard] + } +]; + +@NgModule({ + imports: [RouterModule.forChild(routes)], + exports: [RouterModule] +}) +export class FirstMonthsInOpenSourceRoutingModule {} diff --git a/apps/client/src/app/pages/blog/2022/01/first-months-in-open-source/first-months-in-open-source-page.component.ts b/apps/client/src/app/pages/blog/2022/01/first-months-in-open-source/first-months-in-open-source-page.component.ts new file mode 100644 index 000000000..84e5aae45 --- /dev/null +++ b/apps/client/src/app/pages/blog/2022/01/first-months-in-open-source/first-months-in-open-source-page.component.ts @@ -0,0 +1,9 @@ +import { Component } from '@angular/core'; + +@Component({ + host: { class: 'mb-5' }, + selector: 'gf-first-months-in-open-source-page', + styleUrls: ['./first-months-in-open-source-page.scss'], + templateUrl: './first-months-in-open-source-page.html' +}) +export class FirstMonthsInOpenSourcePageComponent {} diff --git a/apps/client/src/app/pages/blog/2022/01/first-months-in-open-source/first-months-in-open-source-page.html b/apps/client/src/app/pages/blog/2022/01/first-months-in-open-source/first-months-in-open-source-page.html new file mode 100644 index 000000000..71ea7489f --- /dev/null +++ b/apps/client/src/app/pages/blog/2022/01/first-months-in-open-source/first-months-in-open-source-page.html @@ -0,0 +1,185 @@ +
+
+
+
+
+

+ 👻 Ghostfolio – + First months in Open Source +

+
05.01.2022
+
+
+

+ In this article I would like to recap the first months running the + open source project Ghostfolio, a + web-based personal finance management software. +

+
+
+

From 1* to 100 stars on GitHub

+

+ When I decided to + publish + the project as + open source software + (OSS), I did not know what exactly to expect. In the worst case, + nobody would care. And in the best case, the repository would be + overrun with contributions. The truth is probably somewhere in + between. +

+

+ In the beginning, it felt quite weird to develop in public where + anyone can observe the progress. Stupid mistakes remain visible + forever. But this feeling, fortunately, quickly settled. I believe + the benefits like all the learning clearly outweigh the drawbacks + when you just do it. +

+

+ At the end of 2021, Ghostfolio reached an important milestone: + 100 stars + on GitHub. This is really exciting with almost no marketing. I am a + technical founder, so I prefer writing code over anything else. But + there is so much more to make this project happen: writing + documentation, maintaining bug reports and feature requests, + supporting users and managing the community, keeping the SaaS + running, etc. +

+

+ Reaching 100 stars will not only attract very early adopters, but + also the early adopters. At the same time, the demands and + expectations are also increasing. +

+
+
+

What is new?

+

+ During the last months, Ghostfolio has transformed from a one man + project into a prospering wealth management application with 9 + contributors and counting. User feedback has directly shaped the + direction of the product development. +

+

These are some selected key features:

+
    +
  • + Simplified self-hosting with an + official Ghostfolio docker image + on Docker Hub +
  • +
  • Improved import for activities (transactions and dividend)
  • +
  • Enriched market data for ETFs (region and industries)
  • +
+
+
+

What is coming?

+

Here is a brief overview of what I am planning in 2022.

+

+ The goal remains to offer a simple and solid software to manage + personal finances. Thus, the main focus is on the core + functionality. +

+

+ My personal goal is to reach break-even with the Saas offering (Ghostfolio Premium) and regularly report about the progress and my learnings on this + exciting journey. +

+

+ I have already started to build a + community + of users. In the future, I would like to involve more contributors + to further extend the functionality of Ghostfolio (e.g. with new + reports). Get in touch with me by email at + hi@ghostfol.io or on Twitter + @ghostfolio_ if you + are interested, I’m happy to discuss ideas. +

+

+ I would like to say thank you for all your feedback and support + during the last months. +

+

+ Have a great start into the new year and happy investing
+ Thomas from Ghostfolio +

+
+
+

* Pro Tip: add the first star to your own open source project

+
+
+
    +
  • + BuildInPublic +
  • +
  • + Community +
  • +
  • + Cryptocurrency +
  • +
  • + Docker +
  • +
  • + ETF +
  • +
  • + Fintech +
  • +
  • + Ghostfolio +
  • +
  • + Image +
  • +
  • + Investment +
  • +
  • + Open Source +
  • +
  • + OSS +
  • +
  • + Portfolio +
  • +
  • + Progress +
  • +
  • + SaaS +
  • +
  • + Software +
  • +
  • + Stock +
  • +
  • + Strategy +
  • +
  • + Wealth +
  • +
  • + Wealth Management +
  • +
+
+
+
+
+
diff --git a/apps/client/src/app/pages/blog/2022/01/first-months-in-open-source/first-months-in-open-source-page.module.ts b/apps/client/src/app/pages/blog/2022/01/first-months-in-open-source/first-months-in-open-source-page.module.ts new file mode 100644 index 000000000..e44bd0ddb --- /dev/null +++ b/apps/client/src/app/pages/blog/2022/01/first-months-in-open-source/first-months-in-open-source-page.module.ts @@ -0,0 +1,13 @@ +import { CommonModule } from '@angular/common'; +import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core'; +import { RouterModule } from '@angular/router'; + +import { FirstMonthsInOpenSourceRoutingModule } from './first-months-in-open-source-page-routing.module'; +import { FirstMonthsInOpenSourcePageComponent } from './first-months-in-open-source-page.component'; + +@NgModule({ + declarations: [FirstMonthsInOpenSourcePageComponent], + imports: [CommonModule, FirstMonthsInOpenSourceRoutingModule, RouterModule], + schemas: [CUSTOM_ELEMENTS_SCHEMA] +}) +export class FirstMonthsInOpenSourcePageModule {} diff --git a/apps/client/src/app/pages/blog/2022/01/first-months-in-open-source/first-months-in-open-source-page.scss b/apps/client/src/app/pages/blog/2022/01/first-months-in-open-source/first-months-in-open-source-page.scss new file mode 100644 index 000000000..5d4e87f30 --- /dev/null +++ b/apps/client/src/app/pages/blog/2022/01/first-months-in-open-source/first-months-in-open-source-page.scss @@ -0,0 +1,3 @@ +:host { + display: block; +} diff --git a/apps/client/src/app/pages/blog/blog-page.html b/apps/client/src/app/pages/blog/blog-page.html index c97047793..840f19903 100644 --- a/apps/client/src/app/pages/blog/blog-page.html +++ b/apps/client/src/app/pages/blog/blog-page.html @@ -5,6 +5,26 @@