Blake's Essentials
A Curated List of Free Software
Welcome to my carefully curated list of the best free programs for Windows, MacOS, and Linux!
This is the software that I find essential when working on a desktop or laptop. These are the programs that I either immediately install when I setup a new computer, or I end up installing as I need them. In most instances I have tried a number of solutions before choosing one that I like the most. I maintain this list for my own convenience so I can quickly remind myself of (and find) all of the software that I thought was best the last time I evaluated a category.
Most of these programs are cross-platform, but if an app doesn't support both Windows and Mac I will make a note of that and usually list alternatives. All of these programs are free for personal use, and most are open-source as well. If there are commercial versions available for a program, the free version listed here is not a time-limited trial, and it is useful without upgrading to a paid version. In some cases I have listed alternatives, honorable mentions, or close seconds. Having said that, I try not to include redundant programs unless they bring something to the party. Likewise, I won't bother listing software commonly included with the operating systems (e.g. Apple's Music or Photos apps).
Have a suggestion for a great program that should be on my list? Let me know about it! Have a comment or correction on something on this website? Click on the Feedback link and let me know!
Images & Video
Video Player
VLC: Cross-platform video player for nearly any format imaginable. Especially useful for when you need to do uncommon things like adjust audio/Bluetooth sync or load custom subtitles. The interface isn’t fancy, but it has the features you need and stays out of your way.
- While VLC works great on any platform, Mac users may prefer IINA. It's a full-fledged media player with a clean interface. (Mac)
Friendly Streaming Browser is a weird name for a cool app. It's just a front end for various streaming services (YouTube, Netflix, etc.), but it excels at multitasking by offering a Picture-In-Picture mode. I didn't realized I needed this until I tried it. This is what you want when you're working on something and need an easy way to play a 4-hour instrumental playlist from YouTube in the background, or maybe you're editing photos or something and you want to watch a mindless episode of a cooking show in a tiny window at the corner of your screen. (Mac)
Raster Photo/Image Editor
GIMP: Robust image editor similar to Photoshop. It might not be appropriate for a casual user who just wants to crop some photos, but it’s not really suited for DTP pros either since it’s missing native CMYK support. Having said that, if you’re doing non-print stuff, it will almost certainly get the job done if you have the patience to learn the tool. Bonus: the scripting allows for complex plugins and automation.
- Paint.NET is a fantastic alternative to GIMP for those weary of the learning curve (or the name). It is less powerful than GIMP, but it’s easy to use and really polished. It’s the Paint program Microsoft should have shipped with Windows. (Windows)
Photo Management/Viewing (and Casual Editing)
Photoscape X: Great program for photo viewing and basic touch-up. It makes it easy to do common tasks like cropping to standard sizes and removing red-eye. There is a Pro version with extra features, but the free version boasts a truly impressive feature set that is more than enough for most people. If you buy the Pro version it’s because you like it so much, not because you felt forced into it because the free version was so crippled.
Also check out:
- If the Photoscape X workflow doesn’t agree with you, my runner up is XnView MP. It has a somewhat old school interface with simple controls that may be more intuitive for some people. It has all the essential functions and more.
- FastStone Image Viewer is a fantastic photo viewer with a truly impressive set of editing features. After Google retired their Picasa software I used FastStone for about a year, but I just couldn’t get on board with the (for me) unintuitive interface, and I ended up switching to something else. While it didn’t work out for me, it might be perfect for you. (Windows)
- If all you need is a super-fast, image viewer (that incidentally has some robust editing features), look no further than IrfanView. I started using it in the late 1990s, and it is still going strong. This is a great program to make your default action when clicking on JPEGs, GIFs, and PNGs. (Windows)
Raw Photography Workflow
darktable: If you work with RAW photo files or want to get the most out of your photos, you need a non-destructive post-production software like darktable. This isn’t about “photoshopping” a picture; instead it’s all about histograms, levels, curves, sharpening, colors, lens correction, noise, etc.
Vector Image Editor
Inkscape: Really nice vector image editor for creating professional quality, scalable diagrams, logos, you-name-it. Its functionality rivals Adobe Illustrator, although sometimes the tools don't map one-to-one.
- If you only need a Mac solution to vector graphics, the excellent Curve (formerly Vectornator) is hard to pass up. It's one of those apps that looks so polished, it's hard believe it's free. It has all the essentials to make some incredible vector art. (Mac)
Artistic Image Editor
Krita: Great digital painting software. It actually could replace Gimp for many use cases, and it supports CMYK.
- Another cool option is Autodesk’s Sketchbook, which is now free (although you will need to create a free Autodesk ID to register it.) I just don’t want to invest the time in learning a program, saving a lot of files in their proprietary format, and then they yank the rug out. Autodesk has done that before, so I’m leery. Other than that, it’s great software… but so is Krita.
Stable Diffusion AI Image Generation
Draw Things is the easiest to install and use AI image generator on Mac. One-click install, download a few models, and you're in business. It handles inpainting/outpainting without the user even having to know what that means. Having said that, the current state of AI means you have to know a bit of jargon and whatnot before you can really use this tool, but the toolset is robust, the in-app help is decent, and the results are excellent even running on a M1 Mac Mini. AI is a rapidly changing landscape, and the developer is keeping up and adding impressive features at a fast pace. (Mac)
- Diffusion Bee is the other "beginners" AI program that is easy to install. It isn't as good as Draw Things at the moment, but it is certainly worth an honorable mention. There is a Windows version in the works, which will probably quickly make it the easiest way to run Stable Diffusion on Windows. (Mac)
ComfyUI is probably the closest thing we have to a "one-click" install of Stable Diffusion on Windows so far. Just download it, extract the archive, and put your models in place. There are lots of web interfaces to Stable Diffusion, but many of them are harder to install and configure.
Screenshots/Screen Capture
ShareX: You don’t know how useful a good screenshot tool is until you start using it. It’s really handy to automatically save screenshots (or portions of screens) to a predetermined folder and keep it on the clipboard as well. ShareX takes it one step further and will upload the image to pretty much any site you like, and the OCR functionality is really cool. The icing on the cake is the screen capture capability that will let you record portions of your screen and save it to a GIF (or other formats). It’s great for playing tech support with family to show them how to do stuff. (Windows)
- Greenshot was my old favorite, and you may want to use it if ShareX is confusing or seems like overkill.
- Worth noting: recent versions of Windows 10 now come with a tool called “Snip & Sketch” that does something similar (use SHIFT + WINDOWS + S key combo to access it), although it doesn’t automatically save the image to a file.
Shottr is an amazing tool for screenshots on Mac. It has all the usual features plus cool stuff like scrolling captures (for long webpages) and OCR text recognition so you can cut and paste text from images on your screen. (Mac)
- If you don't need/use anything beyond simple screenshots on Mac, it's worth mentioning the SHIFT-CMD-4 shortcut gets you a portion of the screen and automatically saves the file to the desktop.
Live Streaming
OBS Studio: While not exactly my jam, if you’re into live streaming it’s hard to beat OBS as a solid choice.
Video Conversion
HandBrake: Convert video from/to nearly any format. While incredibly powerful and complex, HandBrake makes it really simple to get started. If you don’t want anything special, just drag and drop a file, select a preset target format (e.g. Roku 1080p30 or Android 720p30), and hit start.
- Gifski is a super easy way to convert video to high-quality GIFs. (Mac)
Video Editing
Shotcut is a capable multi-track editor with a nice interface. If I don’t need anything special, this is the first place I reach.
kdenlive: If you do need something special like key-framing, it’s great to have kdenlive in the toolbox. Shotcut has it beat in a few areas, so I still prefer it in general, but kdenlive has some features that make it worth having around.
Also check out:
- DaVinci Resolve: This is a professional package, but they have a free version that’s very impressive. It outshines the above editors in features, but I’m reluctant to learn a free tool that could be retracted at a whim, so in general the opensource tools above get my vote.
- Openshot: I’m listing this to remind myself to keep an eye on its development. Feature-wise, it seems like it falls right between Shotcut and kdevlive, but it feels pretty buggy yet. Having said that, it might scratch your itch, and it’s worth checking out along with the others.
Animation
Blender: 3D modeling and animation. Has more power than I have skill, but other people do really cool things with it. It’s fun to play with though and is worth the download.
Synfig Studio: Nice 2D animation package. I dabble with projects, and when I do, this works for me. It’s simple and intuitive for the level of projects I make.
- OpenToonz is really cool 2D animation software that’s most well-known for being used by Studio Ghibli and Futurama. It is possible that OpenToonz is better than Synfig, but I don’t do enough animation to know the difference, and OpenToonz is less intuitive to me.
Media Server
Plex: My reluctant choice for the best personal media server for most people. This is what you want for steaming your media to your Roku, Fire Stick, smart TV, etc. Just tell Plex where you store your movies, TV shows, and music and it will do the rest, including downloading cover art and show descriptions. My main reservation is they are monetizing the service more, and the free features feel sparse. For instance, you need a "Plex Pass" subscription to download shows to your client device for offline viewing. However, presently the core functionality is still free, and the easy setup and overall user experience is still worth giving Plex a try.
Jellyfin is the more consumer-friendly, open-source alternative to Plex. Setup is fairly simple, although you may need to add some plugins to get all the functionality you want. Otherwise, it's a fine alternative and arguably better than Plex in some regards. I would recommend trying Jellyfin first if you are more tech savvy. There are Jellyfin clients on every platform as well, so streaming to any device is easy.
Music & Audio
Music Library Organization and Playback
MusicBee: A great way to organize and play your local music library. Includes handy features like gapless playback and auto-tagging. An app like this is becoming less essential as I move to online services like Amazon Prime Music and Spotify, but when I do want to work with local music files, it’s hard to do better than MusicBee. (Windows)
- I'm not listing a Mac alternative for playback here because the default Apple Music app meets my meager needs.
MusicBrainz Picard is the best cross-platform solution for identifying and organizing a large collection of music files. It can figure out what files are based on tags and even audio fingerprints. Besides tagging it will rename and move files as well. Even if you're using Apple Music or MusicBee to organize your music library, this is still a handy tool to clean up the incorrectly tagged files before adding them to your library.
- If Picard isn't to your liking, I would suggest MP3Tag. It is a universal batch tag editor that handles MP3s along with every other popular audio format. The robust file renaming/retagging tools and online database lookups make this powerful option for cleaning up your audio collection. This is only free for Windows. It's a paid app on the Mac App Store. (Windows)
Audio Conversion
fre:ac: free audio converter and CD ripper for various formats and encoders including MP3, MP4/M4A, AAC, and more.
Audio Editor
Audacity: Simple multi-track audio waveform editor. From recording, to basic mixing, to filters and effects, Audacity has you covered. Just keep in mind this isn’t a full-blown DAW, so don’t expect non-destructive mixing and whatnot.
- A simple single-track alternative to Audacity is AudioDope. If you just need to quickly trim an audio file or apply some basic filters, AudioDope is a good choice. (Windows)
Digital Audio Workstation (DAW)
Cakewalk: This used to be a commercial DAW that is now free as of 2018. It’s a rebranded version of SONAR Platinum, and it’s incredibly powerful. This is a great place to start if you want to make some music. (Windows)
- Another great DAW is Waveform Free. While there is a Pro version with more features, the free version has no limitations and is very capable.
Ardour is worth checking out if you're a Linux user. It does all the basics really well. From recording audio or MIDI, to editing, to mixing, you're covered. The only trick is if you really want it for free, you should use your distribution's packager manager and don't download it from the website.
- You may be asking why I limit my Ardour recommendation to Linux users. The simple answer is on Windows and Mac it isn’t really “free”. While it is open source and you can build it from scratch for free, if you want a convenient, pre-built binary, you need to either buy it or pay a subscription. The free/demo version goes silent after 10 minutes, which I consider too restrictive to still include here on my list of free software. Having said all that, it might be worth your money, so check it out.
- GarageBand is the obvious easy-to-use entry-level option for the Mac. It's tough to beat the no nonsense workflow that works great with MIDI as well as recorded tracks. (Mac)
Step Sequencer
LMMS: Its website says it’s a “sound generation system, synthesizer, beat/baseline editor and MIDI control system which can power an entire home studio”. I’d call it a nice step sequencer with VST and SoundFont support for creating music. I wouldn’t call it a DAW because it doesn’t record multitrack audio, but combined with Audacity, you can make some cool stuff. Honestly, I wouldn’t even list LMMS now that Cakewalk is free, except LMMS is opensource, and Cakewalk may go away sometime in the future.
Synth Plugins
Text Editors
There may be some redundancy here, but text editors are like knives: you wouldn’t use a Bowie knife when you need a scalpel or a steak knife when you need a machete, so I use multiple editors depending on the task.
All-Purpose Text Editors
Notepad++ is easy to recommend for general text editing and quick file edits on Windows simply because it is blazing fast and the interface stays out of your way. This is my default application for text files, and over the years I’ve written many thousands of lines of code in Notepad++. Having said that, the antiquated syntax coloring system and somewhat clunky customization limits how well it scales to many tasks. But it is still a fast editor and it shines when opening a 1 GB log file… as long as it doesn’t need to be syntax colored as well. (Windows)
CotEditor is my favorite text editor on a Mac for quick and easy text editing. It isn't as well known as other editors, but it is fast. It isn't trying to be an IDE, so don't expect too much, but the amount of customization and the total feature set is fantastic. It has an inspired and flexible scripting interface which lets you write plugins in Python, bash, Applescript, and several other languages. And did I mention it was fast?? This is a great choice for your default text file handler. (Mac)
- If CotEditor is too barebones for you, the next step up without going to an IDE is TextMate. It opens slower than CotEditor, but it has some robust functionality including an impressive array of text manipulation tools and extensive language support with syntax highlighting, while still staying fairly lightweight. (Mac)
Neovim: vi was a legendary, powerful keyboard-based text editor with a steep learning curve, Vim is its most successful clone (itself being a derivative of Stevie), and Neovim aims at pushing Vim into the 21st century with a clean code base and features like Lua extensibility and asynchronous plugins which allow for things like async linters. Some people think it’s silly to use a vi clone more than four decades after it was introduced, but there are some tasks that are orders of magnitude faster in a vi clone than modern mouse-oriented text editors.
- If a console-based text editor is what you need and you don’t love the vi modal editing and key bindings, you should really check out micro. Micro works from a console, but it has modern capabilities like mouse support, multiple cursors, Lua plugins, tabs, tmux-like splits, and syntax color schemes. Best of all, the normal Windows key bindings like CTRL-C, CTRL-V, CTRL-S, and CTRL-Z work as expected.
Honorable Mentions
Sublime Text is a fast, clean, good looking editor, and it gets points for popularizing (if not actually inventing) the command palette and document map (and maybe even multiple cursors?), but I want to like it more than I actually do. Maybe I’m just too old to learn new key bindings? You should check it out though. Sublime is truly excellent software. The real reason it's just an honorable mention is it technically doesn’t meet my criteria for this website as “free”. You can evaluate Sublime Text for free with no feature limitations or time limits, but you should pay if you continue to use it.
Geany is a jack-of-all-trades that is good at everything, but not best-in-class in anything. It is a versatile cross-platform programmer’s text editor that you can configure to be anything from a simple Notepad.exe replacement to an ultra-lightweight IDE. It’s just hard to recommend because while it’s good for quick edits and opening text files, Notepad++ or TextMate are even faster for those quick tasks. And while Geany is really nice for light coding, VS Code is even better. Geany is rarely the best tool for the job, but it might be the right choice for a computer that just needs an all-purpose, do-it-all editor. If you do try it, there are lots of great features hidden in the official plugin package, so be sure to grab it as well.
Programming Editor/IDE
Visual Studio Code: VS Code is a legitimately great editor for just about any language. From linter to debugging, everything you need can be integrated into a seamless workflow. Check out the extensions to add nearly any functionality you could want, turning VS Code into a legitimate IDE. A huge bonus is the excellent Jupyter Notebook support. For many use cases, there's no reason to run a standalone Jupyter server anymore. (Note: Don’t confuse VS Code with Visual Studio which is a full-blown IDE with more advanced features that I don’t find necessary for the hobbyist.)
- Two things worth mentioning: First, you can run VS Code directly in a web browser here. The experience is pretty incredible all things considered. Second, VS Code is very actively developed, so if you want the latest and greatest, you may want to run VS Code Insiders. On paper it is a beta version of VS Code where the new features are tested out, except I have found Insiders to be stable enough for production work. I honestly haven't noticed a difference in reliability.
Prose Text Editor
WriteMonkey: For writing prose, it’s hard to beat this distraction-free text editor. It has Markdown support and other handy features that push it to the front of the pack for its genre. Check out version 3 for the newest cross-platform codebase. (Note: The Mac version isn't working for me as of September 2022.)
- FocusWriter: If the command palette interface of WriteMonkey 3 is a deal-breaker for you, a good runner-up is FocusWriter. It has a more classic distraction-free interface, and it has plenty of convenience features like smart quote conversion. (Windows/Linux)
uFocus is a distraction-free editor for the Mac. Its Markdown support and clean interface make it a perfect choice for prose writing. Even though it is simple, there are plenty of customization options to make it work and look just like you want it to. It's a wonderful app. (Mac)
Programming
Note: See the Text Editors section for programming text editors and IDEs.
Version Control
Git: A distributed version control system that quickly took over the open source world, and with good reason. If you’re a programmer, you already know what this is. On Windows a big bonus is the installer includes all the Unix command-line tools you know and love. If you need ls, cat, grep, awk, and all the rest, I think this is the easiest way to add them to your Windows system.
Git Extensions: Sometimes a GUI is convenient to visualize branches and handle more complicated tasks when when you don't feel like looking up the correct commands/switches, and I think Git Extensions is far superior to the official Git GUI. I wish it was cross-platform, but the latest versions are built on .NET and Windows only. (Windows)
Gittyup is a good cross-platform option for a Git GUI. On Mac there are less options for a good GUI that isn't proprietary, but this works well for me. It makes complex Git operations more manageable.
Text Comparison
Meld: My favorite graphical file comparison (AKA “diff”) program. There is 2 and 3-way file diff and merge, as well as directory comparison. It also plays nicely with many version control systems including Git.
- WinMerge: WinMerge has been around for a long time, and it's still one of the best all-around solutions. I'm listing it here because I like it better than Meld for directory comparison, and for that task alone, it's worth having it installed. (Windows)
Compiled Language
Go: Even though I don’t do a ton of programming in compiled languages anymore, when I do, I am usually making command line programs like file utilities, text manipulators, number crunching programs, etc, and Go fits the bill nicely.
Scripting Language - General Purpose
Python: My favorite general purpose programming language. It’s perfect for getting the job done quickly without a lot of boilerplate and heavy lifting. I’m a pragmatic engineer, so I just want to solve a problem as efficiently and elegantly as possible, and I’ll leave the arguing about static typing and whatnot to the real developers and CS engineers.
On Mac I prefer to use pyenv to install the various Python versions. Once you install it (which is trivial with Homebrew), you can just issue a command like:
pyenv install 3.10.4
All the essential Python libraries are on PyPi, so here is a pip command line (for easy cutting and pasting) useful for STEM programming to get you started. This is a short list, but it pulls the more important dependencies like scipy, pandas, and numpy:
pip install jupyterlab seaborn PyQt6 sympy
And a quick description of a couple of packages vital for STEM:
SciPy is a scientific package useful for everything from statistics to linear algebra.
Pandas handles data structures and data manipulation.
NumPy is the foundation for numeric arrays, and math functions.
SymPy is a symbolic computer algebra system.
Matplotlib is a robust plotting library.
Seaborn is a higher level package built on matplotlib that can really improve your productivity.
PyQt: Probably the best looking, best featured, cross-platform GUI toolkit.
Scripting Language - Math/Science
Julia: Just an incredible tool for mathematical or scientific computing of any kind. The lightweight syntax is a delight even by Python standards, and its speed usually matches or beats compiled languages due to its JIT compiler and language design. Julia is made for speed (both in writing and execution), and I think it combines the best of Python, Fortran, MATLAB, and R. I use it more as a math tool than a general purpose scripting language, hence this separate category.
- For interactive Julia sessions, there is nothing like Pluto.jl. It is a must see experience. It's like a Jupyter Notebook, but better.
- If you like Julia, you might like the JuliaMono font. I can’t justify listing this with the other fonts below because it’s so specific to Julia, but this is an interesting font intended to leverage Julia’s excellent Unicode support for actual math operations. Check out the website for examples.
Programming Fonts
Below are a few excellent fonts suitable for programming, consoles, terminal windows, PuTTY, etc. While just one font should be sufficient, I typically have all of these installed as one font may look better in a certain terminal or editor, at a particular size or scaling, or on a particular monitor.
Dina: Great bitmap font in 6, 8, 9, and 10 points with normal, bold, italic, and bold/italic faces. I like the 8 and 10 especially well. Dina is so clear and crisp on even the worst monitors that it is actually pleasurable to read. It's not really necessary on a decent monitor though.
Source Code Pro: This font from Adobe looks very clean on high resolution monitors. This is just a simple, no frills font that’s easy to throw on a random computer to get a decent font quickly. Perfect for when the fonts below can be overkill.
Input: Incredibly flexible font system that lets you customize letters (a/g/i/l/0) and symbols (asterisk/braces) to your liking, as well as choose from 7 weights and 4 widths, and sans, serif, and mono variants. There are 168 styles in all, so you will find one that works for any given situation.
Iosevka: Similar to the Input font, Iosevka raises the bar by adding ligatures, more weights, more variants, and incredible character coverage with thousands and thousands of supported glyphs. There are plenty of variants with different character and symbol styles, so you should be able to find one that has the look you want. There are so many choices it can be confusing, but if want a general purpose font that works everywhere (but doesn’t have ligatures), start with the “Iosevka Fixed” font. At the end of the day, this is the only font I need because I can configure it to look any way I want.
Document Authoring & Viewing
See the Text Editors section for creating plain text files.
PDF Viewing/Editing
PDFgear is amazing if you work with PDFs often. If you only have one PDF program on your computer, it should be PDFgear. You can use it as a viewer, but it also is an incredible editor. It can edit text, extract/reorder/delete pages, convert formats, merge and split PDF files, and it includes robust annotation tools. PDF editing has traditionally been the territory of commercial programs, so the fact that PDFgear is free is awesome. (Windows & Mac)
- If you're on Linux, your best alternative to PDFgear is PDFsam Basic. It will handle all your basic PDF editing needs. It will merge, split, and rotate PDFs, as well as extract pages. There is a premium offering that does more, but PDFsam Basic covers the most frequent uses cases.
Adobe Acrobat Reader: The original PDF viewer. While not my first choice, I always install it just in case because it is the gold standard PDF reader. However, the interface has become bloated over the years and many of the tools require you to upgrade for access to the premium features. Pro-tip: the mark-up/annotation capabilities are hidden under View➞Tools➞Comment.
- For a lighter-weight solution to reading and marking up PDFs on Mac, it's hard to beat Skim. While being fast and free, it is still has plenty of features. (Mac)
eBook Utilities
Calibre: All-in-one ebook manager. Whatever you need to do to/with an ebook, this will do it. It organizes, converts, downloads covers, etc.. Absolutely indispensable if you have a non-DRM ebook collection. With plug-ins you can even strip DRM to backup your purchases.
FBReader is a cross-platform ebook reader with a nice clean interface that stays out of the way. It's simple, but it still has all the customization you need to make it look exactly how you like it. The real killer feature is the "book network". It uses your Google Drive to store books and sync progress and bookmarks across platforms. If you read from multiple devices, this is a huge bonus.
Freda: A nice standalone e-reader that handles the popular formats like mobi and ePub. The main advantage it has over Calibre’s built-in reader is the extensive customization options and font rendering. (Windows)
- The honorable mention on Windows goes to Sumatra PDF because it is a convenient all-in-one reader for PDF, EPUB, MOBI, CBR, CBZ, CHM, and XPS. While Sumatra might not be the best solution for ebooks or comics, it’s handy to have around, and some books even look better in Sumatra (usually because of font rendering). (Windows)
Font Management
FontBase is the easiest way to discover, install, and manage your fonts on any platform. It makes a trivial task to quickly find that font you need and install it with one click.
Comic Reader
YACReader is actually two programs in one. It comes with an excellent comic reader and a comics library browser. It reads every popular format (cbr, cbz, cb7, pdf, etc.), and it has all the features I need, and quite a few I don't. Works equally well on Windows, Mac, and Linux, which is handy so I can use the same solution everywhere.
Markup & TeX/LaTeX Tools
Pandoc: Convert markup formats to other formats. Handles Markdown, html, EPUB, LaTeX, etc. This is an extremely powerful program, and I have actually used it to build websites through the use of its robust template system.
MiKTeX: A port of the TeX document publishing system that converts source files into beautifully typeset documents. If you know what TeX/LaTeX are, you need this. If you don’t know what they are, and you care about breathtaking documents, then you need to learn TeX.
TeXstudio: Lightweight portable LaTeX IDE, including editor, spell checker, and symbol toolbars. For those keeping track, this was forked from TeXMaker back in 2009, and it’s clearly outpaced it.
Office Suite
LibreOffice: Provides all the usual “office” suspects, like a word processor, spreadsheet, and presentation applications. While still lacking the polish of MS Office, for most use cases this is a reasonable replacement. The key functionality is there, and the major gaps of the early releases (e.g. Goal Seek and Pivot Tables) have long since been filled. Worth noting: LibreOffice Draw works well for flowcharts (similar to Visio).
- Full disclosure, I don’t find LibreOffice essential in the sense that I use it often. I like LibreOffice as a convenience so I can easily open an MS Office file or perform the odd task, but I actually far prefer working in the cloud with Google Docs and Sheets. In some ways, Sheets is even better than Excel or LibreOffice Calc with conveniences like the split() function.
Note-Taking
OneNote is easy to recommend given the comprehensive functionality and the fact that it is now free. For many tasks, I’m a plain text file guy, and I think note-taking apps are sometimes unnecessary when a simple text editor works fine. However, I use OneNote at work extensively, and I really like it. I can integrate emails, pictures, tables, and all the rest into a workflow organized by notebooks, sections, and pages. OneNote wasn’t the first to the note-taking scene, but veterans like Evernote are charging hefty monthly fees for functionality that is free in OneNote.
Simplenote is a nice… um, simple note app that works across all platforms. This is a good choice if you don’t need multimedia integrated into your notes, and you want to access your notes anywhere. It supports Markdown and tagging, but otherwise it’s barebones. It does make syncing automatic though, and that's the real selling point. If you use multiple platforms regularly, this is a great experience. You can jump from MacOS to Android to Windows to iOS to anything with a web browser without missing a beat, and the interface stays out of your way. There are lots of alternatives, but I think Simplenote gets more right than competitors like Obsidian and Joplin (which are probably at least worth looking at to see if they are a better fit for you).
- Obsidian is where you might want to go if you want good Markdown support and you don't need total inoperability on mobile devices. The Canvas feature is really cool. It lets you visualize and connect data in interesting ways, a bit like a mind mapper. Obsidian's biggest shortcoming is you have to figure out your own file-sync solution unless you pay them for their sync service. Saving your vaults to Google Drive, iCloud, OneDrive, etc. will solve this for you, but you still won't be able to work with some combinations (like saving a vault to Google Drive on desktop and opening it on an iPhone). Likewise, there is no Canvas support for mobile, so you could create a note on desktop that you can't open on mobile.
Honorable Mention
- I want to give kudos to UpNote here because it is my favorite notes app for personal use, but I can't quite officially include it on my list because the free version is limited to 50 notes, which is just too limited to qualify for the spirit of this site. HOWEVER, it is the perfect compromise between the barebones Markdown notes apps and the full-fledged multimedia approach of OneNote.
Desktop Publishing
Scribus is the best free desktop publishing solution out there; perfect for making flyers, invitations, banners, stationary, and even full books. When a casual user needs something more than Word, but can’t justify buying Adobe InDesign, Scribus is probably your best option.
Sheet Music
MuseScore: Easy-to-use interface for creating sheet music. With great documentation and abundant resources like videos, tutorials, and how-tos, you will be creating great looking sheet music documents in no time.
- If you want to make sheet music and have complete control over every aspect of the output, LilyPond is where it’s at. There’s no GUI, it’s super niche software, so it’s not for everyone, but the results are sublime.
Science, Math, and Engineering
Calculators
Notebook-Style
Figr is a notebook style calculator with all the basic functionality along with unit conversions, and other handy operations, but it also enables real-time collaboration. This app really scales well because it works equally well as a simple scratchpad or in a more complicated scenario with calculation templates containing variables and lots of dependent calculations. The best feature is the cloud syncing so you can open it on any platform and your calculations are all there. There are native apps for Windows and Mac, but you can use the web version on Linux or any mobile device.
- SpeedCrunch is a decent alternative for a calculator with fast start-up and plenty of functionality. The interface is deceptively simple, but lurking under the hood are constants, variables, an impressive list of math functions, and equation support. Unfortunately, while SpeedCrunch is cross-platform, it looks fuzzy/blurry on Mac. The graphics toolkit doesn't seem to upscale well on hi-res monitors, so I just don't use it on Mac.
- For a non-cloud Mac solution, Numi is the best free alternative. The paid version supports multiple pages/notebooks, but the free version has full functionality otherwise. Intuitive calculations (e.g. "5% of 20") and unit conversion (although somewhat basic) make Numi a solid desktop calculator. (Mac)
Scientific
Qalculate! is a good place to start if you want a scientific calculator on Windows or Linux. It can do everything from integration to units. The interface is not my favorite, but it is packed with features. (Technically this works on Mac too, but with no .app or installer, you have to use Homebrew or MacPorts, and there isn't even a shortcut/icon for it, so the experience is subpar.)
NCalc: A robust scientific calculator for Mac. This has pretty much everything you would commonly need in a calculator. There is a Pro upgrade that unlocks graphing and other bells and whistles, but it is still useful without the upgrade. I actually did end up buying the lifetime license for $3.99, which is worth it to me. (Mac)
Graphing
GeoGebra is an app suite you might want to check out if you need a graphing calculator. This suite is five calculators in one, including modules for graphing, geometry, algebra, and probability. The graphing is fairly robust and the customization is impressive for what it is. It's really great for high school level math or maybe even low-level college problems. For higher level math, see the real CAS systems below.
Unit Conversion
ConvertAll is what you need if you are looking for a flexible, powerful unit conversion solution. It really shines at combining fundamental units to build more complex units. The interface is a strong point. Instead of scrolling through long lists of supported units, you can just start typing and the list is automatically filtered. (Windows/Linux)
Unit Converter looks super generic (even the name sounds generic), but it has the units I need as an engineer that other apps don't. The interface is as spartan as you can get, but it really is quite powerful. Be sure to read the help because there is some hidden (or at least non-obvious) functionality like "favorites", simple math evaluation, and time conversion. (Mac)
Graphing/Plotting
Note that this section is dedicated to standalone graphing/plotting software, but apps in other categories (e.g. statistics, CAS, and office suites) have graphing/plotting capabilties as well. Also worth noting, Python libraries like Matplotlib and Seaborn (see Programming) make standalone graphing software somewhat redundant for me, but the feature sets and easier-to-use interfaces make these apps below still the best tool for some jobs.
gnuplot: While it has a steeper learning curve than a typical GUI driven program, gnuplot’s spartan interface helps you plot and tweak quickly without having to know the commands. This venerable GNU program has been around since the 1980s quietly excelling in its domain. If something can be plotted at all, it can probably be plotted by gnuplot. You might want to start with the demo gallery to see what it can do.
Veusz is a great plotting package that has a robust graphical interface and an impressive array of supported plot types. From 2D to 3D, from box plots to polar plots, Veusz has you covered. The main selling point for me is that you have total control of everything you see on the graph: colors, lines, fonts, you name it. You should be able to get exactly what you want. There are some downsides, most notably: strange handling of error bars, lackluster data manipulation, and the histogram functionality could be more robust.
LabPlot is fantastic software for XY plots, although it does excellent histograms as well. It is incredibly customizable, but be aware it takes some exploration to really figure out everything it can do (which is a LOT). You can make some incredible looking plots that would look at home in even the prettiest info-graphics. There are plot “themes” which make it easy to quickly try out some different looks. Labplot will definitely produce something that doesn’t look like just another Excel plot. Other notable features include impressive data manipulation, interactive plots, XY plot digitizer, as well as robust curve fitting.
XY Plot Digitizer
Engauge Digitizer is a lifesaver when you need to extract X-Y data from a raster format image or a printed graph from a book or pdf. Instead of breaking out the ruler, just click on some points and Engauge will scale, transform, and orient the plot for you, exporting the XY data to a CSV file.
- LabPlot (mentioned above) also has a "data extractor" tool that works great for digitizing XY plots from images.
Computer Algebra Systems & Numerical Analysis
SageMath aims to replace commercial software like Mathematica, Maple, and Matlab, and it has advanced enough that it really does make those packages unnecessary for many use cases. Sage brings some of the best tools in the open-source world together under one interface to create an incredibly powerful package that’s useful to nearly every STEM field. The main problem with Sage is the complete absence of a user interface. The novice is presented with an empty prompt, and is expected to know what to type. It could really benefit from a cohesive graphical interface that guides the user a little better (like wxMaxima or the commercial options).
Maxima: Symbolic computer algebra system with robust plotting. Be sure to use the bundled app called wxMaxima, which is an easy-to-use graphical interface that wraps the Maxima backend. Given that SageMath has Maxima built in, this standalone version may seem redundant, but novices will find wxMaxima easier to jump into and start using right away.
- An alternative to a standalone app like Maxima for simple symbolic algebra is SymPy, which technically isn’t an application, but rather a Python library. If you use Sympy in a Jupyter notebook inside VS Code, you have a pretty incredible environment for CAS. This is actually my preferred solution, but you need to be fluent in Python for this to be viable.
GNU Octave: A numerical computation program that started off as a MATLAB clone, so porting programs is fairly trivial. The use cases of a program like this (for me) are pretty narrow these days given the accessibility and capabilities of programming languages like Julia and Python (along with libraries like Scipy and Numpy), and the advancement of more broad-purpose software like SageMath. Octave is still immensely powerful though, and a great environment for mathematical exploration, so I’m leaving it on my list. Also note that SageMath has an Octave interface, so if you have it in your path, you can call Octave functions directly from Sage.
- The obvious runner-up here for numerical computation is Scilab, which has a long history as a capable numerical analysis package and has always had significant overlap in functionality with Octave (and MATLAB for that matter). You may like Scilab better for some reason, so if you’re serious about math you should check it out, but the Octave community is more active and there are more libraries available for Octave, so I’d still start there.
Interactive Programming/Data Environment
Jupyterlab (or Jupyter) is an interactive notebook where you can embed code and plots and easily share the sessions with others or save them for later. This is a front end for scientific computing languages like Python, R, and Julia that is perfect for interactive exploration. I could have easily listed this under the Programming category, but Jupyter is really more of a scientific computing platform than a programming environment. This is where you do math or data science, explore statistics, and slice, dice, and manipulate data before analysis and visualization.
- If you are a Julia programmer, we can’t talk about interactive environments without mentioning Pluto. It’s a relatively new project, but it’s really doing amazing things, and it’s definitely showing up the veteran Jupyter in a number of areas.
Statistics
Jamovi: This is a great package for quickly analyzing some data and making decent-looking stats plots with very little effort. If I want simple descriptive statistics, a histogram, or a quick t-test, Jamovi makes it easy (although honestly, if I need much more than that I’m probably in Jupyter using Python with libraries like Pandas to help slice and dice the data.) Jamovi looks very polished, and the core functionality is there, but I wish there were more customization options for the graphs and more data manipulation tools. Also, it’s worth noting that Jamovi is one of the many front-ends for R, the 800-pound-gorilla of stats packages, so there are a number of modules available to add functionality. Jamovi is under very active development, and new releases come out at least monthly, so I’m excited to see what’s coming in the future.
- JASP looks very similar to Jamovi, and in fact, at first glance the interfaces appear to be near clones. While I find Jamovi just plain better in a number of ways, I’m keeping my eye on JASP because it appears to be under active development as well, and JASP supports some analyses that Jamovi doesn’t while still offering an easy-to-use interface.
- On paper, BlueSky Statistics should be the easy winner in this category. It has many, many more features than Jamovi. However, I don’t find the interface as intuitive for casual analysis, and by default the plots look fairly bad. The plots can certainly be tweaked through the R language, but it isn’t transparent to the casual user. Besides the impressive collection of analysis methods, the real reason I might reach for BlueSky instead of Jamovi is the robust set of data manipulation tools.
- PAST is the only app in this category that isn't just a front-end for R. If you look past the deceptively plain interface, this is a super powerful stats program chock-full of functionality. There’s no safety net or hand-holding to help you interpret the results, but it has an amazing manual describing the equations used and even includes extensive citations, so this is no black box. It has a very robust set of statistical plotting tools, and the histograms are actually pretty good with a fair amount of customization (including overlaying a normal distribution).
CSV Files
Tad is a CSV file explorer that let's you view, filter, pivot, and analyze very large CSV files. In STEM, sometimes you need to work with large CSV data sets, and this is a great way to do it.
Miller is an incredible tool for working with CSV files (and others) from the command line. You reshape, filter, and even create new columns based on operations performed on other columns. If you work with CSV files, especially large files or large numbers of files, Miller can be a lifesaver.
2D/3D CAD Modeling
Autodesk Fusion 360: I hate to rely on proprietary software that might be pulled behind a paywall tomorrow, but Fusion 360 is a professional-grade 3D modeler that can’t be passed up when they’re giving it away for free. Professionally, I’ve used everything from Pro/E to Catia to I-DEAS to NX to Inventor and a half dozen more CAD packages, and Fusion 360 is as good as any of them for creating 3D models. The interface is incredibly intuitive if you’ve used any real CAD package before. I use Fusion on both Windows and Mac and switching between platforms is seamless. If you sign up as a hobbyist (i.e. not for commercial use) you can get a free license. They recently further crippled the free version (e.g. file format support and number of active documents allowed), but it’s still very usable.
If the Fusion 360 restrictions are non-starters for you, here are three free (and open source) CAD alternatives worth trying:
- FreeCAD: Fairly full-featured 2D/3D parametric CAD modeler. This is the only open source CAD program that looks and functions even remotely like a real, commercial CAD program, and it’s capabilities are pretty amazing for what it is, but it’s still painful for me to use compared to any good commercial product. The interface can be clunky and seems to work against me at every step, and for some tasks I just can’t figure out an efficient workflow (or can’t figure out how to accomplish it at all). Having said that, there is a lot of great functionality here, including a good constraint manager and a decent CAM module that generates very usable G-code.
- LIbreCAD is worth looking at if you want to make 2D prints. While FreeCAD has a robust 2D sketcher, its focus isn't 2D prints. That's where LibreCAD can often outshine FreeCAD, although I wish it was parametric. At the end of the day, I can make a perfectly serviceable print with LibreCAD, but it feels like it should have been easier to get there. But for free? It's not bad. I have done some paid side jobs with it, and it did what I needed it to do.
- Solvespace is such a tiny, fast, quirky, unique, and capable program, I had to mention it. Don’t let the retro look fool you. This is a powerful 2D/3D parametric modeler with a legit constraint solver. Besides FreeCAD, that is a very rare find in free CAD software. This interface is nothing like a standard CAD package, but if you are into making 3D objects for 3D printing, this program is great. For normal use, I think the glaring omission in its feature set is a tool for adding fillets/rounds. That’s a deal breaker for me.
Electronics Schematics
ExpressSCH: This is a really simple program for making quick schematics. It's like the Notepad.exe or Windows Paint of the schematics world. Not very glamorous or loaded with features, but it works in a pinch. I reach for this first when I need a schematic, probably out of habit, but there are many alternatives. I've included a couple other options below. (By the way, when you click on the ExpressSCH link, you'll want to download ExpressPCB Classic and you’ll get ExpressSCH too.) (Windows)
- TinyCAD is a a bit more capable, and a bit more complicated, than ExpressSCH, and I find it better for some jobs. (Windows)
- KiCad is WAY more powerful than ExpressSCH in every way possible, but it’s usually overkill for my simple needs. If you’re looking for an electronics design program, you’re probably looking for KiCad.
GPX Viewer
GPXSee is a simple GPX viewer with basic conveniences like speed/elevation graphs and several map source options (including topo maps). It’s the perfect track viewer for hikers and other outdoor sports where you might record a path with a GPS or one of the many mobile apps that does offline mapping.
Geographical Mapping Software
JOSM is fairly niche software, but if you want to edit a GPX file (or even OpenStreetMap data), this is probably your best bet. It is shocking how many terrible GPX editors are out there, and JOSM stands out as a truly capable package in comparison, even if it can be unintuitive at times. If you need to edit a GPS track to clean it up before uploading to a website or archiving, JOSM is your best bet.
QGIS is where you go when you want to work with GIS data to make custom maps, combine map data from various sources, etc. There is overlap between QGIS and JOSM for sure, but they really do different things, so it’s worth having both in your toolbox if you are into maps. My favorite function in QGIS is the Georeferencer tool which lets you map a raster image map onto actual coordinates. This is handy for doing things like superimposing a scanned trail map onto a topo map. Speaking of which, QGIS also supports GeoPDF files, which is handy for tracing trails as well.
Astronomy
Stellarium: A great planetarium for the hobbyist astronomer.
Network & Internet
Web Browser
Google Chrome: My default browser since the day it was released.
- I left Firefox for Chrome, but I like to keep Firefox around for the odd task, and it is arguably more pro-consumer with its stance on ad-blockers.
- And because you can never have too many browsers, the DuckDuckGo browser is another nice option if privacy and security are a high priority.
Remote Shell Access
PuTTY: Awesome ssh/telnet client. It’s been the premier free terminal client for so many years because it’s simple and works while not skimping on features. (Windows)
Tabby is the only client that has ever tempted me away from Putty. At first it doesn’t seem as full-featured, but keep digging and you’ll see all the SSH options you need in a really customizable terminal, including built-in SFTP and cross-platform support. If I'm on a Mac, this is my chosen SSH client. Tabby also makes a wonderful terminal for local shells.
File Transfer
WinSCP: Great ftp/sftp/scp client with lots of extra features like bandwidth limiting and shutting down the program or computer after file transfers are done. (Windows)
PortX is a simple, bare-bones cross-platform option if you want to transfer files over SFTP or even Amazon S3 or Google Cloud storage. It's also a ssh client, but I don't typically use it for that since the customization is limited. This is what I generally use on a Mac since WinSCP is Windows only.
If you need more features than PortX, Cyberduck is a fantastic alternative that supports a ton of protocols. While it is free, the main drawback is you will see a nag screen asking for a donation every time you close the program.
qBittorrent: Lightweight, yet powerful, BitTorrent client. There's no ads and the features are all there. If you need a standalone BitTorrent client, this is a great place to start.
Transmission Remote GUI is the perfect companion to Transmission. This is really the best choice for when you want to remote control a Transmission session running on a server. This is handy if you have a torrent box and you just want to add/monitor torrents from another computer. So to be clear, you would need to run Transmission on the server/torrent box and Transmission Remote GUI runs on your desktop/laptop.
- Electrorrent is the a great alternative when you want a nice, clean-looking client with a modern UI to manage your torrents remotely. It isn't overly complicated, and it has all the usual functionality that you want without overwhelming you with options.
Soduto makes it easier to for your Mac to interact with your Linux and Android devices. Similar to AirDrop, you can share files between systems, but you can also share clipboards and even send SMS messages from your Mac through your Android phone. (Mac)
Remote Desktop Control
Chrome Remote Desktop: For the simplicity, it’s hard to beat this solution to remote access and support. It makes it easy to check something on my desktop computer while I’m away from the house, and it’s also handy if you are the “IT Guy” for your friends and family. They can set this up pretty easily and share their screen with you so you can fix their issue.
- If you aren’t a Chrome user, you may prefer Teamviewer. It is similar in that it makes it easy for non-techy people to add remote control. I can send them a download link, they install it, and tell me the ID and password that is displayed in the app so I can connect. That’s it. No other configuration is needed.
UltraVNC: If you need full-blown, full-featured remote desktop control, UltraVNC will do the job fine. I just don’t find myself using VNC as much as I used to as I move more functions to the cloud and rely less on my own desktops. This is a more cumbersome solution because it requires port-forwarding and either a static IP or a dynamic DNS solution to make it useful outside of your home network. (Windows)
- I'm not listing a VNC client for Mac because it has a VNC client built in. Search for "Screen Sharing.app" in Spotlight to find it.
Chat/Messenging
Discord: The apparent successor to Skype and Teamspeak in many communities, especially in the gaming world. I have no particular affinity to the app itself, but it works fine on both desktop and mobile, and there are some cool communities that made their home on Discord. Of particular note is that Discord is also becoming the “new IRC” for many programming communities. The IRC channels are often less populated than the equivalent Discord channels.
- Speaking of IRC, I have a hard time calling an IRC client "essential" because it's become such a niche protocol at this point, but there are still some useful dev communities out there. So if you do need IRC, check out:
Honorable Mentions
- Telegram: I really don’t need another chat protocol in my life, but Telegram is doing some things right like real cross-platform support/sync and no size restrictions when sharing media or documents. It’s a very polished experience, and features like group voice chat work exceptionally well.
- If privacy or security is paramount to you, then Signal has Telegram beat. In Telegram, end-to-end encryption is only optional, and you can’t encrypt group chats. Signal fixes those shortcomings, but falls short of Telegram in other areas.
Multi-Factor Authentication
Authy: Really handy way to add multi-factor authentication to all your accounts and across all devices. There are Authy mobile apps as well, so once you add Authy to a service (Gmail, Facebook, Amazon, etc.), you are good to go whether you’re on your desktop, laptop, phone, or tablet.
File & Disk Utilities
Local File Search
DocFetcher is the search tool you need if you want to search file contents. You choose the folders you want to index, and a low-resource process watches for changes in real time. Searching for filenames or contents works just as expected. Windows search is terrible, and there's no perfect alternative, but DocFetcher is pretty close.
Everything: If you just want to search filenames, Everything is your best bet. It supports wildcards, boolean operations, exact cases/phrases, and regular expressions. Just type a filename, and you’ll get immediate results from all your drives instantly. If you want to search network drives, you will need to go to Options and add them to your search folders under Indexing. You can also search file contents, although that will take much longer because it doesn't support (or require) indexing. (Windows)
Compression
7-Zip: Archiver with great compression, command line support, nice GUI and Explorer integration, and it is really fast. This is my go-to on Windows. (Windows)
Keka is easy to recommend because it does more than Mac's built-in Archive Utility by supporting more formats and adding compression with encryption. It's free from the website, or a paid app on the AppStore. (Mac)
- If you don't need fancy compression options, and you just want something that will automatically decompress just about every format you've probably ever heard of, you may prefer The Unarchiver. The interface is non-existent. You just click on an archive in Finder to decompress it. (Mac)
PeaZip is worth a look if 7-zip doesn’t work for you because you’ve encountered some obscure format, or if you're on Mac or Linux. It supports basically every format that you would conceivably (or inconceivably) run into. The interface doesn't look native (especially on Mac), but it is very usable and great for previewing an archive before decompressing it.
Disk Imaging/Formatting/Repair
balena Etcher: A nice clean, easy-to-use program to write disk images to flash devices (USB drives, microSD cards, etc.). This is great for putting Linux distros on bootable USB drives or setting up a microSD card for a Raspberry Pi.
- Runner up goes to Rufus. It gives you more options than Etcher at the cost of some added complexity. I have also run across some images where Rufus works where Etcher fails, so it’s handy to have Rufus around even if I use Etcher most of the time. (Windows)
Ventoy serves the same purpose as a traditional disk imager, although it adds more flexibility and functions quite differently. You install Ventoy onto a USB drive via the handy Windows installer, and then you can drop as many bootable disk images (ISO, IMG, etc.) as you like onto the drive. When you boot to the USB drive, Ventoy will give you a menu to let you choose which image to boot. Super handy way of carrying several OSes in your pocket, all on a single drive. (Windows/Linux)
Macrium Reflect Free: Great for making disk images or transitioning a computer from a traditional harddrive to an SSD. The Free edition has all the essentials, and the last SSD transition I did was seamless. I highly recommend. (Windows)
EaseUS Partition Master: The Windows 10 disk management tools are limited in functionality, and sooner or later you may need a tool like this to fix/partition/format a drive. My most common use case is recovering all the space on a USB drive that has a Linux image on it, perhaps with multiple partitions, one of which is the EFI boot partition. The Windows Disk Management tools might let you delete some (but not all) partitions, while the free version of Partition Master will have you back in business in seconds. It also resizes partitions and clones disks, but the free version won’t create an image of a live OS like Macrium Reflect Free, hence I still have both listed here. (Windows)
- SD Memory Card Formatter may be a simpler solution if all you need is to fix an SD card. Some devices can be finicky about the format of SD/microSD cards, and this official application from the SD Association has fixed some obscure issues I’ve had in the past. This is especially true of SDHC/SDXC cards since Windows 10 seems to like formatting higher capacity cards as NTFS instead of FAT32.
TestDisk: If you need this, you’ve probably done something really bad like accidentally deleting a partition table. TestDisk can help you recover lost partitions, make a disk bootable again, or even recover files from deleted partitions (among other things).
Windows File Recovery
Between these programs you should be able to recover any file that is physically possible to recover without special hardware. I’m listing them all because sometimes one can get the job done where another can’t.
PhotoRec: Comes in two flavors: command line and a simple graphical interface. This is the first thing I try when I need to “undelete” pictures I accidentally deleted from an SD card. Comes with TestDisk (see above). (Windows)
Recuva: Very polished interface, and the free version has enough features for most people.
Zero Assumption Recovery: The free version has some limitations, but the digital image recovery mode has no functional limitations. (Windows)
DiskDigger: Lightweight, single exe so no install necessary. While it is free for personal use, it will nag you before recovering each and every file, so if you have a lot of files to recover, it is worth just buying it. (Windows)
Disk Performance
CrystalDiskMark: If you want to check the read/write speed of any storage device, you can’t do much better than this free MIT-licensed app. A tool like this really helps weed out the trash if you like to buy cheap SD cards or flash drives. Some are worth buying again while others aren’t, and CrystalDiskMark gives you the data to make that decision. (Windows)
The Mac port of CrystalDiskMark is AmorphousDiskMark. It is written by a different developer, but it is the same right down to the interface look/feel. (Mac)
File Deletion
Note: The advent of modern SSD drives has thrown a monkey wrench in secure deletion, so do some research before trusting that your file is really gone. (Hint: it’s probably not.)
Eraser: Secure deletion with a nice GUI and Explorer integration. Useful if you don’t like the idea of having remnants of tax returns and whatnot on drives. (Windows)
Permanent Eraser: Great file shredder for Mac. It will either wipe the files in Trash, or it will integrate into Finder in the Services menu to delete individual files. Once you get it set up (which takes a little fiddling with permissions and Automator settings) it is super easy to use. (Mac)
Disk Encryption
VeraCrypt: On-the-fly disk and file encryption. Works absolutely seamlessly with the OS so you wouldn’t even know you are using an encrypted disk. This is a continuation of the old TrueCrypt program.
Windows Disk Usage
WizTree: The best way to see which files are eating up your diskspace. It is INSANELY fast because it uses the master file table instead of querying each file. (Windows)
- Windirstat was my favorite for years, and it’s still a great option, but it is slower than Wiztree. (Windows)
Mac Disk Usage
I'm listing two equally excellent apps that take fundamentally different approaches, so I use both in different situations:
GrandPerspective creates a visual representation of your drivespace, and it excels at highlighting single files. At a glance you know where your big files are located. This helps you find that forgotten virtual machine or iso file that is eating up space. (Mac)
OmniDiskSweeper displays its data in a directory tree structure, so it's helpful for finding entire directory structures that are hogging space (perhaps an app with a ton of small files that add up). This is a simple but effective program. (Mac)
Batch File Rename
WildRename: Wonderfully robust file renaming utility that supports regular expressions. (Windows)
- I’ve already listed Microsoft PowerToys elsewhere in this list, but it’s worth mentioning that it comes with PowerRename. PowerRename has less features than WildRename, but it is still incredibly powerful while the simple interface is easier to figure out. (Windows)
Transnomino: This is my go-to renaming utility on Mac. Regular expressions, prefixfes, suffixes, numbering, case changes, you-name-it and Transnomino can do it. (Mac)
Batch Text Replacement
WildReplace: Search for files and replace text in the files. (Windows)
Backup/Synchronization
FreeFileSync: Local backup and synchronization program to do things like make nightly backups from one hard drive to another.
- For something more involved than simple “folder sync”, Duplicati might be what you need. It does incremental backups and data deduplication, and it works nicely over a network, making remote admin a breeze.
Google Drive for Desktop: For realtime cloud backup and synchronization, this is an easy solution if you’re invested into the Google ecosystem, which I am. Backs up photos and anything else I tell it.
- Maybe you don’t trust Google or you want more control of your data. If you’d rather host your own cloud, it’s hard to beat Syncthing. If it’s confusing why this is different than something like FreeFileSync, Syncthing shines at realtime continuous synchronization while FreeFileSync is geared towards a file backup that runs (for instance) once a day. The huge bonus is the Syncthing Android app, allowing you to sync files between your computer and your phone.
Windows System Utilities
Package Management/Software Installer
winget: If you wish you had Linux-like package management on Windows (e.g. apt, yum, or pacman), winget has you covered. Microsoft's new package manager isn't exactly well-advertised, but it works well and the list of supported packages is growing. On a recent Windows build, you probably already have it installed. The best feature is that it works with existing programs whether they were installed with winget or not. It integrates with the Windows "Apps and Features" interface in Settings (or the older "Programs and Features" in Control Panel) so it knows what you have installed. It isn't perfect though. Sometimes it can be frustrating working with packages with the same or similar names, or multiple versions of the same package. There's room for improvement, but I still think it works better than Chocolatey (see below).
Scoop is a command line package manager focusing on non-GUI tools to make Linux users feel at home on Windows. For instance, need to quickly install nmap or curl? Scoop is a great way to do that. There is also an "extra" bucket (i.e. repo) of tools that includes GUI apps and other tools that don't fit into the main inclusion criteria for scoop. The real selling point here is that it installs everything in your home directory (or other specified location), so you don't need admin privileges and you won't see UAC prompts every time you add or remove a program. Scoop may look redundant to winget, but it works differently enough that it is the better choice for certain situations. For me, Scoop is essential if you're stuck on a company computer without admin rights.
Honorable Mentions
- Patch My PC is pretty cool. If you don't want an overbearing package manager, but you do want up to date programs, this is a good option. It scans your installed programs, shows you which ones have available updates, and then it helps update them. It supports a decent selection of popular software, although it isn't going to cover every app on your computer. This is great for casual users.
- Not long ago Chocolatey was probably the most well-known solution to package management on Windows. It may still be a better choice for some people as it has broad package support. It supports thousands of packages, and the vast majority of the software listed on Blake's Essentials can be found there. Having said that, I wish it were more robust. I've had plenty of headaches where Chocolatey wouldn't let me uninstall software or I had weird conflicts from multiple versions of packages that I couldn't remedy. I switched to winget largely because of these issues.
- I'm guessing the most popular graphical package manager out there is Ninite. It’s great software, it's easy to use, but it just doesn’t include enough packages to really be a full-fledged package manager. If Ninite supports all the packages you want, you might want to try it first. Personally, I see Ninite as something I can use on my parents’ computer to keep their software up to date.
System Cleaner
Bleachbit will delete stuff you don’t need hanging around like logs, temporary files, “recently used” lists, thumbnails, you-name-it. There are a lot of options out there in this category, but I like Bleachbit because it’s completely free and open-source, so at least you know what it’s trying to do under the hood. Be aware that it is highly debated whether you should even use a program like this on Windows since Windows has it’s own tools to clean up after itself, and mucking about in the registry can cause problems you didn’t ask for.
- CCleaner has been around forever, and it might still be a good choice for cleaning up your system, although be aware that it seems to have lost favor in some circles due to some possibly sketchy behavior. The main advantage it has over Bleachbit is the ability to fix a plethora of registry issues. (Again, maybe it’s better to let it alone and not mess with the registry?)
Microsoft Product Key Recovery
ProduKey is super handy when you want to reinstall Windows or Office after your hard drive crashes or you just want to start fresh.. Just run this program, save the output somewhere safe, and you have your Microsoft product keys ready to go for Windows and Office.
Utilities Suites
Windows Sysinternals: This is a collection of tools that has been around since the 1990s, and was eventually acquired by Microsoft because they are so good. (And they are still being updated!) You can download the whole suite, or individual tools. I’m going to highlight just a couple here to give you the flavor of the suite, but it’s worth perusing the whole list and seeing what’s available:
- Process Explorer: If you can’t delete a file because some program has it locked, Process Explorer will tell you what program has the file handle open.
- Process Monitor: Sometimes you need to know what files a process is changing, or maybe you want to know which program is changing a file. Process Monitor, um, well, it monitors your processes to find that out.
Microsoft PowerToys: Old-timers will remember this suite for decades ago, but it’s back and better than ever (and open sourced!). This collection of Windows enhancements include adding Markdown and SVG support to the Windows Explorer preview pane, windows snapping, PowerRename, a color picker, easy image resizing, a keyboard manager that lets you remap keys, plus lots more. (Quick tip: use this to remap you CapsLock key to act like a Shift key so you aren’t aCCIDENTALLY TURNING CAPSLOCK ON. I hate that.)
Linux Environment
Windows Subsystem for Linux (WSL): Run Linux tools directly in Windows without a virtual machine. Bash, Zsh, compilers, interpreters, grep, awk, and all the rest of the command line tools you need right under Windows. You actually can download this from the Microsoft Store now (for free), so there’s no direct download link. You even have your pick of various supported distros.
VcXsrv Windows X Server: If you’re running WSL, you may want an X server to run GUI programs, and VcXsrv works great. Choose the “multiple windows” option to seamlessly integrate X programs into the Windows desktop. A couple quick tips:
Add these lines to your .bashrc file:
export DISPLAY=:0.0
export LIBGL_ALWAYS_INDIRECT=1
If you don’t want seamless windows and you want to run an X desktop window, you probably want to install something like Xfce4:
$ sudo apt-get install xfce4-terminal xfce4
If you want a bunch of default Linux desktop apps:
$ sudo apt-get install ubuntu-desktop
After starting VcXsrv, you need to start Xfce4 each session:
$ startxfce4
Mac System Utilities
Package Management/Software Installer
Homebrew: If you want an easy way to install command line tools and even some GUI apps, Homebrew gets you going with minimal hassle. There is plenty of debate on whether its approach is technically sound, but it works for me. For instance, if I want to install git, I just type:
brew install git
- The other popular option out there is MacPorts. You should at least understand how it is different before choosing Homebrew.
Latest: This is a handy tool to keep your apps up to date to the latest version. (I see what they did there.) It currently supports apps downloaded from the Mac App Store and apps that use Sparkle for updates, so it might not have your favorite app, but it has enough to be useful.
Android Support
- Android File Transfer: If you have an Android phone and a Mac, you need this to move files back and forth.
Desktop Tweaks & Utilities
Rectangle allows for complex window manipulation with key strokes. This is super handy.
Karabiner-Elements lets you remap keys. I use it to swap the Command and Control keys so I can use my muscle-memory from Windows to cut and paste.
Hyperkey is so simple, yet it has become essential for me. It lets you remap the caps-lock key to any combination of meta keys. It can be configured in any number of ways, but I have it setup so when I press caps-lock, it is the same as pressing shift-command-ctrl. Then I map that combo to whatever I like in my various apps. e.g. in VS Code, pressing caps-lock and P will run the current file in Python.
Folder Peek gives you quick access to your choice of folders right from your menu bar.
Actions adds additional functionality to Shortcuts. If you use Shortcuts, you probably can benefit from this app. The list of functionality is impressive.
System Color Picker is a simple color explorer for choosing colors and getting a text representation (hex, rgb, etc.) useful in programming, web design, and digital imagery. Includes an eye-dropper tool.
Monitor Brightness Control
MonitorControl is one of those apps I didn't know I needed. I wouldn't have looked for it, but after stumbling across it and trying it out, it's amazing. If you have an external monitor, you need this so you can control the brightness through your keyboard. It also normalizes brightness between the build-in screen and an external monitor. Super handy app.
Misc. Utilities
Uninstaller
Revo Uninstaller Free: Uninstalling programs using the usual methods often leaves a lot of junk around. Revo does a better job at really removing a program. (Windows)
AppCleaner is the best way to really uninstall apps on Mac. It gets rid of all the leftover bits that often stay behind. (Mac)
Console/Command Line
Windows Terminal is a newer offering, but the features have been steadily expanding, and it quickly became my console of choice with handy features like themes, panes, and a command palette. It happily handles PowerShell, cmd.exe, and WSL shells, as well as REPL interpreters like IPython or Julia. (Windows)
- Tabby is a ridiculously customizable terminal app that handles essentially any local shell as well as serial and SSH connections. I’ve run into some bugs that keep me from using this exclusively, but I could see this being someone's first choice due to endless customization and a beautiful interface.
- iTerm2 is the terminal you should be using instead of the default MacOS terminal. The customization options are extensive. It's one of the best terminals on any platform. (Mac)
Swiss File Knife: This is the essential command line tool set for Windows. It does a little of everything, and you need to just read the list of commands on the website to believe it. It’s a single executable, so it’s portable as well.
Clipboard Manager
CopyQ extends the standard clipboard so you can access more than just the last item copied. Advanced scripting, editing, and keyboard shortcuts make this a real powerhouse of productivity once you learn the tool.
Maccy is my preferred clipboard manager for Mac. CopyQ does work fine on Mac, but Maccy just does it better and cleaner for my usual use cases. If you don't need CopyQ's advanced scripting, Maccy gets the job done while integrating seamlessly into the Mac desktop.
Password Manager
Bitwarden is the best open source, cross-platform password manager that I’ve ever tried. And the best part is the free version is more than enough for most people. I will say even though I’m linking the Windows version here, I generally just use the browser extension, which is excellent and available for every browser. The companion mobile apps are likewise excellent.
Hex Editor
HxD: Has everything I need in a hex editor. Simple and lightweight. (Windows)
Hex Fiend: Simple and clean hex editor with all the basics. (Mac)
Virtualization
Virtualbox is the best free solution for running virtual machines. It is an easy and robust way of running Linux (and other OSes) under Windows, which is often handy for some toolchains or just testing out a script or something in a Linux environment.
Gaming
I’m not going to list actual games here, but rather just some gaming related software which facilitates playing games.
Games Launchers
Steam: Must-have for PC gaming. I prefer Steam every time I have a choice.
GOG Galaxy is the official launcher for games bought on GoG.com, but it also serves as a decent universal game library since it will work with any PC game regardless of where it was bought.
Epic Games: I’m mostly here for the free games. Occasionally there are exclusives or sales that might be worth using the Epic store.
Amazon Games: Prime members get free games, otherwise I wouldn’t bother. (Windows)
Console Emulation
RetroArch has you covered if you’re looking to play some old school games from retro systems like the Atari 2600, NES, SNES, and many more.
OpenEmu is a slick emulator for the Mac. It is easy to use and works great. (Mac)
Game… um… Enhancement
Cheat Engine: Okay, look, I don’t hate fun, but I have limited time for gaming, so sometimes when I’m enjoying the story of a single-player game but it’s kind of grindy, I’ll use Cheat Engine to give myself resources or something to reduce grinding. It’s not trivial to figure out, but it can do amazing things.
Interactive Fiction (IF) Tools
Windows Frotz: My favorite Z-machine interpreter on Windows. If you play interactive fiction games or know what Infocom games are, you probably already know what this is. This supports all the various Infocom formats: zip, dat, z5, z8, etc., including z6. (Windows)
- Frotz8 is a native Windows app based on the frotz interpreter that supports touch screens, and it has handy integration with the IF Archive. It appears to be stagnant since 2013, so I’m not expecting anything new. (Windows)
Yazmin is a capable Z-machine interpreter for the Mac. It has fairly decent feature set including dark mode, and it supports v3, v4, v5, v7, and v8. To top it all off, it comes with a nice suite of stories to get you started. (Mac: App Store Link)
Lectrote: This is my current choice for a multi-format interpreter that handles more than just Z machine files, and while it’s the new kid on the block, it has novel features like autosave. It looks really nice to me (great fonts and themes), but it uses ZVM as the Z interpreter, so it only supports Z3, Z4, Z5, & Z8. Other format support includes Glulx, Hugo, TADS, and Ink. This seems to be under active development, so we’ll see where it goes.
- Gargoyle deserves a mention because it supports every format I’ve ever run across because it is basically just a wrapper for a number of interpreters. The default (and excellent) Bocfel Z machine interpreter has partial support for z6 files too. Its other claim to fame is its focus on good typesetting, which is a really interesting niche. But be warned, it essentially has no user interface, so you need to edit a text file to change fonts and whatnot.
- Filfre: This is easier to use than Gargoyle for sure, so I’m mentioning it here, but it has minimal customization options. You might want to choose this if you need Glulx support and want an interface similar to Windows Frotz. It’s probably not the best choice for Z-Machine files because it only supports versions 3, 4, 5, and 8 story files. The project has been stagnant since 2013, so what you see is what you get. (Windows)
Trizbort: If you play IF games, you know mapping is essential, and Trizbort helps you do that. There is even an automap function that works pretty well. (Windows)
A good cross-platform alternative is Trizbort.io which is a webapp version of Trizbort with most of the same functionality. Works great in any browser. This is what I use on Mac and Linux.
Just for easy reference, here are some websites to find and download some great IF stories to use with the interpreters: