The Curious Engineer

All blogs / JavaScript / TypeScript

Tania Rascia

tania.dev

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

  1. Tania

2025 4

  1. Enabling Apache ECharts in React for Data Visualization
  2. Enabling Apache ECharts in React for Data VisualizationMarch 31javascriptreactdata-visualization
  3. Year in Review: 2024
  4. Year in Review: 2024March 27metayear-in-review

2024 8

  1. Redesign: Version 7.0
  2. Redesign: Version 7.0December 1metaredesign
  3. Creating a Keyboard Shortcut Hook in React (Deep Dive)
  4. Creating a Keyboard Shortcut Hook in React (Deep Dive)October 19javascriptreactcaching
  5. HTML Tables with Horizontal Scroll and Sticky Headers
  6. HTML Tables with Horizontal Scroll and Sticky HeadersOctober 9htmlcssdesignjavascripttables
  7. Year in Review: 2023
  8. Year in Review: 2023January 20lifeyear-in-review

2023 6

  1. How to Use WebSockets in a Redux Application
  2. How to Use WebSockets in a Redux ApplicationFebruary 15reduxapijavascript
  3. Understanding the GraphQL Type System
  4. Understanding the GraphQL Type SystemJanuary 27graphqlapi
  5. Year in Review: 2022
  6. Year in Review: 2022January 2lifeyear-in-review

2022 22

  1. The Lore of Animorphs (an Ode)
  2. The Lore of Animorphs (an Ode)December 29books
  3. Testing API Calls With React Testing Library and Jest
  4. Testing API Calls With React Testing Library and JestDecember 9reacttestingjestwebpackasynchronousapi
  5. Using Path Matching in React Router
  6. Using Path Matching in React RouterDecember 5reactrouter
  7. Tending to My Digital Garden
  8. Tending to My Digital GardenDecember 1life
  9. Simplifying Drag and Drop (Lists and Nested Lists)
  10. Simplifying Drag and Drop (Lists and Nested Lists)September 5javascriptreactdrag-and-drop
  11. Memories of Josh
  12. Memories of JoshAugust 2life
  13. Redesign: Version 6.0
  14. Redesign: Version 6.0July 3redesignmeta
  15. How To Set Up a GraphQL API Server in Node.js
  16. How To Set Up a GraphQL API Server in Node.jsJune 13graphqlapirestnodeexpress
  17. Building a JavaScript Keyboard Accordion (the Musical Kind)
  18. Building a JavaScript Keyboard Accordion (the Musical Kind)May 1svelteapiprojects
  19. Creating a Schema-Based Form System
  20. Creating a Schema-Based Form SystemJanuary 31reactformsarchitecture
  21. Year in Review: 2021
  22. Year in Review: 2021January 1lifeyear-in-review

2021 20

  1. An Introduction to GraphQL
  2. An Introduction to GraphQLNovember 17graphqlapirest
  3. Behind the Tutorials
  4. Behind the TutorialsOctober 23life
  5. How to Sort, Filter, and Paginate a Table with JavaScript
  6. How to Sort, Filter, and Paginate a Table with JavaScriptOctober 22apirestreactjavascript
  7. Redesign: Version 5.0
  8. Redesign: Version 5.0September 2redesignmeta
  9. Writing a Sokoban Puzzle Game in JavaScript
  10. Writing a Sokoban Puzzle Game in JavaScriptJuly 26javascriptgames
  11. How to Structure and Organize a React Application
  12. How to Structure and Organize a React ApplicationJune 23javascriptreact
  13. Using OAuth with PKCE Authorization Flow (Proof Key for Code Exchange)
  14. Using OAuth with PKCE Authorization Flow (Proof Key for Code Exchange)June 20securityjavascriptauthentication
  15. How and When to Use Context in React with Hooks
  16. How and When to Use Context in React with HooksJune 15reactjavascript
  17. Integration Tests with Jest, Supertest, Knex, and Objection in TypeScript
  18. Integration Tests with Jest, Supertest, Knex, and Objection in TypeScriptApril 6typescripttestingjestnode
  19. Year in Review: 2020
  20. Year in Review: 2020January 1lifeyear-in-review

