<?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: Shivam Trivedi</title>
    <description>The latest articles on DEV Community by Shivam Trivedi (@io_shivam).</description>
    <link>https://dev.to/io_shivam</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%2F2983425%2F19ee6694-fce0-4872-8caf-24f7abbb813a.jpg</url>
      <title>DEV Community: Shivam Trivedi</title>
      <link>https://dev.to/io_shivam</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/io_shivam"/>
    <language>en</language>
    <item>
      <title>Introducing Glance Unlock: A Privacy-First App Locker for Mac</title>
      <dc:creator>Shivam Trivedi</dc:creator>
      <pubDate>Fri, 18 Sep 2026 06:35:54 +0000</pubDate>
      <link>https://dev.to/io_shivam/introducing-glance-unlock-a-privacy-first-app-locker-for-mac-4oje</link>
      <guid>https://dev.to/io_shivam/introducing-glance-unlock-a-privacy-first-app-locker-for-mac-4oje</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%2Fh0mtzuwp2xp64opv2dln.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%2Fh0mtzuwp2xp64opv2dln.png" alt="Glance Unlock - App to lock mac apps" width="800" height="472"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Most of the time, locking your entire Mac is overkill.&lt;/p&gt;

&lt;p&gt;Sometimes, you just want a little more privacy around a few specific apps.&lt;/p&gt;

&lt;p&gt;That is the idea behind &lt;strong&gt;Glance Unlock&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Glance Unlock is a local-first macOS app that lets you lock individual apps and unlock them with a quick &lt;strong&gt;face + blink check&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;No cloud processing. No analytics. No saved camera photos or video.&lt;/p&gt;

&lt;p&gt;Everything happens on your Mac.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why I Built It
&lt;/h2&gt;

&lt;p&gt;I wanted something between two extremes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;leaving every app open and accessible&lt;/li&gt;
&lt;li&gt;locking the entire Mac every time I step away&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;There are plenty of situations where you may want an extra privacy layer around a specific app without interrupting your entire workflow.&lt;/p&gt;

&lt;p&gt;That could be:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Notes&lt;/li&gt;
&lt;li&gt;messaging apps&lt;/li&gt;
&lt;li&gt;work tools&lt;/li&gt;
&lt;li&gt;finance apps&lt;/li&gt;
&lt;li&gt;personal projects&lt;/li&gt;
&lt;li&gt;anything else you would rather not leave immediately accessible&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Glance Unlock is my attempt at making that interaction feel lightweight.&lt;/p&gt;

&lt;p&gt;You open a protected app, look at the camera, blink, and continue working.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Main Idea: Local-First Privacy
&lt;/h2&gt;

&lt;p&gt;The most important design decision behind Glance Unlock was keeping the authentication flow local.&lt;/p&gt;

&lt;p&gt;Face detection and blink verification happen on-device.&lt;/p&gt;

&lt;p&gt;Glance Unlock does not upload your camera feed to a server, save photos or video, or rely on cloud-based face recognition.&lt;/p&gt;

&lt;p&gt;The goal is simple:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Your face should not need to leave your Mac just to unlock an app on your Mac.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Privacy is not an optional feature here. It is part of how the app is designed.&lt;/p&gt;

&lt;h2&gt;
  
  
  How It Works
&lt;/h2&gt;

&lt;p&gt;The flow is intentionally simple.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Choose the apps you want to protect.&lt;/li&gt;
&lt;li&gt;Open one of those apps.&lt;/li&gt;
&lt;li&gt;Glance Unlock checks for your face.&lt;/li&gt;
&lt;li&gt;Blink to confirm that you are actually present.&lt;/li&gt;
&lt;li&gt;The app is unlocked.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;You can also use &lt;strong&gt;Touch ID or your macOS password&lt;/strong&gt; as a fallback through macOS.&lt;/p&gt;

&lt;p&gt;Glance Unlock lives in the menu bar, so it stays out of the way when you are not using it.&lt;/p&gt;

&lt;p&gt;You can also decide when protected apps should relock.&lt;/p&gt;

&lt;p&gt;The goal is to keep the extra security step useful without making your Mac annoying to use.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why the Blink?
&lt;/h2&gt;

&lt;p&gt;Face detection by itself is not enough for the experience I wanted.&lt;/p&gt;

&lt;p&gt;Adding a blink gives Glance Unlock a simple presence check.&lt;/p&gt;

&lt;p&gt;Instead of only detecting that a face exists in front of the camera, the app asks for a small action from the person using the Mac.&lt;/p&gt;

