My 5th book "50 Tips on JavaScript" is on sale. Go get it from
Illustrated guide to 50 of the most interesting JavaScript topics.


This blog is 14 years old. The first article Creative navigation by was written on 2008-08-22. The last one Taking Wordle to the next level (case study) was published on 2022-04-04. There are 511 articles in total spread into 15 categories.

Articles per year:
2022 - 2
2021 - 13
2020 - 34
2019 - 11
2018 - 19
2017 - 23
2016 - 23
2015 - 20
2014 - 43
2013 - 133
2012 - 50
2011 - 60
2010 - 63
2009 - 4
2008 - 13

All articles:
The tiniest presentation framework
Taking Wordle to the next level (case study)

Mocking console methods with Jest
Transpile to ES modules with Babel
Reinventing the routing in React apps
Configure Google domain email in Vercel with ImprovMX
Miss Piggy - a test runner for Puppeteer
Using JavaScript module system for state management
Firebase/GCP: save money by cleaning up your artifacts
White-labeling React apps
Get to know Kent C. Dodds
Here is how call-to-action widgets probably work
TAMO JUNTO - Animated Short Film
How I wrote and published my 5th technical book
13 Years of Blogging

Bret Victor: Inventing on principle
Reactive view - the concept
Part 1: We need channels! A gentle introduction to communicating sequential processes.
Part 2: Riew - reactive view basics
Part 3: Riew - reactive view in patterns
Hopa - zero config CLI that runs JavaScript and TypeScript
"The Candidate" by David Karlak
AST fun. Remove a function call from your bundle
Running Prettier for specific Git branch
VSCode go to definition/implementation fixed
"Exit strategy" by Travis Bible
Octomments - using GitHub as a comment plugin
Email not working after DNS change
Webpack/TypeScript/React starter kit as of 2020
From 0 to 100 GitHub stars in a week
Vue.js documentary
GraphQL: the documentary
Pairify - how to match balanced string pairs
My top 3 tips for working remotely
NADCAST.24 с Радо Станков
Create your own Covid-19 data tracker
How Open Source Changed My Life with Max Stoiber
The simplest HTTP proxy with custom headers
Smart placeholders in your markdown
A journey into software development with Lea Verou
Recreating Facebook's Recoil library
React: 50 shades of state
ReactNative: using SVG as a button
You Really Don't Need All That JavaScript, I Promise by Stuart Langridge
What the heck is Google Tag Manager and what it has to do with Google Analytics
Transfer MP3 file from Mac OS Catalina to iPhone iOS 14.0
iPhone stuck on the Apple logo
Replacing code for production with Babel transformation
Copy files and directories from and to Kubernetes pods

NADCAST.20 със Стефан Кънев
forEach or not to forEach
Jolly Roger - a 2KB micro-framework based on React hooks API
Why and how I built my own alternative of the GitHub's UI
NADCAST.21 с Радо Станков за React.NotAConf
NADCAST.22 live at React.NotAConf
From PHP to Node with Zeit's lambdas and
React: rendering vs running your components
Rethinking the Redux API
Make your objects iterable
NADCAST.23 с Яни и Ния

Debugging your front-end like it's 2019
Meet Evala - your terminal in the browser
NADCAST.11 с Мариан Игнев и Павел Иванов
NADCAST.12 с Димитър Димитров
My take on Redux architecture
NADCAST.13 с Радо Станков
NADCAST.14 със Стефан Кънев и Димитър Димитров
Implementing an async queue in 23 lines of code
NADCAST.15 live recorded at React.NotAConf
React and separation of concerns
NADCAST.16 с Владимир Конушлиев
A story about React, Redux and server-side rendering
NADCAST.17 с Радо Станков
Pixo - Image editor for your web app
NADCAST.18 with Sara Vieira
React hooks: changing the mindset
My new and shiny tool for live demos - Demoit
Build your own interactive JavaScript playground
NADCAST.19 с Радо Станков и Минко Генчев

