{"componentChunkName":"component---src-templates-author-page-tsx","path":"/author/joakim-lindkvist/","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":"Open source, a way of life at Tiny","slug":"open-source-a-way-of-life-at-tiny","featured":false,"lastUpdated":"Jan 6th, 2021","description":{"description":"<p dir=\"ltr\">At Tiny, we strongly believe in the spirit of open source software. When TinyMCE was first released back in 2004, open source had not really taken off. Today, you will be hard pressed to find software that doesn't include some type of open source component, maybe not in a release package, but in the tooling or testing frameworks at the very least.</p>","childMarkdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"p","properties":{"dir":"ltr"},"children":[{"type":"text","value":"At Tiny, we strongly believe in the spirit of open source software. When TinyMCE was first released back in 2004, open source had not really taken off. Today, you will be hard pressed to find software that doesn't include some type of open source component, maybe not in a release package, but in the tooling or testing frameworks at the very least."}]}],"data":{"quirksMode":false}}}},"heroImage":{"alt":"A neon OPEN sign.","artistName":null,"image":{"fluid":{"base64":"data:image/jpeg;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAQCAIAAACZeshMAAADX0lEQVQYGQXByU8bVxwH8O/vvWHwMvYYMAPYeMEY1+CGvZG6pMqpUi7NIZV666mHHvp3VOq96qE95NBDpOaSpqqSqIloqUq3YNokBLAJQsiCgDG2x8ae9b1+PqSUbiIQRSCC4nV/NMX0aGrRaAh2+driwnFHI9DUj4YHhl3zmy++QnmXYpIfPoCex9VPOIvPgCkAgRQRHUsYeu7aiJlgYQe9455oWXDkS0vmI6HSXHa7/BR9j6khau2i1+VsJAdI8AF4roiMDyUNng3xts0mAxfnNvYb6FkAtlt+KRHPlbKVJ2sCjEmfWq84DWUASWCSFKnq2lS6mw6Fy+dFhR0Xo07TwqszjfuOLfc64s2pxNj08OF39xHVyDE501MAQAQ2KJVoYDbvToa//OX0xp1H3cL4s9UE+l7kossdx+qLWtufKUyHZuMnP3wN6JzpSTAOUqBG5EBMzGXfTcbmf9yv3b+zGInrE0Z5aZw8Hj256Da7ticabT/5xoxvGObGPc4iSTAOrmIgLHlELBVnDa2wdniXGp/uvVh5vBWeTf96Ndt1Jap1uFbf8S87Qi8UW4NBhYSUwofw4VoQMqaqNc/m5xc12yG/frDz4OPbRtbB52/l4RPWK9SqNy47rXaQFm9xaGNEBOIgRaojQ28vVGLKh49333lemQu21XBmtPpns3w5k07+tppC08bBEbc7aLfRNDmFRyUAEEkmEdbfWzFjg3RmrnTcbs/ayC34JOOnR+/vbSmr8394Kl7us16d+i3qnHMZjAOQkCQhPSVYLGhXMpuD3l0mDnOlb2v7N6U8Ml8Xaw/58vXvpY6dCl2eUd9Ev61cD8gjVxx4rpQWo1bz0VoyG88tF47zifWnVXTzB75R2A3Z2BiyLcgeOk04pnT75Dv8s/yE52HXFkRgDKJhNv+uo9WKJwxjOd+YzzwJslljKPDfSPBa5rYSRnmLnAtyenB6fNsZfuFKnyQRIwYiF06zv1XV/j2wOnY6k9AWUvem9IeltL9wZbNr4a+ydJrSd6Tv8m5kwiMwkiBGxAAhmNAGvQ+SneP16v7msdazJ6cmxFJqTVNROcHv/0B0QQBxbujTLkEQEVNABEhJzBGyWrcaTh+NhvnTTv35qeH3J9vm6c+bhWeVaVXeCg1A8P8BMcOuv5xAuEIAAAAASUVORK5CYII=","aspectRatio":1.2173913043478262,"src":"//images.ctfassets.net/s600jj41gsex/6Vcvtui940jfR0m1YqCloH/1229226054c9cf8ba725bc0def6fc934/BlogImage_default_opensource.png?w=739&q=50&fit=scale","srcSet":"//images.ctfassets.net/s600jj41gsex/6Vcvtui940jfR0m1YqCloH/1229226054c9cf8ba725bc0def6fc934/BlogImage_default_opensource.png?w=185&h=152&q=50&fit=scale 185w,\n//images.ctfassets.net/s600jj41gsex/6Vcvtui940jfR0m1YqCloH/1229226054c9cf8ba725bc0def6fc934/BlogImage_default_opensource.png?w=370&h=304&q=50&fit=scale 370w,\n//images.ctfassets.net/s600jj41gsex/6Vcvtui940jfR0m1YqCloH/1229226054c9cf8ba725bc0def6fc934/BlogImage_default_opensource.png?w=739&h=607&q=50&fit=scale 739w,\n//images.ctfassets.net/s600jj41gsex/6Vcvtui940jfR0m1YqCloH/1229226054c9cf8ba725bc0def6fc934/BlogImage_default_opensource.png?w=896&h=736&q=50&fit=scale 896w","srcWebp":"//images.ctfassets.net/s600jj41gsex/6Vcvtui940jfR0m1YqCloH/1229226054c9cf8ba725bc0def6fc934/BlogImage_default_opensource.png?w=739&q=50&fm=webp&fit=scale","srcSetWebp":"//images.ctfassets.net/s600jj41gsex/6Vcvtui940jfR0m1YqCloH/1229226054c9cf8ba725bc0def6fc934/BlogImage_default_opensource.png?w=185&h=152&q=50&fm=webp&fit=scale 185w,\n//images.ctfassets.net/s600jj41gsex/6Vcvtui940jfR0m1YqCloH/1229226054c9cf8ba725bc0def6fc934/BlogImage_default_opensource.png?w=370&h=304&q=50&fm=webp&fit=scale 370w,\n//images.ctfassets.net/s600jj41gsex/6Vcvtui940jfR0m1YqCloH/1229226054c9cf8ba725bc0def6fc934/BlogImage_default_opensource.png?w=739&h=607&q=50&fm=webp&fit=scale 739w,\n//images.ctfassets.net/s600jj41gsex/6Vcvtui940jfR0m1YqCloH/1229226054c9cf8ba725bc0def6fc934/BlogImage_default_opensource.png?w=896&h=736&q=50&fm=webp&fit=scale 896w","sizes":"(max-width: 739px) 100vw, 739px"}}},"author":{"name":"Joakim Lindkvist","slug":"joakim-lindkvist"},"category":{"title":"Open Source","slug":"open-source"},"metaTitle":null,"metaDescription":null}},{"node":{"title":"Continuously refactoring 100000 lines of code","slug":"modern-javascript-refactoring-tinymce","featured":false,"lastUpdated":"Apr 28th, 2020","description":{"description":"<p>Tiny has adopted a continuous improvement process to move TinyMCE to modern JavaScript. Read how we are continuously refactoring 100000 lines of code.</p>","childMarkdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Tiny has adopted a continuous improvement process to move TinyMCE to modern JavaScript. Read how we are continuously refactoring 100000 lines of code."}]}],"data":{"quirksMode":false}}}},"heroImage":{"alt":"An evolution of the JavaScript logo (JS) to the TypeScript logo (TS), with a made up logo that looks like a combination of the two in between.","artistName":null,"image":{"fluid":{"base64":"data:image/jpeg;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAQCAIAAACZeshMAAACmklEQVQYGU3BQWtcVRgG4Pf9zrl3ZpLppDVJaULEhSml0E1woSLYf+DGjeDWH1Vw4x8Qdyq4FetGG7WV0DZq0SYanYakmczce873vSbgwufh1s5HAPq+RMjdAZAEIAn/Y2Y5pwsSpJBkyXIpXa0RHgA8wkgBNCokgISEZExG99J3XUhNTimnqJ5rX0p1EpckgW3bmlmttZRCs0HTNG0CWPrKbBFuJkWVlFMiaQAHg7bvewDJSGPOyQxm1uTk7qWvEWGJyUiqaRpF5Fp6kAAWi8g5Cexrra7zvi41aTRAP++6k1O45yaxMeQG7TAIGrPkZmlRfDYPhCEATzgmEKfwU/Tp1rq9/U4yBi8Yz160T7+TXED2Whe1zl9iPGEynZz76hX/5ONu6Wp6Mp08mb7y1f2NHzffLbAFAEs4/u3az98geQ1kjzovxDx9dm966/WXVHz7YHzz9gqu3jg6vN6OV2cPFttZH95ePpk7LX3+A/a7ujy0nJKlRJhhHq9uzDbWD5rm2WQ8++noxjw+WB29d2fl7v7ZcOrx1s3JzmvL77+5/sZaW/86VzjkpqioPVAkf/5nfbQ3O/zbfz3dejGb7B+ltdHmznBy3GnvYPHoYNFXba8PgRpR3UsOL5CQ+OkXV5aG27X6L7+3jx8+373/5dMjbg5Wdh/uYW16749m5tr9evD9s0NcawlRwcnW3eIxL8Q/GQhAgIACdLgUk+tDq93srJa+A8DReLQySimRzIqaoMnA+o3eQwTabIkNkAnQSIAcLC9FXwoAkkDIQ2RWVDOGV5MSaBcQECQBiEBcECAZCRIKAQIgZKPCPSJAmBkVkJEE9J8QCZJmBESjh0cEwey1Ey4ZCQmA3EVCCskjABgJMoKXYFRkQyj+BQZQpzRxkkpaAAAAAElFTkSuQmCC","aspectRatio":1.2173913043478262,"src":"//images.ctfassets.net/s600jj41gsex/3194qQ7O0Fx9mJSzNE3nUx/07e28e06b2cb9573186a2586d8786bd6/Image_default_ModernJavascript.png?w=739&q=50&fit=scale","srcSet":"//images.ctfassets.net/s600jj41gsex/3194qQ7O0Fx9mJSzNE3nUx/07e28e06b2cb9573186a2586d8786bd6/Image_default_ModernJavascript.png?w=185&h=152&q=50&fit=scale 185w,\n//images.ctfassets.net/s600jj41gsex/3194qQ7O0Fx9mJSzNE3nUx/07e28e06b2cb9573186a2586d8786bd6/Image_default_ModernJavascript.png?w=370&h=304&q=50&fit=scale 370w,\n//images.ctfassets.net/s600jj41gsex/3194qQ7O0Fx9mJSzNE3nUx/07e28e06b2cb9573186a2586d8786bd6/Image_default_ModernJavascript.png?w=739&h=607&q=50&fit=scale 739w,\n//images.ctfassets.net/s600jj41gsex/3194qQ7O0Fx9mJSzNE3nUx/07e28e06b2cb9573186a2586d8786bd6/Image_default_ModernJavascript.png?w=896&h=736&q=50&fit=scale 896w","srcWebp":"//images.ctfassets.net/s600jj41gsex/3194qQ7O0Fx9mJSzNE3nUx/07e28e06b2cb9573186a2586d8786bd6/Image_default_ModernJavascript.png?w=739&q=50&fm=webp&fit=scale","srcSetWebp":"//images.ctfassets.net/s600jj41gsex/3194qQ7O0Fx9mJSzNE3nUx/07e28e06b2cb9573186a2586d8786bd6/Image_default_ModernJavascript.png?w=185&h=152&q=50&fm=webp&fit=scale 185w,\n//images.ctfassets.net/s600jj41gsex/3194qQ7O0Fx9mJSzNE3nUx/07e28e06b2cb9573186a2586d8786bd6/Image_default_ModernJavascript.png?w=370&h=304&q=50&fm=webp&fit=scale 370w,\n//images.ctfassets.net/s600jj41gsex/3194qQ7O0Fx9mJSzNE3nUx/07e28e06b2cb9573186a2586d8786bd6/Image_default_ModernJavascript.png?w=739&h=607&q=50&fm=webp&fit=scale 739w,\n//images.ctfassets.net/s600jj41gsex/3194qQ7O0Fx9mJSzNE3nUx/07e28e06b2cb9573186a2586d8786bd6/Image_default_ModernJavascript.png?w=896&h=736&q=50&fm=webp&fit=scale 896w","sizes":"(max-width: 739px) 100vw, 739px"}}},"author":{"name":"Joakim Lindkvist","slug":"joakim-lindkvist"},"category":{"title":"Developer Insights","slug":"engineering"},"metaTitle":{"metaTitle":"Moving TinyMCE to Modern Javascript"},"metaDescription":null}}]}},"pageContext":{"limit":12,"skip":0,"numPages":1,"currentPage":1,"slug":"joakim-lindkvist","title":"Joakim Lindkvist","metaDescription":null,"description":"Cofounder of TinyMCE and product owner. Joakim lives in Umeå, Sweden.","longBio":null,"expertiseList":null,"page":"author","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"]}}},"staticQueryHashes":["2492987505","740350947"]}