2020 21

  1. Building TakeNote, a Full-Stack Notes App for DevelopersNovember 30lifetypescriptprojects
  2. Building My First PCNovember 15lifeprojects
  3. Everyday Systems That Help MeNovember 3lifeproductivity
  4. Understanding Modules, Import and Export in JavaScriptOctober 23javascriptfundamentals
  5. How to Set Up webpack 5 From ScratchOctober 15javascriptwebpacktools
  6. The Event Loop, Callbacks, Promises, and Async/Await in JavaScriptSeptember 10javascriptfundamentalsasynchronous
  7. How to Sort, Filter, and Paginate in a REST APISeptember 9apirestsqldatabase
  8. Adding Comments to My Blog (via Utterances)August 4meta
  9. Understanding Arrow Functions in JavaScriptAugust 1javascriptfundamentals
  10. Wilderness Backpacking Gear ListJuly 19travellife
  11. Using Git Submodules for Private ContentJuly 1metagittools
  12. Understanding Template Literals in JavaScriptJune 30javascriptfundamentals
  13. Making the Internet a Better PlaceJune 26metaredesigninternet
  14. Understanding Destructuring, Rest Parameters, and Spread SyntaxMay 14javascriptfundamentals
  15. Writing a Chip-8 Emulator from Scratch in JavaScriptApril 13javascriptnodegames
  16. Understanding Default Parameters in JavaScriptMarch 31javascriptfundamentals
  17. How to Use Redux and ReactMarch 9reduxreact
  18. Understanding Generators in JavaScriptFebruary 29javascriptfundamentals
  19. How to Set up a Mac for DevelopmentFebruary 17macos
  20. Understanding Map and Set in JavaScriptFebruary 12javascriptfundamentals
  21. How to Use Docker to Create a CI/CD PipelineFebruary 7automationtoolsserverdevops

2019 18

  1. Year in Review: 2019December 23lifeyear-in-review
  2. A Complete Guide to CSS Concepts and FundamentalsDecember 2cssdesignfundamentals
  3. Client-side Authentication the Right Way (Cookies vs. Local Storage)October 29javascriptreactnodesecurityauthentication
  4. Understanding This, Bind, Call, and Apply in JavaScriptOctober 4javascriptfundamentals
  5. Developer Blogs to Follow (2019)September 25lists
  6. Roll Your Own Comment System for a Static SiteAugust 16gatsbyreactnodeapistatic-sites
  7. How to Build a Node.js, Express, & PostgreSQL REST APIAugust 9nodeapidatabaseexpressarchitecture
  8. How to Build a Simple MVC App From Scratch in JavaScriptJuly 30javascriptarchitecture
  9. How to Make API Requests with Postman or cURLJuly 16apirest
  10. Display Build Status and Test Coverage Badges for a JavaScript ProjectJuly 15metajavascripttesting
  11. How to Use Vue, the JavaScript FrameworkMay 16javascriptvueframeworks
  12. Using Context API in React (Hooks and Classes)April 25javascriptreact
  13. Using React Router for a Single Page ApplicationApril 25javascriptreactrouter
  14. Writing a Snake Game for the Terminal in JavaScriptApril 9javascriptclinodegames
  15. The End of an Era: Migrating from WordPress to GatsbyMarch 14reactgatsbywordpressmetastatic-sites
  16. Everything I Know as a Software Developer Without a Degree (2019)February 11careerlifelists
  17. Using Content Editable Elements in JavaScript (React)January 22javascriptreact
  18. Understanding Bits, Bytes, and Numerical BasesJanuary 4javascriptnodecomputer-sciencecli