8 Years of blogging
Children in JSX
Bulgaria Web Summit 2017 is just around the corner
Surviving the Web
Strange Beasts
NADCAST.01 с Радо Станков
NADCAST.02 със Стефан Кънев
NADCAST.03 с Радо Георгиев
The powerful higher-order component pattern
NADCAST.04 с Найден Гочев и Михаил Кочанов
NADCAST 05 с Христо Панайотов
Rakka by Oats Studios
NADCAST.06 with Cole Peters
NADCAST.07 with Kent C. Dodds
README driven development
NADCAST.08 с Александър Тодоров
Post-transpilation or what is the real face of your code
NADCAST.09 с Радо Станков
You are managing state? Think twice.
Getting from Redux to a state machine
Meet the JavaScript pattern of the year or how to handle async like a boss
Markup as function
NADCAST.10 с Минко Гечев и Радо Станков

Deep dive into client-side routing
The return statement is not the end (but it should be)
Unexpected usage of Array.length
Meet sequence expression
The last job on Earth
Constructive destructuring
My new experiment is released - 10 Lessons in Front-end ebook
Debugging with Node
The earthquake in the JavaScript community
Lazy-load your images with Coloor
iframe, or not, that is the question
Thoughts on semantic versioning, npm and JavaScript ecosystem as a whole
DevTools in 2016: Accelerate your workflow
The bare minimum to work with React
Unity Adam demo - the full film
Let's write, not generate code. Thoughts about naming stuff.
Jamie xx - Gosh
Short movie by Oscar-winning animator Patrick Osborne
React.js in patterns
Presentational and container React components
Full Stack Fest and CSS day Videos
React and third-party libraries
Short Film: Find my Phone

Fun playing with npm, dependencies and postinstall script
Bulgaria Web Summit / must-go conference for the modern web person
The proper way of fixing bugs
Using Local Storage as a communication channel
Choosing Your Javascript Framework
Hacking Browserify
Rethinking JavaScript readability
How require/import may decrease your testability
CSSSteal - Chrome extension that extracts CSS
A modern React starter pack based on webpack
Distributing React components
Enforce standards while submitting a pull request
Hacking a weird failing HTTP request
A story about currying
Dissection of Flux architecture or how to write your own
Apache .htaccess for HTML5 push state manipulations
Using Mocha with ES6 spec files
JavaScript's reduce could be really helpful
Start your own JavaScript library using webpack and ES6

Dependency injection in JavaScript
SASS and Gruntjs (Node.js setting up)
Using Node.js to rename set of images
Revealing the magic: How to properly convert HTML string to a DOM element
THE GAP by Ira Glass
Simple, good looking separator made with pure CSS
A modern JavaScript router in 100 lines
Cross-browser handling of Ajax requests
Mastering the DOM access
Using media queries in JavaScript (AbsurdJS edition)
JavaScript: bind function
Look ma, JavaScript only Off-Canvas menu
Win Free Copies of the new book - Getting Started with Grunt
EdgeConf 3
Book review: Getting Started with Grunt: The JavaScript Task Runner
No back-end blog solution with Node.js and Markdown is around the corner
Mandy Lauderdale & Jed Schmidt: JavaScript Medley retrospection
Testing responsiveness
Node.js: managing child processes
Sorry, Chrome killed the terminal
Node.js application made with Express and AbsurdJS
Developing Node.js applications with Google Chrome
Jenn Schiffer: What's the Harm In Sorting: Sanitizing Inputs For More Optimized JS
Why I'm happy to be a web developer
Stop autoplaying your Gifs
"Help, I'm stuck in an event-loop" by Philip Roberts
Hungry for knowledge - Scotland JS 2014 talks
Hungry for knowledge #2 - the Sunday's talks collection
Packt Publishing celebrates 10 years with a special $10 offer
Mobile Web performance auditing
Usersnap - the holy grail of bug reporting
The three rules of the good CSS architecture
Feeding the beast at 60fps
ToDoMVC with AbsurdJS
Node.js Blueprints book - second chapter's clarification
Win Free Copies of my new book – Node.js Blueprints
CSS variables are here for ages
My front-end performance case study
Unit test your client-side JavaScript
How I squeezed two hours and a half
Merry Front-End Christmas

