#indieweb camp veterans will remember I used to demo a web-based voice assistant called Joshua, which was self-hosted. It connected browser speech to text to an NLP back-end to run tasks without real AI - but its main party trick was to let you install a new skill from any website using a simple, open predicate signature.

Which makes me quite interested in WebMCP. A decade later, it's kind of the same thing, but at scale and mainstream. I actually don't think it needs an LLM to be useful.

My AI Manifesto

Good grief, I'm thinking and talking about AI too much. Sorry about that. I, too, am exhausted by it and after this, I will try my very best to stfu about it in public channels.

https://michaelharley.net/posts/2026/02/25/my-ai-manifesto/

#AI #IndieWeb

“Choice. The solution is choice.”*

You should download Firefox 148 (released today!) and explicitly set the new "AI Controls" to your preferred choice.
* https://www.firefox.com/

Disclosure: I work for Mozilla, but this post, like all on this site, represents my personal thoughts and opinions.

More and more software includes various “AI” features. The “quotes” are deliberate because there is an increasingly fuzzy popular understanding of what is or is not “AI” that continues to diverge from any specific technical meaning.

Many folks have expressed strong opinions against “AI” features (for lots of reasons which are worth a separate blog post), in particular in web browsers, and a desire for a simple way to disable such features.

Tentatively called an “AI kill switch”, the Firefox team developed both an overall switch to turn off or block various "AI" features by default (including any future features), and the ability to selectively enable specific features. Or vice versa (turn on by default, and selectively disable specific features).

See the official blog post for screenshots and lots more details:
* https://blog.mozilla.org/en/firefox/how-to-use-ai-controls/

I have set my own "Block AI enhancements" setting to "blocked", with the exception of enabling "Translations". Translations are a feature I use often, a feature that requires per-page activation (another degree of user-control), and runs completely locally on my browser. Nothing automatic, nothing that requires submitting what I’m reading to a random server.

For me this was an easy choice because it fits within my prior larger personal preference of using a restricted browser by default, with leaner settings, for greater security, privacy, and performance reasons. I do keep various other browser variants (and profiles) for testing purposes, experiments, or seeing what a new user may be experiencing.

The rest of this post is not about AI.

My Top Two Browser Extensions

As part a more restricted personal browser approach, for a long time I have run with two add-ons that block A LOT more by default:
* NOSCRIPT: https://addons.mozilla.org/en-US/firefox/addon/noscript/
* EFF Privacy Badger: https://addons.mozilla.org/en-US/firefox/addon/privacy-badger17/

I do not use a separate ad blocker. With NOSCRIPT, in general I don’t have to.

I prefer to explicitly grant permission to a site (domain) for its scripts to load. Some sites I use often enough that I've granted persistent permissions for their scripts. Others, third parties in particular, that I know function purely for analytics or tracking I explicitly persistently block, because they seem totally disconnected from any user benefit.

Yes it’s extra work, however, I find it worth seeing just how much each site depends on scripts, third party scripts, and how many.

It’s especially worth it when I'm on slow or intermittent wifi, where every script blocked makes a big difference in how fast a site loads. Yes this is still a problem.

The network is not the computer. The network is the weakest link.

Even now, in 2026, contrary to popular (especially developer) beliefs that fast internet access is ubiquitous, frequently it is not.

If you’re on a train, plane, or at an event with thousands of people like a concert or many conferences, your wifi or even mobile connection will be intermittent or slow at best.

Just this past Saturday at the F1 Exhibition in the San Francisco Marina, the cell networks were overwhelmed due to the crowds, with even “simple” text or chat messages failing to send. Last year at the Portola Festival their wifi was so bad that even if you managed to connect to it, simple HTML pages barely loaded, while native applications dependent on network access failed completely.

JS;DR

Many times if a site fails to display content without JavaScript, I simply close the tab.

I already have so many open tabs to read (process) that I no longer feel any need to read any particular new website that fails to show content without JavaScript. If their web developers can’t be bothered to take the time to implement progressive enhancement, why should I bother to take the time to read their content? More on this:
* https://tantek.com/2025/069/t1/ten-years-jsdr-javascript-required-didnt-read
* https://indieweb.org/js;dr

A subtler form of JavaScript failure is when a site’s content is displayed, however its buttons or even simple hyperlinks fail to function due to scripts not loading:
* https://tantek.com/2012/073/t4/js-ajax-only-tired-waiting-bloated-scripts-sxsw-wifi

Progressive Permissions

On sites that I do allow scripts, I still limit their access to cookies using the Privacy Badger add-on, and only selectively enable them if I’m logging in or otherwise customizing my experience on that site.

