<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Mustafa.Ramax</title>
    <description>The latest articles on DEV Community by Mustafa.Ramax (@max_ramx).</description>
    <link>https://dev.to/max_ramx</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3254640%2F2055f111-e623-4795-84c5-5bee771b9544.jpg</url>
      <title>DEV Community: Mustafa.Ramax</title>
      <link>https://dev.to/max_ramx</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/max_ramx"/>
    <language>en</language>
    <item>
      <title>I Turned My MacBook Notch Into a Productivity Hub</title>
      <dc:creator>Mustafa.Ramax</dc:creator>
      <pubDate>Sun, 09 Aug 2026 01:17:24 +0000</pubDate>
      <link>https://dev.to/max_ramx/i-turned-my-macbook-notch-into-a-productivity-hub-8gd</link>
      <guid>https://dev.to/max_ramx/i-turned-my-macbook-notch-into-a-productivity-hub-8gd</guid>
      <description>&lt;p&gt;The MacBook notch is always there, but most of the time it is just something to work around.&lt;/p&gt;

&lt;p&gt;I kept looking at that small area at the top of the screen and wondering whether it could do more. Not become another large dashboard. Not stay open as another distracting window. Just become a small, useful part of the Mac experience.&lt;/p&gt;

&lt;p&gt;That curiosity led me to the open-source BoringNotch project. I started contributing while learning more about Swift and SwiftUI, and eventually built an enhanced, ready-to-install version called &lt;a href="https://mustafaramx.com/apps/boringnotchplus/?utm_source=devto&amp;amp;utm_medium=article&amp;amp;utm_campaign=boringnotchplus_dev" rel="noopener noreferrer"&gt;BoringNotch+&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  The notch looked like wasted space
&lt;/h2&gt;

&lt;p&gt;The original idea was simple: use the MacBook notch and nearby menu-bar area for useful information and controls.&lt;/p&gt;

&lt;p&gt;Music could appear there. A calendar preview could appear there. A battery indicator or a quick productivity tool could appear there without taking over the desktop.&lt;/p&gt;

&lt;p&gt;That was appealing to me because I prefer small utilities that stay available without becoming the main application on screen. When I am coding, writing, or working through a long task, I do not want another window competing for attention. I want useful information to appear when I need it and disappear when I do not.&lt;/p&gt;

&lt;h2&gt;
  
  
  Starting from an open-source project
&lt;/h2&gt;

&lt;p&gt;BoringNotch is an open-source macOS project created by TheBoredTeam. I want to be clear about that because BoringNotch+ is not an official Apple product or an unrelated proprietary replacement.&lt;/p&gt;

&lt;p&gt;It is my enhanced build of the original project. The original open-source work remains important, and the purpose of my version is to make an easy-to-install, Apple-signed and notarised build available with the additional features and improvements I worked on.&lt;/p&gt;

&lt;p&gt;Contributing to an existing project also gave me a better learning experience than building a completely isolated demo. I had to understand how the existing pieces fit together, work within the visual language of the app, and think about whether each new feature actually belonged in the notch.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fij5n3g32am3svb4gj1qv.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fij5n3g32am3svb4gj1qv.png" alt=" " width="800" height="182"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What I added to BoringNotch+
&lt;/h2&gt;

&lt;p&gt;The first additions focused on productivity.&lt;/p&gt;

&lt;h3&gt;
  
  
  A Pomodoro timer in the notch
&lt;/h3&gt;

&lt;p&gt;The Pomodoro timer supports work sessions, short breaks, and long breaks. It shows the current phase and countdown directly in the notch, with audio alerts and small reminders to help the session stay visible without becoming intrusive.&lt;/p&gt;

&lt;p&gt;This felt like a natural fit for the space. A timer is useful while coding or studying, but it does not need a full window. It can remain glanceable while the main application stays focused on the work.&lt;/p&gt;

&lt;h3&gt;
  
  
  Clipboard history for everyday work
&lt;/h3&gt;

&lt;p&gt;The clipboard feature keeps the last 48 copied items and makes them searchable. Important entries can be pinned, and previous items can be copied again without repeating the original task.&lt;/p&gt;

&lt;p&gt;This is the kind of feature that becomes useful quietly. It helps when moving code between files, collecting several pieces of research, or switching between messages and documents. Instead of opening a separate clipboard manager, the history is available from the same compact interface.&lt;/p&gt;

&lt;h3&gt;
  
  
  Camera mirror controls
&lt;/h3&gt;

&lt;p&gt;I also added a camera mirror toggle so the preview can be switched quickly from the interface. It is a small control, but it is useful before a video call or when checking how the camera view looks.&lt;/p&gt;