PHP developers - wake up!
SVN: Ignoring files and directories
Moving elements with translate() is better than absolute positioning (top, left, right, bottom)
Cleaning up <pre> tag content
Chrome Devevelopment Tools could be really helpful
Competition for developers and game enthusiasts with cash prizes
Chrome Developer Tools for Speed by Paul Irish
Douglas Crockford’s Function Challenges
sugru - self-setting rubber that can be formed by hand
HTML slicing the site of VarnaLab using LESS and Twitter Bootstrap
Edge Conference 2013
Web assets - tips for better organization and performance (discussion at VarnaLab)
Compiling iOS application under Windows with Flex SDK
The Breakpoint
HTML5: a few links to bookmark
Responsive design at VarnaLab
Tern - intelligent JavaScript editing
Catch uncaught Exception in Node.JS
AssetsPack - a friend of the front-end developer (pack your assets with NodeJS)
Popular Science Fleischer Studios The Cartoon Process
What exactly "Retina display" means in the context of the front-end development
Practice, practice, practice ...
iPhone and iPod detection under JavaScript
Make the web faster
The mobile web by Peter-Paul Koch
Google Chrome for web developers (my talk at VarnaLab)
Web Highlights #1
CSS: using float property
Web Highlights #2
Web Highlights #3
Real time game with NodeJS and
CSS: transition from pixels to auto
Web Highlights #4
The hunted playlist
Inside Me
A Pixel is Not a Pixel: Learn about Viewports with PPK
Learning to teach - Bartosz Szopka
Jeremy Keith - There Is No Mobile Web - BD Conf, Sept 2011
Design Processes, Not Interfaces - Tiffany Conroy
Lucky by Nash Edgerton
A short review of ExpressionEngine framework
CSS: The background color and overlapping rows
Responsive Design Workflow (my talk at VarnaLab)
Accessing remote Git server under windows
Git under windows (console mode)
Web Highlights #5
Lea Verou - Everything You Always Wanted to Know About Web Standards (Fluent 2013)
Front-Trends 2013 (Videos)
mod_rewrite, one simple rule and two stupidly lost hours
The Flash Builder debugger failed to connect to the running application.
How to Design Responsively
Convert HTML string to DOM element
A strange IOErrorEvent.IO_ERROR event dispatched
Simple command line parser in JavaScript
Flash, nodejs sockets and cross-domain policy file
Chrome Extension: run JavaScript in the context of the current page
Javascript string replace and regular expression
Get computed css styles for a given element
Importing huge MySQL dump under Windows.
The New CSS Layout - Rachel Andrew - Front-Trends 2013
Insert css or javascript dynamically
Chrome extension: debugging dev tools tab or how to make console.log
How to Design Responsively
Web Highlights #6
Deploying ExpressionEngine based site
How to use the Chatwing chat software with ease
Security sandbox violation error even with crossdomain.xml
Auxilio Chrome extension presentation at VarnaLab
Rob Ashton - Javascript sucks and it doesn't matter
Design - Apple Mac
Extending Jasmine (BDD framework for testing)
JavaScript: sequencing function calls
JavaScript: sequencing function calls #2
Building the Web Together
Brad Frost - For a Future Friendly Web - Mobile Mobile Conf 2013
Twitter streaming API, NodeJS and 401 Unauthorized error
JavaScript is cool
VarnaConf 2013 Videos
Auxilio Chrome extension - common use cases
CSS: :before and :after pseudo elements in practice
Web Highlights #7
Adapting to Responsive Design - Mark Boulton (Fronteers 2012)
Introduction to animations in HTML
CSS Challenge #1: expand and center an image
Angelina Fabbro: JavaScript Masterclass - JSConfUS 2013
Stay tuned / conferences that you should know about
A Happy grain of sand - Aral Balkan
DalekJS - Automated cross browser testing with JavaScript!
CSS Challenge #2: Layouting
SASS: differences between mixins, extends and placeholders
SASS: @content directive is a wonderful thing
PHP: simple captcha script
AJAX request doesn't work in IE (url encoding problem)
SASS: universal mixin for box model properties
Two handy and advanced SASS features and their limitations
Sweating the small stuff: recreating subtle design details using Sass by Tim Hettler
A bad side effect of the aspect oriented programming
SASS mixins covering media queries
CSS: Understanding first-child, last-child and nth-child
SASS mixin for grid generation
Send message from web page to chrome extension\'s background script
CSS: common use cases and architecture at VarnaLab
Managing events in JavaScript
Managing events in JavaScript
The power of inherit or how to animate pseudo elements
BurgasConf 2013
SASS: interpolation in a name of variable
JavaScript: creating class based on object
Auxilio Chrome extension or how I boost my productivity
JavaScript challenge: queue implementation
Select drop-down broken under Firefox
Git error: cannot lock existing info/refs
Videos from TarnovoConf 2013
JSConf EU 2013
JavaScript: dependency free extend method
PHP: please, please, clear my cookies
Making HTTP realtime with HTTP 2.0 - Realtime Conf 2013 by Ilya Grigorik
Martin Kleppe: 1024+ Seconds of JS Wizardry -- JSConf EU 2013
An alternative JavaScript for loop syntax
AbsurdJS fundamentals
To all devs out there
The Power Of Simplicity by Jeremy Keith
ExpressionEngine: thumbnail could not be created for the image under Windows
Harry Roberts - Normalising designs for better quality CSS
JavaScript template engine in just 20 lines
7 lines JavaScript library for calling asynchronous functions
Flash CS5 is not working