When websites immediately request use of a cookie disconnected from any user action that would justify a need for a cookie, it seems both presumptuous, and frankly, a bit pushy or rude. It also seems like rushed or lazy coding.

User requests are what computers are for.

A user-centric approach to any kind of permission or capability, whether cookies or personal information like location, would only request such as part of directly handling an explicit user action that requires the capability.

The simple act of viewing a website should never require cookies, location information, or any other capabilities that require special permissions. E.g.
* If I successfully log into a website, a cookie helps me stayed logged in.
* If I click a "show me my present location" button on a map site, it makes sense to request my location to fullfil that user request.

This probably could have been several blog posts.

Yet the common theme across all of these is user choice.

Whether new features, use of scripts, or privacy impacting features such as cookies or personal location, users should always have the choice and agency to say no, and customize their web browsing experience accordingly.

#Firefox #Firefox148 #AIcontrol #AIkillswitch #JSDR #UserChoice

*Top of post quote paraphrased from Neo in The Matrix Reloaded who said: “Choice. The problem is choice.”
#Firefox #Firefox148 #AIcontrol #AIkillswitch #JSDR #UserChoice

New entry in my #personalblog - Gemini Takes Flight

I'm a big fan of Gemini (not the chat bot). I lurk in BBS, I read news on a Guardian mirror, and I check aggregators for new and interesting gemlog entries. Now that I've got both my sites mirrored on there, I thought I'd write a little post about it.

#geminiprotocol - gemini://antonyfb.com/blog/gemini-takes-flight.gmi

#personalwebsite - https://antonyfb.com/blog/gemini-takes-flight.html

#SmallWeb #indieweb

سیاستمداران کانادایی همچنان وانمود می کنند که خسته نیستند. آیا این جدیدترین پلیس تورنتو کانادا را استخدام می کند؟? https://jungyulkim.com/free-press/fa/articles/سیاستمداران-قناری-به-عنوان-فساد-در-شهر-پایتخت-برتاریوس-قرار-می-گیرند.html #News #Art #Canada #NewYork #Toronto #Mafia #Crime #Indieweb #Headlines

Happy Twin Peaks day to those who celebrate!

In Agent Cooper’s first appearance in the show, he’s driving a car, right hand on the steering wheel, left hand holding a small black box (a microcassette recorder), that, if you don’t look too closely, could easily be mistaken for a regular sized black iPhone with a flush battery pack attached to its back.

You may search the web for a screen capture or video if you like, or continue with this plain text description.

He's keeping his eyes on the road, and dictating audio.

“Diane, 11:30 a.m., February 24th. Entering the town of Twin Peaks.”

In 1989 he’s dictating a log entry to his presumably human assistant, Diane, for her to transcribe after the fact.

In 2026 (notwithstanding safety and legal concerns while driving) it’s not a stretch to say he could (would likely) be dictating to his (perhaps renamed) digital assistant, Diane, or at least a speech-to-text feature in a note-taking application that would automatically transcribe his words in real time.

Those transcribed words could even be saved as a private post or draft, either locally on his device, or to his personal website, for him to review and clean-up if necessary before publishing to and notifying perhaps a limited audience.

Imagine capturing your thoughts without having to look at a screen. No scrolling to first see what others have said. No attention-distracting alerts or admintax prompts to update an application. Capture your thoughts as they occur, and continue onward, focused on your current task or project, uninterrupted.

Today’s technologies and standards should enable such an interaction, all the way through to storing your dictations in a location of your choice. I wonder if anyone has built this.

This is post 8 of #100PostsOfIndieWeb. #100Posts #IndieWeb #TwinPeaksDay

https://tantek.com/2026/007/t3/wikipedia-edited-year-in-review
→ 🔮
#100PostsOfIndieWeb #100Posts #IndieWeb #TwinPeaksDay

Happy Twin Peaks day to those who celebrate!

In Agent Cooper’s first appearance in the show, he’s driving a car, right hand on the steering wheel, left hand holding a small black box (a microcassette recorder), that, if you don’t look too closely, could easily be mistaken for a regular sized black iPhone with a flush battery pack attached to its back.

You may search the web for a screen capture or video if you like, or continue with this plain text description.

He's keeping his eyes on the road, and dictating audio.

“Diane, 11:30 a.m., February 24th. Entering the town of Twin Peaks.”

In 1989 he’s dictating a log entry to his presumably human assistant, Diane, for her to transcribe after the fact.