&lt;p&gt;The camera feature only matters when someone enables it. It is not intended to run as an always-on camera tool.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fiwfd75yjvtf9m9zg6phy.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fiwfd75yjvtf9m9zg6phy.png" alt=" " width="800" height="145"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  More than a Pomodoro timer
&lt;/h2&gt;

&lt;p&gt;BoringNotch+ also keeps several everyday Mac details close at hand.&lt;/p&gt;

&lt;p&gt;With Apple Music and Spotify integration, the notch can show album artwork, the current track, and the artist while music is playing. It also provides battery information such as percentage, charging state, and estimated time remaining.&lt;/p&gt;

&lt;p&gt;The calendar area shows the current date and an upcoming event preview, while Apple Reminders integration makes it possible to view and manage tasks from the same space.&lt;/p&gt;

&lt;p&gt;There is also a Sneak Peek system that allows widgets to appear periodically with configurable timing. The intention is to provide gentle awareness rather than a constant stream of notifications.&lt;/p&gt;

&lt;p&gt;Together, these features make the MacBook notch feel more like a compact productivity hub. Each feature is small on its own, but the combination is useful because it reduces the number of separate windows and menus I need to open during the day.&lt;/p&gt;

&lt;h2&gt;
  
  
  The developer challenge: designing for a very small space
&lt;/h2&gt;

&lt;p&gt;The hardest part of building for a notch is not adding information. It is deciding what deserves to appear there.&lt;/p&gt;

&lt;p&gt;A normal desktop application has room for navigation, settings panels, explanations, and empty space. A notch utility has to communicate quickly in a very constrained area.&lt;/p&gt;

&lt;p&gt;Working with Swift and SwiftUI made this a useful exercise in restraint. Every animation, label, and control needs to feel intentional. The interface must expand when someone wants more detail but remain quiet when the user is doing something else.&lt;/p&gt;

&lt;p&gt;I also learned that a feature can be technically interesting and still be wrong for the product. The best additions were the ones that matched the way people already use the Mac: checking a status, starting a timer, reviewing a copied item, or controlling music without leaving the current task.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fqrlyctvcekn70gwhs3z5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fqrlyctvcekn70gwhs3z5.png" alt=" " width="800" height="145"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Why the enhanced build exists
&lt;/h2&gt;

&lt;p&gt;The original open-source project can be built from source, but that is not convenient for every Mac user. Many people simply want a ready-to-install application.&lt;/p&gt;

&lt;p&gt;BoringNotch+ provides an Apple-signed and notarised DMG with the features and improvements I added. There is no need to compile the project before trying it.&lt;/p&gt;

&lt;p&gt;The minimum support amount is $9.99. This is a support payment for my development work and distribution costs, not a claim that I own or replace the original open-source project. In return, supporters receive the ready-to-install build and lifetime updates for this version.&lt;/p&gt;

&lt;p&gt;If you want to see the screenshots and decide whether it fits your workflow, you can &lt;a href="https://mustafaramx.com/apps/boringnotchplus/?utm_source=devto&amp;amp;utm_medium=article&amp;amp;utm_campaign=boringnotchplus_dev&amp;amp;utm_content=project_cta" rel="noopener noreferrer"&gt;see the BoringNotch+ enhanced build&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Final thoughts
&lt;/h2&gt;

&lt;p&gt;BoringNotch+ started with a simple question: can the MacBook notch become useful instead of just being something to ignore?&lt;/p&gt;

&lt;p&gt;Contributing to BoringNotch gave me a practical way to explore that question while learning more about Swift and SwiftUI. The result is a productivity-focused enhanced build with a Pomodoro timer, clipboard history, reminders, calendar information, media controls, battery details, and camera controls in a compact Mac interface.&lt;/p&gt;

&lt;p&gt;The best part of the project was discovering how much usefulness can fit into a small space when every feature has a clear purpose.&lt;/p&gt;

&lt;p&gt;What would you put in a MacBook notch productivity hub? Would you use the Pomodoro timer, clipboard history, music controls, or something completely different?&lt;/p&gt;