&lt;p&gt;It is intentionally lightweight.&lt;/p&gt;

&lt;p&gt;Look at the camera.&lt;/p&gt;

&lt;p&gt;Blink.&lt;/p&gt;

&lt;p&gt;Continue working.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Glance Unlock Is Not
&lt;/h2&gt;

&lt;p&gt;Glance Unlock is currently an early privacy-layer prototype.&lt;/p&gt;

&lt;p&gt;It is not a replacement for &lt;strong&gt;Apple Face ID&lt;/strong&gt;, FileVault, your Mac login password, or the macOS lock screen.&lt;/p&gt;

&lt;p&gt;It also does not provide the same security guarantees as system-level authentication.&lt;/p&gt;

&lt;p&gt;If Glance Unlock is quit, its app protection stops.&lt;/p&gt;

&lt;p&gt;I think this distinction is important.&lt;/p&gt;

&lt;p&gt;The project is designed to add another layer of privacy around selected apps, not pretend to replace security features built directly into macOS.&lt;/p&gt;

&lt;h2&gt;
  
  
  Built for Apple Silicon
&lt;/h2&gt;

&lt;p&gt;The current version of Glance Unlock is designed for:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Apple silicon Macs running macOS 26 or newer.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The project is still evolving, so compatibility and behavior may change as I keep improving it.&lt;/p&gt;

&lt;p&gt;Current preview builds are also not Apple-notarized yet, so installation requires following the instructions provided with the project.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I Learned Building It
&lt;/h2&gt;

&lt;p&gt;One of the most interesting parts of this project was realizing how much UX matters for security tools.&lt;/p&gt;

&lt;p&gt;A security feature can technically work perfectly and still be frustrating if it interrupts the user too often.&lt;/p&gt;

&lt;p&gt;The difficult part is balancing:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;privacy&lt;/li&gt;
&lt;li&gt;speed&lt;/li&gt;
&lt;li&gt;reliability&lt;/li&gt;
&lt;li&gt;false detections&lt;/li&gt;
&lt;li&gt;relock behavior&lt;/li&gt;
&lt;li&gt;fallback authentication&lt;/li&gt;
&lt;li&gt;user control&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For something like Glance Unlock, the authentication itself is only part of the problem.&lt;/p&gt;

&lt;p&gt;The real challenge is making the protection feel almost invisible until you actually need it.&lt;/p&gt;

&lt;p&gt;That is still something I am experimenting with.&lt;/p&gt;

&lt;h2&gt;
  
  
  Where I Want to Take It
&lt;/h2&gt;

&lt;p&gt;There are a lot of directions I could explore next.&lt;/p&gt;

&lt;p&gt;Better relock rules, improved detection, stronger system integration, better onboarding, and more control over how individual apps are protected are all areas I am thinking about.&lt;/p&gt;

&lt;p&gt;But before adding too much, I want to understand how people actually use it.&lt;/p&gt;

&lt;p&gt;That feedback matters more than adding a long list of features.&lt;/p&gt;

&lt;h2&gt;
  
  
  Try Glance Unlock
&lt;/h2&gt;

&lt;p&gt;You can check out Glance Unlock here:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://glance-unlock.vercel.app/" rel="noopener noreferrer"&gt;https://glance-unlock.vercel.app/&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;If you try it, I would especially love to know:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Which Mac app would you protect first?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;And if something feels slow, confusing, unnecessary, or broken, tell me that too.&lt;/p&gt;

&lt;p&gt;Glance Unlock is still early, and that is exactly why feedback is useful right now.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>security</category>
      <category>learning</category>
      <category>swift</category>
    </item>
    <item>
      <title>Simplify Your Content with NextraJS</title>
      <dc:creator>Shivam Trivedi</dc:creator>
      <pubDate>Tue, 15 Apr 2025 13:33:54 +0000</pubDate>
      <link>https://dev.to/io_shivam/simplify-your-content-with-nextrajs-2h5e</link>
      <guid>https://dev.to/io_shivam/simplify-your-content-with-nextrajs-2h5e</guid>
      <description>&lt;p&gt;NextraJS is a layer on top of the popular Next.js framework. It is designed specifically for building content-focused websites quickly and efficiently. By leveraging Markdown (and MDX) for content creation, NextraJS allows you to focus on writing and organizing your content, while it automatically handles routing, theming, and optimization.&lt;/p&gt;