In 2026 (notwithstanding safety and legal concerns while driving) it’s not a stretch to say he could (would likely) be dictating to his (perhaps renamed) digital assistant, Diane, or at least a speech-to-text feature in a note-taking application that would automatically transcribe his words in real time.

Those transcribed words could even be saved as a private post or draft, either locally on his device, or to his personal website, for him to review and clean-up if necessary before publishing to and notifying perhaps a limited audience.

Imagine capturing your thoughts without having to look at a screen. No scrolling to first see what others have said. No attention-distracting alerts or admintax prompts to update an application. Capture your thoughts as they occur, and continue onward, focused on your current task or project, uninterrupted.

Today’s technologies and standards should enable such an interaction, all the way through to storing your dictations in a location of your choice. I wonder if anyone has built this.

This is post 8 of #100PostsOfIndieWeb. #100Posts #IndieWeb #TwinPeaksDay

https://tantek.com/2026/007/t3/wikipedia-edited-year-in-review
→ 🔮

Webmention 怎么还有一个拓展标准叫 Salmention,本来简单的标准怎么这么复杂了……

不过看起来要比 Webmention 完善不少,似乎 Salmention 做的只是把回应传播给上游。比如 A 发布了一篇文章,B 给 A 发了 Salmention,而 C 给 B 对 A 的回应发了 Salmention,那么 C 的 Salmention 同时也会通知 A,告知 A 收到的来自 B 的回应收到了 C 的回应。

简单来说就是支持多级评论了(

不过 Salmention 并不是 W3C 标准,没有 Webmention 那么高的待遇,实现了这个标准的软件少之又少。根据 IndieWeb Wiki,貌似只有一些个人网站自己实现了 Salmention 标准。本来用 Webmention 的人就少,拓展标准就更没人用了,这个标准已经是十年前的产物了 :piethinking:

#IndieWeb

I spent the night learning about FreeBSD. Just need to configure bastille and my jails and my raspberry pi will be ready to start hosting my blog! I already have multiple ideas for posts percolating.

#freebsd #selfhosting #indieweb

در حال حاضر کثیف تر از Gestapo، آیا پلیس تورنتو می تواند تصویر خود را با استخدام یک Mascot جدید احیا کند؟? https://jungyulkim.com/free-press/fa/articles/دموکراسی-canadian-در-معرض-خطر-در-حالی-که-حکومت-بر-توده-ها-بر-مردم.html #News #Art #Canada #NewYork #Toronto #Mob #Crime #Indieweb #Headlines

@michaelharley I don't think badges (we don't need no stinking badges?) are a good solution. Lies abound. It's VERY early... but I may have a solution? https://sigyl.org #indieweb

Re: No AI Badges

Exploring where to draw the line on AI use when it comes to displaying 'No AI' badges on your website.

https://michaelharley.net/posts/2026/02/24/re-no-ai-badges/

#AI #IndieWeb

#EN/#HU

The new #Mastodon #server is up and running!

This account is only for testing the settings.
The main account is @felhasznalo’s account! 🙂

----

Működik az új Mastodon #szerver!

Ez a fiók csak a beállítások tesztelésére szolgál.
A fő fiók @felhasznalo fiókja! :)

----

#Fediverse #SelfHosted #OpenSource #Decentralized #SocialNetwork #Tech #IndieWeb #Community #ServerAdmin

introducing bidet, a simple, easily-customizable git frontend for the #IndieWeb, written in Go. self-host your code alongside your personal webpage, and style it however you like ✨

https://nmyk.io/bidet

Webspace Invaders · Matthias Ott

There’s a power imbalance at work here that’s hard to ignore. Large “AI” companies, the ones with billions in venture capital, send their bots to harvest free content. Not only from big publishers or Wikipedia, but from small, independent websites, too. But we, the people running these sites – often as passion projects, as ways to freely share what we’ve learned, as digital gardens we tend in our spare time – we’re the ones paying for the bandwidth and server resources to handle all those additional requests while those companies profit from the training data they extract. It’s an asymmetric battle: small systems absorbing the demands generated at an entirely different, industrial scale.

#ai #machinelearning #language #models #generative #tools #technology #scrapers #bots #ddos #servers #scraping #ethics #personal #publishing #indieweb

One of the downside of self-hosting one’s own ActivityPub server is the loss of Brid.gy backfilling social reactions to one’s content.


This is why I developed this indiekit plugin, it basically translate ActivityPub activity on one’s content into JF2 format so that this page can aggregate all the interactions with my content in one place.

It also provide an API so that I can display a webmention widget in the frontend that Eleventy + AlpineJS can use to display new interactions live on the frontend.

🔗 https://rmendes.net/notes/2026/02/24/a435d