DEV Community

Shawn McElroy for Space Rock Media

Posted on

What tools have you built?

This is sort of a follow up to this post:

I am curious to what tools people have built that you use either locally or in production that helps you be more efficient. From automating, to building, code generation, scheduling/reminders, or anything else.

Even if you never released it (you should!) I would be interested in knowing what non well-known tools people have made to make their own developer lives easier

Top comments (13)

jackharner profile image
Jack Harner 🚀 • Edited

Oh Boy. My Time To Shine:

  • Material Color Palette
    • A browser extension that allows you to click to copy any of the Material Design Color Codes. I got tired of googling them so I built a two click way to get whatever color you need.
  • Another Browser Extension that adds a bunch of custom JS to ChannelAdvisor (an inventory management system we use at work)
    • Simple things like autosaving comments, adding a print button that automatically fires Ctrl + P on order invoices and then closes the page, counts days since order date, click to copy order numbers, etc.
  • A set of PowerShell scripts that pull product images from brand's websites based on SKU, a Photoshop action that processes the image to meet our specs, and then another PowerShell script that uploads the images onto our file server.
  • A Handful of Python scripts that add some custom functionality to the BigCommerce API.
    • Duplicating coupons, connecting MailChimp segments to a customer group in BigCommerce.
  • A system that collects the exported data of any return label generated and puts it in a nice searchable table to more easily track down returns.
    • We previously had to figure out which date the label was created, export that date, and hope we got the date right.
  • A system that converted a burger restaurant's archaic Excel spreadsheet schedule into a shiny 21st Century Google Sheets spreadsheet that would export the schedule and post it to a WordPress site accessible by the staff.
    • I got really tired of writing down the wrong schedule since they would only post a paper version on the wall in the store. Built it so functionally, making the schedule would be as similar as possible for our tech-challenged managers.
    • Worked really great until one of the tech-challenged managers took over doing the schedule and she just wanted to do it by hand. They went out of business not long after that.

I've found I'm pretty good at identifying inefficient processes and then learning what I need to do to make them better.

Edited to add: I'm also super lazy and hate doing repetitive things over and over. Take out as many steps as possible and it'll save you boat loads of time.

liyasthomas profile image
Liyas Thomas

I've built

dystroy profile image
Denys Séguret

I deal daily with many projects, and even the things I authored are more than what my poor memory can hold, which is why I built broot which helps me make sense of a project structure and find the file(s) I'm interested in.

Random trick for vi users: making :e an alias to your editor, :q to exit, etc. This reduces the cognitive load when you deal with a lot of terminals and editors.

hammotime profile image
Adam Hammond

aws-creds: Makes it easier to use multiple AWS accounts when you don't have SSO available. You can easily save multiple profiles, and then log into them with an simple set of commands.

I built it after being sick of modifying my ~/.aws/credentials file constantly and working with environment variables.

phlash profile image
Phil Ashby

This is a bit different: I once wrote a static analyser in Java, that took apart another Java binary (yay for the ASM framework!), to build a call dependency tree and detect unreferenced methods (nothing statically calls them), then instrument those methods, so that we could catch sneaky code using reflection to run things...needless to say this was in a security context! Target Java binaries were typically 10-100MB JARs.

anwar_nairi profile image
Anwar • Edited

I love this post idea!

I've made myself a tool to run tests for my SPA because I had a hard time with jest-puppeteer, and mine works fine for my use cases. I've abstracted the maximum to only specify what I want to test (the title of the tab, a click navigation, ...). It only uses puppeteer, assertions are done by test type (title, expected url, ...). I am thinking of remaking it to be more robust, and publish it for the community.

Another tool I launched recently, still for my web apps, is browser-worker, to work easier with service workers. It is still in development, I try to keep up with the maximum of use case.

What about you Shawn? :)

couch3ater profile image
Connor Tangney

I'll toss my hat in this ring!

When I started with my new employer, one of my first tasks was to develop some new style guidelines for writing JS. For documents like this, I'm a huge fan of writing Markdown right into plain text editors, but not many people like to read Markdown right from a plain text editor. I wanted to be able to export the file to HTML so that it would look all purrrrrrrty when opened up in a browser.

There are a handful of Markdown editors / publishers out there, but where I had just started a position in which I was going to be working with C#, I figured I would take a crack at baking my own tool specifically for writing documentation in Markdown.

It's nothing fancy -- just a Markdown editor with a live-preview of how the HTML will render in a panel to the right. The application allows me to save and open Markdown files, as well as export the Markdown directly to HTML. I also included a few themes which allow me to change the look of the exported HTML using some CSS.

It was a fun little experiment, and honestly, I use it pretty frequently when I need to take some quick notes.

ecognito profile image
E Cognito

A long time ago I wrote the original version of Latexmk which is still used out in the world to automagically produce your latex documents.

Erudite pulls articles from Instapaper or Pocket and add to your ebook library.

Clementinemonitor is a small python script to monitor what is currently playing in your Clementine music player, by hooking into the relevant dbus signals to detect state change.

Movieschedule to track Australian movie release dates. Sends emails if dates change, and keeps a google calendar up to date.

Sitesync which can mirror folders that are either on local file system, FTP or SFTP. It keeps track of file modified times and sizes to detect changes on either side and allows you to rationalise. Originally wrote it to help me maintain some web-sites without clobbering changes that other contributors were making at the same time. Think of it as unison that doesn't need the program running at each end (but hence, isn't as robust).

charlexmachina profile image
Carlos Eduardo Pérez Villanueva

Well, I have built two tools that I used while developing my first game ever published.

The first tool was a localization editor. Since I made the game on a budget of basically zero dollars, I couldn't afford a fancy localization tool from Unity's asset store, so I made my own which works with key/value pairs. Although I don't have a link for it, I made a tweet about it right here:

My other tool was a pattern editor. Since my game uses patterns to spawn elements in a match, hard-coding those patterns was VERY cumbersome and resulted in a code file of almost 2,000 lines. So I made a custom editor where I could add patterns with a graphical interface and that's how I've been working with patterns ever since then. I never tweeted about it but it's such an integral part of the game that made the development feasible and ended up in a published game.

metalmi profile image
Ivan Almasi

These are some older ones, but probably worth mentioning:

  • Web app for converting svg images to all Android and iOS png sizes with correct naming and folder structure. Downloadable as zip.

  • Web app for removing margins from images.

  • API solution for replacing placeholders in Word documents and returning the result file as pdf.

evanplaice profile image
Evan Plaice

node-ftpsync: Does incremental file sync to a FTP (ex shared hosting).

Wrote a static site generator that generator that uses GoogleAppEngine for templating.

A tool to generate clean install VMs of Windows, OSX, Linux for VirtualBox

A tool that generates PDF documentstion from a fillable PDF form and GoogleSheet as a data source.

A scraper that crawls a site and locates all broken links.

And probably a dozen others I can't think of off the top of my head.

jhuebel profile image
Jason Huebel

I do a lot of automation/integration in my work. So I write a lot of Python or PHP (cli) code.

jckuhl profile image
Jonathan Kuhl

I wrote a tool in bash that sets up a simple no-framework web page file structure. It gives the option to start a git repo, a package.json and launches VS Code and Live-Server right off the bat.