[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"posts:::11:6:":3,"$fmAbo7HX1697lOJ4AVNBJl1PR7wUF0IkR_62krtbwQAE":122},{"data":4,"meta":118},[5,26,44,62,80,101],{"tags":6,"relatedTools":7,"_id":8,"id":9,"title":10,"alt":11,"category":12,"date":13,"author":14,"readTime":15,"content":16,"image":17,"more":18,"extendedContent":19,"asHTML":18,"createdAt":20,"updatedAt":21,"uuid":22,"headTitle":23,"metaDesc":24,"categorySlug":25},[],[],"642422573672c0035082a2eb","tailwind-anti-pattern-or-not","Tailwind. Anti-Pattern or ...not?","Tailwind CSS","Thought","2023-03-28T16:00:00.000Z","Michal",3,"I have been a fan of Adam Wathan for a while now, even before he created Tailwind. I had misgivings about the concept of making HTML look like a class index - it felt wrong to me. However, as time has passed, I find myself using it more and more. What has changed?","https:\u002F\u002Fmsatbsx.sgp1.digitaloceanspaces.com\u002Fnews\u002Ftailwind.jpeg","true","\u003Ch2>Is Tailwind a way to go?\u003C\u002Fh2>\n\u003Cp>My first impression was, Adam tries to have something on his own. Not very useful, but his. Okay. Let's have a test ride. And I didn't like it. Html document was looking gibberish, docs were incomplete and hard to query.\u003Cbr>\nMany folks share this opinion, when you google \"tailwindcss anti-pattern\" you find tones of articles like \u003Ca href=\"https:\u002F\u002Fjavascript.plainenglish.io\u002Ftailwind-is-an-anti-pattern-ed3f64f565f0\" style=\"color: rgb(14 165 233)\" class=\"font-semibold\" target=\"_new\">this one\u003C\u002Fa> from Enrico Gruner. There is a lot of true in there. But.\u003Cbr>\nI still use it, when I need to prototype, do something fast, or just style an internal telemetry page.\u003Cbr>\nTo answer the question why: it is so simple to use, results are so clean.\u003C\u002Fp>\nThinking a bit further, list of reasons is growing. First, the docs. They are amazing. Great job Tailwind team. You have set the bar really high for open source projects documentation.\u003Cbr>\nSecond: entire ecosystem, with tailwindui, heroicons, headlessui and others. Just waiting to kick off your project.\u003Cbr>\nThird: continues development with attention to user comments. You think - this is missing, a few months later it is added. Like fine tuned gradient positions. Fourth: easy to extend to match your needs in more complicated work. Again, docs are there for you.\u003Cbr>\nFifth: which took me longest to appreciate, when you work in a larger team, it stops from growing so complicated, messy css.\u003Cbr>\nTo argue against Enrico comment (link above) \"you’re not learning CSS patterns by using Tailwind\", I think you actually do! Of course not on rock star level, but when you add Tailwind classes in your IDE, you can see by hovering what css is there, and understand what's happening under the hood. You don't learn inheritance and more advanced css selectors? Okay, the question is, do you really need them? You can achieve the result anyways, without creating a labyrinth of from where this style actually came?\u003Cbr>\nTo summarise, if you have relatively simple needs, not planning to be a css animation magician, use Tailwind. You will have the job done faster. Without one line of css.\u003Cbr>\nLast point? This page is built with Tailwind.\u003Cbr>\u003Cbr>","Wed Mar 29 2023 19:34:47 GMT+0800 (Singapore Standard Time)","Sat Nov 25 2023 16:11:35 GMT+0800 (Singapore Standard Time)","3b2b3e72-ea76-4977-bcfe-c12edce6857f","Tailwind is good or bad?","A fan of Adam Wathan shares their journey from skepticism to embracing Tailwind. Why I have come to use it more and more.","thought",{"tags":27,"relatedTools":28,"_id":29,"id":30,"title":31,"alt":32,"category":12,"date":33,"author":34,"readTime":35,"content":36,"image":37,"more":18,"extendedContent":38,"asHTML":18,"createdAt":39,"updatedAt":40,"uuid":41,"headTitle":42,"metaDesc":43,"categorySlug":25},[],[],"6422e61a3672c0035082a2e7","new-kid-on-the-block-wasm","New kid on the block. WASM.","WASM logo","2023-03-27T16:00:00.000Z","Michal ",1,"Not only is OpenAI (or any AI product) revolutionising the digital landscape, but WebAssembly is a game-changer for browser applications. Is JavaScript on its way out? Not yet, but may give some space for other languages. Rust is undoubtedly ruling the roost! These are truly exhilarating times!","https:\u002F\u002Fmsatbsx.sgp1.digitaloceanspaces.com\u002Fnews\u002Fwebassembly-logo.jpeg","\u003Ch2>Not enough processing power for web app? Think WASM.\u003C\u002Fh2>\n\u003Cp>WebAssembly (WASM) stands as a revolutionary advancement in the realm of web development, unlocking new opportunities for in-browser applications. Born out of collaborative efforts among major browser vendors, WASM is a binary instruction format that allows high-performance execution of code directly in web browsers. This breakthrough technology transcends traditional language barriers, enabling developers to write applications in languages like C, C++, and Rust, and then compile them into a compact and efficient binary format that runs seamlessly in the browser environment. The key advantage lies in its ability to deliver near-native performance, making complex applications, such as games, simulations, and data-intensive tasks, feasible within the web browser. This not only enhances the user experience but also opens doors to a new era of web applications that can rival the capabilities of their desktop counterparts. WASM represents a transformative shift, empowering developers to create more powerful, versatile, and responsive in-browser applications, expanding the horizons of what can be achieved on the web.\u003C\u002Fp>","Tue Mar 28 2023 21:05:30 GMT+0800 (Singapore Standard Time)","Sat Nov 25 2023 16:08:03 GMT+0800 (Singapore Standard Time)","87d68a16-1cd2-4a94-9abc-eddf12e90455","WASM is coming as a storm.","OpenAI and WebAssembly are revolutionizing digital landscape, while JavaScript hangs on. Rust is ruling the roost! Exciting times in tech! ",{"relatedTools":45,"_id":46,"id":47,"title":48,"alt":49,"category":12,"date":50,"author":14,"readTime":15,"content":51,"image":52,"more":18,"extendedContent":53,"asHTML":18,"createdAt":54,"updatedAt":55,"uuid":56,"photoCredit":57,"headTitle":58,"metaDesc":59,"categorySlug":25,"tags":60},[],"640eec2840ef91034d1a6a57","is-react-a-dead-end-path","Is ReactJS a dead-end path?","ReactJS is a dead end","2023-03-12T16:00:00.000Z","React is like a modern celebrity - famous simply for being famous. It's often chosen as a safe solution, and no one can fault you for that. However, once you dive deeper, you'll be exposed to all its flaws. I predict that React will die out just as PHP did in the realm of HTML templating.","https:\u002F\u002Fmsatbsx.sgp1.digitaloceanspaces.com\u002Fnews\u002F\u002Fdeadendreact.jpg","\u003Ch2>React JS? No thank you, I'll go for modern frameworks.\u003C\u002Fh2>\nI honestly believe working with ReactJS is a messy experience compared to other modern FE frameworks. It can be summarised as a waste of time. An extreme opinion? Allow me to share some arguments here. Let's start with a basic example, on a newbie level. To write a react functional (modern) component, containing just two input fields that are dynamically changing the line of text, you need that:\n\u003Cpre>\nimport React, { useState } from &#39;react&#39;;\n\nexport default () =&gt; {\n    const [a, setA] = useState(1);\n    const [b, setB] = useState(2);\n\n    function handleChangeA(event) {\n        setA(+event.target.value);\n    }\n\n    function handleChangeB(event) {\n        setB(+event.target.value);\n    }\n\n    return (\n        &lt;div&gt;\n            &lt;input type=&quot;number&quot; value={a} onChange={handleChangeA}\u002F&gt;\n            &lt;input type=&quot;number&quot; value={b} onChange={handleChangeB}\u002F&gt;\n\n            &lt;p&gt;{a} + {b} = {a + b}&lt;\u002Fp&gt;\n        &lt;\u002Fdiv&gt;\n    );\n};\n\u003C\u002Fpre>\nIn VueJS, it will be simpler:\n\u003Cpre>\n&lt;template&gt;\n    &lt;div&gt;\n        &lt;input type=&quot;number&quot; v-model.number=&quot;a&quot;&gt;\n        &lt;input type=&quot;number&quot; v-model.number=&quot;b&quot;&gt;\n\n        &lt;p&gt;{{a}} + {{b}} = {{a + b}}&lt;\u002Fp&gt;\n    &lt;\u002Fdiv&gt;\n&lt;\u002Ftemplate&gt;\n\n&lt;script&gt;\n    export default {\n        data: function() {\n            return {\n                a: 1,\n                b: 2\n            };\n        }\n    };\n&lt;\u002Fscript&gt;\n\u003C\u002Fpre>\nIn Svelte (which you should be using if not doing it yet):\n\u003Cpre>\n&lt;script&gt;\n\tlet a = 1;\n\tlet b = 2;\n&lt;\u002Fscript&gt;\n\n&lt;input type=&quot;number&quot; bind:value={a}&gt;\n&lt;input type=&quot;number&quot; bind:value={b}&gt;\n\n&lt;p&gt;{a} + {b} = {a + b}&lt;\u002Fp&gt;\n\u003C\u002Fpre>\nWow, React requires so much more code!\u003Cbr>\nBut let's talk about the next step on the learning curve. To get the knack of Redux, a state container commonly used with React, you're happy if you start now. With Redux-Toolkit it is quite straightforward. Unfortunately, your more experienced colleagues have used tones of different ways of doing it, including famous Redux-Saga or Thunk. What an effort needed to catch-up and be quick with all of that spaghetti. Please understand my point here, I'm not saying those libraries are bad, in fact some of them are brilliant. The problem is the entire mashed-up ecosystem, which costs you a lot of learning. In practice, the average developer has only 2-4 years of experience and is not productive in that environment. She\u002FHe consumes time paid by the employer to learn.\u003Cbr>\nThere are more surprises when you dig deeper. React is not written with Typescript but with Flow (Facebook attempts to make JS with type support). TS is added 'on top' by an external team. Which ends with unexpected results (check \u003Ca href=\"https:\u002F\u002Fwww.totaltypescript.com\u002Fyoutube\u002FM3TPmOpNFCs\" target=\"_new\">this\u003C\u002Fa>).\u003Cbr>\u003Cbr>\nI believe moving to simpler and cleaner frameworks is the path forward. They were created with all the experience gained while React was the leading edge. If you think about potential cons, there are only two, less documentation (examples) on the web, and the risk of those projects being abandoned.\u003Cbr\u002F>\n\nAs a last word, React is slow. Very slow.\u003Cbr>\u003Cbr>\n\n","Mon Mar 13 2023 17:26:00 GMT+0800 (Singapore Standard Time)","Mon Dec 04 2023 19:46:14 GMT+0800 (Singapore Standard Time)","7d1e57c7-9e26-4beb-a77e-d7da6ae109f5","Unsplash\u002FMichal","ReactJS has no future?","React is like a modern celebrity, famous for being famous. Dive deeper and you'll find its flaws. Its future? Just like PHP in HTML templating: dead.",[61],"Technology",{"relatedTools":63,"_id":64,"id":65,"title":66,"alt":67,"category":68,"date":69,"author":14,"readTime":35,"content":70,"image":71,"more":18,"extendedContent":72,"asHTML":18,"createdAt":73,"updatedAt":74,"uuid":75,"metaDesc":76,"headTitle":77,"categorySlug":78,"tags":79},[],"63fac29e53fe24ed2c17b63a","turborepo-is-a-good-thing","Turborepo is a good thing.","truborepo","Hacks","2023-02-25T16:00:00.000Z","I was initially hesitant to embrace monorepos, as I preferred the clean and organised structure of my individual project folders. The only downside was the difficulty of reusing design systems across multiple applications. However, Turborepo has changed my opinion; give it a try!","https:\u002F\u002Fmsatbsx.sgp1.digitaloceanspaces.com\u002Fnews\u002Fturborepo.jpg","\u003Ch2>\u003Ca href=\"https:\u002F\u002Fturbo.build\u002Frepo\" target=\"_blank\" rel=\"noopener\">Turborepo\u003C\u002Fa> should be a technology consultant advise. Here is why.\u003C\u002Fh2>\n\u003Cp>In the world of software development, efficiency and collaboration are paramount. With new technologies constantly emerging, it's essential to stay ahead of the curve and find innovative ways to streamline our processes. One tool that has gained popularity among developers is Turborepo. In this article, we will explore the advantages of using Turborepo and how it can revolutionize your workflow.\u003Ch3 id=\"2\">Understanding Turborepo\u003C\u002Fh3>\u003Cp>Before we dive into the advantages, let's first understand what Turborepo is. Simply put, Turborepo is a cutting-edge repository management tool designed to optimize code sharing and improve collaboration within development teams. It leverages advanced techniques to enhance performance and scalability, providing a smoother experience for all involved.\u003C\u002Fp>\u003Ch4 id=\"3\">What is Turborepo?\u003C\u002Fh4>\u003Cp>At its core, Turborepo is a repository management system that optimizes the way developers share and manage their code. It offers a unique approach to organizing codebases, allowing for more efficient collaboration and simplified project management. Turborepo achieves this by leveraging distributed version control systems, such as Git, to create a seamless development experience.\u003C\u002Fp>\u003Cp>But let's delve deeper into how Turborepo works. When a developer starts using Turborepo, they create a central repository that acts as the main hub for their project. This central repository contains all the code and files related to the project. However, what sets Turborepo apart is its ability to efficiently handle large codebases.\u003C\u002Fp>\u003Cp>With traditional repository management tools, large codebases can often lead to sluggish performance. However, Turborepo utilizes advanced algorithms to optimize file tracking and retrieval, ensuring that even the largest projects remain manageable. By intelligently caching and indexing files, Turborepo minimizes the time it takes to access and modify code, resulting in a faster and more responsive development environment.\u003C\u002Fp>\u003Ch4 id=\"4\">Core Features of Turborepo\u003C\u002Fh4>\u003Cp>Turborepo is packed with powerful features that enhance the development process. One of its core features is its ability to handle large codebases efficiently. As mentioned earlier, Turborepo's advanced algorithms optimize file tracking and retrieval, ensuring that developers can navigate and modify code quickly, regardless of the project's size.\u003C\u002Fp>\u003Cp>But that's not all. Turborepo also excels in code sharing and reusability. Developers can easily share code between projects, cutting down on duplication of efforts. This promotes code consistency and speeds up development time, allowing teams to work more efficiently. With Turborepo, developers can create a library of reusable components, making it easier to maintain and update code across multiple projects.\u003C\u002Fp>\u003Cp>Furthermore, Turborepo provides seamless integration with popular development tools and services. Whether it's continuous integration and deployment platforms, issue tracking systems, or code review tools, Turborepo ensures that developers can seamlessly collaborate and integrate their workflows with their preferred tools.\u003C\u002Fp>\u003Cp>In addition to these core features, Turborepo also offers robust security measures to protect code and ensure data integrity. It provides access controls, encryption, and auditing capabilities, giving development teams peace of mind when it comes to their codebase's security.\u003C\u002Fp>\u003Cp>Overall, Turborepo is a powerful repository management tool that offers a range of features to optimize code sharing, collaboration, and project management. By leveraging advanced techniques and algorithms, Turborepo enhances performance and scalability, providing developers with a smoother and more efficient development experience.\u003C\u002Fp>\u003Ch3 id=\"5\">The Benefits of Turborepo\u003C\u002Fh3>\u003Cp>Now that we understand what Turborepo is and its core features, let's explore the benefits it brings to the table.\u003C\u002Fp>\u003Ch4 id=\"6\">Improved Efficiency in Development\u003C\u002Fh4>\u003Cp>One of the primary advantages of using Turborepo is the improved efficiency it provides. By optimizing code retrieval and sharing, developers can spend more time writing code and less time waiting for operations to complete. This leads to faster development cycles and increased productivity.\u003C\u002Fp>\u003Cp>But how does Turborepo achieve this improved efficiency? It's all thanks to its intelligent caching system. This system ensures that common operations, such as cloning or pulling code, are lightning-fast. So, instead of wasting time on repetitive tasks, developers can focus on what they do best - writing quality code.\u003C\u002Fp>\u003Cp>Moreover, Turborepo also offers a seamless integration with popular development tools, such as IDEs and text editors. This integration further enhances efficiency by providing a unified environment for coding, testing, and debugging.\u003C\u002Fp>\u003Ch4 id=\"7\">Enhanced Code Sharing and Reusability\u003C\u002Fh4>\u003Cp>Code sharing and reusability are crucial in modern development. Turborepo makes it easy for teams to share code between projects, eliminating the need for duplicating efforts. With Turborepo, developers can effortlessly import code from other projects and share their code with others. This promotes consistency and improves overall code quality.\u003C\u002Fp>\u003Cp>But that's not all. Turborepo also supports versioning, allowing for rolling back changes and tracking code history more effectively. This level of control ensures that teams can collaborate seamlessly and avoid conflicts. It's like having a time machine for your code!\u003C\u002Fp>\u003Cp>Furthermore, Turborepo encourages a culture of code reusability. Developers can create reusable components, libraries, and modules that can be easily shared across different projects. This not only saves time but also improves the maintainability and scalability of the codebase.\u003C\u002Fp>\u003Ch4 id=\"8\">Streamlined Project Management\u003C\u002Fh4>\u003Cp>Effective project management is key to success in any development team. Turborepo simplifies project management by providing a centralized hub for collaboration. Team members can easily track changes, review code, and leave comments within the repository. This makes it easier for project managers to oversee the development process and ensure that everything is on track.\u003C\u002Fp>\u003Cp>But Turborepo takes project management to the next level by integrating with popular project management tools. Developers can directly link their code changes to specific tasks or issues, providing valuable context and making it easier to keep the entire team informed. This integration eliminates the need for switching between multiple tools, saving time and reducing the chances of miscommunication.\u003C\u002Fp>\u003Cp>Additionally, Turborepo offers powerful collaboration features, such as pull requests and code reviews. These features enable teams to collaborate effectively, provide feedback, and ensure code quality before merging changes into the main codebase.\u003C\u002Fp>\u003Cp>In conclusion, Turborepo not only improves efficiency in development but also enhances code sharing, reusability, and project management. By leveraging Turborepo's capabilities, development teams can streamline their workflows, increase productivity, and deliver high-quality software more efficiently.\u003C\u002Fp>\u003Ch3 id=\"9\">Turborepo vs Traditional Repo Management\u003C\u002Fh3>\u003Cp>Now that we have explored the advantages of Turborepo, let's compare it to traditional repository management systems.\u003C\u002Fp>\u003Cp>When it comes to speed and performance, Turborepo truly stands out. Traditional repository management systems often struggle to handle large codebases, resulting in slow operations and decreased productivity. However, Turborepo employs innovative techniques to optimize performance, ensuring that even the largest projects remain manageable.\u003C\u002Fp>\u003Cp>One of the key factors contributing to Turborepo's speed advantage is its intelligent caching system. This system plays a significant role in accelerating common operations, allowing developers to work without interruptions. With Turborepo, you can expect lightning-fast responses, enhancing your overall development experience.\u003C\u002Fp>\u003Cp>In addition to its impressive speed, Turborepo also excels in terms of scalability. As projects grow in size, maintaining performance becomes increasingly challenging. However, Turborepo is specifically built to handle scalability effortlessly. Its advanced algorithms and architecture keep operations smooth, even with massive codebases. This makes it an ideal choice for teams working on ambitious projects that require continuous growth and expansion.\u003C\u002Fp>\u003Cp>Furthermore, Turborepo's scalability extends beyond just handling large codebases. It also ensures that your team can collaborate seamlessly, regardless of the project's size. With Turborepo, you can easily manage multiple branches, merge code changes, and track progress without any performance bottlenecks. This level of scalability empowers your team to work efficiently and effectively, no matter how complex the project becomes.\u003C\u002Fp>\u003Cp>In conclusion, Turborepo offers a significant advantage over traditional repository management systems in terms of speed, performance, and scalability. Its innovative techniques and intelligent caching system make it the go-to choice for developers working on large-scale projects. With Turborepo, you can expect enhanced productivity, faster operations, and seamless collaboration, ultimately leading to successful project outcomes.\u003C\u002Fp>\u003Ch3 id=\"10\">Implementing Turborepo in Your Workflow\u003C\u002Fh3>\u003Cp>Now that you're convinced of the advantages of Turborepo, it's time to explore how to implement it into your workflow.\u003C\u002Fp>\u003Cp>But before we dive into the implementation details, let's take a moment to understand why Turborepo has gained popularity in the development community.\u003C\u002Fp>\u003Cp>Turborepo is a powerful tool that offers a range of benefits, including streamlined code sharing, efficient operations, and enhanced collaboration. By leveraging Turborepo, you can optimize your development process and improve productivity.\u003C\u002Fp>\u003Ch4 id=\"11\">Getting Started with Turborepo\u003C\u002Fh4>\u003Cp>Getting started with Turborepo is straightforward. Simply install the Turborepo CLI tool and initialize your project as a Turborepo. This step will create a centralized repository that will serve as the foundation for your project.\u003C\u002Fp>\u003Cp>Once you have set up your Turborepo, you can start taking advantage of its powerful features. For example, you can easily share code between different projects within the Turborepo, eliminating the need for duplicating code and reducing maintenance overhead.\u003C\u002Fp>\u003Cp>Furthermore, Turborepo enables efficient operations by allowing you to perform actions, such as testing and deployment, across multiple projects simultaneously. This capability can significantly speed up your development process and ensure consistency across your codebase.\u003C\u002Fp>\u003Cp>If you need guidance during the setup process, don't worry! The Turborepo documentation provides comprehensive guides to help you get up and running in no time. You'll find step-by-step instructions, examples, and troubleshooting tips to assist you at every stage.\u003C\u002Fp>\u003Ch4 id=\"12\">Best Practices for Turborepo Integration\u003C\u002Fh4>\u003Cp>While Turborepo offers numerous advantages, it's essential to follow best practices to leverage its full potential. Here are a few tips to keep in mind:\u003C\u002Fp>\u003Col> \u003Cli>Organize your codebase effectively: Proper organization of your codebase is crucial to take full advantage of Turborepo's features. By implementing a logical structure and establishing clear guidelines for code sharing, you can ensure that your projects are well-structured and easy to navigate.\u003C\u002Fli> \u003Cli>Regularly update dependencies: Keeping your dependencies up to date is vital to ensure that you benefit from the latest bug fixes and improvements. Turborepo makes it easy to manage dependencies across multiple projects, so embrace this feature to maximize efficiency and maintain a secure codebase.\u003C\u002Fli> \u003Cli>Communicate and collaborate: Effective communication and collaboration are the keys to successful development. Turborepo provides the tools to facilitate this, so make sure to utilize features like code reviews and commenting to keep the team connected. By fostering open communication and collaboration, you can enhance productivity and ensure that everyone is aligned with the project's goals.\u003C\u002Fli> \u003Cli>Automate repetitive tasks: Turborepo offers automation capabilities that can help you streamline repetitive tasks. By automating processes like testing, building, and deployment, you can save time and reduce the risk of human error. Take advantage of Turborepo's automation features to optimize your workflow and focus on more critical aspects of development.\u003C\u002Fli> \u003Cli>Continuously monitor performance: Monitoring the performance of your projects is essential for identifying bottlenecks and optimizing resource allocation. Turborepo provides built-in monitoring tools that allow you to track various metrics, such as code quality, test coverage, and deployment frequency. By regularly monitoring these metrics, you can make data-driven decisions and continuously improve your development process.\u003C\u002Fli>\u003C\u002Fol>\u003Cp>By following these best practices, you can ensure a smooth integration of Turborepo into your workflow and maximize its benefits. Remember, Turborepo is a powerful tool, but its effectiveness ultimately depends on how well it is implemented and utilized within your organization.\u003C\u002Fp>\u003Ch3 id=\"13\">Overcoming Challenges with Turborepo\u003C\u002Fh3>\u003Cp>While Turborepo offers a plethora of benefits, it's essential to address potential challenges that may arise during its implementation.\u003C\u002Fp>\u003Ch4 id=\"14\">Common Issues and Their Solutions\u003C\u002Fh4>\u003Cp>One common challenge with Turborepo is ensuring that everyone on the team understands how to use it effectively. This can be overcome by providing comprehensive training and resources to educate the team about Turborepo's features and best practices.\u003C\u002Fp>\u003Cp>Another challenge is proper integration with existing tools and workflows. Turborepo offers integrations with popular project management tools and development workflows, ensuring a smooth transition. It's important to carefully plan the integration process and clearly communicate the changes to the team.\u003C\u002Fp>\u003Ch4 id=\"15\">Tips for Successful Turborepo Use\u003C\u002Fh4>\u003Cp>To ensure a successful Turborepo implementation, consider the following tips:\u003C\u002Fp>\u003Cul> \u003Cli>Embrace team collaboration: Turborepo is designed to enhance collaboration. Encourage your team to actively participate in code reviews, leave comments, and share knowledge.\u003C\u002Fli> \u003Cli>Invest in training: Properly train your team on how to use Turborepo effectively. Providing ongoing support and resources will enable them to maximize its benefits.\u003C\u002Fli> \u003Cli>Regularly review and optimize: Continuously evaluate your Turborepo setup and workflows to identify areas for improvement. This will ensure that you're always getting the most out of Turborepo.\u003C\u002Fli>\u003C\u002Ful>\u003Cp>In conclusion, Turborepo offers numerous advantages that can significantly improve your development processes. From enhanced efficiency and streamlined project management to seamless code sharing and scalability, Turborepo empowers teams to work more effectively. By implementing Turborepo into your workflow and following best practices, you can unlock its full potential and take your development to new heights. So why wait? Give Turborepo a try and experience the advantages firsthand.\u003C\u002Fp>\u003C\u002Fp>","Sun Feb 26 2023 10:23:26 GMT+0800 (Singapore Standard Time)","Mon Dec 04 2023 19:46:24 GMT+0800 (Singapore Standard Time)","0b18b607-84ab-4121-99c0-9502e37bc358","Turborepo has changed my view of monorepos in general. Give it a try and see how it changes your opinion! #monorepos #designsystems","Trurborepo, my thoughts","hacks",[61],{"relatedTools":81,"_id":82,"id":83,"title":84,"alt":85,"category":86,"date":87,"author":14,"readTime":88,"content":89,"image":90,"more":18,"extendedContent":91,"asHTML":18,"createdAt":92,"updatedAt":93,"uuid":94,"headTitle":95,"metaDesc":96,"categorySlug":97,"tags":98},[],"63e8bbc253fe24ed2c17b634","side-project-cut-the-link-nope-track-the-user","Side project. Cut the link? Nope, track the user.","Cutdown the link screenshoot","Side Project","2023-02-11T16:00:00.000Z",2,"I've promised to share what I'm working on. Easier said than done :) It's a small part of something larger, so click the image to find out more. ","https:\u002F\u002Fmsatbsx.sgp1.digitaloceanspaces.com\u002Fnews\u002F\u002Fcutdown-link.jpg","\u003Ch2>My side project: 2023 CDP.\u003C\u002Fh2>\n\u003Cp style=\"color: rgb(107 114 128);\">The larger thing mentioned above, still in wip, is a CDP (Customer Data Platform) to collect and process user data. Quite an ambitious project to work across platforms and apps. One of the microservices needed for that, is a backend tool to track links clicked. Something like all the commercial platforms do. E.g. when you click on google search results, you are following their internal link to the page that is registering your action, only from there redirects you to the desired target.\u003Cbr \u002F>\nHaving the first iteration of the tool ready and in production, but no budget for testers, the obvious next step was to build a frontend landing page and expose the tool to the public. Now I can watch its behaviour ;) You can help me by trying my \u003Ca href=\"https:\u002F\u002Fcutdown.link\u002F\" style=\"color: rgb(14 165 233)\" class=\"font-semibold\" target=\"_new\">smart link service\u003C\u002Fa>. Thanks!\u003Cbr \u002F>\nAny comments are more than welcome.\u003C\u002Fp>","Sun Feb 12 2023 18:13:22 GMT+0800 (Singapore Standard Time)","Tue Dec 05 2023 08:51:41 GMT+0800 (Singapore Standard Time)","b6fad50f-408b-4038-9f66-a40067477e3e","Cut the link","Explore what I'm working on! Using smart links to track the user across multiple campaigns. Free QR codes without creating account.","side-project",[99,100],"New Projects","CDP",{"tags":102,"relatedTools":103,"_id":104,"id":105,"title":106,"alt":107,"category":107,"date":108,"author":14,"readTime":35,"content":109,"image":110,"more":18,"extendedContent":111,"asHTML":18,"createdAt":112,"updatedAt":113,"uuid":114,"categorySlug":115,"headTitle":116,"metaDesc":117},[],[],"63e0635a53fe24ed2c17b630","is-it-worth-reading","Is it worth reading?","Books","2023-02-05T16:00:00.000Z","I was planning to write more about the books I've read, but not many of them were truly remarkable. So, I thought I'd offer some advice on which titles to avoid wasting your time on. Look out for more posts coming soon with more details!","https:\u002F\u002Fmsatbsx.sgp1.digitaloceanspaces.com\u002Fnews\u002Fbooks.jpg","\u003Ch2>Books not to read. Save your time and money.\u003C\u002Fh2>\n\u003Cp>Reflecting on my recent reading journey, I found that not every book lived up to expectations, and not all were truly remarkable. Rather than solely celebrating the highlights, I believe it's equally valuable to guide fellow readers away from titles that might not be worth their time. In this spirit, I've compiled a list of books to avoid, aiming to save you from investing precious hours in less-than-engaging reads. Stay tuned for some honest insights and recommendations on steering clear of literary disappointments, ensuring your reading hours are well-spent on truly captivating stories.\u003C\u002Fp>","Mon Feb 06 2023 10:18:02 GMT+0800 (Singapore Standard Time)","Sat Nov 25 2023 17:11:37 GMT+0800 (Singapore Standard Time)","dcab2a12-27a1-4113-809d-2adc7a609ae9","books","Why I share my PoV on books not worth reading. ","I'm offering advice on books to avoid, based on the ones I've read. I'll be writing more posts soon with more details. Check back for more! #books",{"totalnoOfPosts":119,"page":120,"perPage":121,"noOfPostOnCurrentPage":121},82,11,6,{"enabled":123},true]