DynamoOps
Open source

Build from source

Clone the repository, run DynamoOps in development, run the tests and produce your own macOS and Windows installers.

Prerequisites

ToolVersion
Node.js18 or newer, with npm
GitAny recent version
AWS accessA profile in ~/.aws, an SSO portal or a local endpoint such as LocalStack

Run in development

  1. Clone and install
    bash
    git clone https://github.com/renatoasterio/DynamoOps.git
    cd DynamoOps
    npm install
  2. Start the desktop app
    bash
    npm run electron
  3. Or run it in the browser

    npm run dev starts only the local server; open http://localhost:3457. This is handy for quick UI work with your browser’s developer tools.

Tests and lint

bash
npm test       # Jest: API security, code generators and utilities
npm run lint   # ESLint for the frontend and backend

Both must pass before a pull request is merged.

Build installers

bash
npm run build:prod:mac            # macOS Apple Silicon (.dmg)
npm run build:prod:mac:universal  # macOS Universal (Apple Silicon + Intel)
npm run build:prod:win            # Windows x64 (NSIS installer + portable)
  • Artifacts are written to dist/.
  • The frontend is bundled with esbuild into a staging copy, so your source files are never modified.
  • Builds you produce yourself are unsigned, so macOS Gatekeeper and Windows SmartScreen show a warning on first launch.

Architecture at a glance

DynamoOps is an Electron app with a local Express server on 127.0.0.1:3457 and a frontend in plain JavaScript ES modules, with no framework and no build step in development.

text
electron-main.js     Electron main process: starts the server, opens a sandboxed window
server.js            Express entry point (browser mode)
src/backend/         config, middleware (security, errors, validation), controllers, services, routes
public/js/           state, api client, utils, codegen (one module per language), components
tests/               Jest test suites
scripts/             production build (esbuild + electron-builder)
Where to start reading
The repository README and CLAUDE.md describe the conventions in more detail.

Related