&lt;p&gt;For the complete feature breakdown and the original development story, you can &lt;a href="https://mustafaramx.com/post/make-your-mac-notch-useful-with-boringnotch-download/?utm_source=devto&amp;amp;utm_medium=article&amp;amp;utm_campaign=boringnotchplus_dev&amp;amp;utm_content=original_overview" rel="noopener noreferrer"&gt;read the full BoringNotch+ article on my website&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>productivity</category>
      <category>swift</category>
      <category>programming</category>
      <category>tools</category>
    </item>
    <item>
      <title>I Built a Mac Menu Bar Translator to Stop Switching Browser Tabs</title>
      <dc:creator>Mustafa.Ramax</dc:creator>
      <pubDate>Sun, 09 Aug 2026 00:06:22 +0000</pubDate>
      <link>https://dev.to/max_ramx/i-built-a-mac-menu-bar-translator-to-stop-switching-browser-tabs-1hi2</link>
      <guid>https://dev.to/max_ramx/i-built-a-mac-menu-bar-translator-to-stop-switching-browser-tabs-1hi2</guid>
      <description>&lt;p&gt;I often need to translate just one sentence.&lt;/p&gt;

&lt;p&gt;It might be a line in developer documentation, a message from an international client, a phrase in an article, or something I am writing in another language. The translation itself is usually quick. The interruption around it is not.&lt;/p&gt;

&lt;p&gt;I open a browser tab, visit Google Translate or DeepL, copy the text, paste it, switch back to my original app, and then repeat the whole process a few minutes later.&lt;/p&gt;

&lt;p&gt;That small loop became surprisingly annoying. I wanted a translator that was always nearby but did not require another browser window. That was the idea behind &lt;a href="https://mustafaramx.com/apps/lingomacbar/?utm_source=devto&amp;amp;utm_medium=article&amp;amp;utm_campaign=lingomacbar_dev" rel="noopener noreferrer"&gt;LingoMacBar&lt;/a&gt;: a lightweight Mac menu bar translator that opens when I need it and stays out of the way afterward.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why a translator in the Mac menu bar?
&lt;/h2&gt;

&lt;p&gt;Google Translate and DeepL are already useful services. The problem was not finding a good translation engine. The problem was the number of steps required to reach it.&lt;/p&gt;

&lt;p&gt;For occasional translation, opening a website is fine. For someone who translates several times a day, the repeated context switching adds friction. It breaks concentration while reading documentation, interrupts writing, and makes short translations feel more complicated than they should be.&lt;/p&gt;

&lt;p&gt;The macOS menu bar felt like the right place for a small tool like this. It is already part of the desktop, it is always accessible, and it does not need to take over the screen.&lt;/p&gt;

&lt;h2&gt;
  
  
  How LingoMacBar works
&lt;/h2&gt;

&lt;p&gt;LingoMacBar lives quietly in the macOS menu bar. I can open it with a click or a customizable keyboard shortcut, choose Google Translate or DeepL, and translate without opening another browser tab.&lt;/p&gt;

&lt;p&gt;The app supports automatic, light, and dark appearance modes, so it can follow the system appearance or use the mode I prefer. The goal is a small interface that feels comfortable during a normal workday rather than another large application competing for attention.&lt;/p&gt;

&lt;p&gt;It is designed for quick translations rather than language study, document management, or a complete writing workflow. That focus is intentional.&lt;/p&gt;

&lt;p&gt;LingoMacBar requires an internet connection because it uses WebView to access Google Translate and DeepL. It does not require an account or cloud sync, and it has no ads or tracking. If either translation service changes its web interface, the app may need an update to keep the visual experience working correctly.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fxwg577a9kefcmi1okuzi.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fxwg577a9kefcmi1okuzi.webp" alt=" " width="800" height="405"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Building a focused SwiftUI macOS app
&lt;/h2&gt;

&lt;p&gt;LingoMacBar is built with Swift and SwiftUI, with WebView providing access to the translation services.&lt;/p&gt;

&lt;p&gt;One of the interesting parts of building a small Mac utility is deciding what not to build. It would have been possible to add a large settings system, a separate translation window, language-learning features, saved documents, and many other ideas. Most of those would have moved the app away from the original problem: getting a quick translation without leaving the current workflow.&lt;/p&gt;

&lt;p&gt;The menu bar creates useful design constraints. The app needs to be easy to open, simple to understand, and visually quiet when it is not being used. A shortcut should feel faster than reaching for a browser tab. The main interface should provide enough control without becoming a dashboard.&lt;/p&gt;

&lt;p&gt;Using Google Translate and DeepL also means working with services that users already recognize. Instead of trying to create a new translation engine, LingoMacBar packages access to those familiar tools into a smaller Mac-focused experience.&lt;/p&gt;

&lt;p&gt;That approach has a trade-off. The app depends on the services it displays, so it needs an internet connection and may require maintenance when those services change. In return, users can choose between two established translation engines from one convenient place.&lt;/p&gt;

&lt;h2&gt;
  
  
  Who might find it useful?
&lt;/h2&gt;