2018 27

  1. Year in Review: 2018December 17lifeyear-in-review
  2. Build a CRUD App in React with HooksNovember 7javascriptreact
  3. Redesign: Version 4.0October 22metaredesign
  4. Promise.all with Async/AwaitOctober 4javascriptasynchronous
  5. Understanding REST APIsSeptember 21restapiarchitecture
  6. How to Use React, the JavaScript FrameworkAugust 20apijavascriptreactframeworks
  7. How to Promisify an Ajax CallAugust 8javascriptjqueryasynchronous
  8. How To Use Object Methods in JavaScriptAugust 3javascriptfundamentals
  9. The Simplest PHP RouterJune 21phprouter
  10. Understanding Events in JavaScriptJune 19javascriptdomfundamentals
  11. How to Create a Snippet in Visual Studio CodeJune 12
  12. Rewrite Query String to Path with htaccessJune 7server
  13. How to Create and Use Bash ScriptsMay 29clilinux
  14. SQL and PDO Operations ReferenceMay 8phpdatabasesql
  15. Understanding Classes in JavaScriptMay 4javascriptfundamentals
  16. How to Upload Files to a Server with Plain JavaScript and PHPApril 28javascriptphpserver
  17. Create a Simple CRUD Database App (Part 2)April 23phpmysqldatabaseserversql
  18. ES6 Syntax and Feature OverviewApril 9javascript
  19. How to Paginate an Array in JavaScriptApril 9javascript
  20. Basic Refactoring: Don't Repeat YourselfApril 5javascriptfundamentals
  21. Object Oriented Pattern: JavaScript Classes and PHP ClassesMarch 29javascriptphparchitecture
  22. Unit Testing in JavaScript with MochaMarch 27javascripttesting
  23. How to Use the JavaScript Fetch API to Get JSON DataMarch 6apijavascriptjson
  24. How to Set Up a Cron Job in MAMPMarch 4php
  25. Understanding Variables, Scope and Hoisting in JavaScriptFebruary 20javascriptfundamentals
  26. Create a Memory Game (ala Super Mario 3) with JavaScriptFebruary 7gamesjavascript
  27. Understanding Prototypes and Inheritance in JavaScriptJanuary 12javascriptfundamentals

2017 49

  1. Year in Review: 2017December 27lifeyear-in-review
  2. How To Make Changes to the DOMDecember 26javascriptdomfundamentals
  3. How to Use Local Storage with JavaScriptDecember 19apijavascript
  4. How to Connect to an API with JavaScriptDecember 7apijavascript
  5. How To Traverse the DOMDecember 4javascriptdomfundamentals
  6. How To Access Elements in the DOMNovember 20javascriptdomfundamentals
  7. Basic Authentication for an Express Node App (htpasswd)November 13securitynodeexpressauthentication
  8. Understanding the DOM Tree and NodesNovember 7javascriptdomfundamentals
  9. Introduction to the DOMNovember 6javascriptdomfundamentals
  10. Understanding Date and Time in JavaScriptOctober 19javascriptfundamentals
  11. Design for Developers: Specific Steps to Improve Your Website DesignOctober 12cssdesign
  12. Understanding Functions in JavaScriptOctober 9javascriptfundamentals
  13. How To Create For Loops in JavaScriptOctober 2javascriptfundamentals
  14. Using While and Do While Loops in JavaScriptSeptember 27javascriptfundamentals
  15. How To Use the Switch Statement in JavaScriptSeptember 11javascriptfundamentals
  16. How To Write Conditional Statements in JavaScriptAugust 29javascriptfundamentals
  17. Understanding Objects in JavaScriptAugust 24javascriptfundamentals
  18. How To Use Array Methods in JavaScript: Iteration MethodsAugust 15javascriptfundamentals
  19. How To Use Array Methods in JavaScript: Accessor MethodsAugust 14javascriptfundamentals
  20. Examples of Map, Filter and Reduce in JavaScriptAugust 11javascript
  21. How To Use Array Methods in JavaScript: Mutator MethodsAugust 10javascriptfundamentals
  22. Understanding Arrays in JavaScriptJuly 28javascriptfundamentals
  23. Node.js and npm Tutorial: Installation and UsageJuly 21javascriptnode
  24. How To Do Math in JavaScriptJuly 20javascriptfundamentals
  25. How To Index, Split, and Manipulate Strings in JavaScriptJuly 14javascriptfundamentals
  26. Backpacking in Europe: Planning and PackingJuly 11travel
  27. How to Work with Strings in JavaScriptJuly 11javascriptfundamentals
  28. How I Made a Career Change into Web DevelopmentJuly 6careerlife
  29. Understanding Syntax and Code StructureJuly 5javascriptfundamentals
  30. How to Install Apache, PHP 7, and MySQL on Ubuntu with VagrantJuly 3phplinuxdevops
  31. How to Set Up a Virtual Server with Vagrant and VirtualBoxJuly 2toolsserverdevops
  32. Web Developers and Bloggers I Follow (2017)June 30lists
  33. The Beginning of the Next PhaseJune 27lifecareer
  34. How To Write Comments in JavaScriptJune 20javascriptfundamentals
  35. Redesign: Version 2.0 (863 Commits Later)June 10metaredesign
  36. How to Generate a Public Key from a Private KeyJune 6linuxsecurity
  37. The Three Types of Can'tMay 25life
  38. Build a PHP & MySQL CRUD Database App From ScratchMay 16phpmysqldatabase
  39. Smooth Scroll to ID with jQueryApril 14javascriptjquery
  40. Prevent Mouse Scroll from Zooming on Embedded Google MapsApril 5css
  41. A Practical Guide to Search Engine Optimization (SEO) with GoogleMarch 29seo
  42. Background Position Fixed and Cover with CSSMarch 27css
  43. Crossfade Between Two Images with CSS AnimationsMarch 27cssdesign
  44. Redirect all HTTP requests to HTTPSMarch 23server
  45. Simple jQuery Examples with Code and DemosFebruary 23javascriptjquery
  46. How to Use jQuery, a JavaScript LibraryFebruary 8javascriptjquery
  47. How to Request JSON API Data with JavaScript or PHPJanuary 22apijavascriptphpjson
  48. How to Use the Command Line in Linux and macOSJanuary 9clilinuxmacos
  49. Year in Review: 2016January 3lifeyear-in-review

