Ask HN: What are some unpopular technologies you wish people knew more about?

This page summarizes the projects mentioned and recommended in the original post on news.ycombinator.com

Our great sponsors
  • LearnThisRepo.com - Learn 300+ open source libraries for free using AI.
  • WorkOS - The modern API for authentication & user identity.
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • ultimatepp

    U++ is a C++ cross-platform rapid application development framework focused on programmer's productivity. It includes a set of libraries (GUI, SQL, Network etc.), and integrated development environment (TheIDE).

    - U++ : https://www.ultimatepp.org/

  • jepsen.tarantool

    Jepsen tests for Tarantool

    Couple of things I like

    - tarantool https://www.tarantool.io/en/

  • LearnThisRepo.com

    Learn 300+ open source libraries for free using AI. LearnThisRepo lets you learn 300+ open source repos including Postgres, Langchain, VS Code, and more by chatting with them using AI!

  • firejail

    Linux namespaces and seccomp-bpf sandbox

    Firejail is cool: https://github.com/netblue30/firejail

    Linux namespaces/cgroups but nowhere near as heavy as Docker.

    I use it when I want to limit the memory of a Python script:

    ```

  • gron

    Make JSON greppable!

  • markdownload

    A Firefox and Google Chrome extension to clip websites and download them into a readable markdown file.

  • automatic-ripping-machine

    Automatic Ripping Machine (ARM) Scripts

    I really like ARM (automatic ripping machine)

    https://github.com/automatic-ripping-machine/automatic-rippi...

    Put a DVD/blu ray in a drive and it automatically determines the title, starts ripping, then pops the disc out when it's done.

    There's options for post-ripping transcoding also.

  • I really like ARM (automatic ripping machine)

    https://github.com/automatic-ripping-machine/automatic-rippi...

    Put a DVD/blu ray in a drive and it automatically determines the title, starts ripping, then pops the disc out when it's done.

    There's options for post-ripping transcoding also.

  • WorkOS

    The modern API for authentication & user identity. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.

  • webui

    Use any web browser as GUI, with your preferred language in the backend and HTML5 in the frontend, all in a lightweight portable lib.

  • Bottle

    bottle.py is a fast and simple micro-framework for python web-applications.

    Bottle.py: uber-fast and simple python web microframework, about 3x faster, saner, and more memory-efficient than Flask in my experience: https://github.com/bottlepy/bottle

    Fossil: distributed version control and much more in a single executable, from the creators of SQLite: https://fossil-scm.org/

  • vopono

    Run applications through VPN tunnels with temporary network namespaces

    Vopono (https://github.com/jamesmcm/vopono):

    "vopono is a tool to run applications through VPN tunnels via temporary network namespaces. This allows you to run only a handful of applications through different VPNs simultaneously, whilst keeping your main connection as normal.

    vopono includes built-in killswitches for both Wireguard and OpenVPN."

  • nimble

    Package manager for the Nim programming language. (by nim-lang)

    I was using Nim for some of last years Advent of Code problems. I was mostly liking the syntax. Was a bit bother by the standard library have a snake case and camel case reference for each function (if I'm remember that correctly).

    At the time nimble also required me to have NPM to install the the Nim package manager, Nimble. This was not ideal, but looking at [the nimble project install docs](https://github.com/nim-lang/nimble#installation) it seems like it is now package with the language.

    Might try dusting it off for some AoC puzzles this year :)

  • kanata

    Improve keyboard comfort and usability with advanced customization

  • RxJS

    A reactive programming library for JavaScript

  • greenclip

    Simple clipboard manager to be integrated with rofi - Static binary available

  • fasd

    Discontinued Command-line productivity booster, offers quick access to files and directories, inspired by autojump, z and v.

  • fuzzy_arg

    Ctrl-r for Alt-.

  • zim-wiki-mode

    Zim Wiki mode for emacs -- an extention of dokuwiki mode

  • emacs-dokuwiki

    Edit remote Dokuwiki pages using XML-RPC

  • zim-desktop-wiki

    Main repository of the zim desktop wiki project

  • dotconf

    [6] https://github.com/WillForan/dotconf/blob/master/bash/PS1.ba... -- bash debug trap to update prompt with escape codes that set the title to previous run command -- to eg. search windows for the terminal playing music from 'mpv'

  • postgrest

    REST API for any Postgres database

    Turn your Postgres database into a REST API: https://postgrest.org

  • imba

    🐤 The friendly full-stack language

    Imba. The best web programming language ever made.

    https://imba.io/

  • CyberChef

    The Cyber Swiss Army Knife - a web app for encryption, encoding, compression and data analysis

  • peregrine

    Execute a MySQL Stored Procedure and cache results in Redis via an Apache Module. (by codecando-x)

  • lv2

    The LV2 audio plugin specification

    The LV2 audio plugin standard[0], and related stuff like the Atom format[1] used to feed arbitrary data between plugins in realtime.

    [0] https://lv2plug.in/

  • durable-php

    Heh. https://github.com/bottledcode/durable-php is a semi-faithful php port of Orleans, borrowing some ideas from similar things too. I’ve actually been working on some really neat FFI things for this the past few weeks.

    It’s fun.

  • It could be probably much more advanced, but I went for pdoc3 for api docs and mdbook for documentation in general.

    What I really hope that exists, is a system where I can reuse the documentation (sections) in other pages, ergonomically

    I built that system multiple times to do preprocessing with things like including parts or special linking or referencing images from anyhwere

    https://github.com/xmonader/publishingtools/tree/development...

  • postgrest-js

    Isomorphic JavaScript client for PostgREST.

    At one point, I really thought it was used in Supabase. But I guess they only wrote the js wrapper for it. https://github.com/supabase/postgrest-js

    Came here to mention Hasura as well (not sure of it's popularity though) https://hasura.io/graphql/database/postgresql

  • clip.cpp

    CLIP inference in plain C/C++ with no extra dependencies

  • cosmopolitan

    build-once run-anywhere c library

  • signal-cli

    signal-cli provides an unofficial commandline, JSON-RPC and dbus interface for the Signal messenger.

  • crunch

    Linux fork of FreeBSD crunch (by ryao)

  • FreeCAD

    Link branch FreeCAD (by realthunder)

    Lithium Titanate batteries. Nothing else is lightweight, safe, currently available, and lasts 20000 cycles.

    ESPHome. It's a framework for declaratively building firmware for microcontrollers, based on rules like "This pin is an input with debouncing, when it changes, toggle this".

    Contributing to them has probably been the most fun I've had programming in years.

    We just need power management, and a C++ implementation of the Native API client. It's so close to being able to replace most of what I'd normally code by hand in Arduino.

    https://esphome.io/

    RealThunder's fork of FreeCAD: https://github.com/realthunder/FreeCAD

    They fix so many issues. Linear patterns can duplicate other linear patterns!

    Vorta: It's the best backup technology I've seen. Just an easy guided GUI for Borg, which gives you deduplication. I just wish they let you deduplicate across multiple repositories somehow.

  • esphome

    ESPHome is a system to control your ESP8266/ESP32 by simple yet powerful configuration files and control them remotely through Home Automation systems.

    Lithium Titanate batteries. Nothing else is lightweight, safe, currently available, and lasts 20000 cycles.

    ESPHome. It's a framework for declaratively building firmware for microcontrollers, based on rules like "This pin is an input with debouncing, when it changes, toggle this".

    Contributing to them has probably been the most fun I've had programming in years.

    We just need power management, and a C++ implementation of the Native API client. It's so close to being able to replace most of what I'd normally code by hand in Arduino.

    https://esphome.io/

    RealThunder's fork of FreeCAD: https://github.com/realthunder/FreeCAD

    They fix so many issues. Linear patterns can duplicate other linear patterns!

    Vorta: It's the best backup technology I've seen. Just an easy guided GUI for Borg, which gives you deduplication. I just wish they let you deduplicate across multiple repositories somehow.

  • zim-plugin-datelinker

    Quickly link and backlink entries to Zim wiki Journal's today page

    Yeah! On the actual notetaking side: I think I stumbled into a less deliberate "interstitial journaling" paradigm (a la roam research?). I setup the journal plugin to create a file per week from there keep a list of links to project specific files (hierarchies like :tools:autossh, :studies:R01grant:datashare). I also backlink from the project file to the journal file. So each page looks like a log. I try to aggressively interlink related topics/files.

    I have an ugly and now likely outdated plugin for Zim to help with this. There's a small chance the demo screenshots for it help tie together what I'm trying to say. https://github.com/WillForan/zim-plugin-datelinker

    On the tech side:

  • logseq

    A local-first, non-linear, outliner notebook for organizing and sharing your personal knowledge base. Use it to organize your todo list, to write your journals, or to record your unique life.

    My work notes (and email) has shifted into emacs but I'm still editing zimwiki formatted files w/ the many years of notes accumulated in it Though I've lost it moving to emacs, the Zim GUI has a nice backlink sidebar that's amazing for rediscovery. Zim also facilitates hierarchy (file and folder) renames which helps take the pressure off creating new files. I didn't make good use of the map plugin, but it's occasionally useful to see the graph of connected pages.

    I'm (possibly unreasonably) frustrated with using the browser for editing text. Page loads and latency are noticeably, editor customization is limited, and shortcuts aren't what I've muscle memory for -- accidental ctrl-w (vim:swap focus, emacs/readline delete word) is devastating.

    Zim and/or emacs is super speedy. Especially with local files. I using syncthing to get keep computers and phone synced. But, if starting fresh, I might look at things that using markdown or org-mode formatting instead. logseq (https://logseq.com/) looks pretty interesting there.

    Sorry! Long answer.

  • datasette

    An open source multi-tool for exploring and publishing data

    Don't overlook https://datasette.io/ even though it does much more than endpoints.

  • oy

    Git based Wiki build on top of Ramaze in spirit of the Github wiki Gollum

    Mediawiki is huge and very complex. Why not something more simple like instiki?

    Personally I would prefer a wiki with git backend. I wrote one [1] but I dont recommend using it.

    https://github.com/entropie/oy

  • tree-sitter-bash

    Bash grammar for tree-sitter

    (1) Zulip Chat - https://zulip.com/ - seems to be reasonably popular, but more people should know about it

    I’ve been using it for over 5 years now [1], and it’s as good as ever. It’s way faster than any other chat app I’ve used. It has a good UI and conversation model. It has a simple and functional API that lets me curl threads and write blog posts based on them.

    (only problem is that I Ctrl-+ in my browser to make the font bigger – I think it’s too dense for most people)

    (2) re2c regex to state machine compiler - https://re2c.org

    A gem from the 90’s, which people have done a great job maintaining and improving (getting Go and Rust target support in the last few years). I started using it in 2016, and used for a new program a few months ago. I came to the conclusion that it should have been built into C, because C has shitty string processing – and Ken Thompson both invented C AND brought regular languages to computing !!

    In comparison, treesitter lexers are very low level, fiddly, and error prone. I recently saw dozens of ad hoc fixes to the tree-sitter-bash lexer, which is unsurprising if you look at the structure of the code (manually crawling through backslashes and braces in C).

    https://github.com/tree-sitter/tree-sitter-bash/blob/master/...

    These fixes are definitely appreciated, but I think it indicates a problem with the model itself.

    (based on https://lobste.rs/s/endspx/software_you_are_thankful_for#c_y...)

    [1] https://www.oilshell.org/blog/2018/04/26.html

  • Zulip

    Zulip server and web application. Open-source team chat that helps teams stay productive and focused.

    (1) Zulip Chat - https://zulip.com/ - seems to be reasonably popular, but more people should know about it

    I’ve been using it for over 5 years now [1], and it’s as good as ever. It’s way faster than any other chat app I’ve used. It has a good UI and conversation model. It has a simple and functional API that lets me curl threads and write blog posts based on them.

    (only problem is that I Ctrl-+ in my browser to make the font bigger – I think it’s too dense for most people)

    (2) re2c regex to state machine compiler - https://re2c.org

    A gem from the 90’s, which people have done a great job maintaining and improving (getting Go and Rust target support in the last few years). I started using it in 2016, and used for a new program a few months ago. I came to the conclusion that it should have been built into C, because C has shitty string processing – and Ken Thompson both invented C AND brought regular languages to computing !!

    In comparison, treesitter lexers are very low level, fiddly, and error prone. I recently saw dozens of ad hoc fixes to the tree-sitter-bash lexer, which is unsurprising if you look at the structure of the code (manually crawling through backslashes and braces in C).

    https://github.com/tree-sitter/tree-sitter-bash/blob/master/...

    These fixes are definitely appreciated, but I think it indicates a problem with the model itself.

    (based on https://lobste.rs/s/endspx/software_you_are_thankful_for#c_y...)

    [1] https://www.oilshell.org/blog/2018/04/26.html

  • re2c

    Lexer generator for C, C++, Go and Rust.

    (1) Zulip Chat - https://zulip.com/ - seems to be reasonably popular, but more people should know about it

    I’ve been using it for over 5 years now [1], and it’s as good as ever. It’s way faster than any other chat app I’ve used. It has a good UI and conversation model. It has a simple and functional API that lets me curl threads and write blog posts based on them.

    (only problem is that I Ctrl-+ in my browser to make the font bigger – I think it’s too dense for most people)

    (2) re2c regex to state machine compiler - https://re2c.org

    A gem from the 90’s, which people have done a great job maintaining and improving (getting Go and Rust target support in the last few years). I started using it in 2016, and used for a new program a few months ago. I came to the conclusion that it should have been built into C, because C has shitty string processing – and Ken Thompson both invented C AND brought regular languages to computing !!

    In comparison, treesitter lexers are very low level, fiddly, and error prone. I recently saw dozens of ad hoc fixes to the tree-sitter-bash lexer, which is unsurprising if you look at the structure of the code (manually crawling through backslashes and braces in C).

    https://github.com/tree-sitter/tree-sitter-bash/blob/master/...

    These fixes are definitely appreciated, but I think it indicates a problem with the model itself.

    (based on https://lobste.rs/s/endspx/software_you_are_thankful_for#c_y...)

    [1] https://www.oilshell.org/blog/2018/04/26.html

  • croc

    Easily and securely send things from one computer to another :crocodile: :package:

    Check out croc, I've been using it for years, and it works pretty great too!

    https://github.com/schollz/croc

  • NoiseTorch

    Real-time microphone noise suppression on Linux.

  • marp

    The entrance repository of Markdown presentation ecosystem

    Just want to +1 this, and also add a twist. The Sphinx community also has a great extension called hieroglyph, which lets you use rST directives to build slide presentations which also double as single-page HTML notes documents.

    https://hieroglyph.readthedocs.io/en/latest/getting-started....

    This meant I could first write a blog post on learning Clojure as a Pythonista[1]; then turn some code samples and tables and images into slides I could present on my laptop or desktop[2]; and then finally publish a public notes document that audience members could use to easily study or copy-paste code examples[3]. And this is generated HTML all the way down! And, of course, I could version control and render the .rst file powering the slides / notes / etc. in GitHub.

    Note: the slides do not play well on mobile. You are meant to use keyboard arrows to advance and tap “t” to switch into tiled mode (aka slide sorter) and “c” to open a presenter console. The slides are powered by a fork of html5slides, which will look familiar if you’ve seen the JS/CSS slide template that Go core developers use in https://go.dev/talks (they generate those with “go present,” a different tool, though).

    I have also used a similar-in-spirit tool called marp (https://marp.app) for generating technical slides from source, but the output and functionality was never quite as good as rST + Sphinx + hieroglyph. The big advantages to marp: Markdown is used as the source, some tooling allows for VSCode preview, and PDF export is fully supported alongside HTML slides.

    I have a soft spot for Sphinx, not only because it was responsible for so much great documentation of Python open source libraries (including Python’s own standard library docs at python.org), but also because the first comprehensive technical docs I ever wrote for a successful commercial product were written in Sphinx. And the Sphinx-powered docs stayed thar way for a ridiculously long time before being moved to a CMS.

    [1]: https://amontalenti.com/2014/11/02/clojonic

    [2]: https://amontalenti.com/pub/clojonic/

    [3]: https://amontalenti.com/pub/clojonic/notes/

  • magic-wormhole

    get things from one computer to another, safely

  • rebol

    Source code for the Rebol interpreter

  • tinasaurus

    How about docusaurus and tinasaurus? The latter is based on TinaCMS.

    [1] Docusaurus:

    https://docusaurus.io/

    [2] Tinasaurus:

    https://github.com/tinacms/tinasaurus

  • Docusaurus

    Easy to maintain open source documentation websites.

    How about docusaurus and tinasaurus? The latter is based on TinaCMS.

    [1] Docusaurus:

    https://docusaurus.io/

    [2] Tinasaurus:

    https://github.com/tinacms/tinasaurus

  • haxe

    Haxe - The Cross-Platform Toolkit

    The Haxe programming language (https://haxe.org/). It's insane how unpopular this is compared to its value.

    "Haxe can build cross-platform applications targeting JavaScript, C++, C#, Java, JVM, Python, Lua, PHP, Flash, and allows access to each platform's native capabilities. Haxe has its own VMs (HashLink and NekoVM) but can also run in interpreted mode."

    It's mostly popular in game dev circles, and is used by: Nortgard, Dead Cells, Papers Please, ... .

  • inertia

    Inertia.js lets you quickly build modern single-page React, Vue and Svelte apps using classic server-side routing and controllers.

    Don't know if https://inertiajs.com can be classified as unpopular. but I think it's one of the best web solution combining the best of the both worlds ssr and spa.

  • tusker

    PostgreSQL migration management tool

    Big fan of tusker (https://github.com/bikeshedder/tusker) for PostgreSQL migrations. Tusker takes a SQL-first approach; You write your schema in declarative DDL (I have my entire project in one schema.sql file) and when you edit it, tusker generates the sql code required to migrate. It uses temporary test databases to run both your declarative DDL and your step-by-step migrations to ensure they are in lock step. And it can connect to live databases and diff your schema/migrations against reality. I've never seen a better toolkit for schema evolution.

  • StackStorm

    StackStorm (aka "IFTTT for Ops") is event-driven automation for auto-remediation, incident responses, troubleshooting, deployments, and more for DevOps and SREs. Includes rules engine, workflow, 160 integration packs with 6000+ actions (see https://exchange.stackstorm.org) and ChatOps. Installer at https://docs.stackstorm.com/install/index.html

  • nifi

    Apache NiFi

  • wd

    :rocket: Jump to custom directories in zsh

  • InfluxDB

    Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts