<?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: Tejas Mali</title>
    <description>The latest articles on DEV Community by Tejas Mali (@tejasmmali).</description>
    <link>https://dev.to/tejasmmali</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%2F4083398%2Fc82e4d1e-40e0-40c1-a5d4-ff3268429c1c.png</url>
      <title>DEV Community: Tejas Mali</title>
      <link>https://dev.to/tejasmmali</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/tejasmmali"/>
    <language>en</language>
    <item>
      <title>MultiDrive: Manage Multiple Google Drive Accounts from One Dashboard</title>
      <dc:creator>Tejas Mali</dc:creator>
      <pubDate>Wed, 26 Aug 2026 08:51:05 +0000</pubDate>
      <link>https://dev.to/tejasmmali/multidrive-manage-multiple-google-drive-accounts-from-one-dashboard-35a8</link>
      <guid>https://dev.to/tejasmmali/multidrive-manage-multiple-google-drive-accounts-from-one-dashboard-35a8</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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fox4qnvqds4asx70p3h0t.jpeg" 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%2Fox4qnvqds4asx70p3h0t.jpeg" alt=" " width="799" height="503"&gt;&lt;/a&gt;&lt;br&gt;
Managing multiple Google Drive accounts can be frustrating. Whether you have separate accounts for personal files, work, projects, or backups, switching between accounts and checking storage manually takes time.&lt;/p&gt;

&lt;p&gt;To solve this problem, I built MultiDrive — a web application that lets users connect and manage multiple Google Drive accounts from one dashboard.&lt;/p&gt;

&lt;p&gt;The goal is simple: one place to view and manage your cloud storage accounts.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why I Built MultiDrive&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Like many people, I found myself using multiple cloud storage accounts for different purposes. Google Drive makes it easy to store files, but managing several accounts means constantly switching between them.&lt;/p&gt;

&lt;p&gt;I wanted a simpler experience where I could connect multiple accounts and quickly see important information such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;How much storage each account has&lt;/li&gt;
&lt;li&gt;How much storage is being used&lt;/li&gt;
&lt;li&gt;Google Drive usage&lt;/li&gt;
&lt;li&gt;Trash usage&lt;/li&gt;
&lt;li&gt;Storage usage percentage&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That's where the idea for MultiDrive came from.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;MultiDrive Features&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;Connect Multiple Google Drive Accounts&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The main feature of MultiDrive is the ability to connect multiple Google accounts using Google OAuth 2.0.&lt;/p&gt;

&lt;p&gt;Each connected Google account is handled separately, allowing users to manage multiple Google Drive connections from a single application.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Google Drive Storage Dashboard&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;MultiDrive uses the Google Drive API to retrieve storage information for each connected account.&lt;/p&gt;

&lt;p&gt;The dashboard displays:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Total storage capacity&lt;/li&gt;
&lt;li&gt;Used storage&lt;/li&gt;
&lt;li&gt;Storage usage percentage&lt;/li&gt;
&lt;li&gt;Google Drive storage usage&lt;/li&gt;
&lt;li&gt;Trash storage usage&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Each account has its own storage card, making it easy to compare storage across multiple Google Drive accounts.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Automatic GB and TB Storage Formatting&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Storage information is returned by the Google Drive API in bytes, so MultiDrive automatically converts the values into readable units.&lt;/p&gt;

&lt;p&gt;For example:&lt;/p&gt;

&lt;p&gt;Smaller storage amounts are displayed in GB&lt;br&gt;
Larger storage amounts are automatically displayed in TB&lt;/p&gt;

&lt;p&gt;This makes the dashboard easier to read without manually calculating storage values.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Connected Account Sidebar&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;All connected Google Drive accounts are listed in the sidebar using their email addresses. This provides a quick overview of every account connected to MultiDrive.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Technologies Used&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I built MultiDrive using a simple JavaScript-based stack:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;HTML for the application structure&lt;/li&gt;
&lt;li&gt;CSS for the dashboard interface&lt;/li&gt;
&lt;li&gt;JavaScript for frontend functionality&lt;/li&gt;
&lt;li&gt;Node.js for the backend&lt;/li&gt;
&lt;li&gt;Express.js for API routes&lt;/li&gt;
&lt;li&gt;Google OAuth 2.0 for authentication&lt;/li&gt;
&lt;li&gt;Google Drive API for accessing storage information&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The backend handles the OAuth flow and communicates with the Google Drive API, while the frontend displays the information in a unified dashboard.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Connecting to the Google Drive API&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;One of the most important parts of the project was implementing Google OAuth.&lt;/p&gt;

