# hashinteractive.com > AI-optimized mirror of hashinteractive.com containing 25 pages totalling 8,247 words of clean markdown content, structured data, and semantic HTML. Original source: https://hashinteractive.com/. Last updated: 2026-06-15T09:47:32.462Z. Each page is available as HTML (with JSON-LD structured data) and Markdown (text-only, ideal for LLMs and RAG). ## Homepage - [code](/content/site-root.html): Hash Interactive is a software company specializing in UI/UX design and internet technologies. We build scalable software with progressive web frameworks. (578 words) ## Articles & Blog Posts - [blog/how-to-use-nuxt-amp-module-to-create-accelerated-mobile-pages.html](/content/blog/how-to-use-nuxt-amp-module-to-create-accelerated-mobile-pages.html) (1 words) - [blog/mongodump-and-mongorestore-vs-mongoexport-and-mongoimport.html](/content/blog/mongodump-and-mongorestore-vs-mongoexport-and-mongoimport.html) (1 words) - [blog/strapi-ecommerce-product-variations-generator/index.html](/content/blog/strapi-ecommerce-product-variations-generator/index.html) (1 words) - [blog/building-a-website-with-gatsby-strapi-cms/index.html](/content/blog/building-a-website-with-gatsby-strapi-cms/index.html) (1 words) - [blog/understanding-react-context-api/index.html](/content/blog/understanding-react-context-api/index.html) (1 words) - [blog/nuxt-graphql-authentication-with-strapi/index.html](/content/blog/nuxt-graphql-authentication-with-strapi/index.html) (1 words) - [blog/search-engine-optimization-the-hard-truth/index.html](/content/blog/search-engine-optimization-the-hard-truth/index.html) (1 words) - [blog/headless-wordpress-jwt-vue-authentication/index.html](/content/blog/headless-wordpress-jwt-vue-authentication/index.html) (1 words) - [blog/strapi-mailchimp-service-add-contact-to-list/index.html](/content/blog/strapi-mailchimp-service-add-contact-to-list/index.html) (1 words) - [blog/strapi-customize-graphql-schema-example/index.html](/content/blog/strapi-customize-graphql-schema-example/index.html) (1 words) - [blog/gatsby-data-relationships-with-foreign-key-fields/index.html](/content/blog/gatsby-data-relationships-with-foreign-key-fields/index.html) (1 words) - [blog/gatsby-authentication-with-strapi-io/index.html](/content/blog/gatsby-authentication-with-strapi-io/index.html) (1 words) - [blog/complete-guide-to-webpack-configuration-for-react/index.html](/content/blog/complete-guide-to-webpack-configuration-for-react/index.html) (1 words) - [blog/update-strapi-beta-to-strapi-stable-community-edition.html](/content/blog/update-strapi-beta-to-strapi-stable-community-edition.html) (1 words) - [Gatsby Change Color Mode With Theme UI](/content/blog/gatsby-change-color-mode-with-theme-ui/index.html): Theme UI is a JavaScript library for creating constraint-based user interfaces. It has a number of advantages over vanilla CSS because of the dynamic JavaScript layer that allows intelligent component styling. The Theme UI library also comes with some React hooks that makes theming in React a breeze. Today we’re going to walk through dynamically changing the color mode of your theme on the fly in your Gatsby site. (1,103 words) - [Netlify Form Notification SMS Text Message](/content/blog/netlify-form-notification-sms-text-message/index.html): Wouldn’t it be cool if you received your Netlify contact form submissions to your cell phone, notifying you of a hot lead? This type of push notification relieves you of hanging around your email all day, afraid of losing a lead to a competitor. Research found the odds of making a successful contact with a […] (1,494 words) - [Saying Goodbye to WordPress](/content/blog/saying-goodbye-to-wordpress/index.html): WordPress has captured over 30% of internet market share over the last 15 years since it’s inception. This has been an impressive feat and has added a lot of value to the internet ecosystem as a whole. However, as they say “all good things must come to an end”. It’s not that WordPress is incapable of creating a good website, rather there are technology advancements that are superior to the WordPress CMS. We discuss the security and performance issues related to WordPress and our decision to move our technology stack away from WordPress towards contemporary development practices in order to better serve our clients. (1,278 words) - [Headless WordPress Category Rest API](/content/blog/headless-wordpress-category-rest-api/index.html): We recently moved from a monolithic WordPress CMS website to a JAMStack setup built on Nuxt.js, CI/CD hosted on Netlify and supported by Strapi.io. Yet, we haven’t made the full transition away from WordPress as we’re still managing our blog content through the platform. Instead of running WordPress in a traditional monolithic CMS, we moved […] (1,081 words) - [Strapi Rename Field in Mongo Database](/content/blog/strapi-rename-field-in-mongo-database/index.html): Currently when renaming a field in a Strapi content type, Strapi creates a new field in our database instead of updating the current field we are trying to change. Strapi does not rename or drop anything it will only create at this time. Migrations need to be done manually. This tutorial walks through updating the field in Strapi and in our MongoDB to preserve the data of previously defined content records. (560 words) - [Google Vision API Quickstart](/content/blog/google-vision-api-quickstart/index.html): In order to use the Google Vision API which is part of the Google Cloud Platform, there are a few steps you need to take in order to get up and running and use the command line SDK. Create a Google Platform Account If you don’t already have an account you can signup by going […] (866 words) - [Strapi Change Admin Password in Mongo Database](/content/blog/strapi-change-admin-password-in-mongo-database/index.html): Strapi.io is a Headless CMS system that offers robust user and permissions out of the box including: user registration, user login, user password reset and user roles. The user password reset works by using a generator that generates a one time code to send to the user’s email and in which you can use to […] (481 words) - [GraphQL Recursive Query with Fragments](/content/blog/graphql-recursive-query-with-fragments/index.html): Although the GraphQL spec does not allow for recursive query definitions, we are able to extrapolate the subfield definitions into fragments and compose a recursive fragment definition that we can easily use in our Graph query definition. This article walks you through defining your recursive fragment and how to implement the fragment inside your query. (640 words) - [Linux Tar Zip Exclude Directory](/content/blog/linux-tar-zip-exclude-directory/index.html): Sometimes it’s nice if you are tar zipping a directory (let’s say for a backup) and want to exclude a directory. For instance, if you are backing up a project and want to exclude the images directory (for size) or exclude the build or dist directory you can run the linux tar command with the […] (151 words) - [sitemap-xml.html](/content/sitemap-xml.html) (1 words) ## Resources - [Full Page Index](/index.html): Browse all cached pages with rich metadata - [About This Cache](/content/about.html): Methodology, technical details, and usage guidelines - [XML Sitemap](/sitemap.xml): Machine-readable sitemap for crawler discovery - [Robots.txt](/robots.txt): Crawler directives