The DiscoverDev Publication

Welcome to the DiscoverDev publication! For over an year we have curated the best software engineering articles from across the web, have accumulated thousands of daily website visitors and over 5000 email subscribers. Now we move to the next phase of being a platform where engineers and developers can publish high quality in-depth articles. We want to share our platform and enable developers to reach a wider audience while giving our users the high quality content they're used to!


This site is run by me Deepak Karki, @ioKarki on Twitter. You can reach out to me there or on the official DiscoverDev twitter handle @discoverdev_io.


Check out our various blog series' as well!

Whack a mole

This is the 30th project of WesBos's JS30 series. Today we'll build whack a mole game from scratch in vanilla JS!
Read more...

Countdown timer

This is the 29th project of WesBos's JS30 series. Today we'll build a custom JavaScript countdown timer from scratch.
Read more...

Video speed controller

This is the 28th project of WesBos's JS30 series. Today we'll build an experimental video speed controller UI.
Read more...

Click and drag

This is the 27th project of WesBos's JS30 series. Today we make a pretty neat click and drag to scroll interface where you will learn a whole lot about JavaScript events!
Read more...

Stripe nav

This is the 26th project of WesBos's JS30 series. Today we'll re-creating the smooth Stripe dropdown follow-along navigation.
Read more...

JS Events

This is the 25th project of WesBos's JS30 series. In this exercise we'll play with JS events - bubbling, capture and one time events.
Read more...

Sticky Nav

This is the 24th project of WesBos's JS30 series. Today we'll learn how to make a sticky nav in JS.
Read more...

Speech Synthesis

This is the 23rd project of WesBos's JS30 series. Today we'll learn how to do speech synthesis (text to speech) with JavaScript.
Read more...

Follow along link highlight

This is the 22nd project of WesBos's JS30 series. Today we learn how to make cool follow along link highlights in JavaScript.
Read more...

Geolocation in the browser

This is the 21st project of WesBos's JS30 series. We make a really simple compass and speedometer with just JavaScript.
Read more...

Speech Detection

This is the 20th project of WesBos's JS30 series. Today we learn how to use the built in Speech Recognition in the browser. Text to speech in realtime.
Read more...

Webcam fun

This is the 19th project of WesBos's JS30 series. Today we'll use getUserMedia and Canvas to capture a video stream from a user's webcam and manipulate the pixels.
Read more...

Add times with reduce

This is the 18th project of WesBos's JS30 series. Today we'll be using map and reduce to add time of individual videos find the total time of a playlist.
Read more...

Sort without articles

This is the 17th project of WesBos's JS30 series. Today we learn how to sort HTML elements based based on their text content. This is essentially an exercise in array and string manipulation.
Read more...

Mouse move based text shadow animation

This is the 16th project of WesBos's JS30 series. We'll be creating an effect where the text shadow of an element is controlled by the mouse position!
Read more...

LocalStorage and Event Delegation

This is the 15th project of WesBos's JS30 series. We'll be building a to-do list of sorts, with local storage to persist the information across a refresh or reload.
Read more...

JS Object Reference vs Copying

This is the 14th exercise of WesBos's JS30 series - A series of experiments to understand the difference between copying by value and by reference.
Read more...

Slide in on scroll

This is the 13th project of WesBos's JS30 series. We'll be building an image slide in animation which is triggered by scroll.
Read more...

Key sequence detection

This is the 12th project of WesBos's JS30 series. We'll be building a key sequence detector.
Read more...

Custom video player

This is the eleventh project of WesBos's JS30 series. We'll be building our own custom HTML5 video player.
Read more...

JS Checkbox

This is the tenth project of WesBos's JS30 series. We'll be building a gmail style "hold shift and check all" items type list. You can check any element in the list, then hold shift and check another element, and all the elements in between should also get checked.
Read more...

Dev tools tricks

This is the ninth project of WesBos's JS30 series. This will be a quick set of tips and tricks relating to the chrome dev tools console!
Read more...

Fun with HTML5 canvas

This is the eighth project of WesBos's JS30 series. We will be creating a drawing canvas.
Read more...

JS Array Cardio - part 2

This is the seventh project of WesBos's JS30 series. We will be creating a bunch of small exaples to play with various array methods such as `some()`, `every()`, `find()`, `findIndex()`, `splice()`
Read more...

Ajax type ahead

This is the sixth project of WesBos's JS30 series. We will be creating a autocomplete dropdown for a search bar, the data being fetched via ajax.
Read more...

Flex Panel Gallery

This is the fifth project of WesBos's JS30 series. We will be creating a panel based gallery with flexbox, CSS transitions and javascript.
Read more...

JS Array cardio

This is the fourth project of WesBos's JS30 series. We will be creating a bunch of small exaples to play with various array methods such as `map`, `reduce`, `filter` and `sort`.
Read more...

CSS variables and JS

This is the third project of WesBos's JS30 series. We will be building a simple app to play with CSS variables.
Read more...

CSS and JS clock

This is the second project of WesBos's JS30 series. We will be building a "clock" as using 'div's, some CSS animation and javascript. The idea is to replicate a minimalistic analog wall clock with an hours, minutes and seconds hand.
Read more...

Drum kit

This is the first project of WesBos's JS30 series. We will be building a "drumkit" as shown in the first two minutes of the video below. The page plays certain sound effects on pressing keys from A to L on the qwerty keyboard.
Read more...