&lt;p&gt;The authentication flow works like this:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The user clicks Add Google Account&lt;/li&gt;
&lt;li&gt;MultiDrive redirects the user to Google authentication&lt;/li&gt;
&lt;li&gt;The user grants permission to access Google Drive&lt;/li&gt;
&lt;li&gt;Google redirects the user back to the application&lt;/li&gt;
&lt;li&gt;The application receives an access token&lt;/li&gt;
&lt;li&gt;MultiDrive uses the token to retrieve Google Drive information&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This approach makes it possible to connect multiple Google accounts independently.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;A Problem I Faced While Building It&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;During development, I encountered a situation where Google authentication was successful, but requests to the Google Drive API failed.&lt;/p&gt;

&lt;p&gt;The issue was that the Google Drive API was not enabled for the Google Cloud project associated with my OAuth credentials.&lt;/p&gt;

&lt;p&gt;It was an interesting lesson because OAuth authentication and API access are two separate parts of the setup.&lt;/p&gt;

&lt;p&gt;Successfully logging in with Google does not automatically mean that every Google API is enabled for your project.&lt;/p&gt;

&lt;p&gt;After enabling the Google Drive API in the correct Google Cloud project, the storage requests started working correctly.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What's Next for MultiDrive?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Google Drive support is the first step. My long-term goal is to turn MultiDrive into a unified cloud storage management platform.&lt;/p&gt;

&lt;p&gt;Some features I plan to explore include:&lt;br&gt;
 Browse Google Drive files and folderslll&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Search files across connected accounts&lt;/li&gt;
&lt;li&gt;Upload files&lt;/li&gt;
&lt;li&gt;Transfer files between cloud accounts&lt;/li&gt;
&lt;li&gt;Dropbox integration&lt;/li&gt;
&lt;li&gt;Microsoft OneDrive integration&lt;/li&gt;
&lt;li&gt;Combined storage analytics
The idea is to eventually allow users to manage different cloud storage services without constantly switching between multiple websites.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Final Thoughts&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Building MultiDrive has been a great project for learning about JavaScript, Node.js, OAuth authentication, REST APIs, and cloud storage management.&lt;/p&gt;

&lt;p&gt;The project solves a simple problem: managing multiple Google Drive accounts should be easier.&lt;/p&gt;

&lt;p&gt;The current version focuses on connecting multiple Google accounts and displaying their storage information in one dashboard, but I see a lot of potential for expanding it into a more complete multi-cloud storage manager.&lt;/p&gt;

&lt;p&gt;I'd love to hear your feedback!&lt;/p&gt;

</description>
      <category>buildinpublic</category>
      <category>cloud</category>
      <category>showdev</category>
      <category>webdev</category>
    </item>
    <item>
      <title>RouterFlip: A Simpler Way to Test and Switch Claude Code Routers, Accounts, and Models</title>
      <dc:creator>Tejas Mali</dc:creator>
      <pubDate>Tue, 18 Aug 2026 14:01:37 +0000</pubDate>
      <link>https://dev.to/tejasmmali/routerflip-a-simpler-way-to-test-and-switch-claude-code-routers-accounts-and-models-1dlj</link>
      <guid>https://dev.to/tejasmmali/routerflip-a-simpler-way-to-test-and-switch-claude-code-routers-accounts-and-models-1dlj</guid>
      <description>&lt;p&gt;If you use Claude Code with multiple API routers or accounts, constantly changing API keys, base URLs, and models can get annoying.&lt;/p&gt;

&lt;p&gt;I built RouterFlip, a CLI/TUI tool designed specifically for Claude Code to make switching between different router setups much easier.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is RouterFlip?
&lt;/h2&gt;