&lt;p&gt;LingoMacBar is especially useful for people who work across languages during the day.&lt;/p&gt;

&lt;p&gt;Developers can use it while reading documentation, comments, issue reports, or technical discussions. Students can translate research and assignments without constantly changing browser tabs. Writers and bloggers can check phrases while drafting. Remote workers can communicate with international teams more comfortably.&lt;/p&gt;

&lt;p&gt;It can also be useful for travelers, language learners, digital nomads, and anyone who regularly reads or writes in more than one language.&lt;/p&gt;

&lt;p&gt;The common use case is not a particular profession. It is the repeated need to translate something small without losing focus on the task already in front of you.&lt;/p&gt;

&lt;h2&gt;
  
  
  A small tool for a repeated problem
&lt;/h2&gt;

&lt;p&gt;The most valuable productivity tools are not always the ones with the longest feature lists. Sometimes the useful part is removing a few unnecessary steps from something that happens every day.&lt;/p&gt;

&lt;p&gt;That is what I wanted from LingoMacBar. It does not try to replace Google Translate or DeepL. It makes them easier to reach from the Mac desktop.&lt;/p&gt;

&lt;p&gt;If you translate text regularly, you can &lt;a href="https://mustafaramx.com/apps/lingomacbar/?utm_source=devto&amp;amp;utm_medium=article&amp;amp;utm_campaign=lingomacbar_dev&amp;amp;utm_content=project_cta" rel="noopener noreferrer"&gt;see LingoMacBar for macOS&lt;/a&gt;, view the screenshots, and decide whether the workflow fits you. It is available for a $9.99 one-time purchase with lifetime updates.&lt;/p&gt;

&lt;h2&gt;
  
  
  Final thoughts
&lt;/h2&gt;

&lt;p&gt;Building LingoMacBar reminded me that a focused app can be more useful than a feature-heavy one when the problem is specific.&lt;/p&gt;

&lt;p&gt;The app started with a simple frustration: I did not want to keep opening browser tabs for short translations. The final result is a small Mac menu bar translator with keyboard shortcuts, Google Translate and DeepL support, familiar appearance modes, and a deliberately limited scope.&lt;/p&gt;

&lt;p&gt;I would be interested to hear how other developers and multilingual Mac users handle translation during the day. Do you use Google Translate, DeepL, a browser extension, or something else? And what would make a Mac menu bar translator more useful in your workflow?&lt;/p&gt;

&lt;p&gt;For the full feature overview, you can &lt;a href="https://mustafaramx.com/post/lingomacbar-the-ultimate-macos-menu-bar-translator/?utm_source=devto&amp;amp;utm_medium=article&amp;amp;utm_campaign=lingomacbar_dev&amp;amp;utm_content=original_overview" rel="noopener noreferrer"&gt;read the original LingoMacBar article on my website&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>swift</category>
      <category>productivity</category>
      <category>programming</category>
      <category>tools</category>
    </item>
    <item>
      <title>I Built a Native macOS Market Tracker for Traders Who Hate Browser Tabs</title>
      <dc:creator>Mustafa.Ramax</dc:creator>
      <pubDate>Sat, 08 Aug 2026 23:46:16 +0000</pubDate>
      <link>https://dev.to/max_ramx/i-built-a-native-macos-market-tracker-for-traders-who-hate-browser-tabs-5345</link>
      <guid>https://dev.to/max_ramx/i-built-a-native-macos-market-tracker-for-traders-who-hate-browser-tabs-5345</guid>
      <description>&lt;p&gt;I have a bad habit of checking the market while I work.&lt;/p&gt;

&lt;p&gt;It usually starts with one quick look at a price. Then I open a chart, check another symbol, compare a crypto position, and somehow end up with a row of browser tabs that has nothing to do with the task I was supposed to be doing.&lt;/p&gt;

&lt;p&gt;I wanted something quieter.&lt;/p&gt;

&lt;p&gt;That was the idea behind &lt;a href="https://mustafaramx.com/apps/marketpulsebar/?utm_source=devto&amp;amp;utm_medium=article&amp;amp;utm_campaign=marketpulsebar_dev" rel="noopener noreferrer"&gt;MarketPulseBar&lt;/a&gt;: a native macOS market tracker that lives in the menu bar and shows the numbers I care about without turning market watching into another full-time activity.&lt;/p&gt;

&lt;h2&gt;
  
  
  The problem with checking markets while working
&lt;/h2&gt;

&lt;p&gt;Charts are useful when I need to study a move. They are not always useful when I only want to know whether BTC moved, whether an ETF is up, or whether my portfolio is having a good or bad day.&lt;/p&gt;

