<?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: Shobhit Kapoor</title>
    <description>The latest articles on DEV Community by Shobhit Kapoor (@shobhit_kapoor_666e8b9160).</description>
    <link>https://dev.to/shobhit_kapoor_666e8b9160</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.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3704868%2F04c65932-e51f-4607-85de-6d2871aa77d6.png</url>
      <title>DEV Community: Shobhit Kapoor</title>
      <link>https://dev.to/shobhit_kapoor_666e8b9160</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/shobhit_kapoor_666e8b9160"/>
    <language>en</language>
    <item>
      <title>A macOS-Inspired Operating System Portfolio Built using Antigravity</title>
      <dc:creator>Shobhit Kapoor</dc:creator>
      <pubDate>Fri, 30 Jan 2026 04:56:34 +0000</pubDate>
      <link>https://dev.to/shobhit_kapoor_666e8b9160/a-macos-inspired-operating-system-portfolio-built-using-antigravity-12bg</link>
      <guid>https://dev.to/shobhit_kapoor_666e8b9160/a-macos-inspired-operating-system-portfolio-built-using-antigravity-12bg</guid>
      <description>&lt;h1&gt;
  
  
  New Year, New You Portfolio Challenge Submission
&lt;/h1&gt;

&lt;p&gt;This is a submission for the&lt;br&gt;&lt;br&gt;
&lt;a href="https://dev.to/challenges/new-year-new-you-google-ai-2025-12-31"&gt;New Year, New You Portfolio Challenge Presented by Google AI&lt;/a&gt;&lt;/p&gt;


&lt;h2&gt;
  
  
  About Me
&lt;/h2&gt;

&lt;p&gt;I’m Shobhit a developer who treats software as a system, not a surface.&lt;br&gt;
I don’t believe portfolios should explain skills. They should demonstrate thinking.&lt;br&gt;
Instead of building another scrolling webpage with sections and cards, I built an environment that behaves like a real operating system. Real products are systems, not pages, and this portfolio reflects how I design, structure, and reason about software.&lt;br&gt;
This is not a website. It’s an operating system.&lt;/p&gt;


&lt;h2&gt;
  
  
  Portfolio
&lt;/h2&gt;

&lt;p&gt;Note on Presentation&lt;/p&gt;

&lt;p&gt;While the portfolio is fully deployed on Google Cloud Run, embedding it directly inside the DEV post significantly degrades the experience due to iframe constraints, limited viewport size, and disabled full-screen interactions.&lt;/p&gt;

&lt;p&gt;This project is a &lt;em&gt;desktop operating system&lt;/em&gt;, not a scroll-based webpage.&lt;br&gt;&lt;br&gt;
To preserve the intended experience, I’ve included a short video walkthrough below and provided a direct link to explore the portfolio normally in a full browser window.&lt;/p&gt;


&lt;h3&gt;
  
  
  🎥 Video Walkthrough
&lt;/h3&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/gA2Z02AhFfc"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;This video demonstrates:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Boot and login flow
&lt;/li&gt;
&lt;li&gt;Desktop environment
&lt;/li&gt;
&lt;li&gt;Window management
&lt;/li&gt;
&lt;li&gt;Dock, Spotlight, and Control Center
&lt;/li&gt;
&lt;li&gt;Application interactions
&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  🖥️ Live Portfolio (Recommended)
&lt;/h3&gt;

&lt;p&gt;For the full experience, please visit the portfolio directly:&lt;/p&gt;

&lt;p&gt;🔗 &lt;em&gt;&lt;a href="https://nextjs-app-709587781727.us-central1.run.app/" rel="noopener noreferrer"&gt;https://nextjs-app-709587781727.us-central1.run.app/&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;This allows proper screen dimensions, keyboard interactions, smooth window behavior, and accurate OS-level performance.&lt;/p&gt;

&lt;p&gt;---Built a macOS-Inspired Operating System as My Developer Portfolio&lt;/p&gt;

&lt;p&gt;The portfolio begins with a login screen, inspired by real desktop operating systems.&lt;br&gt;
There is no required username or password.&lt;br&gt;
you can type &lt;em&gt;anything&lt;/em&gt; into the input field and press &lt;em&gt;Enter&lt;/em&gt; to log in.&lt;/p&gt;


&lt;div class="ltag__cloud-run"&gt;
  &lt;iframe height="600px" src="https://nextjs-app-709587781727.us-central1.run.app/"&gt;
  &lt;/iframe&gt;
&lt;/div&gt;


&lt;p&gt;--labels dev-tutorial=devnewyear2026&lt;/p&gt;

&lt;p&gt;This portfolio recreates a macOS-style operating system inside the browser, including:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Boot and login screens&lt;/li&gt;
&lt;li&gt;Desktop environment&lt;/li&gt;
&lt;li&gt;Window manager&lt;/li&gt;
&lt;li&gt;Dock and menubar&lt;/li&gt;
&lt;li&gt;Spotlight search&lt;/li&gt;
&lt;li&gt;Control Center&lt;/li&gt;
&lt;li&gt;Launchpad&lt;/li&gt;
&lt;li&gt;Sleep and shutdown states&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Every application inside the OS represents a different aspect of my profile, projects, or technical abilities.&lt;/p&gt;

&lt;h2&gt;
  
  
  You don’t browse this portfolio. You operate it.
&lt;/h2&gt;

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

&lt;p&gt;This project was engineered as a system, not assembled as a UI.&lt;/p&gt;

