Skip to content

A secure, client-side data converter that instantly transforms JSON, YAML, TOML, and XML. Built with Next.js 15 and Monaco Editor, it offers a VS Code-like experience with real-time validation and zero server data transfer.

License

Notifications You must be signed in to change notification settings

YashashavGoyal/datamorph

Repository files navigation

DataMorph

Next.js TypeScript React Tailwind CSS Vercel

License GitHub stars GitHub forks GitHub issues

DataMorph is a privacy-focused developer tool for converting and validating data formats like JSON, YAML, XML, and TOML. It runs entirely in your browser, so your data never leaves your device.

How It Works

DataMorph uses a Client-Side Architecture. It downloads the necessary code once and then processes everything locally on your computer.

flowchart TD
    %% Nodes
    User([👤 User])
    CDN[("☁️ Vercel CDN")]
    
    subgraph Client ["💻 Client-Side Runtime"]
        direction TB
        Shell["🛡️ App Shell"]
        Editor["📝 Monaco Editor"]
        Engine["⚙️ Conversion Engine"]
    end

    %% Edges
    CDN -.->|1. Delivers Assets| Shell
    User ==>|2. Types Code| Editor
    Editor <==>|3. Real-time JSON/YAML/XML| Engine

    %% Styling
    classDef plain fill:#1a1a1a,stroke:#fff,color:#fff;
    classDef highlight fill:#22226e,stroke:#f2f0f0,stroke-width:2px,color:#fff;
    classDef secondary fill:#2d2d2d,stroke:#666,color:#eee;

    class User,CDN plain;
    class Shell,Editor secondary;
    class Engine highlight;
    style Client fill:transparent,stroke:#333,color:#ccc,stroke-dasharray: 5 5
Loading

Features

  • Real-Time Conversion: Instantly convert between formats as you type.
  • Privacy First: 100% client-side processing. Zero data opacity.
  • Validation: Instant syntax checking for JSON, YAML, XML, and TOML.
  • Modern UI: Dark mode, glassmorphism, and responsive design.

Future Scope

  • More Formats: Support for CSV, Protobuf, and GraphQL SDL.
  • File Upload: Drag-and-drop file conversion.
  • API Generation: Generate TypeScript interfaces or Go structs from JSON.
  • PWA Support: Install as a Progressive Web App for offline use.
  • Theme Toggle: Light/Dark mode switcher.

♾️ DevOps Integration Roadmap

To professionalize the deployment pipeline, the following DevOps practices can be integrated:

  1. CI/CD Pipeline (GitHub Actions):

    • Automate linting (npm run lint) and type checking on every Pull Request.
    • Automatically deploy to Vercel Preview environments.
  2. Containerization (Docker):

    • Create a Dockerfile for self-hosted deployments.
    • Use multi-stage builds to keep the image size small.
  3. Testing Strategy:

    • Unit Tests: Use Jest or Vitest to test the lib/converters.ts logic.
    • E2E Tests: Use Playwright to verify the user flow (typing in editor -> seeing output).
  4. Monitoring:

    • Integrate Sentry for frontend error tracking.
    • Use Vercel Analytics for performance metrics.

💻 Getting Started

  1. Clone the repository:

    git clone https://github.com/YashashavGoyal/datamorph.git
    cd datamorph
  2. Install dependencies:

    npm ci
  3. Run the development server:

    npm run dev
  4. Open locally: Visit http://localhost:3000 in your browser.

📂 Modular Code Structure

├── app/
│   ├── (src)/               # Application Routes
│   ├── components/
│   │   ├── shell/           # Core Editors (State Orchestration)
│   │   ├── editor/          # Third-party Integrations (Monaco)
│   │   └── ui/              # Design System (Atomic Components)
│   └── lib/
│       ├── converters.ts    # Logic: Pure functions (Unit Testable)
│       └── hooks/           # Logic: React Custom Hooks

Author: Yashashav Goyal

GitHub LinkedIn Twitter

License: MIT

About

A secure, client-side data converter that instantly transforms JSON, YAML, TOML, and XML. Built with Next.js 15 and Monaco Editor, it offers a VS Code-like experience with real-time validation and zero server data transfer.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published