Newsletter Subject

New JS Set Methods, Implementing CSS Conditionals, and Rust Causing Regrets?

From

sitepoint.com

Email Address

support@sitepoint.com

Sent On

Mon, Jul 1, 2024 02:48 PM

Email Preheader Text

The latest JavaScript updates, CSS tricks, and a developer's 18-month journey with Rust. ‌

The latest JavaScript updates, CSS tricks, and a developer's 18-month journey with Rust. ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ [SitePoint logo](~/AAAHUQA~/RgRoZUa0P0UgYWNjZWRmMTIzNGVjMTNkMTE3OGFmYmYzYjk4MzJjNjNEFGh0dHBzOi8vc2l0ZXBvbnQuY29tVwVzcGNldUIKZnS0wYJmdV40JVIbdHJpc3RyYW1iYWxkd2luOTFAZ21haWwuY29tWAQAAGQd) June 24, 2024 | [Read Online](~/AAAHUQA~/RgRoZUa0P0TbaHR0cHM6Ly9iZXJyaW1hLmVvY2FtcGFpZ24xLmNvbS93ZWItdmVyc2lvbj9lcD0yJmxjPTg3MDdlZTg2LTUyZjAtMTFlZS1hZjUyLTRiNTM4MmJhM2I5NCZwPTlkYjJkN2E0LTM0YzctMTFlZi05MzU3LTFmN2Q4ZTdiMDJiMSZwdD1jYW1wYWlnbiZ0PTE3MTk4NDUzMDAmcz03Zjc3YThjYzU4YTYwMzZkMTA0ODQ2ZjM2NDgxOTE4NTExN2M4NDU4MTZmYzFhMDBhNTVkN2M3MTJhMGI5NjRiVwVzcGNldUIKZnS0wYJmdV40JVIbdHJpc3RyYW1iYWxkd2luOTFAZ21haWwuY29tWAQAAGQd) SitePoint Source Welcome, Developers! 👋 Today, we check out the exciting new JavaScript set methods now available across major browsers, explore current methods for CSS conditionals, and reveal why MobX might be your new best friend in React development. Plus, a reminder of the pitfalls of blind trust in programming and a hot take (or rant?) about the challenges of migrating to Rust. ☕ Let's dive in. From our Sponsor: Buildkits ~/AAAHUQA~/RgRoZUa0P0UgMDUxNTQ1Njg3MzkxNjU1OTlkYmYzNTM1ODNhNmU3ZDREGmh0dHBzOi8vd3d3LmJ1aWxka2l0cy5kZXYvVwVzcGNldUIKZnS0wYJmdV40JVIbdHJpc3RyYW1iYWxkd2luOTFAZ21haWwuY29tWAQAAGQd ~/AAAHUQA~/RgRoZUa0P0UgMjc2YzExZmUwZTNiOWUxN2FkYjAyYjVjMzc2YjQ3MmNEmGh0dHBzOi8vbWwuc2l0ZXBvaW50LmNvbS9saW5rL2MvWVQweU16RXhOemMyTmprMk5UZzFOREkyT1RrMkptTTlhVEp5TUNabFBUQW1ZajB4TWpFeE5qUXdOVGs1Sm1ROVpqWnJOM1V6YWc9PS5RcndWOWk0QWI0a0RRVndLRnU4Sk1QUnFQVUNPZk50blNGREwtMXBNQU1vVwVzcGNldUIKZnS0wYJmdV40JVIbdHJpc3RyYW1iYWxkd2luOTFAZ21haWwuY29tWAQAAGQd🚀 The ultimate marketplace for SaaS boilerplates Boilerplates help you ship faster and smarter, so you can focus on what truly matters – building great products. Our marketplace features over 150 boilerplates across diverse stacks, including Next.js, Laravel, Django, and more. Say goodbye to starting from scratch, and find your ideal boilerplate here. [Get started now](~/AAAHUQA~/RgRoZUa0P0UgMDUxNTQ1Njg3MzkxNjU1OTlkYmYzNTM1ODNhNmU3ZDREGmh0dHBzOi8vd3d3LmJ1aWxka2l0cy5kZXYvVwVzcGNldUIKZnS0wYJmdV40JVIbdHJpc3RyYW1iYWxkd2luOTFAZ21haWwuY29tWAQAAGQd) 🔍 ️New JavaScript Set Methods JavaScript developers, rejoice! The latest browser updates bring seven new Set methods, now available across major engines without polyfills. Learn how these methods can simplify your data handling and improve your JavaScript projects. P.S. The newly released [Typescript 5.5](~/AAAHUQA~/RgRoZUa0P0UgNjE5ZjFlODBiNjE1ZTZlNjllYjczMTBjYjljZjA5YmJEYmh0dHBzOi8vd3d3LmluZm93b3JsZC5jb20vYXJ0aWNsZS8zNzE1MjQ2L3R5cGVzY3JpcHQtYWRkcy1zdXBwb3J0LWZvci1lY21hc2NyaXB0cy1zZXQtbWV0aG9kcy5odG1sVwVzcGNldUIKZnS0wYJmdV40JVIbdHJpc3RyYW1iYWxkd2luOTFAZ21haWwuY29tWAQAAGQd) includes support for these set methods. [By Brian Smith →](~/AAAHUQA~/RgRoZUa0P0UgNzYzM2ZkNWQ1NmY0ZGUxMmRmZGYwYTY2MjJjMDc5YmVEQGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2Jsb2cvamF2YXNjcmlwdC1zZXQtbWV0aG9kcy9XBXNwY2V1QgpmdLTBgmZ1XjQlUht0cmlzdHJhbWJhbGR3aW45MUBnbWFpbC5jb21YBAAAZB0~) 🔧 CSS Conditionals: Clever Hacks While Waiting for if() The CSS Working Group recently resolved to [add an if() function to CSS](~/AAAHUQA~/RgRoZUa0P0UgODgxMjcwYTRjYmMwOTQzMzU1OWQ2OTgzOWViODJjNzNEMGh0dHBzOi8vbGVhLnZlcm91Lm1lL2Jsb2cvMjAyNC9jc3MtY29uZGl0aW9uYWxzL1cFc3BjZXVCCmZ0tMGCZnVeNCVSG3RyaXN0cmFtYmFsZHdpbjkxQGdtYWlsLmNvbVgEAABkHQ~~), but its implementation will take some time. So, what can developers do in the meantime? Lea Verou explores various clever methods to achieve conditional logic in CSS today, albeit with some caveats that showcase the necessity of the if() function. [By Lea Verou →](~/AAAHUQA~/RgRoZUa0P0UgMDQzYmI0ZmM4NzMyYmQzMDQwODhjZGEwZTZkNzc3ZWZENGh0dHBzOi8vbGVhLnZlcm91Lm1lL2Jsb2cvMjAyNC9jc3MtY29uZGl0aW9uYWxzLW5vdy9XBXNwY2V1QgpmdLTBgmZ1XjQlUht0cmlzdHJhbWJhbGR3aW45MUBnbWFpbC5jb21YBAAAZB0~) 🧠MobX Memoizes Components (You Don't Need React Compiler) If you're using MobX with React, you might be tempted to use the React Compiler for auto-memoizing components. But with MobX, you don't need it! MobX efficiently manages state and re-renders, often using less memory and working more effectively across multiple components. [By Mike Johnson →](~/AAAHUQA~/RgRoZUa0P0UgMzI1YjZlYzgyM2JiMDE0YWQ2NGEwMjg5MTNiYTNhZmJEPWh0dHBzOi8vd3d3Lm1pa2Vqb2huc29uLmRldi9wb3N0cy8yMDI0LzA2L21vYngtcmVhY3QtY29tcGlsZXJXBXNwY2V1QgpmdLTBgmZ1XjQlUht0cmlzdHJhbWJhbGR3aW45MUBnbWFpbC5jb21YBAAAZB0~) 🔫 Programmers Should Never Trust Anyone, Not Even Themselves Faith in your work is essential, but blind trust and assumptions can lead to a house of cards. Sung Kim also argues that while abstractions are essential for efficient thinking, they can create a false sense of understanding. Programmers should strive for healthy skepticism with the principle of 'trust, but verify.' [By Sung Kim →](~/AAAHUQA~/RgRoZUa0P0UgM2JmMTdjODczMjMyY2QyZGNmODBkYjRmZWFlNzY3NWZESWh0dHBzOi8vY2FyYm9uLXN0ZWVsLmdpdGh1Yi5pby9qZWt5bGwvdXBkYXRlLzIwMjQvMDYvMTkvYWJzdHJhY3Rpb25zLmh0bWxXBXNwY2V1QgpmdLTBgmZ1XjQlUht0cmlzdHJhbWJhbGR3aW45MUBnbWFpbC5jb21YBAAAZB0~) 🫠I spent 18 months rebuilding my algorithmic trading platform in Rust. I’m filled with regret. Rust, praised for its speed and safety, seemed like the perfect language for Austin's project, but his excitement quickly turned into frustration. He details struggles with Rust's verbose syntax, cryptic error messages, and a community he found less welcoming than advertised.🍿 And here's a juicy [reddit thread](~/AAAHUQA~/RgRoZUa0P0UgMTQ4NTM4NjA1YmE3YWJiODM0NWQ5YTM3OGIwZDhlYTZEYmh0dHBzOi8vd3d3LnJlZGRpdC5jb20vci9wcm9ncmFtbWluZy9jb21tZW50cy8xZHFhMmRtL2lfc3BlbnRfMThfbW9udGhzX3JlYnVpbGRpbmdfbXlfYWxnb3JpdGhtaWMvVwVzcGNldUIKZnS0wYJmdV40JVIbdHJpc3RyYW1iYWxkd2luOTFAZ21haWwuY29tWAQAAGQd) about the article. [By Austin Starks →](~/AAAHUQA~/RgRoZUa0P0UgYmQ2ZjdjMjQwMTkyZGJhMWUyNzhkZDA5OTI3MjllYWVEgGh0dHBzOi8vbWVkaXVtLmNvbS9AYXVzdGluLXN0YXJrcy9pLXNwZW50LTE4LW1vbnRocy1yZWJ1aWxkaW5nLW15LWFsZ29yaXRobWljLXRyYWRpbmctaW4tcnVzdC1pbS1maWxsZWQtd2l0aC1yZWdyZXQtZDMwMGRjYzE0N2UwVwVzcGNldUIKZnS0wYJmdV40JVIbdHJpc3RyYW1iYWxkd2luOTFAZ21haWwuY29tWAQAAGQd) 🧰 The Toolbox Tools and products we're excited about today: ApyHub Fusion Build, test, document, and collaborate on your APIs in real-time with Fusion. Say goodbye to bottlenecks and hello to seamless API management. [Learn more →](~/AAAHUQA~/RgRoZUa0P0UgZWI0ZWU0MWVhMTY0ZDZlYzJkZjY5NzJmM2ExY2M1NTlEL2h0dHBzOi8vd3d3LnByb2R1Y3RodW50LmNvbS9wb3N0cy9hcHlodWItZnVzaW9uVwVzcGNldUIKZnS0wYJmdV40JVIbdHJpc3RyYW1iYWxkd2luOTFAZ21haWwuY29tWAQAAGQd) Flox Quickly create reproducible, cross-platform development environments from 100k+ software packages with Flox. No containers needed! Enjoy transparent access to all system resources using a simple declarative framework. [Learn more →](~/AAAHUQA~/RgRoZUa0P0UgNzFiNTlhNzdmMzZjM2E4ZjNmZTFjN2NhYTZmNTIxNzFEKGh0dHBzOi8vd3d3LnByb2R1Y3RodW50LmNvbS9wb3N0cy9mbG94LTJXBXNwY2V1QgpmdLTBgmZ1XjQlUht0cmlzdHJhbWJhbGR3aW45MUBnbWFpbC5jb21YBAAAZB0~) Sherloq Collaborative AI repository for SQL users. Manage, save, and share your SQL code seamlessly within your IDE. Focus on data analysis and insights with ease, without the hassle of hunting for queries. [Learn more →](~/AAAHUQA~/RgRoZUa0P0UgNjdjYjc1NDQxZDRiZjIyYzMwN2EyNmZmN2Y2YTAyMzVEKWh0dHBzOi8vd3d3LnByb2R1Y3RodW50LmNvbS9wb3N0cy9zaGVybG9xVwVzcGNldUIKZnS0wYJmdV40JVIbdHJpc3RyYW1iYWxkd2luOTFAZ21haWwuY29tWAQAAGQd) ~/AAAHUQA~/RgRoZUa0P0UgMjc2YzExZmUwZTNiOWUxN2FkYjAyYjVjMzc2YjQ3MmNEmGh0dHBzOi8vbWwuc2l0ZXBvaW50LmNvbS9saW5rL2MvWVQweU16RXhOemMyTmprMk5UZzFOREkyT1RrMkptTTlhVEp5TUNabFBUQW1ZajB4TWpFeE5qUXdOVGs1Sm1ROVpqWnJOM1V6YWc9PS5RcndWOWk0QWI0a0RRVndLRnU4Sk1QUnFQVUNPZk50blNGREwtMXBNQU1vVwVzcGNldUIKZnS0wYJmdV40JVIbdHJpc3RyYW1iYWxkd2luOTFAZ21haWwuY29tWAQAAGQd~/AAAHUQA~/RgRoZUa0P0UgMjc2YzExZmUwZTNiOWUxN2FkYjAyYjVjMzc2YjQ3MmNEmGh0dHBzOi8vbWwuc2l0ZXBvaW50LmNvbS9saW5rL2MvWVQweU16RXhOemMyTmprMk5UZzFOREkyT1RrMkptTTlhVEp5TUNabFBUQW1ZajB4TWpFeE5qUXdOVGs1Sm1ROVpqWnJOM1V6YWc9PS5RcndWOWk0QWI0a0RRVndLRnU4Sk1QUnFQVUNPZk50blNGREwtMXBNQU1vVwVzcGNldUIKZnS0wYJmdV40JVIbdHJpc3RyYW1iYWxkd2luOTFAZ21haWwuY29tWAQAAGQd🚀 The ultimate marketplace for SaaS boilerplates Boilerplates help you ship faster and smarter, so you can focus on what truly matters – building great products. Our marketplace features over 150 boilerplates across diverse stack, including Next.js, Laravel, Django, and more. Say goodbye to starting from scratch, and find your ideal boilerplate here. [Get started now →](~/AAAHUQA~/RgRoZUa0P0UgMDUxNTQ1Njg3MzkxNjU1OTlkYmYzNTM1ODNhNmU3ZDREGmh0dHBzOi8vd3d3LmJ1aWxka2l0cy5kZXYvVwVzcGNldUIKZnS0wYJmdV40JVIbdHJpc3RyYW1iYWxkd2luOTFAZ21haWwuY29tWAQAAGQd) Come say hi! SitePoint’s community is a place where you can come to talk tech, development, and design. Join us today and get involved with other members who share your interests in tech! [Join now →](~/AAAHUQA~/RgRoZUa0P0UgMDk5Y2ViNDEzMjE3ZjE2ZGRiNDgyZTJkMTlkMGZjNzhEJGh0dHBzOi8vd3d3LnNpdGVwb2ludC5jb20vY29tbXVuaXR5L1cFc3BjZXVCCmZ0tMGCZnVeNCVSG3RyaXN0cmFtYmFsZHdpbjkxQGdtYWlsLmNvbVgEAABkHQ~~) That's a wrap for today! Let us know how you felt about today's newsletter. ~/AAAHUQA~/RgRoZUa0P0UgN2FiMGY2MzhmMjI5ZDEwNmI2ZjE4NDQ4MjY1MmVkYTVEWWh0dHBzOi8vZm9ybS50eXBlZm9ybS5jb20vdG8vdTVEQ3B0QkcjYW5zd2Vycy1ob3dfZGlkX3lvdV9mZWVsPTAxSFdUSE40WUtXVzVGQkhOQ0NDVllDSFYxVwVzcGNldUIKZnS0wYJmdV40JVIbdHJpc3RyYW1iYWxkd2luOTFAZ21haWwuY29tWAQAAGQd ~/AAAHUQA~/RgRoZUa0P0UgNWExMzVmNzEwYjNhMjA1MDhhZTJiNjkyNTA4MWJmNThEWWh0dHBzOi8vZm9ybS50eXBlZm9ybS5jb20vdG8vdTVEQ3B0QkcjYW5zd2Vycy1ob3dfZGlkX3lvdV9mZWVsPTAxSFdUSE40WUtQSkE4Uk44QUJZV1QzNkNXVwVzcGNldUIKZnS0wYJmdV40JVIbdHJpc3RyYW1iYWxkd2luOTFAZ21haWwuY29tWAQAAGQd ~/AAAHUQA~/RgRoZUa0P0UgNDAyMzRjYjRlNmU0NTJlYTEwOGVlZTliNjliMDBmNTdEY2h0dHBzOi8vZm9ybS50eXBlZm9ybS5jb20vdG8vdTVEQ3B0QkcjYW5zd2Vycy1ob3dfZGlkX3lvdV9mZWVsPTEzNjg3YjBhLTMwZmQtNDQxNC1iZDFlLTRkNjQ1ZGIzYTkwMVcFc3BjZXVCCmZ0tMGCZnVeNCVSG3RyaXN0cmFtYmFsZHdpbjkxQGdtYWlsLmNvbVgEAABkHQ~~ What do you want to see more of? ~/AAAHUQA~/RgRoZUa0P0UgNjhjNjE0MTdiYzYzYzQ1OWJhNmY1ZTkyOGE4MGNkNTREXmh0dHBzOi8vZm9ybS50eXBlZm9ybS5jb20vdG8vdTVEQ3B0QkcjYW5zd2Vycy1zZWVfbW9yZV9vZj0wMjQ1MWQ0ZC05Y2NhLTQzNmMtYmFhOS0zYzAzNmM4ODZhMGRXBXNwY2V1QgpmdLTBgmZ1XjQlUht0cmlzdHJhbWJhbGR3aW45MUBnbWFpbC5jb21YBAAAZB0~ ~/AAAHUQA~/RgRoZUa0P0UgYWNmMDZjMTUyODhjNzg1YjlkNDNjMjAxZjg2ZDg5YWFEXmh0dHBzOi8vZm9ybS50eXBlZm9ybS5jb20vdG8vdTVEQ3B0QkcjYW5zd2Vycy1zZWVfbW9yZV9vZj1iZGYzZDg5ZS0xYmU1LTRjNTctYjhmNy1iNzljM2RiYjkyMmVXBXNwY2V1QgpmdLTBgmZ1XjQlUht0cmlzdHJhbWJhbGR3aW45MUBnbWFpbC5jb21YBAAAZB0~ ~/AAAHUQA~/RgRoZUa0P0UgNWQ0ZDhkZGEyNGZjYjkzMThkYjcwNjFiY2U5ZDVkNjdEXmh0dHBzOi8vZm9ybS50eXBlZm9ybS5jb20vdG8vdTVEQ3B0QkcjYW5zd2Vycy1zZWVfbW9yZV9vZj00ZGYzYzQwZC1lMzhhLTQ0OWYtOGJmMi1kYWEwMDI1YTFkMWVXBXNwY2V1QgpmdLTBgmZ1XjQlUht0cmlzdHJhbWJhbGR3aW45MUBnbWFpbC5jb21YBAAAZB0~ ~/AAAHUQA~/RgRoZUa0P0UgNzQ2ZDlhZTA4ZWVjM2Q2ZmM2MTlmZGRiZGU5NWIzZjNEXmh0dHBzOi8vZm9ybS50eXBlZm9ybS5jb20vdG8vdTVEQ3B0QkcjYW5zd2Vycy1zZWVfbW9yZV9vZj1hYTAzMzMxNi0zM2I4LTQzOWEtYTMwZi1hOTI1MGU0YjJhYjNXBXNwY2V1QgpmdLTBgmZ1XjQlUht0cmlzdHJhbWJhbGR3aW45MUBnbWFpbC5jb21YBAAAZB0~ 71 Balmain Street Cremorne Vic 3121 Australia Your received this email because you signed up on our website or made purchase from us. [facebook social link](~/AAAHUQA~/RgRoZUa0P0UgNzFkNDYyNTdhOTZmY2FlNzQzNzUyYmQwZGZmMWFmYzREI2h0dHBzOi8vd3d3LmZhY2Vib29rLmNvbS9zaXRlcG9pbnQvVwVzcGNldUIKZnS0wYJmdV40JVIbdHJpc3RyYW1iYWxkd2luOTFAZ21haWwuY29tWAQAAGQd) [x social link](~/AAAHUQA~/RgRoZUa0P0UgMGUwYzdmZTc0NjFjNjAzNjk3MjhiYTVkMGJhNThmNWZEJGh0dHBzOi8vdHdpdHRlci5jb20vc2l0ZXBvaW50ZG90Y29tL1cFc3BjZXVCCmZ0tMGCZnVeNCVSG3RyaXN0cmFtYmFsZHdpbjkxQGdtYWlsLmNvbVgEAABkHQ~~) [linkedin social link](~/AAAHUQA~/RgRoZUa0P0UgYmIzOWEyZTBkMWZlOWY2OTMyMGNkMDA5ZjdkNWE0MTNEJ2h0dHBzOi8vbGlua2VkaW4uY29tL2NvbXBhbnkvc2l0ZXBvaW50L1cFc3BjZXVCCmZ0tMGCZnVeNCVSG3RyaXN0cmFtYmFsZHdpbjkxQGdtYWlsLmNvbVgEAABkHQ~~) [Unsubscribe from this list](~/AAAHUQA~/RgRoZUa0P4QWAWh0dHBzOi8vYmVycmltYS5lb2NhbXBhaWduMS5jb20vdW5zdWJzY3JpYmU_ZXA9MiZsPWNhYTY1ODU4LTRhYzYtMTFlZS04MDE2LTRkY2U5YmEwOGU2ZCZsYz04NzA3ZWU4Ni01MmYwLTExZWUtYWY1Mi00YjUzODJiYTNiOTQmcD05ZGIyZDdhNC0zNGM3LTExZWYtOTM1Ny0xZjdkOGU3YjAyYjEmcHQ9Y2FtcGFpZ24mcHY9NCZzcGE9MTcxOTg0MjUzOCZ0PTE3MTk4NDUzMDAmcz04NjU3MTJmNjQ3MmZmOTU2ODNjNmRiMjlmMTk5ZjcxZjQ1ODA5YzQ5NmZhNzc0ZDM5NGY0NzQ0M2Y1ZWI0MGFmVwVzcGNldUIKZnS0wYJmdV40JVIbdHJpc3RyYW1iYWxkd2luOTFAZ21haWwuY29tWAQAAGQd)

Marketing emails from sitepoint.com

View More
Sent On

07/11/2024

Sent On

21/10/2024

Sent On

15/10/2024

Sent On

14/10/2024

Sent On

11/10/2024

Sent On

07/10/2024

Email Content Statistics

Subscribe Now

Subject Line Length

Data shows that subject lines with 6 to 10 words generated 21 percent higher open rate.

Subscribe Now

Average in this category

Subscribe Now

Number of Words

The more words in the content, the more time the user will need to spend reading. Get straight to the point with catchy short phrases and interesting photos and graphics.

Subscribe Now

Average in this category

Subscribe Now

Number of Images

More images or large images might cause the email to load slower. Aim for a balance of words and images.

Subscribe Now

Average in this category

Subscribe Now

Time to Read

Longer reading time requires more attention and patience from users. Aim for short phrases and catchy keywords.

Subscribe Now

Average in this category

Subscribe Now

Predicted open rate

Subscribe Now

Spam Score

Spam score is determined by a large number of checks performed on the content of the email. For the best delivery results, it is advised to lower your spam score as much as possible.

Subscribe Now

Flesch reading score

Flesch reading score measures how complex a text is. The lower the score, the more difficult the text is to read. The Flesch readability score uses the average length of your sentences (measured by the number of words) and the average number of syllables per word in an equation to calculate the reading ease. Text with a very high Flesch reading ease score (about 100) is straightforward and easy to read, with short sentences and no words of more than two syllables. Usually, a reading ease score of 60-70 is considered acceptable/normal for web copy.

Subscribe Now

Technologies

What powers this email? Every email we receive is parsed to determine the sending ESP and any additional email technologies used.

Subscribe Now

Email Size (not include images)

Font Used

No. Font Name
Subscribe Now

Copyright © 2019–2025 SimilarMail.