From bf0d1c810ed91e0f4a63a0e8500cef6e86648efd Mon Sep 17 00:00:00 2001 From: = Date: Wed, 2 Sep 2026 09:11:35 +1000 Subject: [PATCH] Updating google tag and bio --- data/config.js | 2 +- gatsby-browser.js | 16 ++++++++- gatsby-config.js | 12 +++---- gatsby-ssr.js | 27 ++++++++++++++ package.json | 1 - src/components/about/Details/index.jsx | 46 ++++++++++++------------ src/components/common/Speaking/index.jsx | 20 +++++------ src/components/landing/Intro/index.jsx | 18 +++++----- yarn.lock | 13 ------- 9 files changed, 87 insertions(+), 68 deletions(-) create mode 100644 gatsby-ssr.js diff --git a/data/config.js b/data/config.js index 2e18dcb..938fef1 100644 --- a/data/config.js +++ b/data/config.js @@ -11,7 +11,7 @@ module.exports = { shortName: 'Yas', siteGithubRepo: 'https://github.com/yashints/yashints.dev', authorDescription: - 'A front end lead engineer, international speaker, blogger and a hiker.', + 'GenAI guru and Principal Software Engineer at Atlassian, making the dev loop calmer and Jira a little smarter.', socialLinks: { twitter: 'http://www.twitter.com/yashints', github: 'https://github.com/yashints', diff --git a/gatsby-browser.js b/gatsby-browser.js index 705222f..3f18a32 100644 --- a/gatsby-browser.js +++ b/gatsby-browser.js @@ -1,9 +1,23 @@ export const onServiceWorkerUpdateReady = () => window.location.reload(true); require('prismjs/themes/prism-solarizedlight.css'); require('prismjs/plugins/line-numbers/prism-line-numbers.css'); +const config = require('./data/config'); +let isInitialRoute = true; -export const onRouteUpdate = () => { +export const onRouteUpdate = ({ location }) => { if (typeof window !== `undefined`) { window.scrollTo(0, 0); + + if (isInitialRoute) { + isInitialRoute = false; + return; + } + + if (window.gtag && process.env.NODE_ENV === 'production') { + window.gtag('config', config.googleAnalyticsID, { + page_path: location.pathname + location.search + location.hash, + send_page_view: true, + }); + } } }; diff --git a/gatsby-config.js b/gatsby-config.js index e0a20cf..d158d7a 100644 --- a/gatsby-config.js +++ b/gatsby-config.js @@ -180,17 +180,13 @@ module.exports = { domain: 'https://www.google-analytics.com', crossOrigin: true, }, + { + domain: 'https://www.googletagmanager.com', + crossOrigin: true, + }, ], }, }, - { - resolve: 'gatsby-plugin-google-tagmanager', - options: { - id: config.googleAnalyticsID, - includeInDevelopment: false, - defaultDataLayer: { platform: 'gatsby' }, - }, - }, { resolve: 'gatsby-plugin-nprogress', options: { diff --git a/gatsby-ssr.js b/gatsby-ssr.js new file mode 100644 index 0000000..2e43504 --- /dev/null +++ b/gatsby-ssr.js @@ -0,0 +1,27 @@ +const React = require('react'); +const config = require('./data/config'); + +exports.onRenderBody = ({ setHeadComponents }) => { + if (process.env.NODE_ENV !== 'production') { + return; + } + + setHeadComponents([ + React.createElement('script', { + key: 'google-tag-script', + async: true, + src: `https://www.googletagmanager.com/gtag/js?id=${config.googleAnalyticsID}`, + }), + React.createElement('script', { + key: 'google-tag-config', + dangerouslySetInnerHTML: { + __html: ` + window.dataLayer = window.dataLayer || []; + function gtag(){dataLayer.push(arguments);} + gtag('js', new Date()); + gtag('config', '${config.googleAnalyticsID}'); + `, + }, + }), + ]); +}; diff --git a/package.json b/package.json index 85c9f7a..ebcf95a 100644 --- a/package.json +++ b/package.json @@ -24,7 +24,6 @@ "gatsby-plugin-catch-links": "^5.13.1", "gatsby-plugin-disqus": "^1.2.6", "gatsby-plugin-feed": "^5.13.1", - "gatsby-plugin-google-tagmanager": "^5.13.1", "gatsby-plugin-image": "^3.13.1", "gatsby-plugin-manifest": "^5.13.1", "gatsby-plugin-netlify": "^5.1.1", diff --git a/src/components/about/Details/index.jsx b/src/components/about/Details/index.jsx index 009befa..8345cc2 100644 --- a/src/components/about/Details/index.jsx +++ b/src/components/about/Details/index.jsx @@ -7,36 +7,34 @@ export const Details = () => { return ( - As a seasoned software engineering lead at{' '} - - {' '} - InnovateGPT Group + By day, I'm a GenAI guru and Principal Software Engineer at{' '} + + Atlassian - , I thrive on the intersection of human ingenuity and technological - innovation. When not crafting elegant solutions powered by GenAI, you can find me exploring the latest - advancements in AI, cloud computing, and software engineering. + , which mostly means teaching AI to be useful before it gets too + confident. I work on bringing calm to the madness of the developer loop + and shipping AI-powered features in Jira. My happy place is where + product engineering, developer experience, and useful AI stop arguing + and start helping people get work done. - My tech toolkit includes HTML, CSS, JavaScript, TypeScript, C#, and a - range of frameworks and libraries that enable me to tackle complex - problems on both frontend and backend. I've successfully applied my - skills to build scalable, high-performing web solutions using React.js, - Angular.js, Node, Next.js, and DotNet. - - - With a passion for problem-solving and a knack for learning, I'm always - on the lookout for new challenges and opportunities to grow. Whether - it's harnessing the power of GenAI, working on (progressive) web apps, optimizing - Client-side APIs for seamless user experiences, or utilising machine - learning algorithms to drive intelligent solutions – I'm all about - pushing the boundaries of what's possible. + I have a suspicious amount of fun translating scary-looking technology + into "oh, I get it now" moments. Sometimes that happens on conference + stages, sometimes in blog posts or mentoring chats, and sometimes while + politely convincing GenAI, browser APIs, and software architecture to + behave like they are all on the same team. - In my free time, you'll find me staying up-to-date with the latest - developments in web development, AI, and cloud computing. I'm fascinated - by the potential of WebAssembly, Client-side APIs, and other emerging - technologies to transform the way we build and interact with software. + Outside work, I'm usually learning, writing, hiking, or tinkering with a + new idea before it has fully agreed to become a project. I am still + fascinated by WebAssembly, browser APIs, AI-assisted development, and + all the small details that make software feel a little more magical and + a lot less exhausting. ); diff --git a/src/components/common/Speaking/index.jsx b/src/components/common/Speaking/index.jsx index edeb468..238863b 100644 --- a/src/components/common/Speaking/index.jsx +++ b/src/components/common/Speaking/index.jsx @@ -163,25 +163,25 @@ export const Speaking = ({ events }) => {

Bio

- Although it doesn’t look like it, Yaser is an almond croissant addict - cleverly disguised as a successful web developer. Since it was - relatively clear early on that it would be slightly more than - difficult to make a living out of thin air, he’s focused his energy on - the web, which happily has proven itself to be a wonderful decision. + Although it doesn’t look like it, Yas is an almond croissant addict + cleverly disguised as a GenAI guru. He is a Principal Software + Engineer at Atlassian, where he works on bringing calm to the madness + of the developer loop and shipping AI-powered features in Jira.