What is Gitlantis?
Gitlantis is a VS Code extension that transforms your project files into an immersive 3D ocean world. Navigate your codebase by sailing a boat through lighthouses (folders) and buoys (files).Tech Stack
Gitlantis is built with modern web and extension technologies:Core Technologies
- TypeScript - Type-safe development
- React 18.2 - UI framework
- Vite - Fast build tool and dev server
- VS Code Extension API - Editor integration
3D Rendering
- Three.js - 3D graphics library
- @react-three/fiber - React renderer for Three.js
- @react-three/drei - Useful helpers for React Three Fiber
- @react-three/cannon - Physics engine for 3D interactions
State & UI
- Zustand - Lightweight state management
- Tailwind CSS - Utility-first styling
- Lucide React - Icon library
- nipplejs - Virtual joystick for mobile-like navigation
Developer Tools
- ESLint - Code linting
- Prettier - Code formatting
- Husky - Git hooks
- Commitlint - Conventional commit messages
- lint-staged - Run linters on staged files
Repository Structure
The codebase is organized into three main directories:Key Directories Explained
src/extension/ - The VS Code extension host process
- Manages the webview panel lifecycle
- Handles file system operations
- Provides git integration
- Communicates with the browser context via message passing
src/browser/ - The webview React application
- Renders the 3D ocean world
- Manages boat navigation and physics
- Displays UI overlays (settings, minimap, breadcrumbs)
- Sends messages back to the extension for file operations
src/main/ - Application entry point
- Bootstraps the React application
- Wraps the app in context providers
- Loads global styles
Build Output
The project uses two TypeScript configurations:tsconfig.json- Browser/React code compiled by Vitetsconfig.extension.json- Extension code compiled by TypeScript
out/ directory:
Development Scripts
Key npm scripts defined inpackage.json:
pnpm dev- Start Vite dev server for browser codepnpm build- Build both browser and extensionpnpm build:browser- Build webview with Vitepnpm build:extension- Compile extension with TypeScriptpnpm watch- Watch mode for extension developmentpnpm lint- Run ESLintpnpm format- Check code formatting with Prettierpnpm package- Create .vsix extension packagepnpm release- Build, package, and publish