&lt;p&gt;The normal workflow is surprisingly repetitive:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Stop what I am doing.&lt;/li&gt;
&lt;li&gt;Open a browser tab or trading app.&lt;/li&gt;
&lt;li&gt;Find the right symbol.&lt;/li&gt;
&lt;li&gt;Wait for the page and data to load.&lt;/li&gt;
&lt;li&gt;Read the price.&lt;/li&gt;
&lt;li&gt;Close the tab, or leave it open and repeat the process later.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;That workflow makes sense for analysis. It feels excessive for awareness.&lt;/p&gt;

&lt;p&gt;The question I kept coming back to was simple: what if the important part of a market dashboard was the part I could read in one second?&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fknybm5so51ppusuot1xc.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fknybm5so51ppusuot1xc.webp" alt=" " width="800" height="320"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  A market tracker designed for the macOS menu bar
&lt;/h2&gt;

&lt;p&gt;MarketPulseBar is built around a small amount of information that stays close to the eyes without demanding attention.&lt;/p&gt;

&lt;p&gt;It can track stocks, crypto, ETFs, forex, indices, gold, and silver. I can choose the symbols I want to follow and keep them visible while writing, coding, or working in another application.&lt;/p&gt;

&lt;p&gt;The goal is not to replace a charting platform. It is to remove the unnecessary steps between wondering about a price and seeing it.&lt;/p&gt;

&lt;p&gt;That distinction shaped most of the product decisions. The app does not need to become a giant dashboard. It needs to be readable, compact, and useful when I am already busy doing something else.&lt;/p&gt;

&lt;h2&gt;
  
  
  Price-Only mode and Portfolio mode
&lt;/h2&gt;

&lt;p&gt;There are two main ways to use the app.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Price-Only mode&lt;/strong&gt; is for simple market awareness. I can watch symbols such as BTC-USD, AAPL, SOL-USD, ETFs, forex pairs, indices, or precious metals without entering any personal position information.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Portfolio mode&lt;/strong&gt; is for a more personal view. I can enter units and average cost and see live profit or loss based on those positions. This is useful when the question is not only “What is the current price?” but also “What does this movement mean for the position I am watching?”&lt;/p&gt;

&lt;p&gt;The two modes are intentionally separate. Sometimes I want a clean ticker. Sometimes I want the context of my own holdings. Mixing both into one crowded interface would make the menu bar harder to scan.&lt;/p&gt;

&lt;h2&gt;
  
  
  Making many symbols fit in a small space
&lt;/h2&gt;

&lt;p&gt;A menu bar is a constrained interface. There is only so much room before a useful tool becomes visual noise, especially on a laptop display.&lt;/p&gt;

&lt;p&gt;MarketPulseBar has several display modes for that reason:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Multi mode&lt;/strong&gt; shows several symbols at once when there is enough horizontal space.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Rotate mode&lt;/strong&gt; cycles through symbols one at a time for a more compact setup.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Hybrid mode&lt;/strong&gt; keeps the most important symbols visible and rotates the rest.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Compact mode&lt;/strong&gt; shortens symbols where possible, such as showing BTC instead of BTC-USD.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The interesting part is that none of these modes is universally best. A wide external monitor and a laptop screen have different needs. Someone watching three symbols may want a permanent view, while someone following a longer list may prefer rotation.&lt;/p&gt;

&lt;p&gt;Providing those choices made the app more useful without adding a second window or a complicated dashboard.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fydog0qfz18szz7nfb3k6.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fydog0qfz18szz7nfb3k6.webp" alt=" " width="799" height="317"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Why build it as a native Mac app?
&lt;/h2&gt;

&lt;p&gt;MarketPulseBar is built with Swift and AppKit rather than being a browser tab wrapped in a desktop shell.&lt;/p&gt;

&lt;p&gt;For this particular idea, that matters. A menu bar app should feel like part of the operating system. It should launch quietly, stay out of the way, and make the interaction available from the same place where other system controls already live.&lt;/p&gt;

&lt;p&gt;Building for the menu bar also changes how I think about interface design. A normal application can rely on a large canvas, navigation, panels, and empty space. A menu bar utility has to communicate quickly with very little room.&lt;/p&gt;

&lt;p&gt;That creates a different set of priorities:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The most important information needs to be visible immediately.&lt;/li&gt;
&lt;li&gt;Controls should not require a tour to understand.&lt;/li&gt;
&lt;li&gt;Settings should support different screen sizes without overwhelming the main view.&lt;/li&gt;
&lt;li&gt;The app should remain useful even when it is not the main thing on screen.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Those constraints are not limitations to work around. They are the product.&lt;/p&gt;

