{"id":499,"date":"2023-10-24T13:58:43","date_gmt":"2023-10-24T10:58:43","guid":{"rendered":"https:\/\/www.genecy.com\/blog\/?p=499"},"modified":"2023-10-24T21:00:26","modified_gmt":"2023-10-24T18:00:26","slug":"redefining-template-development-the-typescript-transition","status":"publish","type":"post","link":"https:\/\/www.genecy.com\/resources\/499-redefining-template-development-the-typescript-transition\/","title":{"rendered":"Redefining Template Development: The TypeScript Transition"},"content":{"rendered":"\n<p>Hello to all creative minds who follow Genecy.com&#8217;s journey. I started Genecy.com to offer creative templates for Google Ad Manager. Our journey began in 2016 and has grown to 18 unique templates serving clients from over 50 countries.<\/p>\n\n\n\n<!--more-->\n\n\n\n<p>In the beginning, I used technologies like PHP, Node, JavaScript, HTML, and CSS to create templates. The templates were first made using JavaScript. After testing, PHP and Node modules helped to make the JavaScript code smaller and put it inside a GAM creative template file. But, as templates got more features, managing the code became hard.<\/p>\n\n\n\n<p>To fix this, I decided to start using TypeScript. This change started with rewriting our most loved template &#8211; the <a href=\"https:\/\/www.genecy.com\/gam\/templates\/parallaxer\/\">Parallaxer<\/a> (an interscroller) with TypeScript. The result was very good. TypeScript helped find more than 10 bugs, remove some not needed code, and made the code easier to read. The new TypeScript file for Parallaxer has more than 2000 lines. This shows how complicated templates could be to make the correct appearance on a lot of different website layouts on any device.<\/p>\n\n\n\n<p>I am happy to say that other templates on Genecy.com will also be rewritten in TypeScript soon. This will help in making the code more readable and less buggy. It will also help to make sure the templates work well on different website layouts and devices.<\/p>\n\n\n\n<p>I am excited about how TypeScript will help in improving our templates. I will keep looking for new ways to make Genecy.com better for you. Thank you for your support and for choosing Genecy.com for your creative template needs.<\/p>\n\n\n\n<p>Thank you,<br>Aivars Zunde Owner and Web Developer,<br>Genecy.com<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Hello to all creative minds who follow Genecy.com&#8217;s journey. I started Genecy.com to offer creative templates for Google Ad Manager. Our journey began in 2016 and has grown to 18 unique templates serving clients from over 50 countries.<\/p>\n","protected":false},"author":1,"featured_media":502,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_lmt_disableupdate":"","_lmt_disable":"","footnotes":""},"categories":[1],"tags":[],"class_list":["post-499","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-company-news"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.2 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Redefining Template Development: The TypeScript Transition - Google Ad Manager Tutorials &amp; Resources | Genecy<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.genecy.com\/resources\/499-redefining-template-development-the-typescript-transition\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Redefining Template Development: The TypeScript Transition - Google Ad Manager Tutorials &amp; Resources | Genecy\" \/>\n<meta property=\"og:description\" content=\"Hello to all creative minds who follow Genecy.com&#8217;s journey. I started Genecy.com to offer creative templates for Google Ad Manager. Our journey began in 2016 and has grown to 18 unique templates serving clients from over 50 countries.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.genecy.com\/resources\/499-redefining-template-development-the-typescript-transition\/\" \/>\n<meta property=\"og:site_name\" content=\"Google Ad Manager Tutorials &amp; Resources | Genecy\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/genecycom\/\" \/>\n<meta property=\"article:published_time\" content=\"2023-10-24T10:58:43+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-10-24T18:00:26+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.genecy.com\/resources\/wp-content\/uploads\/2023\/10\/img2_bugs.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1456\" \/>\n\t<meta property=\"og:image:height\" content=\"816\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Genecy Team\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@genecy_com\" \/>\n<meta name=\"twitter:site\" content=\"@genecy_com\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Genecy Team\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"2 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.genecy.com\/resources\/499-redefining-template-development-the-typescript-transition\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.genecy.com\/resources\/499-redefining-template-development-the-typescript-transition\/\"},\"author\":{\"name\":\"Genecy Team\",\"@id\":\"https:\/\/www.genecy.com\/resources\/#\/schema\/person\/784f000634e575eac8ba17713028c687\"},\"headline\":\"Redefining Template Development: The TypeScript Transition\",\"datePublished\":\"2023-10-24T10:58:43+00:00\",\"dateModified\":\"2023-10-24T18:00:26+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.genecy.com\/resources\/499-redefining-template-development-the-typescript-transition\/\"},\"wordCount\":278,\"commentCount\":0,\"image\":{\"@id\":\"https:\/\/www.genecy.com\/resources\/499-redefining-template-development-the-typescript-transition\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.genecy.com\/resources\/wp-content\/uploads\/2023\/10\/img2_bugs.jpg\",\"articleSection\":[\"Company News\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.genecy.com\/resources\/499-redefining-template-development-the-typescript-transition\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.genecy.com\/resources\/499-redefining-template-development-the-typescript-transition\/\",\"url\":\"https:\/\/www.genecy.com\/resources\/499-redefining-template-development-the-typescript-transition\/\",\"name\":\"Redefining Template Development: The TypeScript Transition - Google Ad Manager Tutorials &amp; Resources | Genecy\",\"isPartOf\":{\"@id\":\"https:\/\/www.genecy.com\/resources\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.genecy.com\/resources\/499-redefining-template-development-the-typescript-transition\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.genecy.com\/resources\/499-redefining-template-development-the-typescript-transition\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.genecy.com\/resources\/wp-content\/uploads\/2023\/10\/img2_bugs.jpg\",\"datePublished\":\"2023-10-24T10:58:43+00:00\",\"dateModified\":\"2023-10-24T18:00:26+00:00\",\"author\":{\"@id\":\"https:\/\/www.genecy.com\/resources\/#\/schema\/person\/784f000634e575eac8ba17713028c687\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.genecy.com\/resources\/499-redefining-template-development-the-typescript-transition\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.genecy.com\/resources\/499-redefining-template-development-the-typescript-transition\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.genecy.com\/resources\/499-redefining-template-development-the-typescript-transition\/#primaryimage\",\"url\":\"https:\/\/www.genecy.com\/resources\/wp-content\/uploads\/2023\/10\/img2_bugs.jpg\",\"contentUrl\":\"https:\/\/www.genecy.com\/resources\/wp-content\/uploads\/2023\/10\/img2_bugs.jpg\",\"width\":1456,\"height\":816},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.genecy.com\/resources\/499-redefining-template-development-the-typescript-transition\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.genecy.com\/resources\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Redefining Template Development: The TypeScript Transition\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.genecy.com\/resources\/#website\",\"url\":\"https:\/\/www.genecy.com\/resources\/\",\"name\":\"Google Ad Manager Tutorials &amp; Resources | Genecy\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.genecy.com\/resources\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.genecy.com\/resources\/#\/schema\/person\/784f000634e575eac8ba17713028c687\",\"name\":\"Genecy Team\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/secure.gravatar.com\/avatar\/c21246161fe33fc0f26a360b7c31f84abc26b853013b0eee676ca62c707efc5c?s=96&d=mm&r=g\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/c21246161fe33fc0f26a360b7c31f84abc26b853013b0eee676ca62c707efc5c?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/c21246161fe33fc0f26a360b7c31f84abc26b853013b0eee676ca62c707efc5c?s=96&d=mm&r=g\",\"caption\":\"Genecy Team\"},\"url\":\"#\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Redefining Template Development: The TypeScript Transition - Google Ad Manager Tutorials &amp; Resources | Genecy","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.genecy.com\/resources\/499-redefining-template-development-the-typescript-transition\/","og_locale":"en_US","og_type":"article","og_title":"Redefining Template Development: The TypeScript Transition - Google Ad Manager Tutorials &amp; Resources | Genecy","og_description":"Hello to all creative minds who follow Genecy.com&#8217;s journey. I started Genecy.com to offer creative templates for Google Ad Manager. Our journey began in 2016 and has grown to 18 unique templates serving clients from over 50 countries.","og_url":"https:\/\/www.genecy.com\/resources\/499-redefining-template-development-the-typescript-transition\/","og_site_name":"Google Ad Manager Tutorials &amp; Resources | Genecy","article_publisher":"https:\/\/www.facebook.com\/genecycom\/","article_published_time":"2023-10-24T10:58:43+00:00","article_modified_time":"2023-10-24T18:00:26+00:00","og_image":[{"width":1456,"height":816,"url":"https:\/\/www.genecy.com\/resources\/wp-content\/uploads\/2023\/10\/img2_bugs.jpg","type":"image\/jpeg"}],"author":"Genecy Team","twitter_card":"summary_large_image","twitter_creator":"@genecy_com","twitter_site":"@genecy_com","twitter_misc":{"Written by":"Genecy Team","Est. reading time":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.genecy.com\/resources\/499-redefining-template-development-the-typescript-transition\/#article","isPartOf":{"@id":"https:\/\/www.genecy.com\/resources\/499-redefining-template-development-the-typescript-transition\/"},"author":{"name":"Genecy Team","@id":"https:\/\/www.genecy.com\/resources\/#\/schema\/person\/784f000634e575eac8ba17713028c687"},"headline":"Redefining Template Development: The TypeScript Transition","datePublished":"2023-10-24T10:58:43+00:00","dateModified":"2023-10-24T18:00:26+00:00","mainEntityOfPage":{"@id":"https:\/\/www.genecy.com\/resources\/499-redefining-template-development-the-typescript-transition\/"},"wordCount":278,"commentCount":0,"image":{"@id":"https:\/\/www.genecy.com\/resources\/499-redefining-template-development-the-typescript-transition\/#primaryimage"},"thumbnailUrl":"https:\/\/www.genecy.com\/resources\/wp-content\/uploads\/2023\/10\/img2_bugs.jpg","articleSection":["Company News"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.genecy.com\/resources\/499-redefining-template-development-the-typescript-transition\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.genecy.com\/resources\/499-redefining-template-development-the-typescript-transition\/","url":"https:\/\/www.genecy.com\/resources\/499-redefining-template-development-the-typescript-transition\/","name":"Redefining Template Development: The TypeScript Transition - Google Ad Manager Tutorials &amp; Resources | Genecy","isPartOf":{"@id":"https:\/\/www.genecy.com\/resources\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.genecy.com\/resources\/499-redefining-template-development-the-typescript-transition\/#primaryimage"},"image":{"@id":"https:\/\/www.genecy.com\/resources\/499-redefining-template-development-the-typescript-transition\/#primaryimage"},"thumbnailUrl":"https:\/\/www.genecy.com\/resources\/wp-content\/uploads\/2023\/10\/img2_bugs.jpg","datePublished":"2023-10-24T10:58:43+00:00","dateModified":"2023-10-24T18:00:26+00:00","author":{"@id":"https:\/\/www.genecy.com\/resources\/#\/schema\/person\/784f000634e575eac8ba17713028c687"},"breadcrumb":{"@id":"https:\/\/www.genecy.com\/resources\/499-redefining-template-development-the-typescript-transition\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.genecy.com\/resources\/499-redefining-template-development-the-typescript-transition\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.genecy.com\/resources\/499-redefining-template-development-the-typescript-transition\/#primaryimage","url":"https:\/\/www.genecy.com\/resources\/wp-content\/uploads\/2023\/10\/img2_bugs.jpg","contentUrl":"https:\/\/www.genecy.com\/resources\/wp-content\/uploads\/2023\/10\/img2_bugs.jpg","width":1456,"height":816},{"@type":"BreadcrumbList","@id":"https:\/\/www.genecy.com\/resources\/499-redefining-template-development-the-typescript-transition\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.genecy.com\/resources\/"},{"@type":"ListItem","position":2,"name":"Redefining Template Development: The TypeScript Transition"}]},{"@type":"WebSite","@id":"https:\/\/www.genecy.com\/resources\/#website","url":"https:\/\/www.genecy.com\/resources\/","name":"Google Ad Manager Tutorials &amp; Resources | Genecy","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.genecy.com\/resources\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/www.genecy.com\/resources\/#\/schema\/person\/784f000634e575eac8ba17713028c687","name":"Genecy Team","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/c21246161fe33fc0f26a360b7c31f84abc26b853013b0eee676ca62c707efc5c?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/c21246161fe33fc0f26a360b7c31f84abc26b853013b0eee676ca62c707efc5c?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/c21246161fe33fc0f26a360b7c31f84abc26b853013b0eee676ca62c707efc5c?s=96&d=mm&r=g","caption":"Genecy Team"},"url":"#"}]}},"modified_by":"Genecy Team","_links":{"self":[{"href":"https:\/\/www.genecy.com\/resources\/wp-json\/wp\/v2\/posts\/499","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.genecy.com\/resources\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.genecy.com\/resources\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.genecy.com\/resources\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.genecy.com\/resources\/wp-json\/wp\/v2\/comments?post=499"}],"version-history":[{"count":3,"href":"https:\/\/www.genecy.com\/resources\/wp-json\/wp\/v2\/posts\/499\/revisions"}],"predecessor-version":[{"id":507,"href":"https:\/\/www.genecy.com\/resources\/wp-json\/wp\/v2\/posts\/499\/revisions\/507"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.genecy.com\/resources\/wp-json\/wp\/v2\/media\/502"}],"wp:attachment":[{"href":"https:\/\/www.genecy.com\/resources\/wp-json\/wp\/v2\/media?parent=499"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.genecy.com\/resources\/wp-json\/wp\/v2\/categories?post=499"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.genecy.com\/resources\/wp-json\/wp\/v2\/tags?post=499"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}