Tom Oliver
I've only been using Kagi for a couple of days now, but the search results on programming topics are leagues better than Duckduckgo. I may be a little late to the party, but just realised that you can have shared state between pages without polluting _app.tsx in NextJS. I credit Kagi for taking me to this page where I learned about getLayout.
https://nextjs.org/docs/pages/building-your-application/routing/pages-and-layouts#per-page-layouts
Here is how to add Kagi as your default search engine to Firefox on NixOS (home-manager)
NIX
home-manager.users.<my-user>.programs.firefox = {enable = true;profiles = {myProfile = {...search = {force = true;default = "Kagi";engines = {"Kagi" = {urls = [{template = "https://kagi.com/search?q={searchTerms}";}];iconUpdateURL = "https://assets.kagi.com/v2/favicon-32x32.png";updateInterval = 24 * 60 * 60 * 1000; # every daydefinedAliases = [ "@kg" ];...