&lt;h3&gt;
  
  
  Key Features of NextraJS
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Markdown-Driven Development&lt;/strong&gt;&lt;br&gt;
NextraJS makes it effortless to build documentation sites. Simply create .mdx files, and the framework automatically generates pages, navigation, and even a table of contents based on your directory structure. This means you spend less time writing boilerplate code and more time focusing on the content that matters.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Built-In Theming and UI Components&lt;/strong&gt;&lt;br&gt;
Out of the box, NextraJS comes with several ready-to-use themes:&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Docs Theme: Perfect for API documentation, user manuals, and developer guides.&lt;/p&gt;

&lt;p&gt;Blog Theme: Ideal for personal blogs and content-focused websites.&lt;/p&gt;

&lt;p&gt;These themes include prebuilt components such as:&lt;/p&gt;

&lt;p&gt;Navbar and Footer: Easily configurable for a consistent look and feel.&lt;/p&gt;

&lt;p&gt;Callouts, Cards, and Tabs: Enhance content presentation with rich, built-in UI elements.&lt;/p&gt;

&lt;p&gt;Dark/Light Mode Support: Automatically respects system preferences to improve readability.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Enhanced Navigation and Routing&lt;/strong&gt;
By leveraging Next.js’s file-based routing system, NextraJS converts your directory structure into a fully functional sidebar and navigation menu. No additional routing configuration is necessary. This results in a clean, intuitive navigation experience for users and a much simpler development process for you.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;4.&lt;strong&gt;Full-Text Search and Syntax Highlighting&lt;/strong&gt;&lt;br&gt;
With built-in full-text search functionality, your documentation site becomes instantly searchable. Developers can also enjoy advanced syntax highlighting powered by tools like Shiki, ensuring that code snippets in your MDX files are rendered beautifully and readably.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Next.js Feature Integration&lt;/strong&gt;
Since NextraJS is a Next.js plugin, it fully integrates with:&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Image Optimization: Markdown images are automatically converted to Next.js  components, reducing layout shifts and improving performance.&lt;/p&gt;

&lt;p&gt;Hybrid Rendering: Leverage SSR, SSG, and ISR to balance dynamic content with speed.&lt;/p&gt;

&lt;p&gt;Internationalization (i18n): Build multilingual websites with minimal effort by organizing content into locale-specific folders.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Extensibility and Customization&lt;/strong&gt;
While NextraJS provides an opinionated, out-of-the-box experience, it also supports customization. You can:&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Override or Extend Themes: Adjust the default settings using custom CSS or theme configuration files.&lt;/p&gt;

&lt;p&gt;Embed React Components: Use MDX to seamlessly integrate React components into your content, allowing for interactive examples or live code demos.&lt;/p&gt;




&lt;h3&gt;
  
  
  Use Cases That Simplify Development
&lt;/h3&gt;

&lt;p&gt;NextraJS shines in scenarios where you need a robust, content-driven website without the overhead of custom configuration. Here are a few practical examples:&lt;/p&gt;

&lt;p&gt;Documentation Sites&lt;br&gt;
Open-source projects, APIs, and developer tools benefit greatly from a unified documentation platform. With NextraJS, you can:&lt;/p&gt;

&lt;p&gt;Quickly generate documentation pages from Markdown files.&lt;/p&gt;

&lt;p&gt;Auto-generate navigation menus and tables of contents.&lt;/p&gt;

&lt;p&gt;Provide interactive code examples using embedded React components.&lt;/p&gt;

&lt;p&gt;Personal Blogs and Portfolios&lt;br&gt;
For developers and content creators, NextraJS offers a fast way to launch a personal blog or portfolio:&lt;/p&gt;

&lt;p&gt;Use the Blog Theme to focus on writing rather than design.&lt;/p&gt;

&lt;p&gt;Easily integrate multimedia content and interactive elements.&lt;/p&gt;

&lt;p&gt;Enjoy fast load times and SEO benefits through Next.js optimization features.&lt;/p&gt;

&lt;p&gt;Corporate and Product Websites&lt;br&gt;
Companies can use NextraJS to maintain consistent, high-quality documentation or marketing sites:&lt;/p&gt;

&lt;p&gt;Build localized websites with built-in i18n support.&lt;/p&gt;

&lt;p&gt;Integrate with existing Next.js projects, leveraging hybrid routing.&lt;/p&gt;

&lt;p&gt;Streamline updates and ensure that new content is automatically indexed and searchable.&lt;/p&gt;




&lt;h3&gt;
  
  
  Getting Started with NextraJS
&lt;/h3&gt;

