All blogs / JavaScript / TypeScript
Tania Rascia
Software engineer and open source creator. This is my digital garden.
JavaScript / TypeScriptFrontend / CSS / browsersWeb developmentEssays / personalEngineering blogs
- Posts
- 212 from 8 Nov 2016 to 16 Aug 2026
- Posting
- now and then (1 in the last year)
- Kind
- personal blog
- Feed
- https://tania.dev/rss.xml
2026 1
2025 4
2024 8
- Redesign: Version 7.0
- Redesign: Version 7.0December 1metaredesign
- Creating a Keyboard Shortcut Hook in React (Deep Dive)
- Creating a Keyboard Shortcut Hook in React (Deep Dive)October 19javascriptreactcaching
- HTML Tables with Horizontal Scroll and Sticky Headers
- HTML Tables with Horizontal Scroll and Sticky HeadersOctober 9htmlcssdesignjavascripttables
- Year in Review: 2023
- Year in Review: 2023January 20lifeyear-in-review
2023 6
2022 22
- The Lore of Animorphs (an Ode)
- The Lore of Animorphs (an Ode)December 29books
- Testing API Calls With React Testing Library and Jest
- Testing API Calls With React Testing Library and JestDecember 9reacttestingjestwebpackasynchronousapi
- Using Path Matching in React Router
- Using Path Matching in React RouterDecember 5reactrouter
- Tending to My Digital Garden
- Tending to My Digital GardenDecember 1life
- Simplifying Drag and Drop (Lists and Nested Lists)
- Simplifying Drag and Drop (Lists and Nested Lists)September 5javascriptreactdrag-and-drop
- Memories of Josh
- Memories of JoshAugust 2life
- Redesign: Version 6.0
- Redesign: Version 6.0July 3redesignmeta
- How To Set Up a GraphQL API Server in Node.js
- How To Set Up a GraphQL API Server in Node.jsJune 13graphqlapirestnodeexpress
- Building a JavaScript Keyboard Accordion (the Musical Kind)
- Building a JavaScript Keyboard Accordion (the Musical Kind)May 1svelteapiprojects
- Creating a Schema-Based Form System
- Creating a Schema-Based Form SystemJanuary 31reactformsarchitecture
- Year in Review: 2021
- Year in Review: 2021January 1lifeyear-in-review
2021 20
- An Introduction to GraphQL
- An Introduction to GraphQLNovember 17graphqlapirest
- Behind the Tutorials
- Behind the TutorialsOctober 23life
- How to Sort, Filter, and Paginate a Table with JavaScript
- How to Sort, Filter, and Paginate a Table with JavaScriptOctober 22apirestreactjavascript
- Redesign: Version 5.0
- Redesign: Version 5.0September 2redesignmeta
- Writing a Sokoban Puzzle Game in JavaScript
- Writing a Sokoban Puzzle Game in JavaScriptJuly 26javascriptgames
- How to Structure and Organize a React Application
- How to Structure and Organize a React ApplicationJune 23javascriptreact
- Using OAuth with PKCE Authorization Flow (Proof Key for Code Exchange)
- Using OAuth with PKCE Authorization Flow (Proof Key for Code Exchange)June 20securityjavascriptauthentication
- How and When to Use Context in React with Hooks
- How and When to Use Context in React with HooksJune 15reactjavascript
- Integration Tests with Jest, Supertest, Knex, and Objection in TypeScript
- Integration Tests with Jest, Supertest, Knex, and Objection in TypeScriptApril 6typescripttestingjestnode
- Year in Review: 2020
- Year in Review: 2020January 1lifeyear-in-review
2020 21
- Building TakeNote, a Full-Stack Notes App for DevelopersNovember 30lifetypescriptprojects
- Building My First PCNovember 15lifeprojects
- Everyday Systems That Help MeNovember 3lifeproductivity
- Understanding Modules, Import and Export in JavaScriptOctober 23javascriptfundamentals
- How to Set Up webpack 5 From ScratchOctober 15javascriptwebpacktools
- The Event Loop, Callbacks, Promises, and Async/Await in JavaScriptSeptember 10javascriptfundamentalsasynchronous
- How to Sort, Filter, and Paginate in a REST APISeptember 9apirestsqldatabase
- Adding Comments to My Blog (via Utterances)August 4meta
- Understanding Arrow Functions in JavaScriptAugust 1javascriptfundamentals
- Wilderness Backpacking Gear ListJuly 19travellife
- Using Git Submodules for Private ContentJuly 1metagittools
- Understanding Template Literals in JavaScriptJune 30javascriptfundamentals
- Making the Internet a Better PlaceJune 26metaredesigninternet
- Understanding Destructuring, Rest Parameters, and Spread SyntaxMay 14javascriptfundamentals
- Writing a Chip-8 Emulator from Scratch in JavaScriptApril 13javascriptnodegames
- Understanding Default Parameters in JavaScriptMarch 31javascriptfundamentals
- How to Use Redux and ReactMarch 9reduxreact
- Understanding Generators in JavaScriptFebruary 29javascriptfundamentals
- How to Set up a Mac for DevelopmentFebruary 17macos
- Understanding Map and Set in JavaScriptFebruary 12javascriptfundamentals
- How to Use Docker to Create a CI/CD PipelineFebruary 7automationtoolsserverdevops
2019 18
- Year in Review: 2019December 23lifeyear-in-review
- A Complete Guide to CSS Concepts and FundamentalsDecember 2cssdesignfundamentals
- Client-side Authentication the Right Way (Cookies vs. Local Storage)October 29javascriptreactnodesecurityauthentication
- Understanding This, Bind, Call, and Apply in JavaScriptOctober 4javascriptfundamentals
- Developer Blogs to Follow (2019)September 25lists
- Roll Your Own Comment System for a Static SiteAugust 16gatsbyreactnodeapistatic-sites
- How to Build a Node.js, Express, & PostgreSQL REST APIAugust 9nodeapidatabaseexpressarchitecture
- How to Build a Simple MVC App From Scratch in JavaScriptJuly 30javascriptarchitecture
- How to Make API Requests with Postman or cURLJuly 16apirest
- Display Build Status and Test Coverage Badges for a JavaScript ProjectJuly 15metajavascripttesting
- How to Use Vue, the JavaScript FrameworkMay 16javascriptvueframeworks
- Using Context API in React (Hooks and Classes)April 25javascriptreact
- Using React Router for a Single Page ApplicationApril 25javascriptreactrouter
- Writing a Snake Game for the Terminal in JavaScriptApril 9javascriptclinodegames
- The End of an Era: Migrating from WordPress to GatsbyMarch 14reactgatsbywordpressmetastatic-sites
- Everything I Know as a Software Developer Without a Degree (2019)February 11careerlifelists
- Using Content Editable Elements in JavaScript (React)January 22javascriptreact
- Understanding Bits, Bytes, and Numerical BasesJanuary 4javascriptnodecomputer-sciencecli
2018 27
- Year in Review: 2018December 17lifeyear-in-review
- Build a CRUD App in React with HooksNovember 7javascriptreact
- Redesign: Version 4.0October 22metaredesign
- Promise.all with Async/AwaitOctober 4javascriptasynchronous
- Understanding REST APIsSeptember 21restapiarchitecture
- How to Use React, the JavaScript FrameworkAugust 20apijavascriptreactframeworks
- How to Promisify an Ajax CallAugust 8javascriptjqueryasynchronous
- How To Use Object Methods in JavaScriptAugust 3javascriptfundamentals
- The Simplest PHP RouterJune 21phprouter
- Understanding Events in JavaScriptJune 19javascriptdomfundamentals
- How to Create a Snippet in Visual Studio CodeJune 12
- Rewrite Query String to Path with htaccessJune 7server
- How to Create and Use Bash ScriptsMay 29clilinux
- SQL and PDO Operations ReferenceMay 8phpdatabasesql
- Understanding Classes in JavaScriptMay 4javascriptfundamentals
- How to Upload Files to a Server with Plain JavaScript and PHPApril 28javascriptphpserver
- Create a Simple CRUD Database App (Part 2)April 23phpmysqldatabaseserversql
- ES6 Syntax and Feature OverviewApril 9javascript
- How to Paginate an Array in JavaScriptApril 9javascript
- Basic Refactoring: Don't Repeat YourselfApril 5javascriptfundamentals
- Object Oriented Pattern: JavaScript Classes and PHP ClassesMarch 29javascriptphparchitecture
- Unit Testing in JavaScript with MochaMarch 27javascripttesting
- How to Use the JavaScript Fetch API to Get JSON DataMarch 6apijavascriptjson
- How to Set Up a Cron Job in MAMPMarch 4php
- Understanding Variables, Scope and Hoisting in JavaScriptFebruary 20javascriptfundamentals
- Create a Memory Game (ala Super Mario 3) with JavaScriptFebruary 7gamesjavascript
- Understanding Prototypes and Inheritance in JavaScriptJanuary 12javascriptfundamentals
2017 49
- Year in Review: 2017December 27lifeyear-in-review
- How To Make Changes to the DOMDecember 26javascriptdomfundamentals
- How to Use Local Storage with JavaScriptDecember 19apijavascript
- How to Connect to an API with JavaScriptDecember 7apijavascript
- How To Traverse the DOMDecember 4javascriptdomfundamentals
- How To Access Elements in the DOMNovember 20javascriptdomfundamentals
- Basic Authentication for an Express Node App (htpasswd)November 13securitynodeexpressauthentication
- Understanding the DOM Tree and NodesNovember 7javascriptdomfundamentals
- Introduction to the DOMNovember 6javascriptdomfundamentals
- Understanding Date and Time in JavaScriptOctober 19javascriptfundamentals
- Design for Developers: Specific Steps to Improve Your Website DesignOctober 12cssdesign
- Understanding Functions in JavaScriptOctober 9javascriptfundamentals
- How To Create For Loops in JavaScriptOctober 2javascriptfundamentals
- Using While and Do While Loops in JavaScriptSeptember 27javascriptfundamentals
- How To Use the Switch Statement in JavaScriptSeptember 11javascriptfundamentals
- How To Write Conditional Statements in JavaScriptAugust 29javascriptfundamentals
- Understanding Objects in JavaScriptAugust 24javascriptfundamentals
- How To Use Array Methods in JavaScript: Iteration MethodsAugust 15javascriptfundamentals
- How To Use Array Methods in JavaScript: Accessor MethodsAugust 14javascriptfundamentals
- Examples of Map, Filter and Reduce in JavaScriptAugust 11javascript
- How To Use Array Methods in JavaScript: Mutator MethodsAugust 10javascriptfundamentals
- Understanding Arrays in JavaScriptJuly 28javascriptfundamentals
- Node.js and npm Tutorial: Installation and UsageJuly 21javascriptnode
- How To Do Math in JavaScriptJuly 20javascriptfundamentals
- How To Index, Split, and Manipulate Strings in JavaScriptJuly 14javascriptfundamentals
- Backpacking in Europe: Planning and PackingJuly 11travel
- How to Work with Strings in JavaScriptJuly 11javascriptfundamentals
- How I Made a Career Change into Web DevelopmentJuly 6careerlife
- Understanding Syntax and Code StructureJuly 5javascriptfundamentals
- How to Install Apache, PHP 7, and MySQL on Ubuntu with VagrantJuly 3phplinuxdevops
- How to Set Up a Virtual Server with Vagrant and VirtualBoxJuly 2toolsserverdevops
- Web Developers and Bloggers I Follow (2017)June 30lists
- The Beginning of the Next PhaseJune 27lifecareer
- How To Write Comments in JavaScriptJune 20javascriptfundamentals
- Redesign: Version 2.0 (863 Commits Later)June 10metaredesign
- How to Generate a Public Key from a Private KeyJune 6linuxsecurity
- The Three Types of Can'tMay 25life
- Build a PHP & MySQL CRUD Database App From ScratchMay 16phpmysqldatabase
- Smooth Scroll to ID with jQueryApril 14javascriptjquery
- Prevent Mouse Scroll from Zooming on Embedded Google MapsApril 5css
- A Practical Guide to Search Engine Optimization (SEO) with GoogleMarch 29seo
- Background Position Fixed and Cover with CSSMarch 27css
- Crossfade Between Two Images with CSS AnimationsMarch 27cssdesign
- Redirect all HTTP requests to HTTPSMarch 23server
- Simple jQuery Examples with Code and DemosFebruary 23javascriptjquery
- How to Use jQuery, a JavaScript LibraryFebruary 8javascriptjquery
- How to Request JSON API Data with JavaScript or PHPJanuary 22apijavascriptphpjson
- How to Use the Command Line in Linux and macOSJanuary 9clilinuxmacos
- Year in Review: 2016January 3lifeyear-in-review
2016 3
Undated 33
- Browse the shelves
- Setting Up a Basic Cron Job on a Linux ServerOctober 14linuxserverdevops
- WordPress Tutorial: Custom Fields and Meta BoxesAugust 10phpwordpress
- How to Build a Responsive Image Gallery with FlexboxJuly 26cssphpwordpressdesign
- JavaScript Comparisons, Math, and LogicJune 25javascriptfundamentals
- Adding Syntax Highlighting to Code Snippets in a Blog or WebsiteJune 7syntax-highlightingstatic-sites
- Parallax Scroll EffectApril 9jquerycssdesign
- JavaScript Comments, Variables, Data Types, and Hello, World!March 30javascriptfundamentals
- Automated Task Running in JavaScript with GulpFebruary 16automationtoolsjavascript
- Obtain a TLS/SSL Certificate and Enable HTTPS EncryptionJanuary 29securitywordpressdevops
- WordPress Tutorial: Pagination, Comments, Functions, & Custom PostsJanuary 14phpwordpress
- How to Set Up an EC2 Virtual Server in AWSDecember 22linuxserverdevops
- How to Use Sass, a CSS PreprocessorDecember 12cssdesign
- How to Create a Static Website with JekyllNovember 30toolsrubyjekyllstatic-sites
- Full Screen Navigation OverlayNovember 21cssjquerydesignnavigation
- Google Maps APIs for Multiple LocationsNovember 14apijavascript
- How to Use Bootstrap, a CSS FrameworkNovember 10cssframeworks
- From Cooking to CodingNovember 6cookingcareer
- Off Canvas NavigationNovember 2cssjquerydesignnavigation
- Understanding the Fundamentals of Responsive DesignOctober 31cssdesignarchitecture
- RSS FeedsOctober 28toolsrss
- Migrating a WordPress Site to a Live ServerOctober 23phpwordpress
- Automated Task Running in JavaScript with GruntOctober 20automationcssjavascript
- WordPress Tutorial: Developing a Wordpress Theme from ScratchOctober 17phpwordpress
- Setting Up a Local Server EnvironmentOctober 17phpserverdevops
- Setting Up Virtual HostsOctober 17phpserverdevops
- How to Create a Flexbox GridOctober 7cssdesign
- Responsive Dropdown Navigation BarOctober 2cssjquerydesignnavigation
- Basic HTML5 Skeleton FileSeptember 30html
- Getting Started with Git for Version ControlSeptember 24toolsgit
- Principal software engineer
- 177 posts
- All Projects