The Single Responsibility Principle (SRP)
Derrick May Feature
The Dependency Inversion Principle
Get Clients to say Yes! (by Paul Boag)
How to find non-secure items on a page
Nice work by Nick Kwiatek
MySQL vs JSON file data storing
PEAR PHP Coding Standarts
JavaScript object creation
REBIRTH of GAEA - Flowing Meditation
A behind-the-scenes look at Facebook release engineering
Nicholas Zakas: Scalable JavaScript Application Architecture
The Beauty of a Second
Speed Up Your JavaScript
Dependency Injection in PHP. Create your own DI container.
Brian McCallister and the code
Майсторство в занаята от Стефан Кънев
API Design by Matt Gemmell
Git flow - a nice Git branching model
Why we should think about our CSS
Javascript Development Workflow of 2013
Google I/O 2011: Learning to Love JavaScript (by Alex Russell)
Few things that you may not know about ActionScript
What is JavaScript prototype by Angus Croll
Git and GitHub Secrets by Zach Holman
Writing Maintainable Automated Acceptance Tests by Dale H. Emery
PHP: the right way
The Principles of Agile Development
Le Miroir
Работа с GIT (презентация от Иван Танев)
VarnaConf 2012 - a great event for developers
The VarnaConf 2012 videos are being released!
JSConf 2012 (videos)
Creation process of the Rio 2016 Olympic Games emblem
Congo: The Grand Inga Project (Best Short Film of the Year Awards 2012)
Oh Joy!
Discussion about Photoshop at VarnaLab
Bleep Blap Bloop
Willow - Sweater
VarnaLab Challenges event
One day in the life of the front developer
Improve SVN logging
4 minutes hip hop history by Eklips
"Goldfish Salvation" by Riusuke Fukahori
Testing with headless browser (Zombie.js + Jasmine)
How To Design A Good API and Why it Matters
DJ Focus ...
Discussion about PHP at VarnaLab
OpenFest 2012 - Парадигми в езиците за програмиране от Стефан Кънев