&lt;h2&gt;
  
  
  The small details matter more than the feature list
&lt;/h2&gt;

&lt;p&gt;It is easy to describe a market tracker by listing supported assets. The harder part is making it comfortable to live with every day.&lt;/p&gt;

&lt;p&gt;I paid attention to details such as compact symbol names, rotating displays, and the difference between a price-only glance and a portfolio view.&lt;/p&gt;

&lt;p&gt;The app is also designed to stay lightweight in the background. It has no ads, trackers, or analytics, and the distributed build is Apple-notarised.&lt;/p&gt;

&lt;p&gt;For a small utility that may sit in the menu bar all day, those qualities matter as much as the headline feature. I do not want to trade one distraction for another, or install a simple tool that behaves like a large application.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fmn3tkqux453rtc519w3d.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fmn3tkqux453rtc519w3d.webp" alt=" " width="800" height="324"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Who is it useful for?
&lt;/h2&gt;

&lt;p&gt;MarketPulseBar started with my own workflow, but the use cases are broader than I first expected.&lt;/p&gt;

&lt;p&gt;It is for traders who want a quick view between analysis sessions. It is for long-term investors who check a watchlist during the day. It is for crypto holders who do not want to open a full exchange or charting interface every time they wonder about a price.&lt;/p&gt;

&lt;p&gt;It is also for developers and other Mac users who spend most of the day in an editor, terminal, design tool, or browser and still want market information nearby.&lt;/p&gt;

&lt;p&gt;The common thread is not a particular trading strategy. It is the desire to stay informed without constantly changing context.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I learned from shipping it
&lt;/h2&gt;

&lt;p&gt;The biggest lesson was that a small product still has a lot of product decisions hidden inside it.&lt;/p&gt;

&lt;p&gt;“Put prices in the menu bar” sounds straightforward until questions appear:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;How many symbols should be visible?&lt;/li&gt;
&lt;li&gt;What happens when the screen is narrow?&lt;/li&gt;
&lt;li&gt;Should the app show a ticker or portfolio context?&lt;/li&gt;
&lt;li&gt;How do you make rotation useful instead of distracting?&lt;/li&gt;
&lt;li&gt;Which settings belong in the main interaction and which should stay out of the way?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Most of the work was not about adding more things to the screen. It was about deciding what did not belong there.&lt;/p&gt;

&lt;p&gt;That is one reason I like building focused Mac utilities. A narrow surface forces clearer thinking. When an app has one small place to live, every piece of information has to earn its space.&lt;/p&gt;

&lt;p&gt;If you want to see the finished result, you can &lt;a href="https://mustafaramx.com/apps/marketpulsebar/?utm_source=devto&amp;amp;utm_medium=article&amp;amp;utm_campaign=marketpulsebar_dev&amp;amp;utm_content=project_cta" rel="noopener noreferrer"&gt;view MarketPulseBar for macOS&lt;/a&gt;. The project is available as a $9.99 one-time purchase, and the app page includes the current screenshots and product details.&lt;/p&gt;

&lt;h2&gt;
  
  
  Final thoughts
&lt;/h2&gt;

&lt;p&gt;MarketPulseBar is not intended to replace a professional charting platform, brokerage account, or investment research workflow. It is a small companion for the moments when I want market awareness without opening another dashboard.&lt;/p&gt;

&lt;p&gt;That turned out to be a useful design target: make the information available, keep the interface quiet, and let the user decide when to investigate further.&lt;/p&gt;

&lt;p&gt;I am still interested in where the idea should go next. Would alerts be useful, or would they make the menu bar too noisy? Would you want more portfolio context, more asset types, or integrations with other Mac workflows?&lt;/p&gt;

&lt;p&gt;If you build native macOS utilities, I would also be interested in hearing how you approach small, persistent interfaces. The menu bar looks simple from the outside, but it is a surprisingly demanding place to design for.&lt;/p&gt;

