{"componentChunkName":"component---src-templates-tag-page-tsx","path":"/tag/angular/","result":{"data":{"allContentfulCategory":{"edges":[{"node":{"contentful_id":"2gOurgpDj1BasZvVToN13z","slug":"tiny-sparks","title":"The Tiny Way","description":{"description":"Understand the Tiny Way - our heritage, values-driven approach and thinking through stories from and about Tiny people and culture, technology and the world at large."}}},{"node":{"contentful_id":"2a3w396SgR2Fl1ep4eYu0w","slug":"product-management","title":"Product-Led Growth","description":{"description":"Everything from product roadmaps and market fit, through customer acquisition and onboarding to retention and product-led growth, can be found here to help you grow your brand, company and product."}}},{"node":{"contentful_id":"T7VZcLaLRpt6XlNLJPLmL","slug":"wysiwyg-world","title":"World of WYSIWYG","description":{"description":"Learn about the WYSIWYG world of rich text editors - the power behind the democratization of content creation, web applications and SaaS projects."}}},{"node":{"contentful_id":"6HNYGjOUjHzUS2gXBnMVXn","slug":"design-and-ux","title":"Content Marketing & Design","description":{"description":"Be at the forefront of content design trends, get inspiration for your projects and learn new ways to use content marketing strategies and content-led approaches that deliver brilliant user experiences."}}},{"node":{"contentful_id":"6XFMYLCe4AEYIDazkjGFvb","slug":"engineering","title":"Developer Insights","description":{"description":"The perfect source for all web application and software developers, as well as engineering teams who want to stay up to date with the latest development tools, developer insights, leading edge thinking and experiments."}}},{"node":{"contentful_id":"24ufWIsR0ImSvxvvIrutB5","slug":"open-source","title":"Open Source","description":{"description":"Having a vibrant open source community is a vital part of TinyMCE, so you'll find important open source contribution news here – both from our own community, and from other open source projects in global communities."}}},{"node":{"contentful_id":"2fLgNI8yOMeZHNl1nSQ11","slug":"how-tos-and-tutorials","title":"How-to Use TinyMCE","description":{"description":"Learn how-to use TinyMCE rich text editor, all in one place – here's our set-up tips, tricks, FAQs, updates and new releases, customisations, ideas on things to build and easy migration from other text editing platforms."}}}]},"allContentfulBlogPost":{"edges":[{"node":{"title":"How to add images in Angular apps with Media Optimizer in TinyMCE","slug":"angular-image-upload","featured":true,"lastUpdated":"Dec 30th, 2025","description":{"description":"<p>Enable Angular image upload with TinyMCE and Media Optimizer. Follow our tutorial to set up image and video optimization.</p>","childMarkdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Enable Angular image upload with TinyMCE and Media Optimizer. Follow our tutorial to set up image and video optimization."}]}],"data":{"quirksMode":false}}}},"heroImage":{"alt":"How to add images in Angular apps with Media Optimizer in TinyMCE","artistName":null,"image":{"fluid":{"base64":"data:image/jpeg;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAALCAMAAABI111xAAABqlBMVEUJElQJE1QABk8AB08ABk4ABE4ABU4ACE8KE1QJElMHEVMACFAAAE0AAE4ACFEABVMABlIAB1AEDlEAAEwBCE8AAEsAAEkAAEoAA1EAC1UbJlwQHVkAD1UABE8AAEZiY3mSkp6GhJOBf4+Oi5mTkZ2MipeUk5+Ukp9VUm5CRWm5ucCPkJwAAFUIE1QEDVBeXHRrd4k0aYA3aYA/bYQ8YXo5bINOcIVMdIghZ4AAHlk7PmSpqbJ/gI8AAFMDEVQABU9EVXFEbYMAZH4AaYEAY30AXXkAbYUAXnkATW0AS2sAHlYAAFQAB1YAE1cAB1UADVcAEVUABFAAAEcLSmomcYcvcIYmYns7dos1cIYAYHoAX3oAJVcBAFALG1kUJF0EFlkOHFpvcIN2d4gtM2AAAFJjYXh/fY2Ni5mamaSenaiIhpUSAE0FB1MQTnAKV3URIV0AF1qAgZCRkZ0jK10PE1ERE1EYGlMqK1kYGlIZG1MAAk4EDFMRLl8QOGQIFlcADlYrMV85PmUADFUABVEBCU8BCVADCVIDCFIBCVEACVEAAVIDD1QIEVMAB06fs+E0AAAAmklEQVQIHU3BPw7BYBzH4e9Hf9pXLa2uYhBHMEgkbO7iDGK1uYAzuIFF0s3uCAwSEQPRxN+XEM+DQG9IwM0EFgN6SOJyqwJnxQcyCift04BrGW9rosHPpo63NlPCV4qX93IaTf4cE16szddiABmeqcbb/JQmfKyCXcd5s+HSuu6jRQyKChV3G+NNRiDnLAz7pSB6KdnUwrKrPAEFuRzdtqYwWQAAAABJRU5ErkJggg==","aspectRatio":1.7824074074074074,"src":"//images.ctfassets.net/s600jj41gsex/4wdbeQyBx8YRpDWFaUIubn/3701125d5aedc2f9a055751527b08a6e/How_to_add_images_in_Angular_apps_with_Media_Optimizer_in_TinyMCE.png?w=739&q=50&fit=scale","srcSet":"//images.ctfassets.net/s600jj41gsex/4wdbeQyBx8YRpDWFaUIubn/3701125d5aedc2f9a055751527b08a6e/How_to_add_images_in_Angular_apps_with_Media_Optimizer_in_TinyMCE.png?w=185&h=104&q=50&fit=scale 185w,\n//images.ctfassets.net/s600jj41gsex/4wdbeQyBx8YRpDWFaUIubn/3701125d5aedc2f9a055751527b08a6e/How_to_add_images_in_Angular_apps_with_Media_Optimizer_in_TinyMCE.png?w=370&h=208&q=50&fit=scale 370w,\n//images.ctfassets.net/s600jj41gsex/4wdbeQyBx8YRpDWFaUIubn/3701125d5aedc2f9a055751527b08a6e/How_to_add_images_in_Angular_apps_with_Media_Optimizer_in_TinyMCE.png?w=739&h=415&q=50&fit=scale 739w,\n//images.ctfassets.net/s600jj41gsex/4wdbeQyBx8YRpDWFaUIubn/3701125d5aedc2f9a055751527b08a6e/How_to_add_images_in_Angular_apps_with_Media_Optimizer_in_TinyMCE.png?w=1109&h=622&q=50&fit=scale 1109w,\n//images.ctfassets.net/s600jj41gsex/4wdbeQyBx8YRpDWFaUIubn/3701125d5aedc2f9a055751527b08a6e/How_to_add_images_in_Angular_apps_with_Media_Optimizer_in_TinyMCE.png?w=1478&h=829&q=50&fit=scale 1478w,\n//images.ctfassets.net/s600jj41gsex/4wdbeQyBx8YRpDWFaUIubn/3701125d5aedc2f9a055751527b08a6e/How_to_add_images_in_Angular_apps_with_Media_Optimizer_in_TinyMCE.png?w=1925&h=1080&q=50&fit=scale 1925w","srcWebp":"//images.ctfassets.net/s600jj41gsex/4wdbeQyBx8YRpDWFaUIubn/3701125d5aedc2f9a055751527b08a6e/How_to_add_images_in_Angular_apps_with_Media_Optimizer_in_TinyMCE.png?w=739&q=50&fm=webp&fit=scale","srcSetWebp":"//images.ctfassets.net/s600jj41gsex/4wdbeQyBx8YRpDWFaUIubn/3701125d5aedc2f9a055751527b08a6e/How_to_add_images_in_Angular_apps_with_Media_Optimizer_in_TinyMCE.png?w=185&h=104&q=50&fm=webp&fit=scale 185w,\n//images.ctfassets.net/s600jj41gsex/4wdbeQyBx8YRpDWFaUIubn/3701125d5aedc2f9a055751527b08a6e/How_to_add_images_in_Angular_apps_with_Media_Optimizer_in_TinyMCE.png?w=370&h=208&q=50&fm=webp&fit=scale 370w,\n//images.ctfassets.net/s600jj41gsex/4wdbeQyBx8YRpDWFaUIubn/3701125d5aedc2f9a055751527b08a6e/How_to_add_images_in_Angular_apps_with_Media_Optimizer_in_TinyMCE.png?w=739&h=415&q=50&fm=webp&fit=scale 739w,\n//images.ctfassets.net/s600jj41gsex/4wdbeQyBx8YRpDWFaUIubn/3701125d5aedc2f9a055751527b08a6e/How_to_add_images_in_Angular_apps_with_Media_Optimizer_in_TinyMCE.png?w=1109&h=622&q=50&fm=webp&fit=scale 1109w,\n//images.ctfassets.net/s600jj41gsex/4wdbeQyBx8YRpDWFaUIubn/3701125d5aedc2f9a055751527b08a6e/How_to_add_images_in_Angular_apps_with_Media_Optimizer_in_TinyMCE.png?w=1478&h=829&q=50&fm=webp&fit=scale 1478w,\n//images.ctfassets.net/s600jj41gsex/4wdbeQyBx8YRpDWFaUIubn/3701125d5aedc2f9a055751527b08a6e/How_to_add_images_in_Angular_apps_with_Media_Optimizer_in_TinyMCE.png?w=1925&h=1080&q=50&fm=webp&fit=scale 1925w","sizes":"(max-width: 739px) 100vw, 739px"}}},"author":{"name":"Coco Poley","slug":"coco-poley"},"category":{"title":"How-to Use TinyMCE","slug":"how-tos-and-tutorials"},"metaTitle":{"metaTitle":"Angular image upload tutorial: examples how to add images | TinyMCE"},"metaDescription":{"metaDescription":"Enable Angular image upload with TinyMCE and Media Optimizer. Follow our tutorial to set up image and video optimization."}}},{"node":{"title":"How to Build a CMS with TinyMCE: Angular CMS Tutorial","slug":"how-to-build-cms-with-tinymce","featured":true,"lastUpdated":"Sep 25th, 2025","description":{"description":"<p>Learn How to build a CMS with TinyMCE in this Angular CMS tutorial. Integrate the editor, add Comments, Mentions, Suggested Edits and AI locally.</p>","childMarkdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Learn How to build a CMS with TinyMCE in this Angular CMS tutorial. Integrate the editor, add Comments, Mentions, Suggested Edits and AI locally."}]}],"data":{"quirksMode":false}}}},"heroImage":{"alt":"How to build a CMS with TinyMCE","artistName":null,"image":{"fluid":{"base64":"data:image/jpeg;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAALCAMAAABI111xAAABs1BMVEUIElMIEVMABk8AB08ACE8AB04ABU4JElMABlAABk4HEVMAB1AAAE0AAE4AA04ABk8ACE8ACVADC1IDC1MACVEACFADB1IGDlQJElQAAEwAAEoAAEUAAEkABU4AB08EDVMTL2ERNWYFElUAA1AHElURP2oSL2IBBlFtbYCfnqmWlaGMjJmAf44AAEgABk4EDFMTN2YOPm8AElkAAFEAFFoOSXUSNmgCBlEAAEc2RGZeaX9hb4ZSXnlSWXYAMGgANG4AJGEFEVQAEVk7P2Z9fo9ARGkAD1kED1QABlAAAEYAS24AaooAZ48AWYcASoAAVZAAXKAAPYIAAEMABE8ABFEAAFJ5eozR0dV4eYwAAFMABFBNTmuFh5WHiJdyc4aDhJN6eouSkp+QkZ1/f44DD1QLF1gAF1ozOGJnaH8rMmECHlwJGFdXV3GKipiDg5JiYnh8fIyMjZqFhpR2d4gACFIPHloHSHAMPGsOS3QSOGoDB1EAAEQAAEIAAVERH1oJQm8PPG8IE1YHElQSLWIRJV4BCFEIElQBC1EAAk4AAU4ABE4IFFUMGFgMF1cEDlIBCVAFDlMb5boOAAAACnRSTlP+/v7+/v7+/v7+LPRBhQAAAJxJREFUCB01wTsOAVEAhtH/Y5CIO4xEpVBolArFbEBEawOiFhuwC9FYiYKo7EEyLT3JUHhfFzPnIEBCX9biPEQRECAJ55kDvPLZh3ccEMsnVTd8nV61fYNUSCLyLm0SfVKrHn9bTwEJG/B3JOzgxGV+1s2gCpQqQ20OGtlNFydqAZnp2JjdJJ75g4VxliZTmlO4ZZGskLX5O9j8VR8wHSdXkvXT1wAAAABJRU5ErkJggg==","aspectRatio":1.780758556891767,"src":"//images.ctfassets.net/s600jj41gsex/21CPrWsQB1G4CoRnfAKZXU/f5380c3028984825d75d90e47774e385/How_to_build_a_CMS_with_TinyMCE.png?w=739&q=50&fit=scale","srcSet":"//images.ctfassets.net/s600jj41gsex/21CPrWsQB1G4CoRnfAKZXU/f5380c3028984825d75d90e47774e385/How_to_build_a_CMS_with_TinyMCE.png?w=185&h=104&q=50&fit=scale 185w,\n//images.ctfassets.net/s600jj41gsex/21CPrWsQB1G4CoRnfAKZXU/f5380c3028984825d75d90e47774e385/How_to_build_a_CMS_with_TinyMCE.png?w=370&h=208&q=50&fit=scale 370w,\n//images.ctfassets.net/s600jj41gsex/21CPrWsQB1G4CoRnfAKZXU/f5380c3028984825d75d90e47774e385/How_to_build_a_CMS_with_TinyMCE.png?w=739&h=415&q=50&fit=scale 739w,\n//images.ctfassets.net/s600jj41gsex/21CPrWsQB1G4CoRnfAKZXU/f5380c3028984825d75d90e47774e385/How_to_build_a_CMS_with_TinyMCE.png?w=1109&h=623&q=50&fit=scale 1109w,\n//images.ctfassets.net/s600jj41gsex/21CPrWsQB1G4CoRnfAKZXU/f5380c3028984825d75d90e47774e385/How_to_build_a_CMS_with_TinyMCE.png?w=1478&h=830&q=50&fit=scale 1478w,\n//images.ctfassets.net/s600jj41gsex/21CPrWsQB1G4CoRnfAKZXU/f5380c3028984825d75d90e47774e385/How_to_build_a_CMS_with_TinyMCE.png?w=1925&h=1081&q=50&fit=scale 1925w","srcWebp":"//images.ctfassets.net/s600jj41gsex/21CPrWsQB1G4CoRnfAKZXU/f5380c3028984825d75d90e47774e385/How_to_build_a_CMS_with_TinyMCE.png?w=739&q=50&fm=webp&fit=scale","srcSetWebp":"//images.ctfassets.net/s600jj41gsex/21CPrWsQB1G4CoRnfAKZXU/f5380c3028984825d75d90e47774e385/How_to_build_a_CMS_with_TinyMCE.png?w=185&h=104&q=50&fm=webp&fit=scale 185w,\n//images.ctfassets.net/s600jj41gsex/21CPrWsQB1G4CoRnfAKZXU/f5380c3028984825d75d90e47774e385/How_to_build_a_CMS_with_TinyMCE.png?w=370&h=208&q=50&fm=webp&fit=scale 370w,\n//images.ctfassets.net/s600jj41gsex/21CPrWsQB1G4CoRnfAKZXU/f5380c3028984825d75d90e47774e385/How_to_build_a_CMS_with_TinyMCE.png?w=739&h=415&q=50&fm=webp&fit=scale 739w,\n//images.ctfassets.net/s600jj41gsex/21CPrWsQB1G4CoRnfAKZXU/f5380c3028984825d75d90e47774e385/How_to_build_a_CMS_with_TinyMCE.png?w=1109&h=623&q=50&fm=webp&fit=scale 1109w,\n//images.ctfassets.net/s600jj41gsex/21CPrWsQB1G4CoRnfAKZXU/f5380c3028984825d75d90e47774e385/How_to_build_a_CMS_with_TinyMCE.png?w=1478&h=830&q=50&fm=webp&fit=scale 1478w,\n//images.ctfassets.net/s600jj41gsex/21CPrWsQB1G4CoRnfAKZXU/f5380c3028984825d75d90e47774e385/How_to_build_a_CMS_with_TinyMCE.png?w=1925&h=1081&q=50&fm=webp&fit=scale 1925w","sizes":"(max-width: 739px) 100vw, 739px"}}},"author":{"name":"Coco Poley","slug":"coco-poley"},"category":{"title":"How-to Use TinyMCE","slug":"how-tos-and-tutorials"},"metaTitle":{"metaTitle":"How to Build a CMS with TinyMCE: Angular CMS Tutorial | TinyMCE"},"metaDescription":{"metaDescription":"Learn How to build a CMS with TinyMCE in this Angular CMS tutorial. Integrate the editor, add Comments, Mentions, Suggested Edits and AI locally."}}},{"node":{"title":"How to Create an Angular Project with TinyMCE","slug":"how-to-create-an-angular-project-with-tinymce","featured":true,"lastUpdated":"Aug 5th, 2025","description":{"description":"<p>Learn how to create an Angular project with TinyMCE. Step-by-step guide to integrating the TinyMCE rich text editor into your Angular apps.</p>","childMarkdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Learn how to create an Angular project with TinyMCE. Step-by-step guide to integrating the TinyMCE rich text editor into your Angular apps."}]}],"data":{"quirksMode":false}}}},"heroImage":{"alt":"How to Create an Angular Project with TinyMCE","artistName":null,"image":{"fluid":{"base64":"data:image/jpeg;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAALCAMAAABI111xAAABfVBMVEUKE1QACE8ABk4AAk4AAE4ABE4AB08JElMJE1QCDVEABk8ABlAABFMAAFAAAFIACFIEDlEABE8AAE8AA04AAlIiKVx4eoxcX3gAAFQABVBKNEtpRUhaM0pbLUxZJk1nJlBcH1FnJFFOGVBmaYDU1Niur7cAAFUKFVUIEFFcPkaQXDyOU0J/OkN/MUaEK06QNVWYOFV2Ik8AAEo0OGKLjJpmZ34AAFMAB1QAD1UABlEAAEdXWnV+gZKBhZWJjJuLj5yJjZt4fY6Gi5mRlKCNjptjZHsAAFEAFFczOGM4PGUSHllMTWt7fI10dYeBgpGCg5J+f498fo55eothYnlQUW4xM1wAAE0LFFMEE1UgKl6QkJyYmKNDR2tYWXJ/f49qa3+Gh5WRkZ6CgpEVGVMAAEgABU8CClAADlMAD1drbIB/gI8EFVYAAEsAAEUAAEkACFABEVUEF1gABFAIElQBC1EAAU4BCVABCU8AB1EDDVIIElMLFFQAB04LE1QJE1N6xCCMAAAAnUlEQVQIHV3BPQ7BYADH4f+PN/S1oIPBYGPoAURM4hCO0UVMPg5gcRerQUw2K4mtBmLCQtIGra/B8yChD0AQPrLGgUihEpZYGBZuxqLERfl7mlguOgvX4SOwJRJBhKnyta3xsjF1fhrztohFNIv8Oxq5+zKwq8Alz8uUTmklebIcZifJZ+0tm3RBmkiP7LUnxr5dtJD6mTfeBqnh6AnfYCXqRuRppAAAAABJRU5ErkJggg==","aspectRatio":1.7824074074074074,"src":"//images.ctfassets.net/s600jj41gsex/tByrz6VqzBooFvAsxX8sS/c2a4ca9f6c3f61aa547cba78f79009b8/How_to_Create__an_Angular_Project_with_TinyMCE_.png?w=739&q=50&fit=scale","srcSet":"//images.ctfassets.net/s600jj41gsex/tByrz6VqzBooFvAsxX8sS/c2a4ca9f6c3f61aa547cba78f79009b8/How_to_Create__an_Angular_Project_with_TinyMCE_.png?w=185&h=104&q=50&fit=scale 185w,\n//images.ctfassets.net/s600jj41gsex/tByrz6VqzBooFvAsxX8sS/c2a4ca9f6c3f61aa547cba78f79009b8/How_to_Create__an_Angular_Project_with_TinyMCE_.png?w=370&h=208&q=50&fit=scale 370w,\n//images.ctfassets.net/s600jj41gsex/tByrz6VqzBooFvAsxX8sS/c2a4ca9f6c3f61aa547cba78f79009b8/How_to_Create__an_Angular_Project_with_TinyMCE_.png?w=739&h=415&q=50&fit=scale 739w,\n//images.ctfassets.net/s600jj41gsex/tByrz6VqzBooFvAsxX8sS/c2a4ca9f6c3f61aa547cba78f79009b8/How_to_Create__an_Angular_Project_with_TinyMCE_.png?w=1109&h=622&q=50&fit=scale 1109w,\n//images.ctfassets.net/s600jj41gsex/tByrz6VqzBooFvAsxX8sS/c2a4ca9f6c3f61aa547cba78f79009b8/How_to_Create__an_Angular_Project_with_TinyMCE_.png?w=1478&h=829&q=50&fit=scale 1478w,\n//images.ctfassets.net/s600jj41gsex/tByrz6VqzBooFvAsxX8sS/c2a4ca9f6c3f61aa547cba78f79009b8/How_to_Create__an_Angular_Project_with_TinyMCE_.png?w=1925&h=1080&q=50&fit=scale 1925w","srcWebp":"//images.ctfassets.net/s600jj41gsex/tByrz6VqzBooFvAsxX8sS/c2a4ca9f6c3f61aa547cba78f79009b8/How_to_Create__an_Angular_Project_with_TinyMCE_.png?w=739&q=50&fm=webp&fit=scale","srcSetWebp":"//images.ctfassets.net/s600jj41gsex/tByrz6VqzBooFvAsxX8sS/c2a4ca9f6c3f61aa547cba78f79009b8/How_to_Create__an_Angular_Project_with_TinyMCE_.png?w=185&h=104&q=50&fm=webp&fit=scale 185w,\n//images.ctfassets.net/s600jj41gsex/tByrz6VqzBooFvAsxX8sS/c2a4ca9f6c3f61aa547cba78f79009b8/How_to_Create__an_Angular_Project_with_TinyMCE_.png?w=370&h=208&q=50&fm=webp&fit=scale 370w,\n//images.ctfassets.net/s600jj41gsex/tByrz6VqzBooFvAsxX8sS/c2a4ca9f6c3f61aa547cba78f79009b8/How_to_Create__an_Angular_Project_with_TinyMCE_.png?w=739&h=415&q=50&fm=webp&fit=scale 739w,\n//images.ctfassets.net/s600jj41gsex/tByrz6VqzBooFvAsxX8sS/c2a4ca9f6c3f61aa547cba78f79009b8/How_to_Create__an_Angular_Project_with_TinyMCE_.png?w=1109&h=622&q=50&fm=webp&fit=scale 1109w,\n//images.ctfassets.net/s600jj41gsex/tByrz6VqzBooFvAsxX8sS/c2a4ca9f6c3f61aa547cba78f79009b8/How_to_Create__an_Angular_Project_with_TinyMCE_.png?w=1478&h=829&q=50&fm=webp&fit=scale 1478w,\n//images.ctfassets.net/s600jj41gsex/tByrz6VqzBooFvAsxX8sS/c2a4ca9f6c3f61aa547cba78f79009b8/How_to_Create__an_Angular_Project_with_TinyMCE_.png?w=1925&h=1080&q=50&fm=webp&fit=scale 1925w","sizes":"(max-width: 739px) 100vw, 739px"}}},"author":{"name":"Coco Poley","slug":"coco-poley"},"category":{"title":"How-to Use TinyMCE","slug":"how-tos-and-tutorials"},"metaTitle":{"metaTitle":"How to Create an Angular Project with TinyMCE | TinyMCE"},"metaDescription":{"metaDescription":"Learn how to create an Angular project with TinyMCE. Step-by-step guide to integrating the TinyMCE rich text editor into your Angular apps."}}},{"node":{"title":"How to Create a New Angular Project: Step-by-Step Guide","slug":"create-new-angular-project","featured":false,"lastUpdated":"Jul 16th, 2025","description":{"description":"<p>Follow our detailed tutorial to create a new Angular project, set up your environment, and start building today.</p>","childMarkdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Follow our detailed tutorial to create a new Angular project, set up your environment, and start building today."}]}],"data":{"quirksMode":false}}}},"heroImage":{"alt":"How to Create a New Angular Project","artistName":null,"image":{"fluid":{"base64":"data:image/jpeg;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAALCAMAAABI111xAAABU1BMVEUKE1QACE8AB08ABE4AAU4AAk4ABU4JElMEDlEACFAAC1QAAFMAAFQAClIJE1QABk8ABU8ACVMQHFhjZX1JTGwAC1UAB1AAAU8AAE8AAE4AA09NUG/Ly8+enqkMF1UIEVFhQkaNWz6DSkR9PEd7NEuGMFGELFKPMVNuIU8AAEsAAFAbI1p4eYtUVXEABFQAFVYIG1cADFFVR1uBYmF4UFZzT2BxR15xQV9+SWSETGVzT2k1OmA2OWAqL14AAFIDG1ghHlseIF4OHlgADVEAAEdnaX+Zm6iIi5qFiZiVmKSZnKiTl6N8gpGKjZubnKeUlaFra4AGF1YZIFuBFXJsEI0iHWcAElMAAEwAAE0JEVEDDlAfI1UpLFkKE1EjJlcWGlMCClAAEVMAH1pnEVZuDmMAHFsAF1YJHVkSHVgDGVYACVAACU8AC1EED1ILFFQAB04JE1Oz6u6QAAAAiklEQVQIHQXBMS5EYQCAwW/sxnuqFRIkTqCXKBQ6t3ABCZfRuY1KJVFTKklEVDbLb0apqgKbMaZl809V1QSb5m0rjb6rYQXey6Eqla9dPve8DUczAIBnJzsA8HQKy2MAeLkEy338LVg38XoGG4uDixqpHj5+pyvQvK6qUV03Hs/d6/auqqoqN2PrH6TPINPUDAF8AAAAAElFTkSuQmCC","aspectRatio":1.7824074074074074,"src":"//images.ctfassets.net/s600jj41gsex/1dPWb2WGECHdzPUl85Ng41/a438f3d24d1a562469fba587fb708788/How_to_Create_a_New_Angular_Project.png?w=739&q=50&fit=scale","srcSet":"//images.ctfassets.net/s600jj41gsex/1dPWb2WGECHdzPUl85Ng41/a438f3d24d1a562469fba587fb708788/How_to_Create_a_New_Angular_Project.png?w=185&h=104&q=50&fit=scale 185w,\n//images.ctfassets.net/s600jj41gsex/1dPWb2WGECHdzPUl85Ng41/a438f3d24d1a562469fba587fb708788/How_to_Create_a_New_Angular_Project.png?w=370&h=208&q=50&fit=scale 370w,\n//images.ctfassets.net/s600jj41gsex/1dPWb2WGECHdzPUl85Ng41/a438f3d24d1a562469fba587fb708788/How_to_Create_a_New_Angular_Project.png?w=739&h=415&q=50&fit=scale 739w,\n//images.ctfassets.net/s600jj41gsex/1dPWb2WGECHdzPUl85Ng41/a438f3d24d1a562469fba587fb708788/How_to_Create_a_New_Angular_Project.png?w=1109&h=622&q=50&fit=scale 1109w,\n//images.ctfassets.net/s600jj41gsex/1dPWb2WGECHdzPUl85Ng41/a438f3d24d1a562469fba587fb708788/How_to_Create_a_New_Angular_Project.png?w=1478&h=829&q=50&fit=scale 1478w,\n//images.ctfassets.net/s600jj41gsex/1dPWb2WGECHdzPUl85Ng41/a438f3d24d1a562469fba587fb708788/How_to_Create_a_New_Angular_Project.png?w=1925&h=1080&q=50&fit=scale 1925w","srcWebp":"//images.ctfassets.net/s600jj41gsex/1dPWb2WGECHdzPUl85Ng41/a438f3d24d1a562469fba587fb708788/How_to_Create_a_New_Angular_Project.png?w=739&q=50&fm=webp&fit=scale","srcSetWebp":"//images.ctfassets.net/s600jj41gsex/1dPWb2WGECHdzPUl85Ng41/a438f3d24d1a562469fba587fb708788/How_to_Create_a_New_Angular_Project.png?w=185&h=104&q=50&fm=webp&fit=scale 185w,\n//images.ctfassets.net/s600jj41gsex/1dPWb2WGECHdzPUl85Ng41/a438f3d24d1a562469fba587fb708788/How_to_Create_a_New_Angular_Project.png?w=370&h=208&q=50&fm=webp&fit=scale 370w,\n//images.ctfassets.net/s600jj41gsex/1dPWb2WGECHdzPUl85Ng41/a438f3d24d1a562469fba587fb708788/How_to_Create_a_New_Angular_Project.png?w=739&h=415&q=50&fm=webp&fit=scale 739w,\n//images.ctfassets.net/s600jj41gsex/1dPWb2WGECHdzPUl85Ng41/a438f3d24d1a562469fba587fb708788/How_to_Create_a_New_Angular_Project.png?w=1109&h=622&q=50&fm=webp&fit=scale 1109w,\n//images.ctfassets.net/s600jj41gsex/1dPWb2WGECHdzPUl85Ng41/a438f3d24d1a562469fba587fb708788/How_to_Create_a_New_Angular_Project.png?w=1478&h=829&q=50&fm=webp&fit=scale 1478w,\n//images.ctfassets.net/s600jj41gsex/1dPWb2WGECHdzPUl85Ng41/a438f3d24d1a562469fba587fb708788/How_to_Create_a_New_Angular_Project.png?w=1925&h=1080&q=50&fm=webp&fit=scale 1925w","sizes":"(max-width: 739px) 100vw, 739px"}}},"author":{"name":"Coco Poley","slug":"coco-poley"},"category":{"title":"How-to Use TinyMCE","slug":"how-tos-and-tutorials"},"metaTitle":{"metaTitle":"How to Create New Angular Project: Step-by-Step Guide | TinyMCE"},"metaDescription":{"metaDescription":"Follow our detailed tutorial How to Create a New Angular Project, set up your environment, and start building today."}}},{"node":{"title":"How to Build an Email Newsletter Editor with Angular Using Windsurf AI","slug":"how-to-build-an-email-newsletter-editor-with-angular-using-windsurf-ai","featured":true,"lastUpdated":"Apr 7th, 2025","description":{"description":"<p>Learn to create a powerful email newsletter editor with Angular &amp; Windsurf AI. Build, format, and enhance newsletters with AI-powered features.</p>","childMarkdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Learn to create a powerful email newsletter editor with Angular & Windsurf AI. Build, format, and enhance newsletters with AI-powered features."}]}],"data":{"quirksMode":false}}}},"heroImage":{"alt":"Building an Email Newsletter Editor with Angular in Windsurf AI","artistName":null,"image":{"fluid":{"base64":"data:image/jpeg;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAALCAMAAABI111xAAAA9lBMVEWA7/aA8Pd/8Pd/7/eA7/eF6/F/7vV+7vV+8PZ+7/Z/7/aC7fSD6/KJ4eV77vV+8PjN7/Wt7/Z88PeB8PeJ8PaS7vR97vaR6+qE5dtq5eFs6uuw7vOd7/WC8Pd97/e08vXR9PXi+Pn2+PXg8evA6t+C6Op+7vSF7vSK8PaX7/XA8vX19fX++/v//f74+fqT7PJ65vKA7fV+8PeK6O/ox9Dxvsn89/f//v3j9PV67PR76POB7vaC7POpztqf2+S17vLY8/a37fGy7fG07vJ/8PZ77/V48Pdy7PJ27PN57POs6/Co7/R98PeA8PZ56u997vV/7vaC6/LcNJa5AAAAeklEQVQIHUXBMQ7CMBBFwfedFRAqRFpScxDOjKjokHIOBG0KKNxAbNZRLGbETCgjNFEYhaVkn5VcxAlnqZV77aT3FxDQoerZxxEEqJdSo1mMIxiwfxxVRZzhDltVFIHi3i4GCuHESYtzBgIuN9fNbe2GS+bPpE4KwSh+ERYclobaysgAAAAASUVORK5CYII=","aspectRatio":1.7824074074074074,"src":"//images.ctfassets.net/s600jj41gsex/2AJp7lcclMTaSyy1WHWcdV/45b2f36d6cc415a2e67762887e4dbfde/Building_an_Email_Newsletter_Editor_with_Angular___Windsurf_AI.png?w=739&q=50&fit=scale","srcSet":"//images.ctfassets.net/s600jj41gsex/2AJp7lcclMTaSyy1WHWcdV/45b2f36d6cc415a2e67762887e4dbfde/Building_an_Email_Newsletter_Editor_with_Angular___Windsurf_AI.png?w=185&h=104&q=50&fit=scale 185w,\n//images.ctfassets.net/s600jj41gsex/2AJp7lcclMTaSyy1WHWcdV/45b2f36d6cc415a2e67762887e4dbfde/Building_an_Email_Newsletter_Editor_with_Angular___Windsurf_AI.png?w=370&h=208&q=50&fit=scale 370w,\n//images.ctfassets.net/s600jj41gsex/2AJp7lcclMTaSyy1WHWcdV/45b2f36d6cc415a2e67762887e4dbfde/Building_an_Email_Newsletter_Editor_with_Angular___Windsurf_AI.png?w=739&h=415&q=50&fit=scale 739w,\n//images.ctfassets.net/s600jj41gsex/2AJp7lcclMTaSyy1WHWcdV/45b2f36d6cc415a2e67762887e4dbfde/Building_an_Email_Newsletter_Editor_with_Angular___Windsurf_AI.png?w=1109&h=622&q=50&fit=scale 1109w,\n//images.ctfassets.net/s600jj41gsex/2AJp7lcclMTaSyy1WHWcdV/45b2f36d6cc415a2e67762887e4dbfde/Building_an_Email_Newsletter_Editor_with_Angular___Windsurf_AI.png?w=1478&h=829&q=50&fit=scale 1478w,\n//images.ctfassets.net/s600jj41gsex/2AJp7lcclMTaSyy1WHWcdV/45b2f36d6cc415a2e67762887e4dbfde/Building_an_Email_Newsletter_Editor_with_Angular___Windsurf_AI.png?w=1925&h=1080&q=50&fit=scale 1925w","srcWebp":"//images.ctfassets.net/s600jj41gsex/2AJp7lcclMTaSyy1WHWcdV/45b2f36d6cc415a2e67762887e4dbfde/Building_an_Email_Newsletter_Editor_with_Angular___Windsurf_AI.png?w=739&q=50&fm=webp&fit=scale","srcSetWebp":"//images.ctfassets.net/s600jj41gsex/2AJp7lcclMTaSyy1WHWcdV/45b2f36d6cc415a2e67762887e4dbfde/Building_an_Email_Newsletter_Editor_with_Angular___Windsurf_AI.png?w=185&h=104&q=50&fm=webp&fit=scale 185w,\n//images.ctfassets.net/s600jj41gsex/2AJp7lcclMTaSyy1WHWcdV/45b2f36d6cc415a2e67762887e4dbfde/Building_an_Email_Newsletter_Editor_with_Angular___Windsurf_AI.png?w=370&h=208&q=50&fm=webp&fit=scale 370w,\n//images.ctfassets.net/s600jj41gsex/2AJp7lcclMTaSyy1WHWcdV/45b2f36d6cc415a2e67762887e4dbfde/Building_an_Email_Newsletter_Editor_with_Angular___Windsurf_AI.png?w=739&h=415&q=50&fm=webp&fit=scale 739w,\n//images.ctfassets.net/s600jj41gsex/2AJp7lcclMTaSyy1WHWcdV/45b2f36d6cc415a2e67762887e4dbfde/Building_an_Email_Newsletter_Editor_with_Angular___Windsurf_AI.png?w=1109&h=622&q=50&fm=webp&fit=scale 1109w,\n//images.ctfassets.net/s600jj41gsex/2AJp7lcclMTaSyy1WHWcdV/45b2f36d6cc415a2e67762887e4dbfde/Building_an_Email_Newsletter_Editor_with_Angular___Windsurf_AI.png?w=1478&h=829&q=50&fm=webp&fit=scale 1478w,\n//images.ctfassets.net/s600jj41gsex/2AJp7lcclMTaSyy1WHWcdV/45b2f36d6cc415a2e67762887e4dbfde/Building_an_Email_Newsletter_Editor_with_Angular___Windsurf_AI.png?w=1925&h=1080&q=50&fm=webp&fit=scale 1925w","sizes":"(max-width: 739px) 100vw, 739px"}}},"author":{"name":"Mrina Sugosh","slug":"mrina-sugosh"},"category":{"title":"How-to Use TinyMCE","slug":"how-tos-and-tutorials"},"metaTitle":{"metaTitle":"How to Build an Email Newsletter Editor with Angular & Windsurf AI | TinyMCE"},"metaDescription":{"metaDescription":"Learn to create a powerful email newsletter editor with Angular & Windsurf AI. Build, format, and enhance newsletters with AI-powered features."}}},{"node":{"title":"How to create Angular Reactive Forms with a Rich Text Editor","slug":"angular-rich-text-editor","featured":false,"lastUpdated":"Oct 10th, 2024","description":{"description":"<p>Step-by-step guide to adding TinyMCE to Angular Reactive Forms with detailed setup instructions.</p>","childMarkdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Step-by-step guide to adding TinyMCE to Angular Reactive Forms with detailed setup instructions."}]}],"data":{"quirksMode":false}}}},"heroImage":{"alt":"The Angular log being investigated with a magnifying glass","artistName":null,"image":{"fluid":{"base64":"data:image/jpeg;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAALCAMAAABI111xAAAAxlBMVEV1rv90r/91r/92r/93r/92rv90sP9xsf93rP11sf9zrv94sP90rv+Bs/2hvO6WufKUufm3oM/VkavIf6d6pfSPuv3D0e6Ktvpxrf+ZvvyjwvmOuf2hu/PVgZX3saTjio54oPKPuvvKytSIsvSxyviOuf5srviEt/Sese2vjcKll87A0vPI1vHK1e3F0u+Itfp4r/+90PWTu/xyr/xzsP1ysP9vsP92s/+hwPalwPCmwPGivu9/sPpzrf+Cs/6Asv5vrf9urP/n0hB8AAAAYklEQVQIHY3BzQmEMBRG0fuZgD88G7AAS5id/W+0AktwaRA3JsqMkNkInsNr4iZQ5McBzslfUhnro4kJBJiyRQd4MFO27oDAYqds3sADvf4UgIfQSlOgqD4ijYHb0PBlxrMTFiQToDzv19sAAAAASUVORK5CYII=","aspectRatio":1.7824074074074074,"src":"//images.ctfassets.net/s600jj41gsex/2kfb5MfFASTVRhLe9zFj54/56c8fe98299fe65c3556c672bf6aebcc/How_to_create_Angular_reactive_forms_with_a_rich_text_editor.png?w=739&q=50&fit=scale","srcSet":"//images.ctfassets.net/s600jj41gsex/2kfb5MfFASTVRhLe9zFj54/56c8fe98299fe65c3556c672bf6aebcc/How_to_create_Angular_reactive_forms_with_a_rich_text_editor.png?w=185&h=104&q=50&fit=scale 185w,\n//images.ctfassets.net/s600jj41gsex/2kfb5MfFASTVRhLe9zFj54/56c8fe98299fe65c3556c672bf6aebcc/How_to_create_Angular_reactive_forms_with_a_rich_text_editor.png?w=370&h=208&q=50&fit=scale 370w,\n//images.ctfassets.net/s600jj41gsex/2kfb5MfFASTVRhLe9zFj54/56c8fe98299fe65c3556c672bf6aebcc/How_to_create_Angular_reactive_forms_with_a_rich_text_editor.png?w=739&h=415&q=50&fit=scale 739w,\n//images.ctfassets.net/s600jj41gsex/2kfb5MfFASTVRhLe9zFj54/56c8fe98299fe65c3556c672bf6aebcc/How_to_create_Angular_reactive_forms_with_a_rich_text_editor.png?w=1109&h=622&q=50&fit=scale 1109w,\n//images.ctfassets.net/s600jj41gsex/2kfb5MfFASTVRhLe9zFj54/56c8fe98299fe65c3556c672bf6aebcc/How_to_create_Angular_reactive_forms_with_a_rich_text_editor.png?w=1478&h=829&q=50&fit=scale 1478w,\n//images.ctfassets.net/s600jj41gsex/2kfb5MfFASTVRhLe9zFj54/56c8fe98299fe65c3556c672bf6aebcc/How_to_create_Angular_reactive_forms_with_a_rich_text_editor.png?w=1925&h=1080&q=50&fit=scale 1925w","srcWebp":"//images.ctfassets.net/s600jj41gsex/2kfb5MfFASTVRhLe9zFj54/56c8fe98299fe65c3556c672bf6aebcc/How_to_create_Angular_reactive_forms_with_a_rich_text_editor.png?w=739&q=50&fm=webp&fit=scale","srcSetWebp":"//images.ctfassets.net/s600jj41gsex/2kfb5MfFASTVRhLe9zFj54/56c8fe98299fe65c3556c672bf6aebcc/How_to_create_Angular_reactive_forms_with_a_rich_text_editor.png?w=185&h=104&q=50&fm=webp&fit=scale 185w,\n//images.ctfassets.net/s600jj41gsex/2kfb5MfFASTVRhLe9zFj54/56c8fe98299fe65c3556c672bf6aebcc/How_to_create_Angular_reactive_forms_with_a_rich_text_editor.png?w=370&h=208&q=50&fm=webp&fit=scale 370w,\n//images.ctfassets.net/s600jj41gsex/2kfb5MfFASTVRhLe9zFj54/56c8fe98299fe65c3556c672bf6aebcc/How_to_create_Angular_reactive_forms_with_a_rich_text_editor.png?w=739&h=415&q=50&fm=webp&fit=scale 739w,\n//images.ctfassets.net/s600jj41gsex/2kfb5MfFASTVRhLe9zFj54/56c8fe98299fe65c3556c672bf6aebcc/How_to_create_Angular_reactive_forms_with_a_rich_text_editor.png?w=1109&h=622&q=50&fm=webp&fit=scale 1109w,\n//images.ctfassets.net/s600jj41gsex/2kfb5MfFASTVRhLe9zFj54/56c8fe98299fe65c3556c672bf6aebcc/How_to_create_Angular_reactive_forms_with_a_rich_text_editor.png?w=1478&h=829&q=50&fm=webp&fit=scale 1478w,\n//images.ctfassets.net/s600jj41gsex/2kfb5MfFASTVRhLe9zFj54/56c8fe98299fe65c3556c672bf6aebcc/How_to_create_Angular_reactive_forms_with_a_rich_text_editor.png?w=1925&h=1080&q=50&fm=webp&fit=scale 1925w","sizes":"(max-width: 739px) 100vw, 739px"}}},"author":{"name":"Coco Poley","slug":"coco-poley"},"category":{"title":"How-to Use TinyMCE","slug":"how-tos-and-tutorials"},"metaTitle":{"metaTitle":"Angular Reactive Forms with Rich Text Editor Integration | TinyMCE"},"metaDescription":{"metaDescription":"Step-by-step guide to adding TinyMCE to Angular Reactive Forms with detailed setup instructions."}}},{"node":{"title":"Angular vs React vs Vue - Detailed Framework Comparison","slug":"vue-react-angular-js-framework-comparison","featured":false,"lastUpdated":"Aug 30th, 2024","description":{"description":"<p>Discover which framework is best for your project. Our detailed comparison of Angular, React, and Vue covers performance, scalability, and community support.</p>","childMarkdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Discover which framework is best for your project. Our detailed comparison of Angular, React, and Vue covers performance, scalability, and community support."}]}],"data":{"quirksMode":false}}}},"heroImage":{"alt":"Angular vs React vs Vue trends for each of the two frameworks and a library represented as symbols","artistName":null,"image":{"fluid":{"base64":"data:image/jpeg;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAALCAMAAABI111xAAAAtFBMVEXQ6eHQ6uHR6+HS7OHS6+HR6uHQ6uLQ6+PQ6+DR1uaywO/D4+TT7eDS7ODR7ODQ6eDX3dbT5d3P6uHYqe3Jm8yqtcm1x+i0xee1yOXO5N/ltbLa083P6uLV2NPjyY2jgNeVkfSYhvS1qOTN5OHR4dnS5+HQ5ujR6ePO6ODO6uDO5uLh2ff39v349f75+fjT6uG108fO5uDR5ujR6OPS6uHm8+zp9O/k8ezR6eHP6ODP6N/O6eAMO25wAAAAUUlEQVQI12NgwAIYYcR/EP0fIsgCkQIChj+sjP9//4cLsjPCwAe4dkZBuCDjE7iZMghBxpsw7TxIgnAzbzCYAHkgof9w14CA9VsG4aMwJxEPABz0Dj2e3QHvAAAAAElFTkSuQmCC","aspectRatio":1.7824074074074074,"src":"//images.ctfassets.net/s600jj41gsex/2zovvGaRy7UQ9jXMreHkR2/9400d5dc095753a0bf86f93888e87340/-Blog_Header-__-Rework_-14-_Angular_vs_React_vs_Vue.png?w=739&q=50&fit=scale","srcSet":"//images.ctfassets.net/s600jj41gsex/2zovvGaRy7UQ9jXMreHkR2/9400d5dc095753a0bf86f93888e87340/-Blog_Header-__-Rework_-14-_Angular_vs_React_vs_Vue.png?w=185&h=104&q=50&fit=scale 185w,\n//images.ctfassets.net/s600jj41gsex/2zovvGaRy7UQ9jXMreHkR2/9400d5dc095753a0bf86f93888e87340/-Blog_Header-__-Rework_-14-_Angular_vs_React_vs_Vue.png?w=370&h=208&q=50&fit=scale 370w,\n//images.ctfassets.net/s600jj41gsex/2zovvGaRy7UQ9jXMreHkR2/9400d5dc095753a0bf86f93888e87340/-Blog_Header-__-Rework_-14-_Angular_vs_React_vs_Vue.png?w=739&h=415&q=50&fit=scale 739w,\n//images.ctfassets.net/s600jj41gsex/2zovvGaRy7UQ9jXMreHkR2/9400d5dc095753a0bf86f93888e87340/-Blog_Header-__-Rework_-14-_Angular_vs_React_vs_Vue.png?w=1109&h=622&q=50&fit=scale 1109w,\n//images.ctfassets.net/s600jj41gsex/2zovvGaRy7UQ9jXMreHkR2/9400d5dc095753a0bf86f93888e87340/-Blog_Header-__-Rework_-14-_Angular_vs_React_vs_Vue.png?w=1478&h=829&q=50&fit=scale 1478w,\n//images.ctfassets.net/s600jj41gsex/2zovvGaRy7UQ9jXMreHkR2/9400d5dc095753a0bf86f93888e87340/-Blog_Header-__-Rework_-14-_Angular_vs_React_vs_Vue.png?w=1925&h=1080&q=50&fit=scale 1925w","srcWebp":"//images.ctfassets.net/s600jj41gsex/2zovvGaRy7UQ9jXMreHkR2/9400d5dc095753a0bf86f93888e87340/-Blog_Header-__-Rework_-14-_Angular_vs_React_vs_Vue.png?w=739&q=50&fm=webp&fit=scale","srcSetWebp":"//images.ctfassets.net/s600jj41gsex/2zovvGaRy7UQ9jXMreHkR2/9400d5dc095753a0bf86f93888e87340/-Blog_Header-__-Rework_-14-_Angular_vs_React_vs_Vue.png?w=185&h=104&q=50&fm=webp&fit=scale 185w,\n//images.ctfassets.net/s600jj41gsex/2zovvGaRy7UQ9jXMreHkR2/9400d5dc095753a0bf86f93888e87340/-Blog_Header-__-Rework_-14-_Angular_vs_React_vs_Vue.png?w=370&h=208&q=50&fm=webp&fit=scale 370w,\n//images.ctfassets.net/s600jj41gsex/2zovvGaRy7UQ9jXMreHkR2/9400d5dc095753a0bf86f93888e87340/-Blog_Header-__-Rework_-14-_Angular_vs_React_vs_Vue.png?w=739&h=415&q=50&fm=webp&fit=scale 739w,\n//images.ctfassets.net/s600jj41gsex/2zovvGaRy7UQ9jXMreHkR2/9400d5dc095753a0bf86f93888e87340/-Blog_Header-__-Rework_-14-_Angular_vs_React_vs_Vue.png?w=1109&h=622&q=50&fm=webp&fit=scale 1109w,\n//images.ctfassets.net/s600jj41gsex/2zovvGaRy7UQ9jXMreHkR2/9400d5dc095753a0bf86f93888e87340/-Blog_Header-__-Rework_-14-_Angular_vs_React_vs_Vue.png?w=1478&h=829&q=50&fm=webp&fit=scale 1478w,\n//images.ctfassets.net/s600jj41gsex/2zovvGaRy7UQ9jXMreHkR2/9400d5dc095753a0bf86f93888e87340/-Blog_Header-__-Rework_-14-_Angular_vs_React_vs_Vue.png?w=1925&h=1080&q=50&fm=webp&fit=scale 1925w","sizes":"(max-width: 739px) 100vw, 739px"}}},"author":{"name":"Coco Poley","slug":"coco-poley"},"category":{"title":"Developer Insights","slug":"engineering"},"metaTitle":{"metaTitle":"Angular vs React vs Vue: Detailed Framework Comparison | TinyMCE"},"metaDescription":{"metaDescription":"Discover which framework is best for your project. Our detailed comparison of Angular, React, and Vue covers performance, scalability, and community support."}}},{"node":{"title":"How to access content by id in Angular with TinyMCE","slug":"how-to-access-content-by-id-in-angular-with-tinymce","featured":false,"lastUpdated":"Jan 18th, 2024","description":{"description":"<p>Manage content by id in Angular using our new step-by-step guide.</p>","childMarkdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Manage content by id in Angular using our new step-by-step guide."}]}],"data":{"quirksMode":false}}}},"heroImage":{"alt":"The Angular log appears next to a number of files that are set to upload into a large collection of files","artistName":null,"image":{"fluid":{"base64":"data:image/jpeg;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAALCAMAAABI111xAAAAzFBMVEX2wP/3wP/4wP/4wf/3wf/2v//3v//2wfn2wffsw/z0v/3rnMnxsOn31f740f7xvvvxvfn0wP73wv/0xeDvz66VxNGsxeLolK3sm8bw3vrn7+7u0evruPLtuvf1xeTx48fC29qFwdDyu/XytfDPsvFyt967x7/pvej1vvz3wP313/Lb5eCMvMjxw//ku/fguvaeruVAvr3YzuDz5PXx5PP1yv33z//u4fPIwuTlufnUsPTzwvzUvuzmw/D10Pv00Pr2xP75wf/6wP/3vv/Y/tSIAAAAX0lEQVQIHW3BOxaCQBAAwe5lHwlcw4Mg9w/IPIC5kYkEw6wfILCKf6SRr6CRJCq6AgEI2Ht4BFTS6O5JqqTB3T0MBOrFk+VFId3Gt2VoVj7snUrXlWuZZwFp5Cc4UQ4bBkUQVomzskgAAAAASUVORK5CYII=","aspectRatio":1.7824074074074074,"src":"//images.ctfassets.net/s600jj41gsex/6yp107kCIrV6eKtfntwdRQ/905f456bc37cd3b753d8652425db1afe/img-Howto-access-content-by-id-Angular.png?w=739&q=50&fit=scale","srcSet":"//images.ctfassets.net/s600jj41gsex/6yp107kCIrV6eKtfntwdRQ/905f456bc37cd3b753d8652425db1afe/img-Howto-access-content-by-id-Angular.png?w=185&h=104&q=50&fit=scale 185w,\n//images.ctfassets.net/s600jj41gsex/6yp107kCIrV6eKtfntwdRQ/905f456bc37cd3b753d8652425db1afe/img-Howto-access-content-by-id-Angular.png?w=370&h=208&q=50&fit=scale 370w,\n//images.ctfassets.net/s600jj41gsex/6yp107kCIrV6eKtfntwdRQ/905f456bc37cd3b753d8652425db1afe/img-Howto-access-content-by-id-Angular.png?w=739&h=415&q=50&fit=scale 739w,\n//images.ctfassets.net/s600jj41gsex/6yp107kCIrV6eKtfntwdRQ/905f456bc37cd3b753d8652425db1afe/img-Howto-access-content-by-id-Angular.png?w=1109&h=622&q=50&fit=scale 1109w,\n//images.ctfassets.net/s600jj41gsex/6yp107kCIrV6eKtfntwdRQ/905f456bc37cd3b753d8652425db1afe/img-Howto-access-content-by-id-Angular.png?w=1478&h=829&q=50&fit=scale 1478w,\n//images.ctfassets.net/s600jj41gsex/6yp107kCIrV6eKtfntwdRQ/905f456bc37cd3b753d8652425db1afe/img-Howto-access-content-by-id-Angular.png?w=1925&h=1080&q=50&fit=scale 1925w","srcWebp":"//images.ctfassets.net/s600jj41gsex/6yp107kCIrV6eKtfntwdRQ/905f456bc37cd3b753d8652425db1afe/img-Howto-access-content-by-id-Angular.png?w=739&q=50&fm=webp&fit=scale","srcSetWebp":"//images.ctfassets.net/s600jj41gsex/6yp107kCIrV6eKtfntwdRQ/905f456bc37cd3b753d8652425db1afe/img-Howto-access-content-by-id-Angular.png?w=185&h=104&q=50&fm=webp&fit=scale 185w,\n//images.ctfassets.net/s600jj41gsex/6yp107kCIrV6eKtfntwdRQ/905f456bc37cd3b753d8652425db1afe/img-Howto-access-content-by-id-Angular.png?w=370&h=208&q=50&fm=webp&fit=scale 370w,\n//images.ctfassets.net/s600jj41gsex/6yp107kCIrV6eKtfntwdRQ/905f456bc37cd3b753d8652425db1afe/img-Howto-access-content-by-id-Angular.png?w=739&h=415&q=50&fm=webp&fit=scale 739w,\n//images.ctfassets.net/s600jj41gsex/6yp107kCIrV6eKtfntwdRQ/905f456bc37cd3b753d8652425db1afe/img-Howto-access-content-by-id-Angular.png?w=1109&h=622&q=50&fm=webp&fit=scale 1109w,\n//images.ctfassets.net/s600jj41gsex/6yp107kCIrV6eKtfntwdRQ/905f456bc37cd3b753d8652425db1afe/img-Howto-access-content-by-id-Angular.png?w=1478&h=829&q=50&fm=webp&fit=scale 1478w,\n//images.ctfassets.net/s600jj41gsex/6yp107kCIrV6eKtfntwdRQ/905f456bc37cd3b753d8652425db1afe/img-Howto-access-content-by-id-Angular.png?w=1925&h=1080&q=50&fm=webp&fit=scale 1925w","sizes":"(max-width: 739px) 100vw, 739px"}}},"author":{"name":"Joe Robinson","slug":"joseph-robinson"},"category":{"title":"How-to Use TinyMCE","slug":"how-tos-and-tutorials"},"metaTitle":{"metaTitle":"How to access content by id in Angular | TinyMCE"},"metaDescription":{"metaDescription":"Learn how to access and manage content by id in Angular using TinyMCE with this step-by-step guide, perfect for enhancing your app's content handling."}}},{"node":{"title":"How to add fonts to an Angular project","slug":"adding-angular-fonts","featured":false,"lastUpdated":"Jan 16th, 2024","description":{"description":"<p>Add fonts to your Angular projects with our guide on configurations, step-by-step instructions, CSS management and other useful best practice</p>","childMarkdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Add fonts to your Angular projects with our guide on configurations, step-by-step instructions, CSS management and other useful best practice"}]}],"data":{"quirksMode":false}}}},"heroImage":{"alt":"Fonts represented by letters next to the Angular logo, showing the Angular font integration options","artistName":null,"image":{"fluid":{"base64":"data:image/jpeg;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAALCAMAAABI111xAAAAxlBMVEX67n/773/673/67oH67nz773777n/67oD264X66XD35Yj67on67n747X/37Hz773v55HXbz63v5Ynu433u5nz47oj374z37YX17Ib37ZH06Yvy55rv54bM0Mzn35b46HnwzXn14Hr78H/t2a3bu8Pq0Yf37If37aPFzfLPz73qyGLicIjtunb78X/57XznxIfdsnzz4nje4Kbt55Lu5KLp4Zzv3HHXn2Lw2nf78YD773378H378H757X367n3873n873v68H7AuFUEAAAAYElEQVQIHQXBMQ6CUABAsT4gxARnV3cH738boidwhRi/LQAAmEEmAAjMP3NfGBDWOi5Vp6OB0DZVVfU5B6FuVVW1DxaYtqqqgoXGo6qqguD6rKr3/bUbBAFgIMDKSQP8AUDEFGIsXUvNAAAAAElFTkSuQmCC","aspectRatio":1.7824074074074074,"src":"//images.ctfassets.net/s600jj41gsex/7C2utncZ98pTaO44bQnkah/732c6d6b5a41ba60cd5b1b99e2355671/img-Howto-add-fonts-Angular-projects-1.png?w=739&q=50&fit=scale","srcSet":"//images.ctfassets.net/s600jj41gsex/7C2utncZ98pTaO44bQnkah/732c6d6b5a41ba60cd5b1b99e2355671/img-Howto-add-fonts-Angular-projects-1.png?w=185&h=104&q=50&fit=scale 185w,\n//images.ctfassets.net/s600jj41gsex/7C2utncZ98pTaO44bQnkah/732c6d6b5a41ba60cd5b1b99e2355671/img-Howto-add-fonts-Angular-projects-1.png?w=370&h=208&q=50&fit=scale 370w,\n//images.ctfassets.net/s600jj41gsex/7C2utncZ98pTaO44bQnkah/732c6d6b5a41ba60cd5b1b99e2355671/img-Howto-add-fonts-Angular-projects-1.png?w=739&h=415&q=50&fit=scale 739w,\n//images.ctfassets.net/s600jj41gsex/7C2utncZ98pTaO44bQnkah/732c6d6b5a41ba60cd5b1b99e2355671/img-Howto-add-fonts-Angular-projects-1.png?w=1109&h=622&q=50&fit=scale 1109w,\n//images.ctfassets.net/s600jj41gsex/7C2utncZ98pTaO44bQnkah/732c6d6b5a41ba60cd5b1b99e2355671/img-Howto-add-fonts-Angular-projects-1.png?w=1478&h=829&q=50&fit=scale 1478w,\n//images.ctfassets.net/s600jj41gsex/7C2utncZ98pTaO44bQnkah/732c6d6b5a41ba60cd5b1b99e2355671/img-Howto-add-fonts-Angular-projects-1.png?w=1925&h=1080&q=50&fit=scale 1925w","srcWebp":"//images.ctfassets.net/s600jj41gsex/7C2utncZ98pTaO44bQnkah/732c6d6b5a41ba60cd5b1b99e2355671/img-Howto-add-fonts-Angular-projects-1.png?w=739&q=50&fm=webp&fit=scale","srcSetWebp":"//images.ctfassets.net/s600jj41gsex/7C2utncZ98pTaO44bQnkah/732c6d6b5a41ba60cd5b1b99e2355671/img-Howto-add-fonts-Angular-projects-1.png?w=185&h=104&q=50&fm=webp&fit=scale 185w,\n//images.ctfassets.net/s600jj41gsex/7C2utncZ98pTaO44bQnkah/732c6d6b5a41ba60cd5b1b99e2355671/img-Howto-add-fonts-Angular-projects-1.png?w=370&h=208&q=50&fm=webp&fit=scale 370w,\n//images.ctfassets.net/s600jj41gsex/7C2utncZ98pTaO44bQnkah/732c6d6b5a41ba60cd5b1b99e2355671/img-Howto-add-fonts-Angular-projects-1.png?w=739&h=415&q=50&fm=webp&fit=scale 739w,\n//images.ctfassets.net/s600jj41gsex/7C2utncZ98pTaO44bQnkah/732c6d6b5a41ba60cd5b1b99e2355671/img-Howto-add-fonts-Angular-projects-1.png?w=1109&h=622&q=50&fm=webp&fit=scale 1109w,\n//images.ctfassets.net/s600jj41gsex/7C2utncZ98pTaO44bQnkah/732c6d6b5a41ba60cd5b1b99e2355671/img-Howto-add-fonts-Angular-projects-1.png?w=1478&h=829&q=50&fm=webp&fit=scale 1478w,\n//images.ctfassets.net/s600jj41gsex/7C2utncZ98pTaO44bQnkah/732c6d6b5a41ba60cd5b1b99e2355671/img-Howto-add-fonts-Angular-projects-1.png?w=1925&h=1080&q=50&fm=webp&fit=scale 1925w","sizes":"(max-width: 739px) 100vw, 739px"}}},"author":{"name":"Joe Robinson","slug":"joseph-robinson"},"category":{"title":"How-to Use TinyMCE","slug":"how-tos-and-tutorials"},"metaTitle":{"metaTitle":"How to add fonts to Angular projects | TinyMCE"},"metaDescription":{"metaDescription":" Master adding fonts to Angular projects with our guide on configurations, step-by-step instructions, CSS management, font awesome options, and advanced tips."}}},{"node":{"title":"How to enrich an Angular textarea with TinyMCE","slug":"enrich-angular-textarea","featured":false,"lastUpdated":"Jun 21st, 2023","description":{"description":"<p>Enrich your Angular app with the TinyMCE rich text editor &ndash; read on to discover the steps to integrate TinyMCE with Angular.</p>","childMarkdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Enrich your Angular app with the TinyMCE rich text editor – read on to discover the steps to integrate TinyMCE with Angular."}]}],"data":{"quirksMode":false}}}},"heroImage":{"alt":"The Angular logo with a rocket showing the power of enhancing TinyMCE with Angular","artistName":null,"image":{"fluid":{"base64":"data:image/jpeg;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAALCAMAAABI111xAAAA9lBMVEVA1Mc/1Mc+1Mcy1Mcj08Yw1MY31cg41cg+1cg/1cg61cgu18k11slA1ccz1Md72M265t9029FGzsFcx7s51shQz8OSuK5yxLg51chB1Mcr1cm6xZro1LW95uPf3Nq5qqNH1cg218p7v7PyjpG5pJ4q1cc21choz7qJxK7izMj69PTs9fLN7+lc2ctI08Oft6t2yLtg2s5V1so61MdN2M6t38vRy7OZvL+FtM+Fs85MqsRFq8U+rMY+xsZj2c1X1spD1cl43NFl2s0syMM4ssNCs8RJtMVLtMVLs8VCyMY+1sc91Mc71Mc81sg918c+18c/18dA1schhQ2wAAAAXElEQVQIHXXBsRWBMQAGwPu8qOQ3gN4aJtdZwAJqA6T1RNJ4KbjzSxDRdUE3hCxe+4aCmqkdMzUUUjNtmR6GkHMW9zcFWxYdwe6Sr1tDQT/keUpIrs0QQ1ANzX8fI1ER+FtBk2gAAAAASUVORK5CYII=","aspectRatio":1.7824074074074074,"src":"//images.ctfassets.net/s600jj41gsex/4zEopKhEKsgVqNVKofV8oh/02bc2185bd8215723ab1016aae648c5d/How_to_enrich_an_Angular_textarea_with_TinyMCE.png?w=739&q=50&fit=scale","srcSet":"//images.ctfassets.net/s600jj41gsex/4zEopKhEKsgVqNVKofV8oh/02bc2185bd8215723ab1016aae648c5d/How_to_enrich_an_Angular_textarea_with_TinyMCE.png?w=185&h=104&q=50&fit=scale 185w,\n//images.ctfassets.net/s600jj41gsex/4zEopKhEKsgVqNVKofV8oh/02bc2185bd8215723ab1016aae648c5d/How_to_enrich_an_Angular_textarea_with_TinyMCE.png?w=370&h=208&q=50&fit=scale 370w,\n//images.ctfassets.net/s600jj41gsex/4zEopKhEKsgVqNVKofV8oh/02bc2185bd8215723ab1016aae648c5d/How_to_enrich_an_Angular_textarea_with_TinyMCE.png?w=739&h=415&q=50&fit=scale 739w,\n//images.ctfassets.net/s600jj41gsex/4zEopKhEKsgVqNVKofV8oh/02bc2185bd8215723ab1016aae648c5d/How_to_enrich_an_Angular_textarea_with_TinyMCE.png?w=1109&h=622&q=50&fit=scale 1109w,\n//images.ctfassets.net/s600jj41gsex/4zEopKhEKsgVqNVKofV8oh/02bc2185bd8215723ab1016aae648c5d/How_to_enrich_an_Angular_textarea_with_TinyMCE.png?w=1478&h=829&q=50&fit=scale 1478w,\n//images.ctfassets.net/s600jj41gsex/4zEopKhEKsgVqNVKofV8oh/02bc2185bd8215723ab1016aae648c5d/How_to_enrich_an_Angular_textarea_with_TinyMCE.png?w=1925&h=1080&q=50&fit=scale 1925w","srcWebp":"//images.ctfassets.net/s600jj41gsex/4zEopKhEKsgVqNVKofV8oh/02bc2185bd8215723ab1016aae648c5d/How_to_enrich_an_Angular_textarea_with_TinyMCE.png?w=739&q=50&fm=webp&fit=scale","srcSetWebp":"//images.ctfassets.net/s600jj41gsex/4zEopKhEKsgVqNVKofV8oh/02bc2185bd8215723ab1016aae648c5d/How_to_enrich_an_Angular_textarea_with_TinyMCE.png?w=185&h=104&q=50&fm=webp&fit=scale 185w,\n//images.ctfassets.net/s600jj41gsex/4zEopKhEKsgVqNVKofV8oh/02bc2185bd8215723ab1016aae648c5d/How_to_enrich_an_Angular_textarea_with_TinyMCE.png?w=370&h=208&q=50&fm=webp&fit=scale 370w,\n//images.ctfassets.net/s600jj41gsex/4zEopKhEKsgVqNVKofV8oh/02bc2185bd8215723ab1016aae648c5d/How_to_enrich_an_Angular_textarea_with_TinyMCE.png?w=739&h=415&q=50&fm=webp&fit=scale 739w,\n//images.ctfassets.net/s600jj41gsex/4zEopKhEKsgVqNVKofV8oh/02bc2185bd8215723ab1016aae648c5d/How_to_enrich_an_Angular_textarea_with_TinyMCE.png?w=1109&h=622&q=50&fm=webp&fit=scale 1109w,\n//images.ctfassets.net/s600jj41gsex/4zEopKhEKsgVqNVKofV8oh/02bc2185bd8215723ab1016aae648c5d/How_to_enrich_an_Angular_textarea_with_TinyMCE.png?w=1478&h=829&q=50&fm=webp&fit=scale 1478w,\n//images.ctfassets.net/s600jj41gsex/4zEopKhEKsgVqNVKofV8oh/02bc2185bd8215723ab1016aae648c5d/How_to_enrich_an_Angular_textarea_with_TinyMCE.png?w=1925&h=1080&q=50&fm=webp&fit=scale 1925w","sizes":"(max-width: 739px) 100vw, 739px"}}},"author":{"name":"Joe Robinson","slug":"joseph-robinson"},"category":{"title":"How-to Use TinyMCE","slug":"how-tos-and-tutorials"},"metaTitle":{"metaTitle":"How to enrich Angular textarea with TinyMCE | TinyMCE"},"metaDescription":{"metaDescription":"Learn how to enrich Angular textarea with TinyMCE for a better application experience, covering creation, enhancement, resizing and more."}}},{"node":{"title":"Angular Change Detection and the OnPush strategy","slug":"angular-change-detection-onpush-strategy","featured":false,"lastUpdated":"Mar 7th, 2023","description":{"description":"<p>There is an alternative method for detecting value changes faster in Angular applications with immutable reference types and the OnPush strategy. Read on to find out how this works.</p>","childMarkdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"There is an alternative method for detecting value changes faster in Angular applications with immutable reference types and the OnPush strategy. Read on to find out how this works."}]}],"data":{"quirksMode":false}}}},"heroImage":{"alt":"Angular logo on a yellow background with process elements","artistName":null,"image":{"fluid":{"base64":"data:image/jpeg;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAALCAMAAABI111xAAAAqFBMVEX42r/52r/527/728D628D528D53cH53sL53MH428La2MDn2sP63MHxxq7usZvzybD52sD02sKszrHM1r7lqpbmgYLqhYvnjHz12sH32sD117z028P23cTalYLnhYrzur7qmZL23Mb43sf017zqzrTv0bf12L3vz7XclYvhcm7utqH02sDz17322L3v0rjz1rv01Lr22b7x0rfy1Lrz1bvy1brw07j53MAPx842AAAAaUlEQVQIHQXBwUlDARBAwXnfv6BR8O4hbdh/GWILIl6FxHUmCFiAE0GwQMRR1f1mwQmPVfWL5x8kvVZVfXFbTvp7qqp6uNNK57Wqqm8vn+yJS/q4Xqq32qCOmZl5n5kZRQQAWAcLFmD5B8m3FsOkv4dTAAAAAElFTkSuQmCC","aspectRatio":1.7777777777777777,"src":"//images.ctfassets.net/s600jj41gsex/1LXmifcjJCDfpxF9LDdwnI/849dce013c1618601b0333fdc7a093f5/An_Angular_5_tutorial__step-by-step_guide_to_your_first_Angular_5_app.png?w=739&q=50&fit=scale","srcSet":"//images.ctfassets.net/s600jj41gsex/1LXmifcjJCDfpxF9LDdwnI/849dce013c1618601b0333fdc7a093f5/An_Angular_5_tutorial__step-by-step_guide_to_your_first_Angular_5_app.png?w=185&h=104&q=50&fit=scale 185w,\n//images.ctfassets.net/s600jj41gsex/1LXmifcjJCDfpxF9LDdwnI/849dce013c1618601b0333fdc7a093f5/An_Angular_5_tutorial__step-by-step_guide_to_your_first_Angular_5_app.png?w=370&h=208&q=50&fit=scale 370w,\n//images.ctfassets.net/s600jj41gsex/1LXmifcjJCDfpxF9LDdwnI/849dce013c1618601b0333fdc7a093f5/An_Angular_5_tutorial__step-by-step_guide_to_your_first_Angular_5_app.png?w=739&h=416&q=50&fit=scale 739w,\n//images.ctfassets.net/s600jj41gsex/1LXmifcjJCDfpxF9LDdwnI/849dce013c1618601b0333fdc7a093f5/An_Angular_5_tutorial__step-by-step_guide_to_your_first_Angular_5_app.png?w=1109&h=624&q=50&fit=scale 1109w,\n//images.ctfassets.net/s600jj41gsex/1LXmifcjJCDfpxF9LDdwnI/849dce013c1618601b0333fdc7a093f5/An_Angular_5_tutorial__step-by-step_guide_to_your_first_Angular_5_app.png?w=1478&h=831&q=50&fit=scale 1478w,\n//images.ctfassets.net/s600jj41gsex/1LXmifcjJCDfpxF9LDdwnI/849dce013c1618601b0333fdc7a093f5/An_Angular_5_tutorial__step-by-step_guide_to_your_first_Angular_5_app.png?w=1920&h=1080&q=50&fit=scale 1920w","srcWebp":"//images.ctfassets.net/s600jj41gsex/1LXmifcjJCDfpxF9LDdwnI/849dce013c1618601b0333fdc7a093f5/An_Angular_5_tutorial__step-by-step_guide_to_your_first_Angular_5_app.png?w=739&q=50&fm=webp&fit=scale","srcSetWebp":"//images.ctfassets.net/s600jj41gsex/1LXmifcjJCDfpxF9LDdwnI/849dce013c1618601b0333fdc7a093f5/An_Angular_5_tutorial__step-by-step_guide_to_your_first_Angular_5_app.png?w=185&h=104&q=50&fm=webp&fit=scale 185w,\n//images.ctfassets.net/s600jj41gsex/1LXmifcjJCDfpxF9LDdwnI/849dce013c1618601b0333fdc7a093f5/An_Angular_5_tutorial__step-by-step_guide_to_your_first_Angular_5_app.png?w=370&h=208&q=50&fm=webp&fit=scale 370w,\n//images.ctfassets.net/s600jj41gsex/1LXmifcjJCDfpxF9LDdwnI/849dce013c1618601b0333fdc7a093f5/An_Angular_5_tutorial__step-by-step_guide_to_your_first_Angular_5_app.png?w=739&h=416&q=50&fm=webp&fit=scale 739w,\n//images.ctfassets.net/s600jj41gsex/1LXmifcjJCDfpxF9LDdwnI/849dce013c1618601b0333fdc7a093f5/An_Angular_5_tutorial__step-by-step_guide_to_your_first_Angular_5_app.png?w=1109&h=624&q=50&fm=webp&fit=scale 1109w,\n//images.ctfassets.net/s600jj41gsex/1LXmifcjJCDfpxF9LDdwnI/849dce013c1618601b0333fdc7a093f5/An_Angular_5_tutorial__step-by-step_guide_to_your_first_Angular_5_app.png?w=1478&h=831&q=50&fm=webp&fit=scale 1478w,\n//images.ctfassets.net/s600jj41gsex/1LXmifcjJCDfpxF9LDdwnI/849dce013c1618601b0333fdc7a093f5/An_Angular_5_tutorial__step-by-step_guide_to_your_first_Angular_5_app.png?w=1920&h=1080&q=50&fm=webp&fit=scale 1920w","sizes":"(max-width: 739px) 100vw, 739px"}}},"author":{"name":"Ahmet Shapiro-Erciyas","slug":"ahmet-shapiro-erciyas"},"category":{"title":"Developer Insights","slug":"engineering"},"metaTitle":{"metaTitle":"Angular change detection: how it works and strategies explained | TinyMCE"},"metaDescription":{"metaDescription":"AngularJS's change detection is one of its most powerful features. In this article we explain how it works and review some strategies for using it effectively."}}},{"node":{"title":"How to add an Emoji Picker to your Angular App","slug":"How-to-build-angular-app-tinymce-emoji","featured":false,"lastUpdated":"Oct 4th, 2022","description":{"description":"<p>It&rsquo;s possible to build a demo Angular app with TinyMCE, and to add the emoticon plugin with an emoji database. Here&rsquo;s how to do it.</p>","childMarkdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"It’s possible to build a demo Angular app with TinyMCE, and to add the emoticon plugin with an emoji database. Here’s how to do it."}]}],"data":{"quirksMode":false}}}},"heroImage":{"alt":"Two emoji on a blue background with hidden lines","artistName":null,"image":{"fluid":{"base64":"data:image/jpeg;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAALCAMAAABI111xAAABHVBMVEUXIk8XIlAOHE0AAEI8QV4cJlAAAB8AAD4GGEwVIU4XI1EVIVAAFUsAACiio6zKy8+LjZhucIAAAEcUIE4XIU8XI1ARH08AFEuOkJvn6Ov////29/h+gIoAAEARHk4WIU8XI1IAEkqOkJrr7O319vdrbXwFF0wAD0oPHU0VIU8AACmxsrnP0NOmqK54eoY0OVpXWm5RVGoADkkNHE4WIlAXIlESH04AAkcvNVQAADIAAEE0OVmen6fk5ujAwcZaXG8TH04UIFAADUkAEUoLG00ACkkrMlXS09fz9PVtb3wYI1IVIE4fJ1DOz9L5+vu4ub1PUmYIGUwmLlTMzNCZmqA5PVgAAEMPHU4eJ1FkZnYADkYPHE0BFksAAEQADkrMbSGMAAAAm0lEQVQIHTXBwQoBQQDH4d+fmVmzU6RQSrlKjryCx3V0UMrRI7hy1Cqlnd32sna1vk+A/gqQj2CAVJ2QQYhgYNJTJ/ezR8jA0Eilwqsc+CpZFUAfIhra1NrH3HrnQhUxwFqqEmmrH6APvOswcq3bwn3sM6Ip7I5L2JRerZPPMBlcuAOvvVoxh15d1/xE59zZXmkYOvnYSO9DSeMLHQMp38tqIacAAAAASUVORK5CYII=","aspectRatio":1.7767441860465116,"src":"//images.ctfassets.net/s600jj41gsex/1R9qUelJMFa0utmtjsMJnH/393c6ee22314f59c57d6ff619e8911e6/img-emoji-picker-ver-2.png?w=739&q=50&fit=scale","srcSet":"//images.ctfassets.net/s600jj41gsex/1R9qUelJMFa0utmtjsMJnH/393c6ee22314f59c57d6ff619e8911e6/img-emoji-picker-ver-2.png?w=185&h=104&q=50&fit=scale 185w,\n//images.ctfassets.net/s600jj41gsex/1R9qUelJMFa0utmtjsMJnH/393c6ee22314f59c57d6ff619e8911e6/img-emoji-picker-ver-2.png?w=370&h=208&q=50&fit=scale 370w,\n//images.ctfassets.net/s600jj41gsex/1R9qUelJMFa0utmtjsMJnH/393c6ee22314f59c57d6ff619e8911e6/img-emoji-picker-ver-2.png?w=739&h=416&q=50&fit=scale 739w,\n//images.ctfassets.net/s600jj41gsex/1R9qUelJMFa0utmtjsMJnH/393c6ee22314f59c57d6ff619e8911e6/img-emoji-picker-ver-2.png?w=1109&h=624&q=50&fit=scale 1109w,\n//images.ctfassets.net/s600jj41gsex/1R9qUelJMFa0utmtjsMJnH/393c6ee22314f59c57d6ff619e8911e6/img-emoji-picker-ver-2.png?w=1478&h=832&q=50&fit=scale 1478w,\n//images.ctfassets.net/s600jj41gsex/1R9qUelJMFa0utmtjsMJnH/393c6ee22314f59c57d6ff619e8911e6/img-emoji-picker-ver-2.png?w=1528&h=860&q=50&fit=scale 1528w","srcWebp":"//images.ctfassets.net/s600jj41gsex/1R9qUelJMFa0utmtjsMJnH/393c6ee22314f59c57d6ff619e8911e6/img-emoji-picker-ver-2.png?w=739&q=50&fm=webp&fit=scale","srcSetWebp":"//images.ctfassets.net/s600jj41gsex/1R9qUelJMFa0utmtjsMJnH/393c6ee22314f59c57d6ff619e8911e6/img-emoji-picker-ver-2.png?w=185&h=104&q=50&fm=webp&fit=scale 185w,\n//images.ctfassets.net/s600jj41gsex/1R9qUelJMFa0utmtjsMJnH/393c6ee22314f59c57d6ff619e8911e6/img-emoji-picker-ver-2.png?w=370&h=208&q=50&fm=webp&fit=scale 370w,\n//images.ctfassets.net/s600jj41gsex/1R9qUelJMFa0utmtjsMJnH/393c6ee22314f59c57d6ff619e8911e6/img-emoji-picker-ver-2.png?w=739&h=416&q=50&fm=webp&fit=scale 739w,\n//images.ctfassets.net/s600jj41gsex/1R9qUelJMFa0utmtjsMJnH/393c6ee22314f59c57d6ff619e8911e6/img-emoji-picker-ver-2.png?w=1109&h=624&q=50&fm=webp&fit=scale 1109w,\n//images.ctfassets.net/s600jj41gsex/1R9qUelJMFa0utmtjsMJnH/393c6ee22314f59c57d6ff619e8911e6/img-emoji-picker-ver-2.png?w=1478&h=832&q=50&fm=webp&fit=scale 1478w,\n//images.ctfassets.net/s600jj41gsex/1R9qUelJMFa0utmtjsMJnH/393c6ee22314f59c57d6ff619e8911e6/img-emoji-picker-ver-2.png?w=1528&h=860&q=50&fm=webp&fit=scale 1528w","sizes":"(max-width: 739px) 100vw, 739px"}}},"author":{"name":"Joe Robinson","slug":"joseph-robinson"},"category":{"title":"How-to Use TinyMCE","slug":"how-tos-and-tutorials"},"metaTitle":{"metaTitle":"How to add emoji picker to your Angular app | TinyMCE"},"metaDescription":{"metaDescription":"Angular emoji picker setup with TinyMCE is quite easy: learn about necessary configurations and steps."}}}]}},"pageContext":{"limit":12,"skip":0,"numPages":2,"currentPage":1,"slug":"angular","title":"Angular","page":"tag","banner":{"description":"Deploy TinyMCE in just 6 lines of code","buttonLabel":"Get your Cloud API Key","externalLink":"https://www.tiny.cloud/get-tiny/","section":["category","author","posts","home","tag"]},"bannerForTag":{"bannerDescription":"See how TinyMCE works with Angular apps for faster development","bannerButtonLabel":"Explore Angular integrations","bannerExternalLink":"https://www.tiny.cloud/solutions/wysiwyg-angular-rich-text-editor/","bannerIsEnabled":true}}},"staticQueryHashes":["2492987505","740350947"]}