🎄 How was 2019 at RisingStack? 🥳 - you might ask, as a kind reader already did it in a comment under our wrap-up of 2018.
Well, it was an intensive year with a lot of new challenges and major events in the life of our team!
Just to quickly sum it up:
- We grew our team to 16! All of our engineers are full-stack in the sense that we can confidently handle front-end, back-end, and operations tasks as well - as you'll see from this year's blogpost collection.
- We launched our new website, which communicates what we do and capable of more clearly (I hope at least). 🤞 Also, a new design for the blog is coming as well!
- This year ~1.250.000 developers (unique users) visited our blog! 🤩
- We just surpassed 5.7 million unique readers in total, who generated almost 12 million pageviews so far in the past 5 years.
- We have now more than 220 articles on the site - written by our team exclusively.
- We had the honor to participate in JSconf Budapest by providing a workshop for attendees on GraphQL and Apollo. 🎓
- We delivered a 10-weeks-long online DevOps training for around 100 developers in partnership with HWSW, Hungary's leading tech newspaper.
- We kept on organizing local Node.js meetups here in Budapest, with more than 100 attendees for almost every event this year. 🤓
- We had the opportunity to work with huge companies like DHL, Canvas (market leader e-learning platform), and Uniqa (insurance corp.).
- We met with fantastic people all over the world. We've been in LA, Sarajevo, Amsterdam, Prague, and Helsinki too. 🍻
- We moved to a new office in the heart of Budapest!
🤔 Okay, okay... But what about blogging?
Blogging in 2019
You might have noticed that we did not write as much blogposts this year as we did before.
The reason is simple: Fortunately, we had so many new projects and clients that we had very little time to write about what we love and what we do.
Despite our shrinking time for writing blogposts, I think we still created interesting articles that you might learn a thing or two from.
Here's a quick recap from the blog in 2019. You can use this list to navigate.
- Generating PDF from HTML with Node & Puppeteer
- REST in Peace. Long Live GraphQL!
- Case Study: Nameserver Issue Investigation
- RisingStack Joins the Cloud Native Node.js Project
- A Definitive React-Native Guide for React Developers
- Design Systems for React Developers
- Node.js v12 - New Features You Shouldn't Miss
- Building a D3.js Calendar Heatmap
- Golang Tutorial for Node.js Developers
- How to Deploy a Ceph Storage to Bare Virtual Machines
- Update Now! Node.js 8 is Not Supported from 2020.
- Great Content from JSConf Budapest 2019
- Get Hooked on Classless React
At RisingStack, we’ve been working with a client from the US healthcare scene who hired us to create a large-scale webshop they can use to sell their products. During the creation of this Stripe based platform, we spent a lot of time with studying the documentation and figuring out the integration. Not because it is hard, but there's a certain amount of Stripe related knowledge that you'll need to internalize.
Generating PDF from HTML with Node & Puppeteer
Learn how you can generate a PDF document from a heavily styled React page using Node.js, Puppeteer, headless Chrome, and Docker.
Background: A few months ago, one of the clients of RisingStack asked us to develop a feature where the user would be able to request a React page in PDF format. That page is basically a report/result for patients with data visualization, containing a lot of SVGs. Furthermore, there were some special requests to manipulate the layout and make some rearrangements of the HTML elements. So the PDF should have different styling and additions compared to the original React page.
As the assignment was a bit more complex than what could have been solved with simple CSS rules, we first explored possible implementations. Essentially we found 3 main solutions we describe in this article.
REST in Peace. Long Live GraphQL!
As you might already hear about it, we're the organizers of the Node.js Budapest meetup group with around ~1500 members. During an event in February, Peter Czibik delivered a talk about GrahpQL to an audience of about 120 ppl.
It was a highly informative and fun talk, so I recommend you to check it out!
Case Study: Nameserver Issue Investigation
In the following blogpost, we will walk you through how we chased down a DNS resolution issue for one of our clients. Even though the problem at hand was very specific, you might find the steps we took during the investigation useful.
Also, the tools we used might also prove to be helpful in case you'd face something similar in the future. We will also discuss how the Domain Name System (works), so buckle up!
Read the blogpost here: Case Study: Nameserver Issue Investigation using curl, dig+trace & nslookup
RisingStack Joins the Cloud Native Node.js Project
In March 2019, we announced our collaboration with IBM on the Cloud Native JS project, which aims to provide best practices and tools to build and integrate enterprise-grade Cloud Native Node.js applications.
As a first step of contribution to the project, we released an article on CNJS’s blog - titled “How to Build and Deploy a Cloud Native Node.js App in 15 minutes”. In this article we show how you can turn a simple Hello World Node.js app into a Dockerized application running on Kubernetes with all the best-practices applied - using the tools provided by CNJS in the process.
A Definitive React-Native Guide for React Developers
In this series, we cover the basics of React-Native development, compare some ideas with React, and develop a game together. By the end of this tutorial, you’ll become confident with using the built-in components, styling, storing persisting data, animating the UI, and many more.
- Part I: Getting Started with React Native - intro, key concepts & setting up our developer environment
- Part II: Building our Home Screen - splitting index.js & styles.js, creating the app header, and so on..
- Part III: Creating the Main Game Logic + Grid - creating multiple screens, type checking with prop-types, generating our flex grid
- Part IV: Bottom Bar & Responsible Layout - also, making our game pausable and adding a way to lose!
- Part V: Sound and Animation + persisting data with React-Native AsyncStorage
Design Systems for React Developers
In this post, we provide a brief introduction to design systems and describe the advantages and use-cases for having one. After that, we show Base Web, the React implementation of the Base Design System which helps you build accessible React applications super quickly.
Node.js v12 - New Features You Shouldn't Miss
Node 12 is in LTS since October, and will be maintained until 2022. Here is a list of changes we consider essential to highlight:
- V8 updated to version 7.4
- Async stack traces arrived
- Performance tweaks & improvements
- Progress on Worker threads, N-API
- Default HTTP parser switched to llhttp
- New experimental “Diagnostic Reports” feature
Building a D3.js Calendar Heatmap
In this article, we take a look at StackOverflow’s usage statistics by creating an interactive calendar heatmap using D3.js!
We go through the process of preparing the input data, creating the chart with D3.js, and doing some deductions based on the result.
Golang Tutorial for Node.js Developers
In case you are a Node.js developer, (like we are at RisingStack) and you are interested in learning Golang, this blogpost is made for you! Throughout this tutorial series, we'll cover the basics of getting started with the Go language, while building an app and exposing it through a REST, GraphQL and GRPC API together.
In the first part of this golang tutorial series, we’re covering:
- Golang Setup
- net/http with Go
- dependency management
- build tooling
Read the Golang for Node developers tutorial here.
How to Deploy a Ceph Storage to Bare Virtual Machines
Ceph is a freely available storage platform that implements object storage on a single distributed computer cluster and provides interfaces for object-, block- and file-level storage. Ceph aims primarily for completely distributed operation without a single point of failure. It manages data replication and is generally quite fault-tolerant. As a result of its design, the system is both self-healing and self-managing.
Ceph has loads of benefits and great features, but the main drawback is that you have to host and manage it yourself. In this post, we're checking out two different approaches of deploying Ceph.
Read the article: Deploying Ceph to Bare Virtual Machines
Update Now! Node.js 8 is Not Supported from 2020.
The Node.js 8.x Maintenance LTS cycle will expire on December 31, 2019 - which means that Node 8 won’t get any more updates, bug fixes or security patches. In this article, we’ll discuss how and why you should move to newer, feature-packed, still supported versions.
We’re also going to pinpoint issues you might face during the migration, and potential steps you can take to ensure that everything goes well.
Read the article about updating Node here.
Great Content from JSConf Budapest 2019
In 2019 we delivered a workshop called "High-Performance Microservices with GraphQL and Apollo" as our contribution to the event.
We also collected content you should check out from the conf. Have fun!
Get Hooked on Classless React
Our last meetup in 2019 was centered around React Hooks. What is a hook?
A Hook is a function provided by React, which lets you hook into React features from your functional component. This is exactly what we need to use functional components instead of classes. Hooks will give you all React features without classes.
Hooks make your code more maintainable, they let you reuse stateful logic, and since you are reusing stateful logic, you can avoid the wrapper hull and the component reimplementation.
Check out the prezentation about React Hooks here.
RisingStack in 2020
We're looking forward to the new year with some interesting plans already lined up for Q1:
- We'll keep on extending our team to serve new incoming business.
- We have several blogposts series in the making, mainly on DevOps topics.
- We'll announce an exciting new event we'll co-organize with partners from the US and Finnland soon, so stay tuned!
- We're going to release new training agendas around Node, React & GraphQL, as well as a new training calendar with open trainings for 2020.
How was your 2019?