[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"/blogs/ai-tools":3,"related-/blogs/ai-tools":306},{"id":4,"title":5,"authors":6,"body":11,"date":290,"description":291,"extension":292,"images":293,"meta":294,"navigation":295,"path":296,"related":297,"seo":298,"sitemap":300,"stem":301,"tags":302,"__hash__":305},"blogs/blogs/ai-tools.md","AI tools you should know about",[7],{"name":8,"avatar":9,"handle":10},"Dino Kupinic","https://github.com/Dino-Kupinic.png","@Dino-Kupinic",{"type":12,"value":13,"toc":262},"minimark",[14,20,25,29,32,36,45,48,54,59,66,69,74,78,85,90,94,97,101,106,113,117,125,131,139,143,146,150,153,156,159,162,166,173,178,181,185,188,192,199,204,208,211,214,217,220,224,231,237,240,244,247,252,255,259],[15,16],"blog-image",{"alt":17,"dark":18,"light":19},"AI blog post cover image","/images/blog/ai_blog_dark.png","/images/blog/ai_blog_light.png",[21,22,24],"h2",{"id":23},"introduction","Introduction",[26,27,28],"p",{},"AI tools have become increasingly popular in recent years, and for good reason. They can help you automate tasks, generate content, and even assist with decision-making.",[26,30,31],{},"I've compiled a list of AI tools I even use myself that I think are worth checking out. Whether you're a developer, writer, or just someone looking to boost your productivity, there's something here for you.",[21,33,35],{"id":34},"claude","Claude",[26,37,38,44],{},[39,40,35],"a",{"href":41,"rel":42},"https://claude.ai/",[43],"nofollow"," is one of the best LLMs currently. I usually reach for it when I need to turn a rough idea into something structured, whether that's a first draft, a plan, a summary, or a clearer explanation of something complex.",[26,46,47],{},"What makes it stand out is that it usually feels measured. Instead of rushing to give you a flashy answer, it tends to do well with long-form writing, research-heavy prompts, and conversations where you want to explore the problem a bit before jumping into a solution.",[26,49,50],{},[51,52],"img",{"alt":35,"src":53},"/images/blog/claude_preview.png",[55,56,58],"h3",{"id":57},"claude-code","Claude Code",[26,60,61,65],{},[39,62,58],{"href":63,"rel":64},"https://claude.ai/code",[43]," is where Claude becomes genuinely useful for developers. It is not just about generating snippets, it is much better used as a coding partner that can inspect a codebase, explain tradeoffs, help with refactors, and take care of boring but necessary work like tests, docs, and cleanup.",[26,67,68],{},"I think it works best when you already know the direction and want a strong second brain. If you give it clear constraints and enough context, it can save a lot of time without pushing you into full-on vibe coding.",[26,70,71],{},[51,72],{"alt":58,"src":73},"/images/blog/claude_preview_2.png",[55,75,77],{"id":76},"claude-cowork","Claude Cowork",[26,79,80,84],{},[39,81,77],{"href":82,"rel":83},"https://claude.ai/cowork",[43]," is the part that makes Claude mindblowing. Context matters a lot and giving, and Cowork gives you a place where ideas, prompts, outputs, and decisions can live together instead of being scattered across chats and screenshots.",[26,86,87],{},[51,88],{"alt":77,"src":89},"/images/blog/claude_preview_3.png",[55,91,93],{"id":92},"how-i-use-it","How I use it",[26,95,96],{},"Claude is strongest at the beginning of the process. I use it when the idea is still messy and when I need to turn notes into structure, or when I want to pressure-test a concept.",[21,98,100],{"id":99},"codex","Codex",[26,102,103],{},[51,104],{"alt":100,"src":105},"/images/blog/codex_preview.png",[26,107,108,112],{},[39,109,100],{"href":110,"rel":111},"https://openai.com/codex/",[43]," quickly became one of my favorite tools for coding because it feels like an actual workflow, not just a chatbot that happens to write code. Earlier waves of \"agentic engineering\" mostly felt impressive in demos but weak in day-to-day work. Codex is one of the first tools that made the whole idea click for me.",[55,114,116],{"id":115},"app","App",[26,118,119,120,124],{},"The app is clean, focused, and pleasant to use, which matters more than people admit. If a tool is going to sit next to your editor every day, the interface cannot feel chaotic. Codex does a good job staying out of the way while still giving you the controls that matter. My related post ",[39,121,123],{"href":122},"/blogs/software-should-be-beautiful","Software should be beautiful"," goes deeper into why I care about that.",[26,126,127],{},[51,128],{"alt":129,"src":130},"Codex interface","/images/blog/codex_preview_2.png",[26,132,133,134,138],{},"The standout feature for me is ",[135,136,137],"code",{},"Automations",". It turns repetitive work into something you can hand off on a schedule, which is exactly where these tools start becoming genuinely useful. Daily PR summaries, recurring maintenance checks, and routine project chores are a much better use of AI than asking it to pretend to be the lead engineer.",[55,140,142],{"id":141},"cloud-cli","Cloud & CLI",[26,144,145],{},"The cloud version and the CLI make Codex feel like one system instead of separate toys. If you prefer the terminal, the CLI fits naturally into how you already work. If you want to kick something off while you are away from your desk, the cloud version is there. That flexibility matters a lot once the tool becomes part of your routine.",[55,147,149],{"id":148},"integrations","Integrations",[26,151,152],{},"The integrations are also a big part of the appeal. MCP support for tools like Figma, Linear, and Notion means Codex can work with real project context instead of forcing you to copy paste everything into a prompt. That makes the output more useful and the workflow much less annoying.",[55,154,93],{"id":155},"how-i-use-it-1",[26,157,158],{},"Personally, I dislike full-on \"vibe coding\", because it always leads to a unmaintainable codebase. After using it for a while, I found that the best way to use Codex for me is as a \"chore delegator\", where I delegate boring, repetitive tasks to Codex, and I focus on the creative and strategic aspects of coding. For example, I might ask Codex to write tests for my code, or to generate documentation.",[26,160,161],{},"Like with replit, the cloud version works great for on-the-go coding, where I use Linear's agents feature to delegate certain issues on Codex, have it deployed through a CI/CD pipeline, and then check the results later. This way, I can keep my focus on the bigger picture while Codex handles the smaller tasks.",[21,163,165],{"id":164},"notebooklm","NotebookLM",[26,167,168,172],{},[39,169,165],{"href":170,"rel":171},"https://notebooklm.google/",[43]," makes you learn at the speed of thought. You upload your documents and it creates summaries, answers questions, and helps you find information quickly. Sort of like having a supercharged search engine for your own knowledge base.",[26,174,175],{},[51,176],{"alt":165,"src":177},"/images/blog/notebooklm_preview.png",[26,179,180],{},"If you have a Google AI subscription, you should definitely give it a try.",[55,182,184],{"id":183},"students","Students",[26,186,187],{},"If you are a student, you can upload your pdfs and lecture notes to NotebookLM. It can help you understand complex concepts, generate summaries, and even create flashcards for studying.",[21,189,191],{"id":190},"replit","Replit",[26,193,194,198],{},[39,195,191],{"href":196,"rel":197},"https://replit.com/",[43]," is a vibe-coding tool that allows you to generate full apps from a simple prompt.",[26,200,201],{},[51,202],{"alt":191,"src":203},"/images/blog/replit_preview.png",[55,205,207],{"id":206},"mobile-app","Mobile app",[26,209,210],{},"Replit's mobile app is brilliant for creating an \"MVP\" of an idea on the go. You can quickly write down your thoughts and have a working prototype in minutes.\nYou could be walking down the street and suddenly get an idea for an app, and with Replit, you can immediately start building it without needing a laptop.",[26,212,213],{},"Because it's in the Cloud, you can write the prompt (or speak it) and continue scrolling through X or whatever, and then come back to it later.",[55,215,93],{"id":216},"how-i-use-it-2",[26,218,219],{},"I use Replit for quick prototyping and testing out ideas. It's especially useful when I want to experiment without having to commit to a full project setup.",[21,221,223],{"id":222},"nano-banana","Nano Banana",[26,225,226,230],{},[39,227,223],{"href":228,"rel":229},"https://gemini.google.com",[43]," by Google is a tool that allows you to create images from text prompts. It's one of the best text-to-image generators out there, and it's incredibly easy to use. You can create anything from simple illustrations to complex scenes, and the results are often stunning.",[26,232,233],{},[51,234],{"alt":235,"src":236},"Nano Banana 2","/images/blog/nano_banana_preview.png",[26,238,239],{},"Editing images with text prompts is also possible, which is a game-changer for designers and artists. You can make changes to an image without needing to use complex software.",[55,241,243],{"id":242},"how-to-use-it","How to use it",[26,245,246],{},"You can use it right inside Google Gemini or via the API that you can integrate into your own projects. The API allows you to generate images programmatically, which opens up a lot of possibilities for automation and creative applications.",[26,248,249],{},[51,250],{"alt":235,"src":251},"/images/blog/nano_banana_preview_2.png",[26,253,254],{},"Google also offers templates for styles, which can help you achieve specific looks or aesthetics with your generated images. This is especially useful for designers who want to maintain a consistent style across their work.",[21,256,258],{"id":257},"conclusion","Conclusion",[26,260,261],{},"These were just a few of the AI tools that I think are worth checking out. Each of these tools has its own unique features and use cases, so I encourage you to explore them by yourself!",{"title":263,"searchDepth":264,"depth":264,"links":265},"",2,[266,267,273,279,282,286,289],{"id":23,"depth":264,"text":24},{"id":34,"depth":264,"text":35,"children":268},[269,271,272],{"id":57,"depth":270,"text":58},3,{"id":76,"depth":270,"text":77},{"id":92,"depth":270,"text":93},{"id":99,"depth":264,"text":100,"children":274},[275,276,277,278],{"id":115,"depth":270,"text":116},{"id":141,"depth":270,"text":142},{"id":148,"depth":270,"text":149},{"id":155,"depth":270,"text":93},{"id":164,"depth":264,"text":165,"children":280},[281],{"id":183,"depth":270,"text":184},{"id":190,"depth":264,"text":191,"children":283},[284,285],{"id":206,"depth":270,"text":207},{"id":216,"depth":270,"text":93},{"id":222,"depth":264,"text":223,"children":287},[288],{"id":242,"depth":270,"text":243},{"id":257,"depth":264,"text":258},"2026-03-05T00:00:00.000Z","A curated list of AI tools that can boost your productivity and creativity","md",{"dark":18,"light":19},{},true,"/blogs/ai-tools",[122],{"image":299,"title":5,"description":291},{"src":19,"alt":17},{"loc":296},"blogs/ai-tools",[303,304],"LLM","Guide","CuVMJ3gaVwPqGs28szmJJNV-SxykkY7c4q5UTPHRccQ",[307],{"id":308,"title":123,"authors":309,"body":311,"date":584,"description":585,"extension":292,"images":586,"meta":587,"navigation":295,"path":122,"related":588,"seo":590,"sitemap":592,"stem":593,"tags":594,"__hash__":596},"blogs/blogs/software-should-be-beautiful.md",[310],{"name":8,"avatar":9,"handle":10},{"type":12,"value":312,"toc":567},[313,318,324,327,331,334,337,341,345,348,351,355,363,367,371,374,387,390,394,397,423,426,433,437,440,443,454,456,460,466,469,480,489,493,496,507,510,514,517,531,535,538,540,545,547,550,564],[15,314],{"alt":315,"dark":316,"light":317},"Software blog post cover image","/images/blog/software_blog_dark.png","/images/blog/software_blog_light.png",[26,319,320],{},[321,322,323],"strong",{},"Design is everything.",[26,325,326],{},"It's the first thing we notice when we look at something, and it's the first thing that makes us feel a certain way.\nIt's the first thing that makes us want to use something, and it's the first thing that makes us want to keep using it.",[21,328,330],{"id":329},"beauty","Beauty",[26,332,333],{},"When we think of beauty, we often picture visual aesthetics, paintings, sculptures, or stunning architecture.\nBut software, in its essence, can be just as beautiful.",[26,335,336],{},"Good software isn't just about a sleek user interface!\nIt's about the harmony between functionality, efficiency, and user experience.",[21,338,340],{"id":339},"why-does-it-matter","Why does it matter?",[55,342,344],{"id":343},"cognitive-load","Cognitive Load",[26,346,347],{},"Beautiful software reduces cognitive load and when code is well-organized and interfaces are intuitive,\npeople spend less mental energy understanding and using the system.",[26,349,350],{},"Just like a well-designed building allows you to navigate it effortlessly, beautiful software allows users to interact with it seamlessly.\nA labyrinth of confusing menus and cluttered interfaces can lead to frustration and churn.",[55,352,354],{"id":353},"trust-and-credibility","Trust and Credibility",[26,356,357,358,362],{},"Users inherently trust well-designed ",[359,360,361],"em",{},"(and pretty!)"," software more.\nWhen you encounter a poorly designed application, don't you question its reliability?\nBeautiful software builds confidence and credibility.",[21,364,366],{"id":365},"so-how-do-we-make-it-pretty","So how do we make it pretty?",[55,368,370],{"id":369},"clean-architecture","Clean Architecture",[26,372,373],{},"Beautiful software starts with clean architecture.\nLike a well-designed building, software needs strong foundations and logical organization.\nThis means:",[375,376,377,381,384],"ul",{},[378,379,380],"li",{},"Clear separation of concerns",[378,382,383],{},"Modularity and reusability",[378,385,386],{},"Consistent patterns and practices",[26,388,389],{},"This would include things like using design patterns, following SOLID/ACID/etc principles, and writing clean, readable code.",[55,391,393],{"id":392},"ux","UX",[26,395,396],{},"The UI should feel natural and easy to use. It should guide users through their tasks without overwhelming them.\nThis includes:",[375,398,399,405,411,417],{},[378,400,401,404],{},[321,402,403],{},"Consistent visual language and layout",": Users should feel like they are in the same environment across different parts of the software.",[378,406,407,410],{},[321,408,409],{},"Meaningful animations and transitions",": Subtle animations can enhance the user experience by providing feedback and making interactions feel more responsive.",[378,412,413,416],{},[321,414,415],{},"Responsive and adaptive design",": The software should work well on different devices and screen sizes, ensuring a seamless experience for all users.",[378,418,419,422],{},[321,420,421],{},"Accessibility for all users",": Beautiful software should be inclusive and accessible to everyone, regardless of their abilities or disabilities. This means following accessibility guidelines and ensuring that the software can be used by people with various needs.",[26,424,425],{},"It's important to also provide proper error messages and feedback to users.",[26,427,428,429,432],{},"A simple ",[135,430,431],{},"\"Oops! An error occurred, please try again!\""," is not helpful. Instead, provide specific information about what went wrong and how users can resolve the issue before having to contact support.",[21,434,436],{"id":435},"my-approach","My Approach",[26,438,439],{},"When designing software, I follow these principles.\nKeep in mind that these are just guidelines and not inherently super strict rules. Design is a creative process, and sometimes breaking the rules can lead to innovative solutions.",[441,442],"hr",{},[444,445,446],"blockquote",{},[26,447,448,449,453],{},"(But don't break them just for the sake of breaking them, there should be a good reason for it!) An example would be the ",[39,450,452],{"href":451},"/shop","Shop",".",[441,455],{},[55,457,459],{"id":458},"_1-start-with-purpose","1. Start with Purpose",[26,461,462,463],{},"Before writing a single line of code, I ask myself: ",[359,464,465],{},"\"What problem am I trying to solve? Who is my user? What do they need?\"",[26,467,468],{},"That's why you should:",[375,470,471,474,477],{},[378,472,473],{},"Understand your users' needs",[378,475,476],{},"Define clear objectives",[378,478,479],{},"Plan before implementing (design first!)",[26,481,482,483,488],{},"Some form of whiteboarding or sketching is always a good idea.\nIt's much easier to iterate than in code. Personally I usually use ",[39,484,487],{"href":485,"rel":486},"https://www.figma.com/",[43],"Figma"," for this.",[55,490,492],{"id":491},"_2-embrace-simplicity","2. Embrace Simplicity",[26,494,495],{},"Just like with art, simplicity is the ultimate sophistication. When you can no longer remove anything from your design, you know you've reached perfection.",[375,497,498,501,504],{},[378,499,500],{},"Remove unnecessary complexity",[378,502,503],{},"Focus on core functionality (feature bloat is the enemy of good software!)",[378,505,506],{},"Make decisions obvious",[26,508,509],{},"You don't need to reinvent the wheel.\nUse established patterns and practices.\nUsers should be able to use your software without reading a manual\n(unless your software isn't aerospace related or similar).",[55,511,513],{"id":512},"_3-details-details-details","3. Details, Details, Details",[26,515,516],{},"The difference between good and great software often lies in the details.\nA well-placed comment, a thoughtful error message, or a subtle animation can elevate the user experience from good to exceptional.",[375,518,519,522,525,528],{},[378,520,521],{},"Consistent spacing and formatting",[378,523,524],{},"Thoughtful color schemes and typography",[378,526,527],{},"Meaningful icons and imagery",[378,529,530],{},"Attention to micro-interactions",[55,532,534],{"id":533},"_4-test-and-iterate","4. Test and Iterate",[26,536,537],{},"Design is an iterative process. You won't get it right on the first try, and that's okay. The key is to test, gather feedback, and continuously improve like with any other process.",[441,539],{},[444,541,542],{},[26,543,544],{},"My designs from a few years ago look very different from my designs today, and that's a good thing!",[441,546],{},[26,548,549],{},"Make sure to:",[375,551,552,555,558,561],{},[378,553,554],{},"Gather user feedback",[378,556,557],{},"Measure performance and usability",[378,559,560],{},"Continuously improve",[378,562,563],{},"Pivot or change direction when necessary",[26,565,566],{},"In the sidebar of this blog post, you can find a related post where I list resources that I personally use for design inspiration and learning.",{"title":263,"searchDepth":264,"depth":264,"links":568},[569,570,574,578],{"id":329,"depth":264,"text":330},{"id":339,"depth":264,"text":340,"children":571},[572,573],{"id":343,"depth":270,"text":344},{"id":353,"depth":270,"text":354},{"id":365,"depth":264,"text":366,"children":575},[576,577],{"id":369,"depth":270,"text":370},{"id":392,"depth":270,"text":393},{"id":435,"depth":264,"text":436,"children":579},[580,581,582,583],{"id":458,"depth":270,"text":459},{"id":491,"depth":270,"text":492},{"id":512,"depth":270,"text":513},{"id":533,"depth":270,"text":534},"2024-08-22T00:00:00.000Z","Design is essential in everything: from life to products, technology, architecture, and even software",{"dark":316,"light":317},{},[589],"/blogs/design-sources",{"image":591,"title":123,"description":585},{"src":317,"alt":315},{"loc":122},"blogs/software-should-be-beautiful",[595],"Design","8yrQNboXvXNCYnsir-TIEV9DiKt42AT5Ltp4lEZULDY"]