Investigations

Swagger Editor

TypeScript September 2025

A full-stack Swagger/OpenAPI editor with Monaco code editor, bidirectional conversion, and Go hexagonal backend.

This is a developer tool for editing Swagger/OpenAPI specifications and converting them to a normalised JSON format optimised for database storage. The Monaco editor (the engine behind VS Code) handles the code editing with full syntax highlighting and validation.

The conversion is bidirectional — you can go from OpenAPI 3.0.x or Swagger 2.0 (JSON and YAML) to the normalised format and back. This is useful when you need to store API specs in a database but want to present them in standard format.

The Go backend follows hexagonal architecture with ports and adapters. The GraphQL API uses gqlgen. Domain-driven design patterns keep the business logic clean and testable.

The frontend is React 19 + TypeScript with Vitest for testing. There are convenience scripts for setup, development, and building the full stack.

What this project demonstrates

Monaco editor (VS Code engine) for Swagger editing
Bidirectional conversion: OpenAPI 3.0.x / Swagger 2.0 ↔ normalised JSON
Go hexagonal architecture with gqlgen GraphQL
Domain-driven design patterns
Supports JSON and YAML input formats
Convenience scripts for full-stack development

Technologies

ReactMonacoGoGraphQLSwaggerOpenAPI

© 2026 Jonathan Leahy · v1.0.9