The Daily Adventures of a SteemPeak Developer #1

As most of you have surely noticed I've not posted anything new on my blog in a while :D

This is not because I'm not active on Steem anymore, it's actually quite the opposite. I'm spending a good amount of my free time adding new features and improving @steempeak and @peakmonsters.

But this is not a valid reason to stop writing and sharing posts :) ...so starting today I'm going to shift my personal blog a little bit and not focusing exclusively on photography. I can still share pictures from time to time, but from now on I'm going to focus on a series of posts to let you know what I'm working on for steempeak.com and peakmonsters.com.

Note: if you don't know what I'm talking about and have not checked @steempeak (or @peakmonsters) yet this is the right time to take a break and check out the corresponding blog to understand what I'm talking about :P

So let's start the Daily Adventures of a SteemPeak Developer :)

the_daily_adventure_cover_1.jpg

Read other posts in the series HERE

In this first post I'm not going into technical details, instead I'll try to give an overview of the tools I use to work on these projects (with @r00sj3, @jarvie and @dmytrokorol) and how we run them.

How it's built?

SteemPeak is a Java application (specifically a Spring Boot application) with a custom frontend built in VueJS. The server code is a pretty standard app with some custom code to handle the frontend integration (Spring and Vue don't play well out of the box).
Some of you may wonder why I selected Java as the backend language for this application. The answer is quite easy (and probably a bit boring): This is what I use in my daily work and Java is still the language I'm most comfortable with for server side programming. Considering that I'm the only developer this is a solid reason to select Java over other languages :D
The frontend is built with VueJS because I find it easier than Angular and React. I use Angular in my daily work, but when I started SteemPeak I decided to switch to VueJS to learn something new and it's now my default choice for personal projects.

PeakMonsters is a completely different story. This application use the Steem API way more than SteemPeak so the backend is written in Node.js and I use dsteem to interact with the Steem blockchain. The frontend is still written in VueJS with a look'n'feel similar to the one used for SteemPeak.

What tools do we use?

As with every project there is a repository where we store the applications code and some other tools to handle tickets/issues and the build process:

  • Repository: the source code is on GitLab (and it's still closed source). I'm the only one using it (@anarcist69 may join me from time to time), but the others can check my commits to view what I'm working on :D
  • Ticket/Issue tracker: we use GitLab for this too, works quite well and it's integrated with the main repository
  • Continuos Integration: always on GitLab (one of the reason I prefer GitLab to GitHub, they provide way more tools on the free plan)
  • Wiki, Notes and Shared Docs: HackMD, Google Docs and the GitLab
  • Chat and discussion: Discord, Discord and Discord ...and the best part is that you can join us in those talks :D

How do we run it?

We have a bunch of servers (dynos) on Heroku that we use for our staging and production servers. Heroku can be expensive when more resources are required, but we've been able to keep the cost relatively low and the flexibility provided is really great (I can literally promote and rollback new builds using a smartphone). Also we use small servers and some of them are included in the free tier so we don't have to pay for all of them.

We host the database on Heroku too. Of course this is a small database used just for user preferences, drafts and bookmarks. No way we can run an Hivemind node on Heroku with their current pricing :D

Not going to write more details on Hivemind yet, this is a good topic for a future post that I can use to describe what we are doing with it and the features we plan to add in the future.

What's next?

Now that I've described the projects a little bit I'll move on and starting with the next post I'm going to focus on the new features we add, the things I fix or how I try to improve some ugly parts that need a bit more refinements :D


Sergio

H2
H3
H4
3 columns
2 columns
1 column
9 Comments
Ecency