&lt;h3&gt;
  
  
  Tech Stack
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Next.js and React
&lt;/li&gt;
&lt;li&gt;TypeScript
&lt;/li&gt;
&lt;li&gt;Tailwind CSS
&lt;/li&gt;
&lt;li&gt;Radix UI / shadcn UI
&lt;/li&gt;
&lt;li&gt;Custom OS-level state management
&lt;/li&gt;
&lt;li&gt;Deployed on Google Cloud Run
&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  System Architecture
&lt;/h3&gt;

&lt;p&gt;At the core of the application is &lt;code&gt;desktop.tsx&lt;/code&gt;, which functions as the operating system kernel. It manages:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Open window registry
&lt;/li&gt;
&lt;li&gt;Active window focus and z-index
&lt;/li&gt;
&lt;li&gt;Overlay visibility (Spotlight, Control Center, Launchpad)
&lt;/li&gt;
&lt;li&gt;Theme propagation and screen brightness
&lt;/li&gt;
&lt;li&gt;System state persistence
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Windows are rendered dynamically through a controlled component mapping system, allowing new applications to be added without modifying the window manager itself. This mirrors how real operating systems are designed.&lt;/p&gt;

&lt;h3&gt;
  
  
  How I Used Gemini
&lt;/h3&gt;

&lt;p&gt;Gemini was used as a design and reasoning engine rather than a simple code generator.&lt;br&gt;
Using Google AI Studio, I worked with Gemini to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Design the window management architecture
&lt;/li&gt;
&lt;li&gt;Model OS-level behaviors such as focus shifting and maximize/restore logic
&lt;/li&gt;
&lt;li&gt;Validate state management decisions
&lt;/li&gt;
&lt;li&gt;Anticipate edge cases and performance bottlenecks
&lt;/li&gt;
&lt;li&gt;Refine component responsibilities before implementation
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Gemini helped me reason about the system at an architectural level, allowing me to design first and implement with clarity.&lt;/p&gt;

&lt;h3&gt;
  
  
  How I Used Antigravity IDE
&lt;/h3&gt;

&lt;p&gt;Antigravity accelerated development by enabling system-wide thinking rather than file-by-file coding.&lt;/p&gt;

&lt;p&gt;It allowed me to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Rapidly scaffold and iterate complex components
&lt;/li&gt;
&lt;li&gt;Explore alternative architectural approaches safely
&lt;/li&gt;
&lt;li&gt;Refactor deeply nested UI logic without breaking system behavior
&lt;/li&gt;
&lt;li&gt;Maintain consistency across the entire codebase
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Antigravity transformed the workflow from writing components to designing a platform.&lt;/p&gt;




&lt;h2&gt;
  
  
  What I'm Most Proud Of
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Window Management System
&lt;/h3&gt;

&lt;p&gt;A complete window manager with:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Click-and-drag movement
&lt;/li&gt;
&lt;li&gt;Eight-point resizing
&lt;/li&gt;
&lt;li&gt;Minimize, maximize, and close controls
&lt;/li&gt;
&lt;li&gt;Z-index correction for active windows
&lt;/li&gt;
&lt;li&gt;State persistence across interactions
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This required precise DOM control and event handling without sacrificing performance.&lt;/p&gt;

&lt;h3&gt;
  
  
  OS-Level Thinking
&lt;/h3&gt;

&lt;p&gt;This project behaves like an operating system rather than a website:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The Dock reflects running applications
&lt;/li&gt;
&lt;li&gt;Spotlight supports keyboard-first navigation
&lt;/li&gt;
&lt;li&gt;Control Center overlays system state
&lt;/li&gt;
&lt;li&gt;Mobile layouts adapt OS behavior instead of removing it
&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Application Ecosystem
&lt;/h3&gt;

&lt;p&gt;Each app demonstrates a different technical capability:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Finder: UI layout systems and navigation
&lt;/li&gt;
&lt;li&gt;Notes: Markdown rendering and content architecture
&lt;/li&gt;
&lt;li&gt;Terminal: CLI simulation logic
&lt;/li&gt;
&lt;li&gt;Weather: Canvas-based animation system
&lt;/li&gt;
&lt;li&gt;GitHub: Embedded profile and project viewer
&lt;/li&gt;
&lt;li&gt;Safari: Web container interface
&lt;/li&gt;
&lt;li&gt;Snake: Game loop and state logic
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This portfolio doesn’t list skills — it demonstrates them.&lt;/p&gt;

&lt;h3&gt;
  
  
  Performance Discipline
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Conditional rendering to minimize overhead
&lt;/li&gt;
&lt;li&gt;DOM refs for drag and resize operations
&lt;/li&gt;
&lt;li&gt;Controlled CSS transitions
&lt;/li&gt;
&lt;li&gt;No unnecessary re-renders or animation bloat
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The OS remains responsive even with multiple windows open.&lt;/p&gt;




&lt;h2&gt;
  
  
  Final Thought
&lt;/h2&gt;

&lt;p&gt;I didn’t build this portfolio to look impressive.&lt;/p&gt;

&lt;p&gt;I built it to reflect how I think about software.&lt;/p&gt;

&lt;p&gt;This is not a website.&lt;/p&gt;

&lt;p&gt;It is a system.&lt;/p&gt;

&lt;p&gt;And systems are what I love building.&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>googleaichallenge</category>
      <category>portfolio</category>
      <category>gemini</category>
    </item>
  </channel>
</rss>