&lt;p&gt;For the original product overview and the full feature breakdown, you can &lt;a href="https://mustafaramx.com/post/marketpulsebar-track-crypto-stocks-etfs-gold-silver-p-l-in-your-mac-menu-bar/?utm_source=devto&amp;amp;utm_medium=article&amp;amp;utm_campaign=marketpulsebar_dev&amp;amp;utm_content=original_overview" rel="noopener noreferrer"&gt;read the MarketPulseBar overview on my website&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>productivity</category>
      <category>programming</category>
      <category>swift</category>
      <category>tools</category>
    </item>
    <item>
      <title>Building FinMCP: A Free Financial Data MCP Server for Global Markets (Including ASX)</title>
      <dc:creator>Mustafa.Ramax</dc:creator>
      <pubDate>Sun, 15 Mar 2026 11:27:13 +0000</pubDate>
      <link>https://dev.to/max_ramx/building-finmcp-a-free-financial-data-mcp-server-for-global-markets-including-asx-4kop</link>
      <guid>https://dev.to/max_ramx/building-finmcp-a-free-financial-data-mcp-server-for-global-markets-including-asx-4kop</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fn7mlsv4k83iiq6hdn9g5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fn7mlsv4k83iiq6hdn9g5.png" alt="FinMCP" width="800" height="438"&gt;&lt;/a&gt;&lt;br&gt;
TL;DR — I built a MCP server that connects Claude and other AI assistants to live financial data across any market. No API keys, free forever, open source. Works for US stocks, ASX, crypto, forex — everything Yahoo Finance covers.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Problem:&lt;/strong&gt; AI That Doesn't Know Today's Market&lt;br&gt;
Here's the thing nobody mentions when you start using AI for investing decisions: your AI model has a knowledge cutoff. It doesn't know what happened in the market yesterday, last week, or last month.&lt;br&gt;
I'm constantly asking Claude things like:&lt;/p&gt;

&lt;p&gt;"How does VAS compare to A200 over the last 5 years?"&lt;br&gt;
"What's the analyst consensus on this ASX stock right now?"&lt;br&gt;
"Show me the free cash flow trend for this company."&lt;/p&gt;

&lt;p&gt;And I'd get answers that were weeks old or completely fabricated.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Solution: FinMCP&lt;/strong&gt;: I discovered Yahoo Finance has an undocumented free API that supports everything — US stocks, ASX, LSE, TSE, crypto, forex, global ETFs. No API key required. The yahoo-finance2 npm library handles all the authentication.&lt;br&gt;
So I forked an existing basic MCP wrapper and rebuilt it properly.&lt;br&gt;
What emerged was FinMCP — a production-grade financial data server that connects Claude, ChatGPT, Cursor, Cline, and Perplexity to live market data across 50+ exchanges worldwide.&lt;/p&gt;

&lt;p&gt;I also added cloud deployment (Railway, Docker, any VPS) so you can deploy this publicly and share it with teammates over HTTPS — something the original couldn't do.&lt;/p&gt;

&lt;p&gt;The 15 Tools You Get:&lt;br&gt;
✅ Real-time quotes (any market, any asset)&lt;br&gt;
✅ Financial statements (annual/quarterly)&lt;br&gt;
✅ Options chains with Greeks&lt;br&gt;
✅ Analyst consensus &amp;amp; price targets&lt;br&gt;
✅ Institutional holdings data&lt;br&gt;
✅ News with relevance scoring&lt;br&gt;
✅ Market screener (P/E, yield, beta, etc.)&lt;br&gt;
✅ Earnings data&lt;br&gt;
✅ Dividend history&lt;br&gt;
✅ Crypto quotes&lt;br&gt;
✅ Forex data&lt;br&gt;
✅ And more...&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fo3dz6kpucgxy8mjgqer1.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fo3dz6kpucgxy8mjgqer1.gif" alt="FinMCP" width="720" height="442"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Real Example:&lt;/strong&gt; I asked Claude: "Compare the free cash flow margin trends for three ASX mining companies over the last four years."&lt;br&gt;
It pulled the balance sheet and cash flow statements for each company, calculated the trends, and gave me a structured breakdown.&lt;br&gt;
Normally? That's 20 minutes of spreadsheet work.&lt;/p&gt;

&lt;p&gt;How to Deploy&lt;br&gt;
Local (5 minutes)&lt;br&gt;
Prerequisites: Node.js 22+&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git clone https://github.com/Steve-sy/finmcp.git
&lt;span class="nb"&gt;cd &lt;/span&gt;finmcp
npm &lt;span class="nb"&gt;install
&lt;/span&gt;npm run build
npm run start
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Point Claude Desktop at it:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"mcpServers"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"finmcp"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"command"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"node"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"args"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;"/path/to/finmcp/dist/index.js"&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Done. Every Claude conversation now has live financial data access.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Cloud (Railway, Docker, Any VPS)&lt;/strong&gt;&lt;br&gt;
Deploy to Railway with one click (free tier is plenty):&lt;/p&gt;

&lt;p&gt;Clone/Fork the repo&lt;br&gt;
Connect to Railway&lt;br&gt;
Set YF_MCP_API_KEY environment variable for auth protection&lt;br&gt;
Share the public HTTPS URL with teammates or friends&lt;/p&gt;

