Due to high demand, I’m extending the list of fun apps to build.

Here’s the initial post. Feel free to post your applications in the comments or on Twitter.

Everyone knows that skill is acquired by hard work mixed with passion. In order to become good at something, one must put in the effort.

Nothing good comes easy. If it’s hard, it’s worth doing. Most of us are excited to code but frequently lack ideas. Allow me to present some challenging, yet fun ideas to build.

Without further ado, let’s jump in!

Project #1: GraphQL powered Node.js Backend

GraphQL and Graphiql frontend

GraphQL has revolutionized the way we send and receive data. It’s absolutely worth your time to check it out.

Specifications:

Setup a Node.js express server with MongoDB and graphQL.

Ability to create, read, update, delete (CRUD) data.

data. Fetch data from a simple front-end.

Here’s a detailed tutorial I wrote on the subject, enjoy:

Node, React and GraphQL from zero to hero tutorial.

Project #2: Terminal app

A terminal application is simply an application that runs inside the terminal.

Try starting small, and create a simple app that runs in the terminal. The mechanics behind terminal apps are very simple: you give some input and get back the output (I/O)

Some really simple ideas to get started:

Ask for the name of the user and output the results.

Display some easy math equations and let the user input the value of the equation.

Here’s a great aggregated list of learning JavaScript terminal apps.

Project #3: Electron desktop application

Electron lets you build native desktop applications with web technologies such as HTML, CSS, and JavaScript.

Some of the most well-known Electron apps are: Visual studio code, Atom, Slack, and Webtorrent.io

Once again, start small and build on top of that. For example, start your electron application, create an input, and display the output to your terminal. If you’re familiar with web development, Electron will be very conventional.

Project #4: Instagram clone

Instagram is a convoluted application, and (re)building it will teach you a lot. Some of the highlights of what you will be learning by building Instagram are:

Complex grid management (try to make use of the new CSS grid for extra brownies)

Calling multiple API endpoints/data flow management (try to use GraphQL)

Ability to deliver scalable and real-world applications.

Feel free to use whatever technology you see fit.

Instagram is kind enough to provide us with their API.

Project #5: Data visualization with D3.js

complex data visualization example — Source

D3 stands for Data-Driven-Documents. D3 is by far the most used library for charting. It’s not the only option, though — there are a couple more, such as ChartJS and plotly.JS.

This one really gets me excited. Let’s visualize a dataset with D3.js — pick any dataset from the link below:

Awesome GitHub repository consisting of free-to-use public datasets.