aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--INTERESTING_PROJECTS.org344
-rw-r--r--README.md4
-rwxr-xr-xblog/build.sh2
-rw-r--r--blog/content/2022/09/prolegomenos.gmi2
-rw-r--r--blog/content/notes/index.gmi1
-rw-r--r--interesting-projects/interesting-projects.gmi1372
-rw-r--r--interesting-projects/interesting-projects.py99
7 files changed, 1475 insertions, 349 deletions
diff --git a/INTERESTING_PROJECTS.org b/INTERESTING_PROJECTS.org
deleted file mode 100644
index 8c8f376f..00000000
--- a/INTERESTING_PROJECTS.org
+++ /dev/null
@@ -1,344 +0,0 @@
-I have decided to not use GitHub stars any more.
-Mainly because it excludes projects not on GitHub.
-Also keeping things in a Org mode means I can classify and add notes.
-
-* Coding
-** Version control and code management
- - https://github.com/josh-project/josh Simpler alternative to moe/copybara. [[https://github.com/rust-lang/josh-sync][Wrapper tool for CI]]
- - https://martinvonz.github.io/jj/ Alternative Git frontend
- - https://github.com/copier-org/copier/ - project templater
- - https://github.com/Skyscanner/turbolift - operating on multiple repos
- - https://github.com/sourcegraph/doctree - code browser
- - https://mergiraf.org/ - Language-aware merge conflict solver
- - https://forge.rust-lang.org/triagebot/range-diff.html show diffs after rewriting history
- - https://github.com/antonmedv/gitmal - "web repo browsing" as static site generator
- - https://opendev.org/opendev an OSS-based full infra setup- both service and blueprint
- - https://github.com/gitgitgadget/gitgitgadget - turns GitHub PRs into mailing list patches
-*** CI/CD
- - https://github.com/earthly/earthly - Standalone build tool with containers
- - https://github.com/reviewdog/reviewdog - Error parser than can annotate GitHub pull requests
- - http://jk.ozlabs.org/projects/patchwork/ - Mailing list patch parser
- - https://github.com/bazelbuild/remote-apis - Bazel's remote APIs for compiling, artifacts, and log streaming; with links to projects that support them
- - https://github.com/lima-vm/lima-actions - Lima for GitHub Actions
- - https://cloud.devenv.sh/ Nix-based CI for GitHub
- - https://github.com/cirruslabs/ - CI for GitHub, with Starlark workflow definitions that can import definitions from other places. (Cannot be self hosted, only runners.) (Has [[https://github.com/cirruslabs/cirrus-cli][an interesting CLI]].)
-** Observability
- - https://github.com/equinix-labs/otel-cli
- - https://github.com/hyperdxio/hyperdx
-** Web development
- - https://github.com/fastly/pushpin - A proxy server for adding push to your API
- - https://xtermjs.org/ - Terminals on the web
- - https://github.com/BafS/Gutenberg - Printing
- - https://github.com/barbajs/barba - Smooth transitions
- - https://github.com/kristopolous/BOOTSTRA.386
- - https://github.com/radiac/nanodjango
- - https://github.com/plone/diazo templating using "golden" HTML
-*** Frameworks
- - https://github.com/mit-pdos/noria
- - https://github.com/frappe/frappe
- - https://github.com/aquametalabs/aquameta
- - https://github.com/urweb/urweb
- - https://github.com/workflowproducts/envelope
- - https://github.com/PostgREST/postgrest
-** Notebooks
- - https://github.com/ronkok/Hurmet Pretty LaTeX-style "arithmetic" notebooks
- - https://github.com/jupytercalpoly/reactivepy
- - https://github.com/executablebooks/jupyter-book
- - https://github.com/OKUA1/juvio - Git-friendly notebooks with uv for dependencies
-** Testing
- - https://github.com/Mikuu/Micoo - visual diff testing
- - https://github.com/minimaxir/big-list-of-naughty-strings
-** Literate
- - https://github.com/kosmikus/lhs2tex
- - https://github.com/simplistix/sybil - testing in documentation
-** Distributed
- - https://github.com/unisonweb/unison
-*** RPC
-**** gRPC
- - https://github.com/grpc/grpc-web
- - https://github.com/twitchtv/twirp - Simple protobuf+HTTP RPC
-*** P2P
- - https://github.com/n0-computer/iroh
- - https://github.com/magic-wormhole/magic-wormhole
-** Data
- - https://github.com/singer-io/getting-started
- - https://github.com/dflemstr/rq - Record tool
-*** BI
- - https://github.com/getredash/redash
- - https://github.com/metabase/metabase
-*** Tabular data
- - https://github.com/gristlabs/grist-core
- - https://github.com/aardappel/treesheets
-*** Relational databases
- - https://github.com/EvgSkv/logica
- - [[https://prql-lang.org/]]
- - https://github.com/edgedb/edgedb - Graphs
- - https://github.com/lorint/AdventureWorks-for-Postgres
-**** Embedded databases
- - https://github.com/zonkyio/embedded-postgres-binaries - Embedded PostgreSQL
- - https://github.com/orm011/pgserver - Pip-installable, embedded-like postgres server for your python app
- - https://github.com/cozodb/cozo - Datalog in Rust, different backends
-**** Tools
- - https://github.com/dbcli/pgcli
- - https://github.com/okbob/pspg
- - https://github.com/djrobstep/migra
- - https://github.com/julianhyde/sqlline
- - https://github.com/monkeysintown/jdbc-ssh
- - https://github.com/xataio/pgroll PostgreSQL migrations based on switching schemas
- - https://sqlfluff.com Linter with support for multiple SQL dialects, with formatter
-**** Streaming
- - https://github.com/MaterializeInc/materialize
- - https://github.com/confluentinc/ksql
- - https://github.com/feldera/feldera
-*** Other databases
- - https://www.symas.com/mdb A Berkeley-style database where multiple processes can access the same database concurrently.
- - https://github.com/tansu-io/tansu Kafka-compatible, on top of others like SQLite, PostgreSQL, etc., seems simple on single node.
-** Low code
- - https://github.com/microsoft/Power-Fx
- - https://github.com/carltongibson/neapolitan - one of Django's authors does a variation on the Django admin?
- - https://gitlab.levitnet.be/levit/django-admin-deux - another modernized Django admin
-** Cross compilation/Windows
- - https://github.com/Jake-Shadle/xwin - sets up Linux to crosscompile to Windows
- - https://github.com/marler8997/msvcup - a standalone tool for installing the MSVC toolchain and Windows SDK without Visual Studio
-** Language-specific
-*** Python
- - https://github.com/inducer/pudb Full-screen console debugger for Python
- - https://pyoxidizer.readthedocs.io/en/latest/index.html Self-contained Python distributions, packaging, etc.
- - https://tushar.lol/post/packaged/ Uses [[https://github.com/indygreg/python-build-standalone]] to package Python applications.
- - https://github.com/bugen/pypipe Python-based AWK
- - https://github.com/fsspec/filesystem_spec/ VFS-like Python API
- - https://github.com/errbotio/errbot Multiplatform bot framework
-*** Rust
- - https://github.com/flutter-rs/flutter-rs
- - https://github.com/xTibor/rust-on-c64
- - https://crates.io/crates/crossterm
- - https://github.com/matklad/xshell - Rust as a shell replacement, with nice interpolation
- - https://github.com/bytecodealliance/cap-std - Safer, opt-in file access
- - https://www.lurklurk.org/effective-rust/ - Effective Rust, a Rust book beyond the Rust documentation
- - https://gitlab.com/DPDmancul/clap-serde-derive - derive configuration files and Clap from the same structs
-**** Async
- - https://zoo.dev/blog/introducing-delouse - Async debugging
-*** Java
- - https://github.com/jbangdev/jbang
- - https://github.com/mabe02/lanterna - TUI
- - https://github.com/testcontainers/testcontainers-java
- - https://github.com/google/error-prone
- - https://github.com/google/auto
-*** Statically-typed Lisp
- - https://lexi-lambda.github.io/hackett/
- - https://coalton-lang.github.io/
- - https://docs.racket-lang.org/ts-guide/
-*** Shells
- - https://github.com/oils-for-unix/oils/ a POSIX-style shell and a modern shell. They also document [[https://github.com/oils-for-unix/oils/wiki/Alternative-Shells][alternative shells]], and [[https://github.com/oils-for-unix/oils/wiki/Internal-DSLs-for-Shell][internal DSLs for shell]].
- - https://xon.sh/ Python shell
- - https://github.com/nushell/nushell Powershell-y shell in Rust
- - https://amber-lang.com/ Statically typed language that compiles to bash
-** Email
- - https://github.com/moggers87/salmon - Mail applications
-** Parsers
- - https://github.com/langium/langium - DSLs and LSP
- - https://github.com/hydro-project/rust-sitter - TreeSitter in Rust
- - https://github.com/jzimmerman/langcc
- - https://github.com/petitparser/dart-petitparser
- - https://github.com/metaborg/sdf
- - https://github.com/antlr/grammars-v4
- - https://github.com/tree-sitter/tree-sitter
- - https://github.com/stephan-tolksdorf/fparsec
- - https://github.com/Engelberg/instaparse
- - https://janet-lang.org/docs/peg.html - Janet is a programming language with first-class support for PEGs
- - https://craftinginterpreters.com/contents.html - Book
- - https://github.com/rulex-rs/pomsky - regex alternative
- - https://rosie-lang.org/ - another regex alternative, based on PEGs
- - https://tratt.net/laurie/blog/2020/which_parsing_approach.html - which parsing approach?
-*** DCGs/Prolog
- - https://en.wikipedia.org/wiki/Definite_clause_grammar
- - https://github.com/mthom/scryer-prolog/
- - https://github.com/rla/prolog-markdown
- - https://github.com/aarroyoc/djota/tree/main - A Djot parser in Prolog
-** Durable execution platforms
- - https://github.com/temporalio/temporal
- - https://github.com/restatedev/restate
-** WASM
- - https://github.com/yomaytk/elfconv - Converts ELF binaries to WASM
- - https://github.com/extism/extism - WASM plugin framework
-** Misc
- - https://github.com/kellyjonbrazil/jc - JSON converter for common CLI tools
- - https://github.com/open-meteo/open-meteo/
- - https://github.com/KDE/kitinerary/tree/master/src/lib/scripts - a lot of travel email scrapers (plane and train tickets, etc.)
- - https://github.com/igor-petruk/scriptisto - Generic shebang for compiling software, with RPM/DEB
- - https://github.com/acaloiaro/ess - automatically and safely synchronize env.sample files with .env
- - https://github.com/oils-for-unix/oils/wiki/Internal-DSLs-for-Shell - A discussion of libraries to do shell scripts in some programming languages
-* Systems
-** Self-hosting solutions
- - https://yunohost.org/
- - https://sandstorm.io/
- - https://casaos.zimaspace.com/
- - https://caprover.com/ (With "One click apps")
- - https://freedombox.org/
-*** Meta
- - https://github.com/0dataapp/awesome-0data?tab=readme-ov-file#easy-indie-platforms
-** File sync
- - https://github.com/opencloud-eu desktop client is a fork of Nextcloud; app is Go, seems to keep stored files as-is
- - https://thelig.ht/code/userspacefs/ - Usermode filesystem Python library that works on Windows, Linux and macOS
- - https://github.com/mutagen-io/mutagen
- - https://github.com/tkellogg/dura
- - https://github.com/perkeep/perkeep
- - https://github.com/upspin/upspin
- - https://github.com/mickael-kerjean/filestash Web file manager with org-mode support
- - https://github.com/kd2org/karadav NextCloud-compatible WebDav server
- - https://willowprotocol.org/
-** Groupware
- - https://github.com/stalwartlabs mail, calendar, contacts *and* files, using JMAP and WebDAV
-** Portable environments
- - https://github.com/linuxserver/proot-apps - Portable container apps with just proot
- - https://github.com/lkl/linux - library-mode Linux
-** Identity
- - https://github.com/kanidm/kanidm - An alternative to FreeIPA
-*** Keycloak
- - https://github.com/adorsys/keycloak-config-cli - Config as code for KeyCloak
-** Configuration management
- - https://github.com/habitat-sh/habitat
- - https://github.com/metacontroller/metacontroller Simple Kubernetes operators
-** Home automation
- - https://github.com/Yakifo/amqtt
-** PaaS
- - https://github.com/piku/piku
-*** Virtualization
- - https://github.com/lxc/cluster-api-provider-incus - adapter to provision k8s cluster nodes on Incus, including as LXC containers!
- - https://github.com/mobydeck/ssh2incus - exposes Incus instances through SSH, without SSH on the instance. Good for things that only work over SSH (Mutagen, VS Code remoting, etc.)
- - https://github.com/cirruslabs/vetu
- - https://github.com/karmab/kcli
- - https://github.com/Xe/waifud
- - https://github.com/virt-lightning/virt-lightning libvirt + cloud images
- - https://github.com/cirruslabs/tart - for macOS
-** Networking
- - https://docs.vyos.io/ Declarative network appliance
- - https://github.com/gekmihesg/ansible-openwrt
- - https://github.com/glennbrown/home-infra/tree/main/ansible/roles/openwrt-dhcp-dns ansible-openwrt samples by glenn on Ars IRC.
- - https://github.com/lanefu/clammy-ng - Raspbian on NanoPi Ansible-managed router
- - https://publicsuffix.org/ - "effective TLDs"
-*** Alternate networks
- - https://yggdrasil-network.github.io/
- - https://dn42.eu/
-*** VPN
- - https://github.com/StreisandEffect/streisand
- - https://github.com/netbirdio/netbird Tailscale-like
-*** Countermeasures
- - https://privacypass.github.io/ Human proof standard?
-** Cryptography
- - https://github.com/smallstep/certificates CA that supports ACME
- - https://github.com/FiloSottile/age - encryption tool that can use SSH keys
- - https://docs.nitrokey.com/nethsm/ - Open-source HSM (physical and virtual)
-** Remote desktops
- - https://github.com/linuxserver/docker-baseimage-kasmvnc - Web adapter for graphical applications
- - https://selkies-project.github.io/selkies/ - Replacement for KasmVNC?
- - https://moonlight-stream.org/ / https://docs.lizardbyte.dev/projects/sunshine/latest/ - Nvidia-like streaming
- - https://github.com/m1k1o/neko/
- - https://github.com/neutrinolabs/xorgxrdp - MS RDP for Linux desktops. Pay attention to "glamor" acceleration.
-** Misc
- - https://github.com/marcan/takeover.sh
- - https://github.com/ltratt/pizauth - OAuth tool
- - https://github.com/shell-pool/shpool / https://github.com/neurosnap/zmx screen or tmux, but only for detaching, should not mess with terminals
- - https://github.com/simple-login - email aliases
-* End-user software
- - https://github.com/mistweaverco/bananas Multiplaform screen sharing with multiple cursors
- - https://lalescu.ro/liviu/fet/ timetable optimizer
- - https://github.com/glide-browser/glide programmable Firefox
- - https://github.com/steveseguin/vdo.ninja Swiss army knife for WebRTC
- - https://github.com/Manawyrm/AnotterKiosk Firefox kiosk
- - https://linuxae.org.es/ Distribución GNU/Linux para el uso de la Administración Electrónica
- - https://github.com/plp13/qman Modern man reader
-** Email
- - https://github.com/simonrob/email-oauth2-proxy
- - https://pimalaya.org/ Rust email tools, including sync, MIME...
- - https://github.com/leahneukirchen/mblaze/ - CLI email "UNIX-philosophy" tools
- - https://git.sr.ht/~whynothugo/ImapGoose instant IMAP sync to local mailboxes
-*** Notmuch
- - https://github.com/gauteh/lieer - GMail
-** Phones
- - https://github.com/Genymobile/scrcpy - remote control Android
- - https://github.com/wolpi/prim-ftpd
-** Desktop
- - https://github.com/YaLTeR/niri/
- - https://github.com/kmonad/kmonad - advanced cross-platform keyboard remappings
-*** Gnome
- - https://extensions.gnome.org/extension/6000/quick-settings-audio-devices-renamer/ / https://extensions.gnome.org/extension/5964/quick-settings-audio-devices-hider/ - hide and rename audio devices
-*** Firefox
- - https://github.com/mozilla/policy-templates - some configuration as code for Firefox
-** Multimedia
-*** Video
- - https://github.com/mifi/lossless-cut Lossless video editing like Avidemux, but can preserve DVB-T subtitles
- - https://github.com/zoriya/Kyoo - Jellyfin alternative
- - https://github.com/asapach/peerflix-server - Torrent streaming server that can stream files as they download (not perfectly)
- - https://github.com/hauxir/rapidbay - Video Torrent web interface, can be set up as Magnet link handler, but downloads full file before playing
- - https://github.com/anacrolix/torrent?tab=readme-ov-file#downstream-projects - Users of a Torrent library in theory capable of streaming
-*** Document management
- - https://github.com/Stirling-Tools/Stirling-PDF - PDF manipulation webapp
- - https://github.com/mzucker/noteshrink - handwriting to PDF
-*** Music
- - https://mixxx.org/ - DJ software
-** Instant messaging
- - https://letsconvene.im/ - browser-based conversations without accounts
- - https://github.com/kiwiirc/plugin-conference - Jitsi/KiwiIRC integration
- - https://github.com/esl/MongooseIM - XMPP server with SIP interop (see https://esl.github.io/MongooseDocs/latest/tutorials/Jingle-SIP-setup/ and https://esl.github.io/MongooseDocs/latest/modules/mod_jingle_sip/)
-** Password managers
- - https://keeweb.info/ / https://github.com/PhilippC/keepass2android have built-in support for remote storage, so they do not rely on external file synchronization
-** Networking
- - https://github.com/apenwarr/blip A web application that measures connectivity
-** Presentations
- - https://github.com/panglesd/slipshow Slides, but infinite
-* Anti social
-** Platforms
- - https://github.com/taviso/nntpit - Reddit over NNTP
- - https://github.com/CyberShadow/DFeed - Web NNTP
- - https://github.com/epilys/tade / https://github.com/epilys/sic - Forum, mailing list, NNTP
- - https://koldfront.dk/git/illuminant/about/ An ActivityPub server with an NNTP interface
-*** Fediverse
- - https://github.com/bashrc2/epicyon
- - https://microblog.pub/
- - https://github.com/ihabunek/toot - Terminal Mastodon web client.
-** Pubnix
- - https://github.com/cwmccabe/pubnixhist
-** Other
- - https://github.com/SimonBrazell/privacy-redirect
- - https://github.com/benbusby/farside
- - https://github.com/timhutton/twitter-archive-parser
- - https://rss-parrot.net/ RSS to ActivityPub
- - https://github.com/prsai/irgramd Another Telegram <-> IRC bridge
-* Hardware
- - https://junkerhq.net/xrgb/index.php/OSSC - The Open Source Scan Converter is a low-latency video digitizer and scan converter designed primarily for connecting retro video game consoles and home computers to modern displays.
- - https://openterface.com/ - Adds KVM capabilities to a laptop.
- - https://www.dpin.de/nf/linux-music-making-sonic-pi-lmms-akai-mpk-usb-midi/ has software recommendations and instructions to adjust velocity on an AKAI MPK Mini
-** Phones
- - https://github.com/Dakkaron/Fairberry - add Blackberry keyboard to other phones
-* Technical writing
-** Document formats - see [[misc/document-formats.md]].
-*** Markdown
- - https://github.com/lezer-parser/markdown
- - https://github.com/markdoc/markdoc
- - https://liascript.github.io/ Markdown-based format for courses, exports to SCORM
- - https://github.com/hedgedoc/hedgedoc multiplayer Markdown editor, with [[https://demo.hedgedoc.org/features#Blockquote-Tags][cute attributed blockquotes for commenting]].
-**** Rust Parsers
- - https://github.com/kivikakk/comrak
- - https://github.com/raphlinus/pulldown-cmark
- - https://github.com/wooorm/markdown-rs
-*** Org
- - https://github.com/karlicoss/orgparse
- - https://github.com/200ok-ch/org-parser
-*** Publishing format
- - https://github.com/nota-lang/bene/
-** Spelling, etc.
- - https://github.com/bminixhofer/nlprule - LanguageTool in Rust
- - https://github.com/valentjn/ltex-ls - LanguageTool LSP with LaTeX support
- - https://github.com/jmartorell/LTlab - Spanish tools for LanguageTool
- - https://github.com/LuminosoInsight/exquisite-corpus
- - https://github.com/languagetool-org/languagetool
-** ProseMirror
- - https://github.com/ProseMirror/prosemirror-markdown
-** Diagrams
- - https://d2lang.com/ Improved Mermaid?
-* Other
- - https://github.com/jhuangtw/xg2xg
- - https://european-alternatives.eu/
- - https://developer.themoviedb.org/ rate-limited APIs for TV shows and movies with airdates
- - https://carpentries.org/ teaching materials about programming and data for scientists and librarians and https://teachtogether.tech/ their "meta" materials for teaching technology
diff --git a/README.md b/README.md
index 3cc697a1..d081b026 100644
--- a/README.md
+++ b/README.md
@@ -4,8 +4,6 @@
Como nunca tengo oportunidad de trabajar en modo monorepo, hay que aprovechar esta.
-* [Proyectos interesantes](INTERESTING_PROJECTS.org).
- Antes usaba las estrellitas de GitHub, pero de vez en cuando me encontraba algo (¡cielos!) que no estaba en GitHub (y además, las estrellitas me dan un poco de tirria).
* [Gran parte del código que soporta mi infraestructura personal](personal_infra/).
* [Ideas en las que me gustaría trabajar algún día, pero que cuelgo aquí por si algún incauto pica](IDEAS.org).
* [Mi configuración de Emacs](emacs/).
@@ -21,8 +19,6 @@ Más cosas escritas [en español](https://alex.corcoles.net/notas/) y [en inglé
(This list is shorter because some material is Spanish-only.)
-* [Interesting projects](INTERESTING_PROJECTS.org).
- Previously I used GitHub stars, but some stuff is not in GitHub (gasp!) (also, I dislike GitHub stars).
* [Most of the code for my personal infra](personal_infra/).
* [Ideas I'd like to work on someday, but mostly making them public to bait people into implementing them instead of me](IDEAS.org).
* [My emacs config](emacs/).
diff --git a/blog/build.sh b/blog/build.sh
index 97b4f0cf..d7bce2b6 100755
--- a/blog/build.sh
+++ b/blog/build.sh
@@ -8,6 +8,8 @@ HERE=$(pwd)
rm -rf $TARGET
cp -a content/ $TARGET
+python3 ../interesting-projects/interesting-projects.py >$TARGET/notes/interesting-projects.gmi
+
echo Converting gmi to html...
cd $TARGET
diff --git a/blog/content/2022/09/prolegomenos.gmi b/blog/content/2022/09/prolegomenos.gmi
index b368efcc..c3784c0a 100644
--- a/blog/content/2022/09/prolegomenos.gmi
+++ b/blog/content/2022/09/prolegomenos.gmi
@@ -4,7 +4,7 @@ Sobre otra sección de mis paranoias, Nota[1] y Djot[2] son dos nuevas promesas
=> https://nota-lang.org/ [1] Nota
=> https://github.com/jgm/djot [2] Djot
-=> https://github.com/alexpdp7/alexpdp7/blob/master/INTERESTING_PROJECTS.org[3] El sustituto de mis estrellas de GitHub
+=> ../../notes/interesting-projects [3] El sustituto de mis estrellas de GitHub
=> https://www.theverge.com/2022/8/24/23319608/blackberry-film-production-wrapped-glenn-howerton Otra paranoia distinta parece que la veremos recogida en una película épica... sobre BlackBerry.
diff --git a/blog/content/notes/index.gmi b/blog/content/notes/index.gmi
index 18b9f5ca..49bc0b60 100644
--- a/blog/content/notes/index.gmi
+++ b/blog/content/notes/index.gmi
@@ -1,6 +1,7 @@
# Notes
=> interesting-articles Interesting articles
+=> interesting-projects Interesting projects
=> greek-task-list Greek task list
## Cliff's notes
diff --git a/interesting-projects/interesting-projects.gmi b/interesting-projects/interesting-projects.gmi
new file mode 100644
index 00000000..3a24887c
--- /dev/null
+++ b/interesting-projects/interesting-projects.gmi
@@ -0,0 +1,1372 @@
+=> https://josh-project.dev/ Josh
+Synchronize parts of Git repositories. See also:
+=> https://github.com/rust-lang/josh-sync Josh sync utilities for using Josh as a CLI
+:programmed-in:rust
+:kind:daemon
+:vcs:git
+
+=> https://www.jj-vcs.dev/ Jujutsu
+VCS that integrates with Git and identifies changes
+:programmed-in:rust
+:kind:cli
+:vcs
+
+=> https://github.com/Skyscanner/turbolift turbolift
+Apply changes across many GitHub repositories simultaneously
+:programmed-in:go
+:kind:cli
+:vcs:github
+:coding:refactor
+
+=> https://mergiraf.org/ Mergiraf
+Language-aware conflict resolver
+:programmed-in:rust
+:kind:cli
+:vcs
+
+=> https://forge.rust-lang.org/triagebot/range-diff.html range-diff
+Show diffs after rewriting history
+:programmed-in:rust
+:kind:bot
+:vcs:git
+
+=> https://github.com/antonmedv/gitmal Gitmal
+Git browser as static site generator
+:programmed-in:go
+:kind:cli
+:vcs:git
+
+=> https://opendev.org/ OpenDev
+Software forge with published infrastructure as code
+:kind:service
+:tool:forge
+
+=> https://gitgitgadget.github.io/ GitGitGadget
+Turn GitHub PRs into mailing list patches
+:programmed-in:typescript
+:kind:service
+:vcs:git
+
+=> https://earthly.dev/earthfile/ Earthly
+Container-based builds
+:programmed-in:go
+:coding:build
+:kind:cli
+
+=> https://github.com/reviewdog/reviewdog reviewdog
+Post review comments from parsing build output
+:programmed-in:go
+:coding:build
+:kind:cli
+
+=> https://github.com/getpatchwork/patchwork Patchwork
+Present patches from mailing lists as a website
+:programmed-in:python
+:vcs
+:kind:service
+
+=> https://github.com/bazelbuild/remote-apis remote-apis
+Bazel's remote APIs for compiling, artifacts, and log streaming; with links to projects that support them
+:coding:build
+
+=> https://github.com/lima-vm/lima-actions Lima on GitHub Actions
+Run Lima on GitHub Actions
+:coding:build
+:vcs
+:kind:github-action
+
+=> https://github.com/equinix-labs/otel-cli otel-cli
+CLI to send OpenTelemetry traces
+:coding:observability
+:kind:cli
+:programmed-in:go
+
+=> https://hyperdx.io/ HyperDX
+Visualize OpenTelemetry data stored in ClickHouse
+:coding:observability
+:kind:service
+:programmed-in:typescript
+:uses-storage:clickhouse
+
+=> https://pushpin.org/ Pushpin
+Proxy that helps build realtime APIs
+:coding:realtime
+:programmed-in:rust
+:coding:web
+
+=> https://xtermjs.org/ xterm.js
+Terminal for web pages
+:coding:web
+:programmed-in:typescript
+
+=> https://github.com/BafS/Gutenberg Gutenberg
+Make printable websites
+:web
+:print
+:programmed-in:scss
+
+=> https://barba.js.org/ Barba.js
+Make transitions on non-SPAs smooth
+:coding:web
+:programmed-in:typescript
+
+=> https://github.com/kristopolous/BOOTSTRA.386 Bootstrap/386
+Old-school Bootstrap theme
+:coding:web
+
+=> https://nanodjango.dev/ nanodjango
+Single-file Django applications
+:web:django
+:programmed-in:python
+
+=> https://diazo.org Diazo
+HTML "golden" templates
+:coding:web
+:programmed-in:python
+
+=> https://github.com/mit-pdos/noria Noria
+MySQL-compatible database for real-time applications
+:coding:realtime
+:database
+:programmed-in:rust
+
+=> https://frappe.io/framework Frappe Framework
+Database-oriented web framework
+:web:framework
+:web:database
+:programmed-in:python
+:uses-storage:mysql
+
+=> https://github.com/aquametalabs/aquameta aquameta
+PostgreSQL-based web framework
+:web:framework
+:web:database
+:programmed-in:plpgsql
+:uses-storage:postgresql
+
+=> https://github.com/urweb/urweb Ur/Web
+Ur is a functional programming language. Ur/Web is a library for building web applications backed by SQL databases
+:web:framework
+:web:database
+:programmed-in:sml
+
+=> https://postgrest.org PostgREST
+Derives a REST API from a PostgreSQL database
+:web:database
+:programmed-in:haskell
+:uses-storage:postgresql
+
+=> https://hurmet.org/ Hurmet
+A notebook for calculations
+:coding:notebook
+:coding:language
+:kind:service
+:programmed-in:javascript
+
+=> https://github.com/jupytercalpoly/reactivepy reactivepy
+Reactive Python kernel
+:coding:notebook
+:kind:jupyter-kernel
+:programmed-in:python
+
+=> https://jupyterbook.org/ Jupyter Book
+Create books from notebooks
+:coding:notebook
+:programmed-in:python
+:print
+:writing:format
+:kind:cli
+
+=> https://github.com/OKUA1/juvio Juvio
+Reproducible Git-friendly Python notebooks
+:coding:notebook
+:programmed-in:python
+:kind:jupyter-kernel
+
+=> https://arxman.com/micoo/ Micoo
+Screenshot diff tool for testing
+:coding:testing
+:programmed-in:javascript
+:kind:service
+
+=> https://github.com/minimaxir/big-list-of-naughty-strings The Big List of Naughty Strings
+A list of strings useful to test user input risks
+:coding:testing
+
+=> https://hackage.haskell.org/package/lhs2tex lhs2tex
+Typeset Haskell code using LaTeX
+:coding:literate
+:print
+:programmed-in:haskell
+:kind:cli
+
+=> https://github.com/simplistix/sybil Sybil
+Run tests embedded in code and documentation
+:coding:literate
+:coding:testing
+:programmed-in:python
+:kind:cli
+
+=> https://www.unison-lang.org/ Unison
+Distributed programming language
+:coding:distributed
+:coding:language
+:programmed-in:haskell
+
+=> https://twitchtv.github.io/twirp/ Twirp
+Protobuf/JSON RPC over HTTP
+:coding:rpc
+:kind:framework
+:programmed-in:go
+
+=> https://www.iroh.computer/ iroh
+Protocol for establishing peer-to-peer connections over the Internet
+:coding:distributed
+:programmed-in:rust
+:kind:library
+
+=> https://github.com/magic-wormhole/magic-wormhole Magic Wormhole
+Library and tool to transfer files peer-to-peer
+:coding:distributed
+:programmed-in:python
+:kind:library
+:kind:cli
+:tool:transfer
+
+=> https://www.singer.io/ Singer
+Standard for data sources and sinks
+:coding:etl
+
+=> https://github.com/dflemstr/rq Record Query
+Convert JSON, YAML, Protobuf, CSV...
+:kind:cli
+:tool:conversion
+:programmed-in:rust
+
+=> https://redash.io/ Redash
+SQL data explorer
+:kind:service
+:tool:database
+:programmed-in:python
+
+=> https://www.metabase.com/ Metabase
+SQL data explorer
+:kind:service
+:tool:database
+:programmed-in:clojure
+
+=> https://www.getgrist.com/ Grist
+Relational spreadsheets
+:kind:service
+:tool:database
+:programmed-in:typescript
+
+=> https://strlen.com/treesheets/ TreeSheets
+Hierarchical spreadsheets
+:kind:desktop-app
+:tool:spreadsheet
+:programmed-in:cpp
+
+=> https://logica.dev/ Logica
+Prolog-like programming language that compiles to SQL
+:coding:language
+:coding:sql
+:programmed-in:python
+:compiles-to:sql
+
+=> https://prql-lang.org/ PRQL
+Pipelined relational query language that compiles to SQL
+:coding:language
+:coding:sql
+:programmed-in:rust
+:compiles-to:sql
+
+=> https://geldata.com/ Gel
+Database on top of PostgreSQL with graphs
+:kind:service
+:coding:language
+:database:graph
+:programmed-in:python
+
+=> https://github.com/lorint/AdventureWorks-for-Postgres AdventureWorks for Postgres
+Sample database
+:database:postgres
+
+=> https://github.com/zonkyio/embedded-postgres-binaries Embedded Postgres Binaries
+Embedded Postgres Binaries
+:database:postgres
+
+=> https://github.com/orm011/pgserver pgserver
+Embed PostgreSQL in Python
+:kind:library
+:uses-storage:postgresql
+:programmed-in:python
+
+=> https://github.com/cozodb/cozo CozoDB
+Embeddable Datalog database
+:kind:library
+:database:graph
+:coding:language
+:programmed-in:rust
+
+=> https://www.pgcli.com/ pgcli
+PostgreSQL CLI with autocompletion
+:kind:cli
+:tool:database
+:uses-storage:postgresql
+:programmed-in:python
+
+=> https://github.com/okbob/pspg pspg
+Pager for PostgreSQL and MySQL tables
+:kind:cli
+:tool:database
+:uses-storage:postgresql
+:uses-storage:mysql
+:programmed-in:python
+
+=> https://github.com/djrobstep/results results
+PostgreSQL tool with a diff tool
+:kind:library
+:kind:cli
+:tool:database
+:uses-storage:postgresql
+
+=> https://github.com/julianhyde/sqlline SQLLine
+CLI tool for JDBC databases
+:kind:cli
+:tool:database
+:programmed-in:java
+
+=> https://pgroll.com/ pgroll
+PostgreSQL migrations based on switching schemas
+:kind:cli
+:tool:database
+:programmed-in:go
+
+=> https://www.sqlfluff.com/ SQLFluff
+SQL linter
+:kind:cli
+:coding:linter
+:tool:database
+
+=> https://github.com/feldera/feldera Feldera
+Incremental SQL query engine
+:kind:service
+:database
+:coding:realtime
+:programmed-in:rust
+
+=> https://www.symas.com/mdb Symas LMDB
+A Berkeley-style database where multiple processes can access the same database concurrently.
+:kind:library
+:database
+:programmed-in:c
+
+=> https://github.com/tansu-io/tansu Tansu
+Kafka-compatible backed by PostgreSQL, SQLite, S3...
+:kind:service
+:database
+:programmed-in:rust
+
+=> https://github.com/carltongibson/neapolitan Neapolitan
+Quick CRUD views for Django
+:web:django
+:programmed-in:python
+:kind:library
+
+=> https://codeberg.org/emmaDelescolle/django-admin-deux django-admin-deux
+New admin for Django
+:web:django
+:programmed-in:python
+:kind:library
+
+=> https://github.com/Jake-Shadle/xwin xwin
+Cross-compile to Windows
+:kind:cli
+:coding:build
+:programmed-in:rust
+:microsoft-windows
+
+=> https://github.com/marler8997/msvcup msvcup
+CLI installer for MSVC/SDK
+:kind:cli
+:coding:build
+:programmed-in:zig
+:microsoft-windows
+
+=> https://github.com/inducer/pudb PuDB
+Full-screen console debugger for Python
+:kind:tui
+:coding:debugger
+:programmed-in:python
+
+=> https://gregoryszorc.com/docs/python-build-standalone/main/ Python standalone builds
+Python standalone builds
+:coding:distribution
+:kind:binaries
+
+=> https://packaged.live/ packaged
+Package Python applications
+:coding:distribution
+
+=> https://github.com/bugen/pypipe pypipe
+Python-based AWK
+:programmed-in:python
+:tool:data
+:kind:cli
+
+=> https://github.com/fsspec/filesystem_spec/ filesystem_spec
+Python VFS API with Fuse driver
+:programmed-in:python
+:kind:library
+:coding:vfs
+
+=> https://thelig.ht/code/userspacefs/ userspacefs
+Python VFS API
+:programmed-in:python
+:kind:library
+:coding:vfs
+
+=> https://errbot.io Errbot
+Python framework for writing bots for multiple services
+:programmed-in:python
+:kind:framework
+:instant-messaging:bot
+
+=> https://github.com/flutter-rs/flutter-rs flutter-rs
+Add Flutter UIs to Rust programs
+:programmed-in:rust
+:kind:library
+:coding:gui
+
+=> https://github.com/crossterm-rs/crossterm Crossterm
+Cross-platform terminal UI
+:programmed-in:rust
+:kind:library
+:coding:tui
+
+=> https://github.com/matklad/xshell xshell
+Scripting in Rust
+:programmed-in:rust
+:kind:library
+:coding:scripting
+
+=> https://github.com/bytecodealliance/cap-std/ cap-std
+Capability-based version of the Rust standard library
+:programmed-in:rust
+:kind:library
+:coding:security
+
+=> https://www.lurklurk.org/effective-rust/ Effective Rust
+Rust programming book
+:coding:language
+
+=> https://gitlab.com/DPDmancul/clap-serde-derive Clap and Serde derive
+Derive CLI parser and serializer from the same source
+:programmed-in:rust
+:kind:library
+
+=> https://github.com/KittyCAD/delouse delouse
+Debug Tokio code
+:programmed-in:rust
+:kind:library
+:coding:debugger
+:coding:async
+:programmed-in:rust
+
+=> https://www.jbang.dev/ jBang
+Simplify distribution of Java CLI tools
+:programmed-in:java
+:coding:distribution
+:kind:cli
+
+=> https://github.com/mabe02/lanterna Lanterna
+Library to create TUIs in Java
+:programmed-in:java
+:coding:tui
+:kind:library
+
+=> https://testcontainers.com/ Testcontainers
+Run testing services in Java, Go, Node.js, Python, Rust...
+:kind:library
+:containers
+:coding:testing
+
+=> https://errorprone.info/ Error Prone
+Static Java analyzer
+:kind:cli
+:coding:build
+:programmed-in:java
+
+=> https://github.com/google/auto Auto
+Java code generator
+:kind:cli
+:coding
+:programmed-in:java
+
+=> https://lexi-lambda.github.io/hackett/ Hackett
+Haskell-like Lisp
+:programmed-in:racket
+:coding:language
+:coding:lisp
+:coding:static-typing
+
+=> https://coalton-lang.github.io/ Coalton
+Statically-typed Lisp
+:programmed-in:common-lisp
+:coding:language
+:coding:lisp
+:coding:static-typing
+
+=> https://docs.racket-lang.org/ts-guide/ Typed Racket
+Typed Racket
+:programmed-in:racket
+:coding:language
+:coding:lisp
+:coding:static-typing
+
+=> https://github.com/oils-for-unix/oils/ Oils
+Script programming language. See also:
+=> https://github.com/oils-for-unix/oils/wiki/Internal-DSLs-for-Shell Internal DSLs for Shell
+=> https://github.com/oils-for-unix/oils/wiki/Alternative-Shells Alternative Shells
+:programmed-in:python
+:coding:language
+:kind:cli
+:tool:shell
+
+=> https://xon.sh/ Xonsh
+Python shell
+:programmed-in:python
+:coding:language
+:kind:cli
+:tool:shell
+
+=> https://www.nushell.sh/ Nu
+Shell with structured data pipelines
+:programmed-in:rust
+:coding:language
+:kind:cli
+:tool:shell
+
+=> https://amber-lang.com/ Amber
+Statically-typed language that compiles to bash
+:programmed-in:rust
+:coding:language
+:coding:static-typing
+:compiles-to:bash
+
+=> https://codeberg.org/moggers87/salmon Salmon
+Mail server to write applications in Python
+:programmed-in:python
+:kind:framework
+:mail
+
+=> https://langium.org/ Langium
+Framework for writing languages, including language servers
+:programmed-in:typescript
+:kind:framework
+:coding:languages
+:coding:parsing
+:coding:lsp
+
+=> https://github.com/hydro-project/rust-sitter Rust Sitter
+Create Tree-sitter parsers in Rust
+:programmed-in:rust
+:kind:framework
+:coding:parsing
+
+=> https://langcc.io/ langcc
+Modern lex/yacc
+:programmed-in:cpp
+:kind:framework
+:coding:parsing
+
+=> https://github.com/petitparser PetitParser
+Create parsers in Dart, Java, Dart, and Kotlin
+:kind:framework
+:coding:parsing
+
+=> https://www.metaborg.org/ The Spoofax Language Workbench
+Platform to develop languages
+:programmed-in:java
+:kind:framework
+:coding:parsing
+:coding:languages
+
+=> https://github.com/antlr/grammars-v4 grammars-v4
+ANTLR v4 grammars
+:programmed-in:antlr
+:kind:dataset
+:coding:parsing
+
+=> https://tree-sitter.github.io/tree-sitter/ Tree-sitter
+Parser generator and incremental parser
+:programmed-in:rust
+:coding:parsing
+:kind:framework
+
+=> https://github.com/stephan-tolksdorf/fparsec FParsec
+Parser combinator library for F#
+:programmed-in:f-sharp
+:coding:parsing
+:kind:library
+
+=> https://github.com/Engelberg/instaparse Instaparse
+Parser in Clojure
+:programmed-in:clojure
+:coding:parsing
+:kind:library
+
+=> https://janet-lang.org/ Janet Language
+Lisp with PEGs instead of regular expressions
+:programmed-in:c
+:coding:parsing
+:coding:language
+:coding:lisp
+
+=> https://craftinginterpreters.com/ Crafting Interpreters
+Book about writing interpreters
+:coding:parsing
+:coding:languages
+
+=> https://pomsky-lang.org/ Pomsky
+Regular expression alternative
+:coding:language
+:coding:parsing
+:programmed-in:rust
+
+=> https://rosie-lang.org/ Rosie Pattern Language
+Regular expression alternative
+:coding:language
+:kind:cli
+:coding:parsing
+:programmed-in:c
+
+=> https://tratt.net/laurie/blog/2020/which_parsing_approach.html Which Parsing Approach?
+Explains parser types
+:coding:parsing
+
+=> https://www.scryer.pl/ Scryer Prolog
+Prolog with efficient strings
+:coding:language
+:coding:prolog
+:programmed-in:rust
+
+=> https://github.com/rla/prolog-markdown prolog-markdown
+Markdown parser in SWI-Prolog
+:kind:library
+:programmed-in:prolog
+:lightweight-markup:markdown
+:coding:parser
+
+=> https://github.com/aarroyoc/djota/tree/main Djota
+Djot parser in Prolog
+:kind:library
+:programmed-in:prolog
+:lightweight-markup:djot
+:coding:parser
+
+=> https://temporal.io/ Temporal
+Durable execution platform for Go, Java, Python, etc.
+:kind:framework
+:coding:distributed
+:programmed-in:go
+
+=> https://restate.dev Restate
+Durable execution platform for Go, Java, Python, Typescript, Kotlin, Rust
+:kind:framework
+:coding:distributed
+:programmed-in:rust
+
+=> https://github.com/yomaytk/elfconv elfconv
+Converts Linux ELF binaries into WASM
+:kind:cli
+:coding:wasm
+:programmed-in:cpp
+
+=> https://extism.org/ Extism
+Write WASM plugins for many languages
+:kind:library
+:kind:framework
+:coding:wasm
+:programmed-in:rust
+
+=> https://github.com/kellyjonbrazil/jc JC
+Converts the output of many tools into JSON
+:kind:cli
+:programmed-in:python
+:coding:parser
+
+=> https://open-meteo.com/ Open-Meteo
+Open weather service, free for non-commercial use
+:kind:service
+
+=> https://github.com/KDE/kitinerary/tree/master/src/lib/scripts kitinerary parsers
+Parser for many emails containing travel information
+:kind:library
+:coding:parser
+:programmed-in:javascript
+
+=> https://github.com/igor-petruk/scriptisto Scriptisto
+Shebang for single-line scripts with dependencies, packaged in many distros
+:kind:cli
+:coding:distribution
+:programmed-in:rust
+
+=> https://github.com/acaloiaro/ess ess
+Automatically keep env.sample files in sync with .env
+:kind:cli
+:coding
+:programmed-in:go
+
+=> https://yunohost.org/ YunoHost
+Self-hosting platform
+:tool:selfhosting
+:kind:service
+:programmed-in:python
+
+=> https://sandstorm.org/ Sandstorm
+Self-hosting platform
+:tool:selfhosting
+:kind:service
+:programmed-in:javascript
+
+=> https://caprover.com/ CapRover
+Self-hosted PaaS
+:tool:paas
+:tool:selfhosting
+:kind:service
+:programmed-in:typescript
+
+=> https://www.freedombox.org/ FreedomBox
+Self-hosting UI over Debian
+:tool:selfhosting
+:kind:service
+:programmed-in:python
+
+=> https://dokku.com/ Dokku
+Heroku-like PaaS
+:tool:paas
+:kind:service
+:programmed-in:go
+
+=> https://github.com/piku/piku piku
+Heroku-like PaaS
+:tool:paas
+:kind:service
+:programmed-in:python
+
+=> https://opencloud.eu/ OpenCloud
+Nextcloud alternative
+:tool:filesync
+:kind:service
+:programmed-in:go
+
+=> https://mutagen.io/ Mutagen
+Synchronize files from your workstation to a remote host via SSH
+:tool:filesync
+:kind:cli
+:programmed-in:go
+
+=> https://github.com/tkellogg/dura Dura
+Time travel for Git working copies
+:vcs:git
+:kind:cli
+:programmed-in:rust
+
+=> https://perkeep.org/ Perkeep
+Personal data storage
+:tool:filesync
+:kind:service
+:programmed-in:go
+
+=> https://www.filestash.app/ Filestash
+Web file manager for SFTP, S3, SMB, etc.
+:tool:files
+:kind:service
+:programmed-in:go
+
+=> https://fossil.kd2.org/karadav/doc/main/README.md KaraDAV
+WebDAV server compatible with NextCloud/ownCloud clients
+:tool:filesync
+:kind:service
+:programmed-in:php
+
+=> https://stalw.art/ Stalwart
+Groupware with JMAP support
+:mail:jmap
+:kind:service
+:programmed-in:rust
+
+=> https://github.com/linuxserver/proot-apps PRoot Apps
+Unprivileged self-contained apps
+:kind:cli
+:programmed-in:shell
+:tool:distribution
+
+=> https://github.com/lkl/linux Linux Kernel Library
+Run the Linux kernel as an application
+:kind:library
+
+=> https://kanidm.com/ Kanidm
+Identity plaform
+:kind:service
+:programmed-in:rust
+:identity
+
+=> https://github.com/adorsys/keycloak-config-cli keycloak-config-cli
+Configuration as code for Keycloak
+:kind:cli
+:programmed-in:java
+:identity:keycloak
+
+=> https://metacontroller.github.io/metacontroller/ Metacontroller
+Platform to write Kubernetes controllers
+:kind:framework
+:programmed-in:go
+:kubernetes
+
+=> https://github.com/Yakifo/amqtt aMQTT
+Python MQTT broker and client
+:kind:service
+:kind:library
+:programmed-in:python
+:mqtt
+
+=> https://capn.linuxcontainers.org/ Kubernetes Cluster API Provider Incus
+Deploy Kubernetes to Incus
+:kind:service
+:programmed-in:go
+:kubernetes
+:iaas:incus
+
+=> https://ssh2incus.com/ ssh2incus
+Access Incus instances via SSH
+:kind:service
+:programmed-in:go
+:iaas:incus
+
+=> https://github.com/cirruslabs/vetu vetu
+CLI to create Linux VMs quickly
+:kind:cli
+:programmed-in:go
+:tool:vms
+
+=> https://github.com/karmab/kcli kcli
+CLI to create Linux VMs quickly on multiple VMs systems
+:kind:cli
+:programmed-in:python
+:tool:vms
+
+=> https://github.com/virt-lightning/virt-lightning virt-lightning
+CLI to create Linux VMs quickly using libvirt
+:kind:cli
+:programmed-in:python
+:tool:vms
+
+=> https://tart.run/ Tart
+CLI to create VMs quickly on macOS
+:kind:cli
+:programmed-in:swift
+:tool:vms
+:macos
+
+=> https://vyos.net/ VyOS
+Declarative network appliance
+:kind:os
+:networking
+:programmed-in:python
+:infrastructure-as-code
+
+=> https://github.com/ansible-collections/community.openwrt community.openwrt Ansible collection
+Manage OpenWRT with Ansible
+:kind:ansible
+:programmed-in:python
+:networking:openwrt
+:infrastructure-as-code
+
+=> https://github.com/glennbrown/home-infra home-infra
+Infrastructure as code setup
+:kind:ansible
+:programmed-in:ansible
+:infrastructure-as-code
+
+=> https://github.com/lanefu/clammy-ng clammy-ng
+Ansible-managed Linux router on a nanopi
+:networking
+:kind:ansible
+:programmed-in:ansible
+:infrastructure-as-code
+
+=> https://publicsuffix.org/ Public suffix list
+List of domains with open subdomain registration
+:networking:dns
+:kind:dataset
+
+=> https://yggdrasil-network.github.io/ Yggdrasil network
+Overlay Internet on top of the Internet
+:vpn:public
+:kind:service
+:programmed-in:go
+:networking
+
+=> https://dn42.eu/ dn42
+Public VPN
+:vpn:public
+:kind:service
+:networking
+
+=> https://netbird.io/ Netbird
+Tailscale alternative
+:vpn
+:networking
+:programmed-in:go
+:kind:service
+
+=> https://datatracker.ietf.org/group/privacypass/about/ Privacy Pass
+Anonymous authorization
+:kind:protocol
+:cryptography
+
+=> https://github.com/smallstep/certificates certificates
+CA
+:kind:service
+:cryptography:ca
+:programmed-in:go
+
+=> https://age-encryption.org/ age
+Encryption format that supports SSH keys
+:kind:cli
+:kind:protocol
+:programmed-in:go
+:cryptography
+
+=> https://www.nitrokey.com/products/nethsm NetHSM
+HSM appliance
+:kind:service
+:programmed-in:ocaml
+:cryptography:hsm
+
+=> https://kasm.com/kasmvnc KasmVNC
+Web VNC
+:kind:service
+:programmed-in:cpp
+:tool:remote-desktop
+
+=> https://selkies-project.github.io/selkies/ Selkies
+Web remote desktop with graphics acceleration
+:kind:service
+:programmed-in:python
+:tool:remote-desktop
+
+=> https://moonlight-stream.org/ Moonlight
+Streaming client for Nvidia GameStream protocol
+:tool:remote-desktop
+:kind:gui
+:programmed-in:cpp
+
+=> https://docs.lizardbyte.dev/projects/sunshine/latest/ Sunshine
+Streaming server for Nvidia GameStream protocol
+:tool:remote-desktop
+:kind:service
+:programmed-in:cpp
+
+=> https://neko.m1k1o.net/ Neko
+Virtual browser
+:tool:remote-desktop
+:kind:service
+:programmed-in:go
+
+=> https://www.xrdp.org/ xrdp
+Microsoft RDP implementation, including X11 driver and client
+:tool:remote-desktop
+:kind:service
+:programmed-in:c
+
+=> https://github.com/marcan/takeover.sh takeover.sh
+Take over a remote Linux system to replace the operating system
+:tool:linux
+:kind:cli
+:programmed-in:shell
+
+=> https://tratt.net/laurie/src/pizauth/ pizauth
+Oauth tool to use email accounts that require OAuth with third-party tools
+:kind:cli
+:programmed-in:rust
+:mail:oauth
+
+=> https://github.com/simonrob/email-oauth2-proxy Email Oauth 2.0 Proxy
+Oauth tool to use email accounts that require OAuth with third-party tools
+:kind:cli
+:programmed-in:python
+:mail:oauth
+
+=> https://github.com/shell-pool/shpool shpool
+Lightweight alternative to GNU screen and tmux
+:kind:cli
+:tool:terminal
+:programmed-in:rust
+
+=> https://zmx.sh/ zmx
+Lightweight alternative to GNU screen and tmux
+:kind:cli
+:tool:terminal
+:programmed-in:zig
+
+=> https://simplelogin.io/ SimpleLogin
+Email aliases
+:kind:service
+:mail
+:programmed-in:python
+
+=> https://getbananas.net/ Bananas Screen Sharing
+Screen sharing with multiple cursors
+:kind:service
+:tool:screen-sharing
+:programmed-in:typescript
+
+=> https://lalescu.ro/liviu/fet/ FET
+Timetable scheduler
+:kind:gui
+:tool:timetables
+:programmed-in:cpp
+
+=> https://glide-browser.app Glide
+Keyboard-driven Firefox
+:kind:gui
+:tool:browser
+:programmed-in:typescript
+
+=> https://vdo.ninja/ VDO.Ninja
+Swiss army for WebRTC
+:kind:service
+:tool:screensharing
+:tool:streaming
+:programmed-in:javascript
+
+=> https://github.com/Manawyrm/AnotterKiosk AnotterKiosk
+Firefox kiosk
+:kind:gui
+:firefox:kiosk
+:programmed-in:shell
+
+=> https://github.com/mozilla/policy-templates Firefox policy templates
+Manage browser programatically
+:firefox:management
+
+=> https://linuxae.org.es/ LinuxAE
+Distribución GNU/Linux para el uso de la Administración Electrónica
+:linux-distribution
+:spain
+
+=> https://github.com/plp13/qman Qman
+Modern man page viewer for terminal
+:kind:tui
+:tool:documentation
+:programmed-in:c
+
+=> https://pimalaya.org/ Pimalaya
+Email tools
+:kind:cli
+:kind:tui
+:mail:client
+:programmed-in:rust
+
+=> https://github.com/leahneukirchen/mblaze/ mblaze
+CLI for maildir
+:kind:cli
+:mail:client
+:programmed-in:c
+
+=> https://git.sr.ht/~whynothugo/ImapGoose ImapGoose
+Bidirectional sync between maildir and IMAP with real time NOTIFY
+:kind:service
+:mail:sync
+:programmed-in:go
+
+=> https://lieer.gaute.vetsj.com/ Lieer
+Use GMail with Notmuch
+:kind:service
+:mail:sync
+:mail:notmuch
+:programmed-in:python
+
+=> https://github.com/Genymobile/scrcpy scrcpy
+Control Android devices remotely
+:kind:gui
+:tool:remote-desktop
+:android
+:programmed-in:c
+
+=> https://github.com/wolpi/prim-ftpd Primitive FTPd
+SFTP server for Android
+:kind:gui
+:tool:files
+:android
+:programmed-in:java
+
+=> https://niri-wm.github.io/niri/ niri
+Wayland scrollable-tiling compositor
+:desktop-environment:wayland
+:desktop-environment:scrollable-tiling
+:programmed-in:rust
+
+=> https://github.com/kmonad/kmonad KMonad
+Keyboard manager
+:kind:service
+:tool:keyboard
+:programmed-in:haskell
+
+=> https://losslesscut.app/ LosslessCut
+Edit video losslessly
+:kind:gui
+:tool:video
+:programmed-in:typescript
+
+=> https://github.com/zoriya/kyoo Kyoo
+Media server
+:kind:service
+:tool:video
+:programmed-in:typescript
+
+=> https://github.com/asapach/peerflix-server peerflix-server
+Streaming torrent client with web ui
+:kind:service
+:tool:video
+:p2p:torrent
+:programmed-in:javascript
+
+=> https://github.com/hauxir/rapidbay Rapid bay
+Streaming torrent client with web ui
+:kind:service
+:tool:video
+:p2p:torrent
+:programmed-in:python
+
+=> https://github.com/anacrolix/torrent torrent
+Torrent library with streaming video support. See README for projects using it
+:kind:library
+:p2p:torrent
+:programmed-in:go
+
+=> https://www.stirling.com/ Stirling
+PDF manipulation tool
+:kind:service
+:print:pdf
+:programmed-in:java
+
+=> https://github.com/mzucker/noteshrink noteshrink
+Convert scanned handwriting to PDF
+:kind:cli
+:print:pdf
+:programmed-in:python
+
+=> https://mixxx.org/ Mixxx
+Open source DJ software
+:kind:gui
+:tool:dj
+:programmed-in:cpp
+
+=> https://letsconvene.im/ Convene
+Browser-based conversations without accounts
+:kind:service
+:instant-messaging:matrix
+
+=> https://github.com/kiwiirc/plugin-conference KiwiIRC - Audio / Video conferencing
+Integrate Jitsi Meet with Kiwi IRC
+:kind:service
+:instant-messaging:irc
+
+=> https://keeweb.info/ KeeWeb
+Desktop and browser app for KeePass with sync
+:kind:service
+:kind:gui
+:tool:password
+:programmed-in:javascript
+
+=> https://github.com/PhilippC/keepass2android Keepass2Android
+Android for KeePass with sync
+:kind:gui
+:tool:password
+:programmed-in:c-sharp
+:android
+
+=> https://github.com/apenwarr/blip blip
+Web ping
+:kind:service
+:networking
+:programmed-in:javascript
+
+=> https://slipshow.org/
+Infinite presentations
+:kind:cli
+:kind:gui
+:tool:slides
+:programmed-in:ocaml
+
+=> https://github.com/CyberShadow/DFeed DFeed
+NNTP/mailing list/forum/ATOM/IRC
+:kind:service
+:social
+:programmed-in:d
+:nntp
+:mail
+
+=> https://github.com/epilys/sic sic
+Link aggregator
+:kind:service
+:social
+:programmed-in:python
+
+=> https://koldfront.dk/git/illuminant/about/ Illuminant
+ActivityPub server with an NNTP interface
+:kind:service
+:social:activitypub
+:nntp
+:programmed-in:haskell
+
+=> https://libreserver.org/epicyon/ Epicyon
+ActivityPub server that does not require Javascript, usable as PWA
+:kind:service
+:social:activitypub
+:programmed-in:python
+
+=> https://github.com/tsileo/microblog.pub microblog.pub
+Single user ActivityPub microblog
+:kind:service
+:social:activitypub
+:programmed-in:python
+
+=> https://github.com/ihabunek/toot Toot
+Mastodon CLI client
+:kind:tui
+:social:activitypub
+:programmed-in:python
+
+=> https://github.com/benbusby/farside Farside
+Redirect social websites to alternative frontends
+:kind:service
+:social
+:programmed-in:go
+
+=> https://github.com/timhutton/twitter-archive-parser twitter-archive-parser
+Parse and republish your Twitter archive
+:kind:cli
+:social:twitter
+:programmed-in:python
+
+=> https://rss-parrot.net/ RSS Parrot
+RSS to ActivityPub
+:kind:service
+:social:activitypub
+:rss
+:programmed-in:go
+
+=> https://src.presi.org/darcs/irgramd irgramd
+IRC Telegram gateway
+:kind:service
+:instant-messaging:irc
+:instant-messaging:telegram
+
+=> https://junkerhq.net/xrgb/index.php/OSSC Open Source Scan Converter
+Connect old devices to modern displays
+:hardware:retro
+
+=> https://openterface.com/ Openterface
+Turn laptops and computers into KVMs
+:hardware:kvm
+
+=> https://www.dpin.de/nf/linux-music-making-sonic-pi-lmms-akai-mpk-usb-midi/ Linux Music Making – Sonic Pi, LMMS, AKAI MPK USB MIDI
+Using AKAI MPK in Linux
+:hardware
+
+=> https://github.com/Dakkaron/Fairberry Fairberry
+And a Blackberry Q10 keyboard to a phone
+:hardware
+
+=> https://code.haverbeke.berlin/lezer/markdown @lezer/markdown
+Commonmark parser using Lezer
+:kind:library
+:coding:parser
+:lightweight-markup:markdown
+:programmed-in:typescript
+
+=> https://github.com/kivikakk/comrak Comrak
+Commonmark parser
+:kind:library
+:coding:parser
+:lightweight-markup:markdown
+:programmed-in:rust
+
+=> https://github.com/pulldown-cmark/pulldown-cmark pulldown-cmark
+Commonmark parser
+:kind:library
+:coding:parser
+:lightweight-markup:markdown
+:programmed-in:rust
+
+=> https://github.com/wooorm/markdown-rs markdown-rs
+Commonmark parser
+:kind:library
+:coding:parser
+:lightweight-markup:markdown
+:programmed-in:rust
+
+=> https://github.com/karlicoss/orgparse orgparse
+org-mode parser
+:kind:library
+:coding:parser
+:lightweight-markup:org
+:programmed-in:python
+
+=> https://github.com/200ok-ch/org-parser org-parser
+org-mode parser
+:kind:library
+:coding:parser
+:lightweight-markup:org
+:programmed-in:clojure
+
+=> https://markdoc.dev/ Markdoc
+Documentation site builder that uses Markdown
+:kind:cli
+:programmed-in:typescript
+:lightweight-markup:markdown
+:tool:documentation
+
+=> https://liascript.github.io/ LiaScript
+Interactive course builder that uses Markdown. Exports to SCORM, ePUB...
+:kind:service
+:programmed-in:elm
+:lightweight-markup:markdown
+:tool:documentation
+:education
+
+=> https://hedgedoc.org/ HedgeDoc
+Collaborative Markdown editor with with cute attributed blockquotes for commenting
+:kind:service
+:programmed-in:typescript
+:lightweight-markup:markdown
+:tool:documentation
+
+=> https://github.com/nota-lang/bene/ Bene
+A Lightweight EPUB Reader
+:kind:service
+:kind:gui
+:tool:documentation
+:epub
+
+=> https://github.com/jhuangtw/xg2xg xg2xg
+List of Google internal tools and alternatives
+:directory
+
+=> https://european-alternatives.eu/ European alternatives
+List of European services
+:directory
+
+=> https://developer.themoviedb.org/ TMDB
+Rate-limited APIs for TV shows and movies with airdates
+:public-api
+
+=> https://carpentries.org/ The Carpentries
+Teaching community
+:education
diff --git a/interesting-projects/interesting-projects.py b/interesting-projects/interesting-projects.py
new file mode 100644
index 00000000..01f50905
--- /dev/null
+++ b/interesting-projects/interesting-projects.py
@@ -0,0 +1,99 @@
+import pathlib
+import random
+
+
+class Link:
+ def __init__(self, s):
+ self.link, *rest = s.split("\n")
+ self.tags = [l for l in rest if l.startswith(":")]
+ self.gemtext = "\n".join([l for l in rest if not l.startswith(":")])
+
+ def __repr__(self):
+ return repr(self.__dict__)
+
+ def __str__(self):
+ res = ""
+ res += self.link
+ res += "\n"
+ res += self.gemtext
+ res += "\n"
+ res += " ".join(self.tags)
+ return res
+
+parts = (pathlib.Path(__file__).parent / "interesting-projects.gmi").read_text().rstrip().split("\n\n")
+links = list(map(Link, parts))
+
+concrete_tags = dict()
+
+for link in links:
+ for tag in link.tags:
+ tag_parts = list(filter(None, tag.split(":")))
+ for i, tag_part in enumerate(tag_parts):
+ concrete_tag = tuple(tag_parts[0:i+1])
+ concrete_tag_links = concrete_tags.get(concrete_tag, set())
+ concrete_tag_links.add(link)
+ concrete_tags[concrete_tag] = concrete_tag_links
+
+
+TARGET_SIZE = 5
+
+
+def is_undesirable(tag):
+ return (
+ (tag == ("kind",))
+ or (tag == ("coding",))
+ or (tag == ("kind", "cli",))
+ or (tag == ("kind", "framework",))
+ or (tag == ("kind", "gui",))
+ or (tag == ("kind", "library",))
+ or (tag == ("kind", "service",))
+ or (tag == ("kind", "tui",))
+ or (tag == ("kind", "desktop-app",))
+ or (tag == ("coding", "static-typing",))
+ or (tag[0] in ("programmed-in", "uses-storage", "compiles-to",))
+ )
+
+
+chosen_tags = dict()
+
+while concrete_tags:
+ concrete_tags_sizes = {concrete_tag: len(links) for concrete_tag, links in concrete_tags.items() if not is_undesirable(concrete_tag)}
+ sizes = list(set(concrete_tags_sizes.values()))
+ sizes_distance_to_target = sorted(sizes, key=lambda size: abs(size-TARGET_SIZE))
+ optimal_size = sizes_distance_to_target[0]
+
+ if optimal_size == 0:
+ break
+
+ concrete_tags_of_optimal_size = [concrete_tag for concrete_tag, links in concrete_tags.items() if len(links) == optimal_size and not is_undesirable(concrete_tag)]
+
+ chosen_tag = random.choice(concrete_tags_of_optimal_size)
+ chosen_links = concrete_tags[chosen_tag]
+
+ chosen_tags[chosen_tag] = chosen_links
+
+ for concrete_tag, links in concrete_tags.items():
+ links = [l for l in links if l not in chosen_links]
+ concrete_tags[concrete_tag] = links
+
+print("# Interesting projects")
+print()
+print("I do not like GitHub stars, and every day there are more projects outside GitHub")
+print()
+
+previous_tag = None
+
+for tag in sorted(list(chosen_tags.keys())):
+ if previous_tag and len(tag) > 1 and previous_tag[0] != tag[0]:
+ print("##", tag[0])
+ print()
+
+ print("#" * (len(tag) + 1), " / ".join(tag))
+ print()
+ for link in chosen_tags[tag]:
+ print(link.link)
+ print(link.gemtext)
+ print(" ".join(link.tags))
+ print()
+
+ previous_tag = tag