I am not sure WireGuard existed at the time, and I used SoftEther and based it all on doing outbound tunnels to TCP/443* to avoid firewall blocks in corporate networks.
You could explore full P2P by leveraging UDP hole punching: https://cloudnetworking.pro/firewall-bypass-series-1-2/ https://cloudnetworking.pro/firewall-bypass-encapsulating-tr...
(WireGuard may already do it, dunno)
Also, fun fact, tela is also Spanish for fabric. Given the Filipino history, I guess it comes from there.
* I know I know, TCP in TCP is a bad idea https://cloudnetworking.pro/tcp-over-tcp-is-a-bad-idea/
It should have occurred to me that tela is also Spanish, since about every third word I hear in a Tagalog sentence seems to be of Spanish origin.
I did not go too far unfortunately, so I did not face problems such as discoverability (do you have to know/remember all the IP addresses from the devices connected? DNS? etc).
The goal is: fretboard memorization, scales, music theory, chord construction, and performance. There's also a tuner, practice tracking, backing tracks you can jam over, and a community for sharing your gear collection.
No AI anywhere in the stack. Just a guitar, a microphone, and some monsters.
https://openfret.com/game/demo if you want to try it (free demo, no signup).
Other project is to continue a bit stalled progress of a configuration language BCL - add functions, more structures and fix some hidden scoping issues. Making languages is an endless fun. https://github.com/wkhere/bcl
Found one in Go that might interest you too: GoFM. Although I dropped my idea for now, I'd love to see yours come to life, too.
https://medium.com/@icelain/a-guide-to-building-a-realtime-h...
And then, modified a lot. At some moment I will open it back. (Author's MIT license allowed closing it; I did it actually because I embedded a number of idiosyncrasies related to the radio service that shouldn't be disclosed; but with some amount of work it can be divided into an open and closed part).
The broadcasting skeleton from that original blog/github project is good, though! It might work for your case.
Please keep in mind it's better to stream AAC than MP3. Basically any format you'd probably want to use can be converted to AAC with ffmpeg.
AAC has a simple frame format and it's easy to decipher it; I use it to always send full frames, even when one would want to skip to the next song - by doing that the client behaves more smoothly.
The idea came after I finished a permanent piece for a museum using MaxMsp and python. I always had this thought in the back of my mind that "I could express this so much easier in a few lines of code.."
here's the language spec: https://github.com/audion-lang/audion/blob/main/docs/LANGUAG...
I really liked how objects came out, I don't think it needs any more since I can do object composition.
There are some nice functions to generate rhythms and melodies with combinatorics, see src/sequences.rs and melodies.rs
Its a WIP but you can use it now to create music with whatever you want: hardware/daws/supercollider
supercollider is tightly integrated but not required. I havent had time to develop userland libraries yet but I'm working on it
Players are survivors of a global disaster that has unleashed mysterious, deadly storms. For three hours, they investigate the origin of the storms and make fateful decisions about their future as individuals and as a community.
We received Immersive Arts funding, which means we can run it in Edinburgh later this year. Here's an excerpt from our 2025 grant application about exactly what those are:
--
Our “storm sensors” are novel spatial computers designed for outdoor usage over long distances. They will house ePaper displays, LoRa (long range) radios, accelerometers, gyroscopes, and GPS chips in a 3D-printed enclosure to provide a low-tech way to augment the reality of the park. These computers will be cheaper, more rugged, longer-lived, and more capable than smartphones, deployable to locations with zero cellular service and no battery charging options.
The sensors will be mounted on top of camera tripods for deployment. Runners will carry them through the park, then position and aim them in the correct direction, as co-ordinated by “operators” using walkie talkies. This will let players feel like they are really setting up important equipment, scanning historical sites for clues (like surveyors), and establishing laser communication links. Lacking colourful touchscreens, the sensors will be less distracting for runners, helping them focus on their surroundings. Essentially, they are a highly tactile and deeply realistic way of immersing players in a post-apocalyptic setting, since such devices – not smartphones – are the most likely to be used.
I'd rather my tax dollars be wasted on people having some harmless fun compared to the other things they can be spent on.
The algorithms needed to slice up a Ghidra database into relocatable sections, and especially to recover relocations through analysis are really tricky to get right. My MIPS analyzer in particular is an eldritch horror due to several factors combining into a huge mess (branch delay slots, split HI16/LO16 relocations, code flow analysis, register graph dependency...).
The entire endeavor requires an unusual level of exacting precision to work and will produce some really exotic undefined behavior when it fails, but when it works you feel like a mechanic in a Mad Max universe, stripping programs for parts and building unholy chimeras from them, some examples I've linked in the readme. It has also led to a poster presentation to the SURE workshop at ACM CCS 2025 in Taiwan as a hobbyist, an absolutely insane story.
It does require a reasonably accurate Ghidra database to work properly, but I've had users delink megabytes of code and data from a program successfully (as in, relinking it at a different address results in a functionally identical executable) once they've cleaned it up. The accuracy warning in the readme is mostly because it's really complicated to describe exactly what inaccuracies you can get away with, there's a fair amount of wiggle room in reality as long as you know what you're doing.
The files and content are encrypted on the device and then gets to sent on server and stored encrypted and when you load the app it fetches E content and decrypts on device, with E Key (which is always stored on device, if you lose the key, you lose all data cause we don't store it)
archivist.anasdew.com
Its always fun to see what games people are building - and some of the lesser known ones are amazing!
Hoping to release next Monday
A bunch of square panels with a grid pattern to mount hold on, with the panels hanging on french cleats (with a locking system, #TODO) so the panels are easily removable so I can hang something like planters on the wall as well with the same french cleats.
No AI, a bit of computers to draw things out in CAD, but otherwise just manual building stuff.
The larger panel is going to be a volume with a bit of a hang. Panels are all tough 18mm outdoor rated 'betonplex' with phenol? resin or the surfaces.
Yes, I know that [insert LLM here] could do a lot of that conversion for me in mere minutes. No thank you. I'm doing it, in part, for the doing.
It's a node based workstation for generating live visuals using shaders, webcams, local files, and more. 100+ effects and source types.
Nottawa's aimed somewhere between the Resolume and TouchDesigner market. VJs and musicians who are interested in live visuals but don't have the time or funds to dive into a pro setup.
It's built in C++ with OpenFrameworks, ImGui, BTrack, and more. Right now I'm doing a front-end rewrite in SwiftUI which bridges back to C++ while keeping all the rendering in OpenGL.
Why only mac? I would love to see Windows support! The girhub link in the header doesn't work, it's 404.
I thought it was a website that should exist during the pandemic, so I built it. It’s been slowly growing ever since, because most of the time you really only need to add the info once.
It can reduce the number of db round-trips a lot, especially when using Supabase+RLS (or other systems that require frequent setting of configuration values that are basically fire-and-forget).
Meet Bpdbi, a library with first-class pipelining, which provides a Postgres db driver (that's binary only, as the legacy text-based protocol is no longer needed, it just takes up space) and exposes an API that's more close to Jdbi's that to JDBC's (developer friendly).
It has an extensive benchmark that shows it's on par or faster compared to other db connectivity stacks.
I've been working (on and off for over a decade) on a way to manage my unwieldy photo and video collection. I experimented with so many tools before but ultimately nothing ticked all my boxes so I wrote my own. Admittedly lots of niche stuff like proper support for UTC time, stereo photos and partial dates and things like 100% offline face detection and custom tag hierarchies and querying without a database. Each time I add a new feature I'm having a blast :)
https://apps.apple.com/si/app/fast-slow-fasting-tracker/id67...
I love Elixir but I had been a JS developer by trade. Bridging that interface keeps my brain focusing on building instead of splitting between JS and Elixir.
Still a lot to do, but I love the progress so far. This puts the joy of building something back to me.
If you're also using Paperless-ngx with ASNs or use them for something else, feedback welcome :)
(I am old, but as a kid, I remember building what the kit was supposed to build once or _maybe_ twice, but using the parts from the kit and various other kits I had to make things purely out of my head pretty mush all the time. I _think_ that's not how people "play with LEGO" these days?)
Edit: LEGO Architecture Set (not sure if they still make it) is super nice for building random stuff - it's a set of pure white bricks, super fun.
It's an ESP32 board used as sleep trainer for children.
Uses colors, images, and arcs to help them understand what time it is.
Full prototype is done but waiting for 3d printed enclosures.
Was frustrated with discovering and following online recipes (blogs are fludded with SEO content, YouTube is not optimized for recipes).
So I gave it a try to build something I wanted.
It works on Chrome and Brave for now. Planning a Firefox release soon.
If you're a chess fan, you'll probably love it, but if not, let me know why (I'll try to improve it).
https://chromewebstore.google.com/detail/leetchess/hogbcffpf...
https://github.com/bradphelan/nuke-engine/blob/trunk/USERGUI...
After a day of hating on CMake generator expressions I just wanted a proof of concept that something better is possible.
An example build is https://github.com/bradphelan/nuke-engine/blob/trunk/example...
Hyper Vector is dropping on Catalog next week!
All data are stored in text file, following the most general markdown formats, so it's easy to just open the text file and change.
Also, it supports TODO, and looking to add support for reminders, scripting support, calculation, tabular data using CSV, etc.
UI is complete keyboard driven.
Core intention is, managing your journals in single line, with really fast keyboard access, and stored in text file
Been tinkering on this Olmsted-inspired map of all the trees in NYC for a long time - just added some more features (seasonal colors and better search/filtering) recently.
If you're in NYC, try finding some cherry blossoms near you: https://exploretrees.nyc/?species=cherry
I’m making a digital ESP32 powered synthesizer at https://subalpinecircuits.com/. It’s been a ton of fun, learning so much about every part of the process (and I don’t use LLMs). Currently I’m learning FreeCAD and figuring out what my case design will be. Woodworking, CAM and DFM is a whole other world for a software guy!
The backingtrack is what I'm actively improving right now. It's just a pad running now, but it will turn into a full track with bass/drums/piano/... and will feature a comprehensive chords based editor so you can add and save your own progressions with a logged in account.
The biggest issue here is that there's not really "one" microtonal system out there. The entire fretboard of a conventional guitar is mapped to work in 12tet - and the libraries I'm using to do all the musical operations also only supports 12tet.
to accommodate all the microtonal temperaments out there would be a pretty daunting task. But I'm not saying never!
That said, not everyone using DynamoDB has the luxury of designing perfect access patterns from the start. Real production tables are often messier than the textbook examples. And for analytical or exploratory work (e.g. understanding your data, debugging a production issue, running ad-hoc reports) a slightly more expensive read is a reasonable trade-off for writing SQL in seconds rather than SDK code in minutes.
I appreciate the feedback. The cost visibility question is something worth being clearer about in the docs.
The tradeoff of doing aggregations and joins in memory just isn’t worth it.
An open-source TypeScript microservices framework I've been building solo for the 8 months. It generates and deploys an entire production-grade cloud infrastructure (VPC, gateway, WAF, observability, CI/CD) from a single config file. Multi-cloud across GCP, AWS, and Azure. Just shipped v0.2.0. Built it because I got tired of writing the same Terraform, gateway config, and CI/CD for every TypeScript project. The application code came together quickly, the infrastructure took weeks every time. Relevant to your "not AI" framing: the framework itself isn't an AI product, though it does include an MCP server so AI agents can manage the stack if you want them to.
https://github.com/tsdevstack https://tsdevstack.dev https://youtu.be/6MJ4PPPjxH8 https://dev.to/gyorgy/i-built-a-typescript-framework-that-ge...
Seems like your approach is a bit more "batteries-included" but I'd curious for your thoughts on the differences.
Is it a heavily customized SwiftUI app?
We have created a permission system within our social worlds... time to apply the same standards to the digital realm.
a full sample report: https://stackaudit.heckstet.com/scan/594?token=370cd52a-8b7f...
Also working on a journaling app but it’s still in the works.
Also, since you are in Germany, have you considered going to the next Spiel Essen board gaming convention? I haven't gotten the chance to go yet, but I imagine it would be a good way to make a lot of connections and get your gaming group known to a bunch of people.
Also, boardgamegeek/rpggeek are places where you could get your name out there(just in case you don't know about those).
Lastly, not sure how common board gaming shops/communities are over there but they are quite popular and common over here in the US so if there is any extra stuff you need to know regarding gaming shops you could probably get a lot of useful info by googling (random big US city like New York City) + "board gaming shop". Star City Games is a super popular one here and they have a high quality website that might be worth studying.
Best of luck from an aspiring board game designer!
It’s an iOS client for Cloudflare and it covers a lot of resources with this last release.
Next bit of work is to clean the swift sdk a bit and make it open source, it’s been heavily inspired by the python-cloudflare sdk.
- Janky screenshot of progress so far: https://i.imgur.com/4afs5lv.png
- 2D single player browser game
- infinite procedural generated world
- build your starship
- manage a crew
- explore, harvest, trade and plunder the universe
- Frontend: Phaser 3 + WebGL + TypeScript https://phaser.io
- Backend: Workerthread + EliCS + TypeScript https://elixr-games.github.io/elics
- I made a Discord for it and I post daily videos of progress: https://discord.gg/FZa6w2TP
- I might open source it but since I play to make this a commercial game, I'm not sure yet. But I'm glad to help anyone with similar projects if I can
My challenges with it are:
- Keeping FPS above 60
- Art. I'm very bad with art
- Having something playable within 20 days
While using a VPN, they will say "Imgur is temporarily over capacity. Please try again later." But if you don't use a VPN, then it magically works.
Meanwhile I found this random image upload website which might work:
Edit: Sorry missed the most important point. So the more users and the bigger this library gets, the less LLM usage we have, until eventually we are able to run almost fully deterministic.
Not source-available yet because it's a bunch of hacks (particularly the Python) but maybe one day.
Built an open source chrome extension to build reports to provide back to our dev team. I promote it as AI related but it's not really. It just lets me grab elements on local files visually, comment on them, and provide them to our devs as a structured brief. There's others on the market but it wasn't worth paying for something so simple so I just made it free for all!
getmarkup.dev https://github.com/noahomrilevin/getmarkup
The redeeming qualities, are that it doesn't require login, and you can just use it as a simple pomodoro timer that syncs to youtube / spotify music.
The additional features are all optional. Configuration, timeblocking, task management, etc... The features that are paid are just 1 (relatively low) price (with PPP per country). No subscriptions.
I started this project after pomofocus added giant ad banners, and had been missing some quirky things I had always wanted in a timer.
Also, all of my open source projects (https://forge.sciactive.com/sciactive) use my SciActive Human Contribution Policy (https://sciactive.com/human-contribution-policy/), which bans AI contributions.
I started looking into AT Protocol recently and find it very interesting, so I started collecting a list of decentralized products built on top of AT that are alternatives to mainstream (popular) products.
One question, I tried sharing your site with a friend and the share URL is coming up as http://localhost/ which is strange and I've never seen before. Is this something that's possible to customise via meta tag, or is this a bug in my browser (Vanadium 147 on GrapheneOS)?
<meta property="og:url" content="http://localhost/"/>
<link rel="canonical" href="http://localhost/">
Might add JSON feeds, RSS for now. Main goal was to validate if anyone is using these releases 2 years later (forks?), and the answer seems to be no. The FSL premise for delayed releases is primarily around risk mitigation (if company goes bankrupt or bought out), and that is also yet to be tested. Most FSL/BUSL forks are at the moment of license change (OpenTofu for eg).
As another datapoint, Oxide is maintaining their fork of Cockroach, but has ignored all future releases (that became FOSS).
I'm building this site to display behavioral therapy data better for parents / caregivers. The site itself is just Next.js but the essence is ETL and data visualizations using the Observable Framework[1]. There is an opportunity to apply AI for Q&A.
I want it open source and free, just building an app that I'd like to use myself.
This time it's in Godot and i want to add more interactive stuff in the virutal version, rather than just redraw the rooms with some lights synced with Home Assistant.
I initially was using SSE to push events down to the front end during long scans but decided to switch over to plain old HTTP polling for better reliability across different browsers.
Going for a 100% self-service model. No corporate sales cycles, no slide decks, no meetings. If the tool works for you, you buy it.
Targeting a June launch.
I used AI to create the first POC, and once it was proven, it was improved, and AI handled a lot of grunt work where it could. The framework was built primarily to solve my pain points
And building Fractiz, a customizable pre-coded backtests platform.
Uses government IDs that a lot of people already have and saves signed credentials to your phone. There is a server element for the verification process but it runs all in-memory (follow the Mullvad model and not even have persistent storage in the servers).
It's fun. Get to practice mobile development (Flutter), use some local GPUs, learn about the changes to JWTs for signed, selective disclosure, Bitstrings for progressive disclosure lists etc.
Landing page is https://agora.gdn/ in case anyone wants to try a beta in the future.
Named it Rocketship (LOL).
On the side, retaking https://tablam.org, that I have procrastinated because wanna provide a parser that work for editors (that is way harder than normal batch parsers!)
It's nice to do something away from the screen, without any goals besides having fun.
1. A point-and-click adventure game: making it with incredibly heavy technical constraints "just because"
2. A coding puzzle game of rapidly escalating difficulty
3. Part of #2 had me needing to craft some JSON Path queries and I felt like there wasn't anything nice to build and test them with, so I built this tool for it (inspired by the amazing regex101): https://jsonpath101.com/
4. A website where I write about text-based browser games
Also making an app / web app for memorizing Korean words, takes inspiration from Anki and Duolingo. Words go through 4 stages: 1) matching up pairs 2) Multiple choice answer 3) Writing word through blocks 4) Free-form writing.
It's testable here: https://game.tolearnkorean.com/
Feedback is very welcome.
But actual app does not matter, the main take away for me is: it is easy and fast to write bloatware (esp. with AI), but not that easy to distill to what is really needed. And what looked like a weekend project, a couple of hours max (with help of AI), now lingers for 2+ weeks on-and-off on evenings (of manual effort).
https://news.ycombinator.com/item?id=47679021
18 points | 1 day ago | 37 comments
Possibly see a use case in home labs too, but not there yet.
It's all local, no server, no database, etc. Mobile and desktop friendly.
I did build it with the help of AI, but no AI inside the actual thing.
https://trianguloy.github.io/githubPages/SplitBill/splitBill...
The UI is horrible, but I really liked doing the coding. I'm also aware of other similar sites, but this one contains the features I need.
Ultimately, we’d like to get the main FOSS hardware, software, and services into a single store. Maybe we should put AI in the name. ;-)
https://dhuan.github.io/mock/latest/examples.html
^Command line utility that lets you build APIs with just one command.
^JSON/YAML manipulation with AWK style approach.
It should be as powerful as a spreadsheet for self-tracking, but the daily usability should be more on par with a habit tracker app.
The website and waiting list for anyone interested: https://dailyselftrack.com/
Flora Carta, design and keep track of your gardens. Originally a project for myself to keep track of every rose variety (I have over a hundred) in my garden, and apple/pear/plum variety in my orchard.
No AI at all just plain old Java, JavaFX, Lucene and enough code to bring them together. I would love to get feedback if you try it!
https://github.com/prettydiff/aphorio
This project makes no use of AI.
A little bit like ansible, but then totally not like ansible.
It generates SSH-Keys. It clones repositories, installs uv and rust. It removes Snap from my Ubuntu machines and installs firefox from the mozilla repositories.
2. Writing a rich text editor library powered by pretext for cheap pagination
3. A layout engine that understands html/CSS subset for lightning fast pdf generation
Although AI is the main reason why I'm able to work on all these projects concurrently.
Named after my ‘96 Subaru Sambar kei truck, small and mighty. The other thing I’m constantly tinkering with :)
Just crossed 15k Mac and windows apps analyzed!
I'm building this mostly to scratch my own itch.
A newsfeed for Substack posts from the past 24h. Its helping me discover writers other than just what the algorithm gives me.
---
Thoughts on AI
I consciously decided not to talk about AI throughout this book. Not because I don't believe in the benefits of using AI... I do.
I believe AI will keep bringing a lot of value to society.
I believe AI will keep changing our profession in many profound ways.
But whatever happens, I believe the principles here are still going to be incredibly valuable, even if the software engineer profession ceases to exist with its current name.
We might be working at a totally different level of abstraction, but the values, principles, mental models, patterns of communication and behavior described in this book will still make a huge difference. I believe they are atemporal.
Having said that, here are my recommendations regarding AI:
- Think of AI as another tool you have to create value, just like your IDE, the code you write or the emails you send.
- Keep yourself long enough in the problem space before throwing an AI api to solve a problem that might not exist
- Unless you are working at the frontier of AI development, ignore the noise. AI is now the shiny object everyone wants to be up to date with. JavaScript frameworks were used as a joke between value-driven software engineers because there would be a new one every 6 months and a lot of people would move to it without the real need. AI changes and improves every day or week. Being on top of it is probably a full time job. Instead of following all the news on a daily basis, level up your AI game in batches every 3 or 6 months. It will be more than enough.
- The most interesting use of AI for me has been in finding out my unknowns-unknowns. One question I frequently ask is "What are the building blocks of this problem/system/piece of knowledge?"
Took some good ideas of Pascal and making it more modern. Minimal runtime, manual memory management, single (small) executable, no dependencies. Compiler itself is written in Swift and I am using QBE as a backend ATM.
Now you tell some idea of what you want and AI gives you a better thing than what you originally imagined. Then you go into a rabbit hole... simulate productivity, sales, customer, cash flow, materials for the building, make it curvy, make it pop up in 3D, populate it with NPCs, give your NPCs wages and background, write a dialogue with the ghosts of Christmas. It ends up being a game in itself.
It's good fun. It costs me $20 and I can do it and deploy it from my phone.
https://gitlab.com/ot-tools/ot-tools
i’m currently avoiding committing/releasing a bunch of changes i did last week because people are actually using the library already (the curse of writing something useful lol)
then there's another project i have, which is a download-and-run version of Minecraft, where you just download one binary (most likely an AppImage) and can run the full game. it will be for personal use so i shouldn't worry about copyright.
i'm also making my "own" minimal tiling window manager for Linux [1] (which is a fork of [2]) with my custom keybinds and [planned] controller (joystick) navigation support.
and lastly, i made yet another fetch software: jotafetch (*jota*lea's implementation of neo*fetch*). it should be available to read and download a on my website [3] (i haven't packaged it for mainstream distros yet, and i probably won't).
[1] https://github.com/Jotalea/jwm
I don't think it qualifies as AI in the modern day and age but NLP in general. It's truly amazing how easy it is to spot troll farms online and no one is doing anything about it, be it individuals, private sector or even on national level, given that those should be considered a risk for national security.
The goal is to make every recipe foolproof on the first try, similar to when you walk into a restaurant and just pick what you want to eat without thinking about the details. The goal is to have the same experience, just pick what you want to eat, with recipes that tells you exactly what to do with no magic involved.
Technically it is probably the most advanced recipe app ever made. The database is a huge graph that captures the relations between ingredients and processes. Imagine 'raw potato'->'peeled potato'->'boiled potato'->'mashed potato'. It is all the same ingredients but different processing. The lines between the nodes define the process and the nodes are physical things. Recipes are defined as subsets of the graph. The graph can also wrap around into itself, which is apparently needed to properly define some European dishes in this system. The graph also has multiple layers to capture different relationships that are not process related.
Why was it designed it in this way? Because food/cooking is extremely complex. This design is the only way I have found that can capture enough of these complex relationships that the computer can also 'understand' what is going on.
My favourite thing about this is that each recipe is strictly defined in the graph. If the recipe skips a step, or something is undefined, the computer knows that the recipe is incomplete. It won't ask you to do 10 things at the same time and then have something magically appear out of nowhere. It is like compile time checking but for recipes.
It also enables some other superpowers, for example:
• Exclude meat part of the graph = vegetarian. Same thing works with allergies.
• Include meat part of graph = only show me recipes that contain meat.
• Recursive search: search for 'potato' and the computer will know that french fries are made from potato. It can therefore tell you that you could make the hamburger meal, but you will need to complete the french fries recipe first, which should take 60 minutes.
• Adjustable recipe difficulty (experimental): It knows which steps can be done in parallell, and which can't based on how the nodes connect. A beginner can get a slower paced recipe with breathing room between steps, while someone more experienced can do a faster pace and do more things in parallell.
If I knew what it would take to build this, I would never have gotten started. I completely underestimated the complexity of the problem I was trying to solve. But here we are, and now it is basically done and working.
The website is slightly outdated but captures the key points from a non-technical point of view, and you can enter your email and get notified when it will launch in your country.
My wife and I continue to work on Uruky, a EU-based Kagi alternative [2].
Since last month we finally got our production API Key for EUSP/STAAN (it was certainly the slowest and most complicated search provider to adopt, so far), and that brought us to 5 search providers you can choose from and sort as you prefer.
We already have got over 40 paying customers (excluding family and friends, we’re guessing these paying customers came from some privacy listings and HN comments) and have exited beta last month!
Customers seem to really enjoy the simple UI (search can be used without JS) and search personalization (from choosing the providers to the domain boosting and exclusion). We also have hashbangs (like "!g", "!d", or “!e”) when something doesn’t quite give you what you’d expect, though.
You can see the main differences between Kagi and Uruky in the linked page, but one huge difference is that with Uruky, after being a paying customer for 12 months, you get a copy of the source code!
One thing we’re struggling with is outreach because we want to do it ethically, and it’s hard to find communities or places to sponsor which are privacy-focused and don’t require €5k+ deals. Ideas are welcome! Because of bots there isn’t a free trial easily available, but if you’re a human and you’d like to try it for a couple of days for free, reach out with your account number and we’ll set that up!
Thanks.
P.S.: Because people have asked before, our tech stack is intentionally very "boring" (as in, it generates and serves the HTML + bits of JS to enhance settings and such), using Deno in the backend (for easier TypeScript), PostgreSQL for the DB, and Docker for easier deploying.
P.P.S.: Because this has been also brought up before, the name has no special meaning but we read it like "Euro-key" in English. Names are hard, and we’re aware it can remind people of Uruk and Uruk-hai. That’s OK.
P.P.P.S.: Another frequent question here is “how does it work?” When you search, we query the first search provider on your list, and if it yields less than X results (only Mojeek really gives us a total count, we have to try + estimate for the others), we try the second, and so on. We then merge the results in a round-robin fashion (first of first, first of second, second of first, second of second, and so on). There’s a bit of more nuanced logic to also properly rank the results with the pin/exclude/raise/lower preferences, because it works differently across providers and not all of them support that, for example.
What I would worry about is if it reminds whoever holds Tolkien's copyrights of Uruk and Uruk-hai.
Notifactor (Android App)
A lightweight native Android app that intercepts notifications on the device and triggers actions based on configurable rules.
The app uses Android's NotificationListenerService API. Once granted notification access it receives a callback for every notification posted on the device. It then checks each notification against configured rules and runs the configured action.
Why would you want this?
I don't know why you would want this but I can tell you why I made it: to make it easier to control some functions on Android devices used by people I often help using them in some way. My mother's Android TV (which I use to communicate with her through Linphone), phone and tablet sometimes stop doing the right thing. I live about 1300 km to the north of where she lives so I can't just hop on my bike to fix things. Thus far I relied on a set of Termux scripts on these devices to keep a reverse ssh tunnel open to an endpoint on my server but this has a number of drawbacks: the tunnel is not always there when I need it due to WiFi dropouts and other similar problems and the constant connection uses battery power on the phone and tablet. If only I could cause the tunnel to be created when I need it and brought down when it is not needed... Well, that is possible using Notifactor by sending a notification on a specific channel (ntfy refers to these as topics) whereupon Notifactor runs a Termux script which manages the tunnel (etc.).
One bit of feedback, I'd love if this could be a little more aesthetic in the visualization. The method names are a little hard to read, white on light green.