&lt;p&gt;Connect with: &lt;a href="https://your-app.up.railway.app/mcp?key=YOUR_SECRET" rel="noopener noreferrer"&gt;https://your-app.up.railway.app/mcp?key=YOUR_SECRET&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;👉&lt;a href="https://railway.com/?referralCode=Wvt6V5" rel="noopener noreferrer"&gt; Deploy to Railway with this referral link — helps both of us out.&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Why Yahoo Finance:&lt;br&gt;
Yahoo Finance: Free, global coverage, no API key, no rate limits on the API.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Real-World Use Cases:&lt;/strong&gt;&lt;br&gt;
Pre-market brief automation:&lt;br&gt;
Schedule a daily prompt at 8am that pulls your watchlist, overnight moves, analyst sentiment, and relevant news.&lt;/p&gt;

&lt;p&gt;Portfolio health check:&lt;br&gt;
Monthly scan across all holdings. Flag companies with deteriorating free cash flow or rising debt ratios.&lt;/p&gt;

&lt;p&gt;Options flow monitoring:&lt;br&gt;
Track put/call ratios and unusual activity for stocks you're watching or holding.&lt;/p&gt;

&lt;p&gt;Most MCP servers built on older yahoo-finance2 versions are returning broken data right now. This one is updated for the current v3 API.&lt;br&gt;
&lt;strong&gt;Get Started:&lt;/strong&gt;&lt;br&gt;
GitHub: github.com/Steve-sy/finmcp&lt;/p&gt;

&lt;p&gt;Want the full story? Read the deep dive on my &lt;a href="https://www.mustafaramx.com/post/finmcp-i-built-a-financial-data-mcp-because-ai-doesn-t-know-today-s-prices" rel="noopener noreferrer"&gt;blog&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>node</category>
      <category>docker</category>
      <category>mcp</category>
    </item>
    <item>
      <title>How I Secured My Self-Hosted Coolify Server With CrowdSec Firewall (Step-by-Step Guide)</title>
      <dc:creator>Mustafa.Ramax</dc:creator>
      <pubDate>Tue, 10 Jun 2025 00:07:14 +0000</pubDate>
      <link>https://dev.to/max_ramx/how-i-secured-my-self-hosted-coolify-server-with-crowdsec-firewall-step-by-step-guide-5e6h</link>
      <guid>https://dev.to/max_ramx/how-i-secured-my-self-hosted-coolify-server-with-crowdsec-firewall-step-by-step-guide-5e6h</guid>
      <description>&lt;p&gt;Are you self-hosting Coolify as a Vercel or Netlify alternative? It’s an awesome platform, but security is key if you run it on your own VPS.&lt;/p&gt;

&lt;p&gt;When I first deployed Coolify, I noticed that many guides ignore the topic of server security. Your Coolify server runs Traefik + Docker — and unless you secure it properly, you could be exposed to:&lt;/p&gt;

&lt;p&gt;Port scanning&lt;br&gt;
SSH brute force&lt;br&gt;
HTTP probing (bots hitting your sites)&lt;br&gt;
Path / CVE attacks&lt;br&gt;
Or… even full server compromise&lt;/p&gt;

&lt;p&gt;After testing different options, I found that CrowdSec + CrowdSec Traefik Bouncer is the best combo to protect your Coolify server &amp;amp; your websites. It works like a modern Fail2Ban but smarter.&lt;/p&gt;

&lt;p&gt;I wrote a full step-by-step guide here:&lt;br&gt;
&lt;a href="https://www.mustafaramx.com/post/secure-your-coolify-server-websites-with-crowdsec-and-traefik" rel="noopener noreferrer"&gt;Secure Your Coolify Server &amp;amp; Websites With CrowdSec and Traefik&lt;br&gt;
&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;It covers:&lt;br&gt;
Protecting Traefik (global HTTP/HTTPS protection)&lt;br&gt;
Firewall bouncer for server-level protection (SSH, ports)&lt;br&gt;
Automatically block bots &amp;amp; attackers in real-time&lt;br&gt;
That setup will protect all your websites and the server&lt;/p&gt;

&lt;p&gt;If you’re self-hosting Coolify → this setup is a must-have in my opinion.&lt;/p&gt;

&lt;p&gt;Feel free to ask me anything! ^_^&lt;/p&gt;

</description>
      <category>coolify</category>
      <category>crowdsec</category>
      <category>firewall</category>
      <category>fail2ban</category>
    </item>
  </channel>
</rss>
