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 (
- 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.
- Meet Yas — AKA “{config.siteTitle}”—the software whiz who codes - with heart, travels the globe sprouting tech wisdom, and still finds - time to hike and blog about it all.{' '} + Meet Yas, AKA "{config.siteTitle}", a GenAI guru and Principal + Software Engineer at Atlassian who spends his days bringing calm to + the glorious madness of the developer loop and shipping AI-powered + features in Jira.
- He’s not just mapping out cutting-edge solutions; he’s ensuring those - solutions actually make people’s lives better. Almond croissants might - be his kryptonite, but demystifying complex code for conference - audiences? That’s where he truly shines. From dreamer in a café to - top-tier tech maestro, Yas is proof that passion, communication, and a - dash of pastry-fuelled creativity can change the world—one line of - code at a time. + He likes sharp architecture, helpful automation, boringly reliable + systems, and the tiny product details that make engineers quietly say + "oh, nice". Almond croissants remain a serious vulnerability, but so + does a messy workflow begging for a clever AI nudge.