I found a browser-based GUI to work with my local DynamoDB instance during development: dynamodb-admin by Aaron Shafovaloff. It’s the best I’ve found yet, because:
- it feels fast
- it uses an acceptable amount of RAM
- it works
Also, it’s open source, which means…
But I can make it better
After using it for few weeks, I wanted to improve a few things:
- better text search
- JSON validation of documents in DynamoDB
- reduce the amount of scrolling I do
So I went to work.
Replacing the Ace text editor with CodeMirror
I tried configuring the built-in with Ace editor, but couldn’t get it to behave the way I wanted. CodeMirror is used by CodePen which I’m more familiar with, so I switched to that. Then I made 3 changes:
- I set up JSON validation which will notify me about invalid JSON in the editor’s gutter
- Made the CodeMirror editor expand to always show 100% of the document so that my browse’s native search feature can always search the whole document instead just the content on screen
- Make the save & delete buttons used fixed positioning so that they are always available at the top of the screen, even after I’ve scrolled down the page.
Sticky positioning on the Save & Edit buttons
This always trips me up. For
position:sticky to work the way I want it to, I always have to make sure all parent elements of the sticky elements have a
100vh. In this case,
main is the parent of
main and its parents get their
Where do I get this code?
This lives in its own branch at https://github.com/adamsullovey/dynamodb-admin/tree/use-codemirror-editor while I figure out if it could be merged back into the main project.
What else could I improve?
I want Command/Ctrl + S saved the updates to the document to the DB instead of having the browser prompt me to save the page to my hard drive.
Other DynamoDB GUI tools that don’t work for me:
I tried these out and found they weren’t what I needed.
- does not work. It is just boiler plate with no routes for actually browsing anything
Toolkit for Elipse
- poor support for our nested data, not worth the time taken to install java
- more features for other DBs I don’t need eat my RAM
- not open source, so I can’t modify it to fit my needs