&lt;p&gt;Getting started is as simple as:&lt;/p&gt;

&lt;p&gt;Select a Theme: Choose between the Docs Theme or Blog Theme—or create your custom theme.&lt;/p&gt;

&lt;p&gt;Organize Your Content: Create a file structure with Markdown/MDX files. Your folder layout will define your site’s navigation.&lt;/p&gt;

&lt;p&gt;Configure NextraJS: Set up your Next.js configuration to include NextraJS, and start developing.&lt;/p&gt;

&lt;p&gt;Deploy: Enjoy all the benefits of Next.js’s deployment options, whether on Vercel, self-hosted environments, or other platforms.&lt;/p&gt;

&lt;p&gt;With these straightforward steps, you can build a fully-featured website in minutes and focus on what matters most: delivering valuable content.&lt;/p&gt;

</description>
      <category>typescript</category>
      <category>webdev</category>
      <category>nextjs</category>
      <category>react</category>
    </item>
    <item>
      <title>Automate Your JavaScript to TypeScript Migration with Typify</title>
      <dc:creator>Shivam Trivedi</dc:creator>
      <pubDate>Thu, 27 Mar 2025 20:59:59 +0000</pubDate>
      <link>https://dev.to/io_shivam/automate-your-javascript-to-typescript-migration-with-typify-afk</link>
      <guid>https://dev.to/io_shivam/automate-your-javascript-to-typescript-migration-with-typify-afk</guid>
      <description>&lt;h1&gt;
  
  
  Typify: Automated JavaScript to TypeScript Conversion Made Simple
&lt;/h1&gt;

&lt;p&gt;&lt;a href="https://www.npmjs.com/package/@sliderzz/typify" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fimg.shields.io%2Fnpm%2Fv%2F%40sliderzz%2Ftypify%3Fcolor%3Dblue%26logo%3Dnpm" alt="npm version" width="97" height="20"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Migrate JavaScript projects to TypeScript effortlessly with &lt;strong&gt;Typify&lt;/strong&gt; - the intelligent CLI tool that handles type annotations while preserving your existing code structure.&lt;/p&gt;

&lt;h2&gt;
  
  
  🚀 Key Features
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Smart Type Inference
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;50+ Common Patterns Detected&lt;/strong&gt;
(Express, React, Axios, Jest, MongoDB, TypeORM, Sequelize)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Context-Aware Analysis&lt;/strong&gt;
Database connections, API clients, error handling&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Modern TS Support&lt;/strong&gt;
Generics, union types, type guards&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Zero Friction Conversion
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;🔄 Automatic &lt;code&gt;require()&lt;/code&gt; → &lt;code&gt;import&lt;/code&gt; conversion&lt;/li&gt;
&lt;li&gt;🛡️ Var → Let/Const transformation&lt;/li&gt;
&lt;li&gt;📦 Preserves comments &amp;amp; code structure&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Ecosystem Ready
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;⚡ Auto-adds necessary type imports&lt;/li&gt;
&lt;li&gt;🧩 Works with existing TS configs&lt;/li&gt;
&lt;li&gt;🚦 Gradual adoption support&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  ⚙️ Under the Hood
&lt;/h2&gt;

&lt;p&gt;Powered by Babel's AST parser, Typify:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt; Analyzes code patterns at scale&lt;/li&gt;
&lt;li&gt; Maps JS idioms to TS equivalents&lt;/li&gt;
&lt;li&gt; Generates precise type annotations&lt;/li&gt;
&lt;li&gt; Maintains original functionality&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  ✅ Why Developers Love Typify
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;85% reduction in manual typing&lt;/li&gt;
&lt;li&gt;100% compatibility with TS ecosystem&lt;/li&gt;
&lt;li&gt;Minutes instead of hours for migration&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  ⚠️ Current Limitations
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Complex generics need manual polish&lt;/li&gt;
&lt;li&gt;AWS SDK v2 requires separate types&lt;/li&gt;
&lt;li&gt;Custom middleware needs refinement&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;&lt;strong&gt;Ready to type-safe your codebase?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
👉 &lt;a href="https://www.npmjs.com/package/@sliderzz/typify" rel="noopener noreferrer"&gt;Get Started on npm&lt;/a&gt; 👈&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Typify: Because your JS deserves TS love 💙&lt;/em&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  javascript #typescript #codefaster #converter #types
&lt;/h1&gt;

</description>
      <category>typescript</category>
      <category>webdev</category>
      <category>javascript</category>
      <category>react</category>
    </item>
  </channel>
</rss>