&lt;p&gt;RouterFlip lets you manage your Claude Code configuration from one place:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Multiple API routers&lt;/li&gt;
&lt;li&gt;Multiple accounts per router&lt;/li&gt;
&lt;li&gt;Automatic model discovery&lt;/li&gt;
&lt;li&gt;Router/API testing&lt;/li&gt;
&lt;li&gt;Easy model switching&lt;/li&gt;
&lt;li&gt;Temporary router switching&lt;/li&gt;
&lt;li&gt;Permanent router switching&lt;/li&gt;
&lt;li&gt;Secure credential storage&lt;/li&gt;
&lt;li&gt;Interactive terminal UI&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For example:&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%2F9ewt6gt0s4ys8qzel86w.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%2F9ewt6gt0s4ys8qzel86w.png" alt="Picture of Routerflip cli showing feature" width="800" height="448"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Automatic Model Discovery
&lt;/h2&gt;

&lt;p&gt;You don't need to manually enter every model ID.&lt;/p&gt;

&lt;p&gt;RouterFlip can test a router and automatically discover the models available through it.&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%2Fwt3qbmsq7efsvw5c76hr.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%2Fwt3qbmsq7efsvw5c76hr.png" alt="Picture of Routerflip cli showing Model Discovery feature" width="800" height="451"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You can refresh the list whenever the router's available models change.&lt;/p&gt;

&lt;h2&gt;
  
  
  Test Your Routers
&lt;/h2&gt;

&lt;p&gt;RouterFlip includes a built-in testing system:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;routerflip test GoRouter
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Or test everything:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;routerflip &lt;span class="nb"&gt;test&lt;/span&gt; &lt;span class="nt"&gt;--all&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This helps verify that your router, account, and model configuration are actually working before using Claude Code.&lt;/p&gt;

&lt;h2&gt;
  
  
  Temporary or Permanent
&lt;/h2&gt;

&lt;p&gt;Want to try another router without changing your normal Claude Code setup?&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;routerflip use GoRouter &lt;span class="nt"&gt;--temporary&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Or make it your permanent configuration:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;routerflip use GoRouter &lt;span class="nt"&gt;--permanent&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Multiple Accounts
&lt;/h2&gt;

&lt;p&gt;If you have multiple API accounts for the same router, you can keep them together instead of creating separate configurations.&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%2F9cz7m6u44tdp9nc9ku2r.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%2F9cz7m6u44tdp9nc9ku2r.png" alt="RouterFlip Multiple account feature" width="800" height="452"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Then select the account you want to use.&lt;/p&gt;

&lt;p&gt;Why a CLI?&lt;/p&gt;

&lt;p&gt;I wanted something lightweight that doesn't require another desktop application running in the background.&lt;/p&gt;

&lt;p&gt;Everything happens directly in the terminal:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npm &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;-g&lt;/span&gt; routerflip
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;routerflip
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;RouterFlip currently works on Windows, macOS, and Linux.&lt;/p&gt;

&lt;p&gt;The Goal&lt;/p&gt;

&lt;p&gt;The workflow is basically:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Router
  ↓
Account
  ↓
Model (optional)
  ↓
Temporary / Permanent
  ↓
Claude Code
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;No repeatedly editing environment variables or configuration files just to switch between setups.&lt;/p&gt;

&lt;p&gt;Try It&lt;/p&gt;

&lt;p&gt;Install RouterFlip:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npm &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;-g&lt;/span&gt; routerflip
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Run:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;routerflip
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;GitHub: &lt;a href="https://github.com/tejasmmali/RouterFlip" rel="noopener noreferrer"&gt;https://github.com/tejasmmali/RouterFlip&lt;/a&gt;&lt;br&gt;
NPM : &lt;a href="https://www.npmjs.com/package/routerflip" rel="noopener noreferrer"&gt;https://www.npmjs.com/package/routerflip&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I'd love to hear feedback from other Claude Code users, especially if you use multiple gateways, accounts, or models.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>claude</category>
      <category>apigateway</category>
      <category>cli</category>
    </item>
  </channel>
</rss>