CSS: selecting a specific child
Free nice Icons by Yummygum
GoogleMaps API v3: convert LatLng object to actual pixels
JavaScript: managing events (dispatch, listen)
Java 4ever
Javascript: handling keyboard shortcuts with jQuery
Javascript: handling with crossdomain requests
Beat machines
Earthrise cinematic by GENIG Studio
AS3: Using custom metadata in flex (part 2)
Time Warp 2011 - Trailer
Creating mp3 player with RobotLegs (basics tutorial)
Creating simple WYSIWYG editor with AS3 (Flex)
Japanese synchronized gymnastics
Joe Flemke: A Short Skate Film
PHP: convert emails to mailto links
Living Room - Concept Mr.Beam
OOP in JavaScript (part 2)
First person view of a mountain bike race in urban Chile.
PHP: add text to transparent PNG image
Convert Adobe Flash FLA files into HTML and reach more devices
Modular Marble Machines
FlashDevelop scripting: open file by text selection
FlashDevelop scripting: open file by name (part 2)
AS3: converting XML to JSON object
Mighty Antlers
AS3: runtime font loading (embedding)
How We\'ll Layout Websites in 2016
AS3: dynamic text field to curve (TextField on an arcing path)
F5 2011 RE:PLAY Film Festival. Inductance
A few things you don\'t know about JavaScript
Another IE surprise
5 useful ActionScript 3 tips
\"This page contains both secure and non secure items\" message
GoogleMaps JS API: address to coordinates transformation
AS3: Dealing with multi-language data in your application
AS3: Creating Facebook Application
A RobotLegs Book
AS3: DataGrid with custom ItemRenderers
8 Hours in Brooklyn
AS3: Tracing in Flash/Flex
The top 10 SEO myths by Mark Buckingham
Portal: No Escape
Joel Hook\'s Introduction to Robotlegs 2011
Face substitution
Finally! My Pomodoro Robotlegs timer is here
Google Chrome debug console tips
Colorize your output in FlashDevelop
Filtering data with jQuery
Basic PHP authentication
My Friend Jason by Shot at The Dark
Steve Jobs Painting
Adobe\'s strategic transformation and the Flash Platform
Testing Facebook application
How TDD and Pairing Increase Production by
The Open-Closed Principle
The powerful rendering opportunities of the modern browsers

SVET - web based project management system
SVET: Bringing order to project management chaos ( review)
Embed fonts in all the text fields of your flash document
Remove the yellow border in flash/flex
SVET - the big adventure (fantasy flash RPG game)
Send mass email with Thunderbird
Tween Manager Class in AS3
Code Flex applications with FlashDevelop
Customize ComboBox in Flash (AS3)
How to exclude directory from .htaccess file
Validating date in JavaScript
Remove tags from a string in AS3
Load MySQL data in Flash with AS3
Trace JSON object in AS3
Papervision3d: Finding 2D coordinates of a 3D object
Delegation in AS3
Javascript to Flash communication and vise versa
Create your own tween manager class in AS3
Reported Attack Page in Firefox
How to use Google Maps API in flash
Duplicate loaded images in AS3
Killa Appz - nice promotion
Export mysql data to SQL script or CSV
Distort MovieClip in Flash with AS3
EXODUS (stunning visuals)
Pixel perfect in Papervision3d
Apple App Store Opens its Doors to Adobe Flash
How to create realistic Earth globe in Flash (AS3, Papervision3D)
How to display php errors when display_errors is set to off
Great review for
Cloning JSON object in JavaScript
Adding outline of text or MovieClip in Flash with AS3
How to protect your SWF file
checkPolicyFile flag was not set
Todor and Petru
Adobe AIR: how to make things upon closing the application
101 начина как да вбесим дизайнера
Pattern fill with AS3 (repeat-x)
How to import images directly into the html code (base64)
Remove html tags from a string wtih PHP
Deep linking in flash with AS3
Kilian Martin: A Skate Regeneration
Ethan Law Roue Cyr presentation
PHP: find links in a string and replace them with actual html link tags
Film Inspiration
Dub FX - Love Someone
Nicole Sullivan: The Top 5 Mistakes of Massive CSS
PHP: export data to XLS file
Azureus Rising - Proof of Concept
Greenpeace - Inspiring action
Original Elephant Painting
Javascript: autocomplete country script
Scaling rounded corners in Flash
Bottle by Kirsten Lepore
Change the quality of all the bitmaps of your flash document
Maybe One Day
How to generate SWC file from ActionScript package
Object Oriented Programming in JavaScript (Extending / Inherit classes)
Delegation in JavaScript
AS3: Using custom Metadata in Flex (part 1)
CSS styles doesn\'t work on dynamically created elements in IE
PHP: Simple javascript obfuscator (merging files)

Flex DataGrid vertical scrolling bug
Flex: tabbing bug
Любими блогове
Fat-Man Collective

Creative navigation by
Great works from Cinemotion
5 helpful tips in photoshop
Words vs Colors
The website is down !
Amazing speech by Steve Jobs (CEO, Apple and Pixar Animation)
The Great Office War - IT vs S.A.L.E.S
Google Chrome announcement
Adobe Flash Player 10 now available
Flash CS3 crashes when closing the testing window !
The biggest site for free cool desktop wallpapers
Resn - Interactive Agency