Free, open-source desktop companion for Amazon DynamoDB built with Go + Wails. Explore tables, inspect and mutate items, and manage multiple environments from a single native app.
- Visual Workflows: compose repeatable item/table operations, save, import/export, and replay them without redoing manual steps.
- Dynamo-first explorer: list tables, view schema details, scan/query items, create/update/delete items and tables.
- Multiple auth modes: AWS profiles, static credentials, or custom endpoints (e.g., DynamoDB Local).
- Modern UI: command palette, pinned tables, theming.
- Native shell: Wails embeds the frontend for macOS/Windows/Linux with typed Go↔TS bindings.
- Free & open: no activation, no license checks.
Grab the latest binaries from dynamolens.com/download for macOS, Windows, and Linux.
- Prerequisites: Go 1.24+, Node.js 20+, Wails CLI (
go install github.com/wailsapp/wails/v2/cmd/wails@latest). - Run the app in dev mode:
wails dev(from repo root). Wails will handle frontend install/build perwails.json. - For frontend-only HMR during dev:
wails dev -frontenddevserver(Wails will point to the dev server).
- Standard build:
make build(runsscripts/build.shand uses the current version inwails.json). - Releases:
make release,make release-minor,make release-major, ormake release-version VERSION=X.Y.Z. - Packaging/signing/notarization (macOS) is handled inside
scripts/build.sh(reads env or.env; see.env.example).
app.go # Wails app entry + Go<->JS bindings
main.go # Wails entry point
internal/
dynamo/ # DynamoDB client/services
storage/ # User storage import/export helpers
updates/ # Update checking/downloading
frontend/
src/ # React app
wailsjs/ # Generated bindings (ignored)
scripts/ # Build helpers
wails.json # Wails configuration
- Regenerate bindings after Go API changes:
wails generate(or any Wails build/dev command) to refreshfrontend/wailsjs. - Format:
go fmt ./...for Go;npm run formatinfrontend/for UI. - No automated tests yet; compile check:
GOCACHE=$(pwd)/.cache go test ./....
- Do not commit secrets. Provide signing/notarization values via env or a local
.env(git-ignored). See.env.example. - Review and harden the update pipeline before broad distribution.
- Keep backend services small under
internal/and expose typed bindings. - Use existing UI primitives in
frontend/src/components/uiand follow feature-based structure underfrontend/src/features. - Run formatters and regenerate bindings when touching the bridge surface.
- Frontend not updating: ensure
npm run devruns if using-frontenddevserver, or rerunwails dev. - Missing bindings/types: run
wails generateand reinstall frontend deps. - Build signing errors: set
APPLE_ID,APPLE_APP_PASSWORD,APPLE_TEAM_ID,APPLE_SIGNING_IDENTITY, or skip signing/notarization by leaving them unset.
