Skip to content

rasjonell/dynamo-lens

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

DynamoLens

worfklows

macOS Windows Linux

WebsiteDownload

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.

Features

  • 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.

Install

Grab the latest binaries from dynamolens.com/download for macOS, Windows, and Linux.

Local Development

  • 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 per wails.json.
  • For frontend-only HMR during dev: wails dev -frontenddevserver (Wails will point to the dev server).

Build from Source

  • Standard build: make build (runs scripts/build.sh and uses the current version in wails.json).
  • Releases: make release, make release-minor, make release-major, or make release-version VERSION=X.Y.Z.
  • Packaging/signing/notarization (macOS) is handled inside scripts/build.sh (reads env or .env; see .env.example).

Project Layout

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

Development Notes

  • Regenerate bindings after Go API changes: wails generate (or any Wails build/dev command) to refresh frontend/wailsjs.
  • Format: go fmt ./... for Go; npm run format in frontend/ for UI.
  • No automated tests yet; compile check: GOCACHE=$(pwd)/.cache go test ./....

Security & Secrets

  • 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.

Contributing

  • Keep backend services small under internal/ and expose typed bindings.
  • Use existing UI primitives in frontend/src/components/ui and follow feature-based structure under frontend/src/features.
  • Run formatters and regenerate bindings when touching the bridge surface.

Troubleshooting

  • Frontend not updating: ensure npm run dev runs if using -frontenddevserver, or rerun wails dev.
  • Missing bindings/types: run wails generate and 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.