2016 3

  1. Productivity: How I Use Technology to Organize My LifeDecember 21toolsproductivity
  2. My Complete Front End Web Development SetupNovember 10toolsproductivity
  3. Styling UI Components from Scratch: Buttons & FormsNovember 8cssdesignfundamentalsforms

Undated 33

  1. Browse the shelves
  2. Setting Up a Basic Cron Job on a Linux ServerOctober 14linuxserverdevops
  3. WordPress Tutorial: Custom Fields and Meta BoxesAugust 10phpwordpress
  4. How to Build a Responsive Image Gallery with FlexboxJuly 26cssphpwordpressdesign
  5. JavaScript Comparisons, Math, and LogicJune 25javascriptfundamentals
  6. Adding Syntax Highlighting to Code Snippets in a Blog or WebsiteJune 7syntax-highlightingstatic-sites
  7. Parallax Scroll EffectApril 9jquerycssdesign
  8. JavaScript Comments, Variables, Data Types, and Hello, World!March 30javascriptfundamentals
  9. Automated Task Running in JavaScript with GulpFebruary 16automationtoolsjavascript
  10. Obtain a TLS/SSL Certificate and Enable HTTPS EncryptionJanuary 29securitywordpressdevops
  11. WordPress Tutorial: Pagination, Comments, Functions, & Custom PostsJanuary 14phpwordpress
  12. How to Set Up an EC2 Virtual Server in AWSDecember 22linuxserverdevops
  13. How to Use Sass, a CSS PreprocessorDecember 12cssdesign
  14. How to Create a Static Website with JekyllNovember 30toolsrubyjekyllstatic-sites
  15. Full Screen Navigation OverlayNovember 21cssjquerydesignnavigation
  16. Google Maps APIs for Multiple LocationsNovember 14apijavascript
  17. How to Use Bootstrap, a CSS FrameworkNovember 10cssframeworks
  18. From Cooking to CodingNovember 6cookingcareer
  19. Off Canvas NavigationNovember 2cssjquerydesignnavigation
  20. Understanding the Fundamentals of Responsive DesignOctober 31cssdesignarchitecture
  21. RSS FeedsOctober 28toolsrss
  22. Migrating a WordPress Site to a Live ServerOctober 23phpwordpress
  23. Automated Task Running in JavaScript with GruntOctober 20automationcssjavascript
  24. WordPress Tutorial: Developing a Wordpress Theme from ScratchOctober 17phpwordpress
  25. Setting Up a Local Server EnvironmentOctober 17phpserverdevops
  26. Setting Up Virtual HostsOctober 17phpserverdevops
  27. How to Create a Flexbox GridOctober 7cssdesign
  28. Responsive Dropdown Navigation BarOctober 2cssjquerydesignnavigation
  29. Basic HTML5 Skeleton FileSeptember 30html
  30. Getting Started with Git for Version ControlSeptember 24toolsgit
  31. Principal software engineer
  32. 177 posts
  33. All Projects