Sign in

Achille Lacoin

@pomdtr.me
298 followers 667 following 228 posts

Currently working on smallweb.run, your internet folder. github.com/pomdtr

PostsRepliesMedia
Achille Lacoin @pomdtr.me · 04/12/2025
Got this error when walking my first trail then clicking on go back. I must admit I did not quite get what was the purpose of the app 😅
100
Achille Lacoin @pomdtr.me · 02/10/2025
The @smallweb.run atproto integration is progressing well. Thanks to @slices.network, I'm able to get a public table of all my smallweb apps (accross multiple smallweb instances), then query it from anywhere using a typed api client !
// deno-lint-ignore no-import-prefix
import { AtProtoClient } from "https://esm.smallweb.run/slice@e3c3789/src/generated_client.ts";

const client = new AtProtoClient(
  "https://api.slices.network",
  "at://did:plc:ovreo3dlfroo4ztkep3kjlle/network.slices.slice/3m25liqjjnh2o",
);

const { records } = await client.run.smallweb.app.getRecords({
  where: {
    name: {
      eq: "blog",
    },
  },
});

// [
//   "https://blog.smallweb.run",
//   "https://blog.pomdtr.me",
// ]
console.log(records.map((r) => r.value.url));
0504
Achille Lacoin @pomdtr.me · 29/09/2025
Playing with this idea of integrating @smallweb.run with atproto. Current design: you install an atproto app, which regularly publish your smallweb apps as atproto records using crons. It will also exposes xrpc endpoints. Then, I'll create an appview which aggregates and present those records.
a list of apps stored as atproto records
1152
Achille Lacoin @pomdtr.me · 07/09/2025
Chrome now support split views behind a flag ! www.reddit.com/r/ArcBrowser...
screenshot of the split view feature of chrome
070
Achille Lacoin @pomdtr.me · 06/09/2025
Adding a little text editor to the tweety chrome extension because why not ? github.com/pomdtr/tweety
a tweety tab containing a text editor
010
Achille Lacoin @pomdtr.me · 19/07/2025
Small poem left by an unknown visitor on the @smallweb.run demo. Thanks!
000
Achille Lacoin @pomdtr.me · 04/07/2025
A cool usecase for `text` and `bytes` import coupled with smallweb -> serving a static website from a `gh-pages` branch in just two lines ! You can browse the website from here: mkdocs.pomdtr.me
// ~/smallweb/pomdtr.me/mkdocs
import { StaticServer } from "https://esm.pomdtr.me/static-server@48c4803/mod.ts";

export default new StaticServer({
  root: "https://raw.githubusercontent.com/mkdocs/mkdocs/refs/heads/gh-pages",
});
040
Achille Lacoin @pomdtr.me · 01/07/2025
The next release of @smallweb.run add a module registry to each smallweb instance (think @jsr.io, but self-hosted). It will allow you to easily share your apps between smallweb instance, or to easily create different environment for your apps (ex: prod / staging / dev...)
snippet showing how to reference a smallweb app from another instance
130
Achille Lacoin @pomdtr.me · 17/06/2025
I'm getting tired of seeing that all my social apps are run by assholes. After leaving twitter, looks like I'll uninstall telegram. There is no legitimate reason for giving visibility to a fascist like tucker carlson. (english translation in the alt)
The founder of Telegram, Pavel Durov, gave his first video interview since his arrest in Paris last August.

As the creator of Telegram, Pavel Durov is accused in France of being an “accomplice” to any crimes that Telegram users might commit. Such charges against the head of a popular platform are unprecedented worldwide.

In the interview, Pavel recounts the story of his arrest and how the initial accusations against Telegram were refuted with evidence. The real reasons behind the investigation against him remain a mystery.
001
Achille Lacoin @pomdtr.me · 05/06/2025
Wow, my tweety article got mentioned on @changelog.com
tweety article mentioned on changelog
1131
Achille Lacoin @pomdtr.me · 05/06/2025
Just released the firefox version of tweety, a terminal distributed as a web extension. And of course, it also work from @zen-browser.app !
tweety running in the zen browser
230
Achille Lacoin @pomdtr.me · 05/06/2025
Tweety is running on firefox!
tweety running on firefox
141
Achille Lacoin @pomdtr.me · 05/06/2025
They even have url for branch and commits!
preview url for branches and commit s
030
Achille Lacoin @pomdtr.me · 05/06/2025
Wow it looks like Deno Deploy get user domains right. Projects get deployet at: <project>.<org-name>.deno.net, with support for custom domains. I've been wanting that for @val.town for a long time !
screeshot of the deno deploy dashboard
240
Achille Lacoin @pomdtr.me · 03/06/2025
This one is quite meta: a tweety tab screenshotting itself using `chrome.tabs.captureVisibleTab`
screenshot of the tweety tab screenshotting itself
010
Achille Lacoin @pomdtr.me · 03/06/2025
Another nice tweety helper: cloning the repo opened in the current tab in a predefined location: ~/Developer/github.com/<user>/<repo>
cloning the current tab github repo in a predefined location using `tweety clone-repo`
010
Achille Lacoin @pomdtr.me · 03/06/2025
I'm getting a bunch of these weird recruiting emails, often from AI startups. They do not feel personalized (I'm quite bad at react). Is it a common experience once one of your repos hit a threshold of stars ?
cold recruiting email
010
Achille Lacoin @pomdtr.me · 03/06/2025
Slowly replacing most of my chrome extension by tweety scripts. Ex: Extracting RSS feeds from the @piccalil.li website using a deno script!
extracting rss feeds from a piccalilli website#!/usr/bin/env -S deno run -A

import { DOMParser } from "npm:linkedom"

const { TWEETY_SOCKET } = Deno.env.toObject();

async function tweety(client: Deno.HttpClient, method: string, params: unknown[] = []) {
    const resp = await fetch("http://localhost/jsonrpc", {
        client,
        method: "POST",
        body: JSON.stringify({
            jsonrpc: "2.0",
            id: crypto.randomUUID(),
            method,
            params,
        })
    })

    if (!resp.ok) {
        throw new Error(`Failed to fetch: ${resp.status} ${resp.statusText}`);
    }

    return resp.json();
}

const client = Deno.createHttpClient({
    proxy: {
        transport: "unix",
        path: TWEETY_SOCKET,
    }
})

const { result: tab } = await tweety(client, "tabs.get", []);

const { result: html } = await tweety(client, "tabs.print", [tab.id]);

const doc = new DOMParser().parseFromString(html, "text/html")

const links = doc.querySelectorAll("link[rel='alternate'][type='application/rss+xml'], link[rel='alternate'][type='application/atom+xml']");
if (links.length === 0) {
    console.error("No RSS or Atom feed found in the document.");
    Deno.exit(1);
}

for (const link of links) {
    console.log(new URL(link.getAttribute("href"), tab.url).toString())
}
171
Achille Lacoin @pomdtr.me · 02/06/2025
What's better than summarizing your own blog posts:
summarizing a blog post via tweety
130
Achille Lacoin @pomdtr.me · 02/06/2025
Lol this is sooo powerful. Hey @detahq.bsky.social, I'm also building an AI browser (kinda)
piping the current tab content to mods in order to summarize a readme
120
Achille Lacoin @pomdtr.me · 02/06/2025
New feature: the ability to print the content of a tab to stdout from tweety ! Next in the list: the ability to open any page in your default editor, and to update it's content on save.
html content of a tab printed out in the tweety window
030
Achille Lacoin @pomdtr.me · 02/06/2025
Just released the v2 of tweety, which convert it to a chrome extension ! I'm super proud of mechanism I found to forward the chrome extension api to the tweety cli. You can use it to automate your browser using simple scripts written in any language 🤯
tweety cli used to query the active chrome tabs
220
Achille Lacoin @pomdtr.me · 02/06/2025
tweety terminals running from the new tab page, the devtools and the side panel
320
Achille Lacoin @pomdtr.me · 01/06/2025
I reworked tweety to exposes the chrome api on an unix socket using JSON-RPC, meaning that you can control your browser from an external terminal or any script !
an instance of tweety running in ghostty used to query arc
040
Achille Lacoin @pomdtr.me · 01/06/2025
I'm playing with adding an extension api to tweety, inspired by raycast script commands. It allows you to mix the chrome extension api and shell tools !
an example script command for tweety
010
Achille Lacoin @pomdtr.me · 31/05/2025
Ok using tweety from the popup window is quite neat
accessing the current tab url from the shell
050
Achille Lacoin @pomdtr.me · 31/05/2025
I'm working on converting tweety to a chrome extension, and it opens some really neat usecases. Ex: querying the chrome extension api from the shell !
listing of the opened tabs from a tweety terminal
030
Achille Lacoin @pomdtr.me · 30/05/2025
I kinda love getting those strong reactions on my latest blog post about tweety. The second one is just such a weird thing to send to a random stranger. lobste.rs/s/9j9wdi/cas...
Well, that's cursed.Browser bookmarks for shell commands? Count me out please. Clearly somebody doesn’t actually spend that much time using CLI tools. Maybe try atuin or something that actually makes the shell experience better instead of just papering over the bits you can’t be bothered to remember.
030
Achille Lacoin @pomdtr.me · 29/05/2025
I still have a hard time understanding how to get noticed on hackernews, but my first article blog post is at the top of lobste.rs !
040
Achille Lacoin @pomdtr.me · 26/05/2025
Working on a v2 of github.com/pomdtr/tweety, it's quite fun !
tweety running in the arc browser, showing an htop tab
040
Achille Lacoin @pomdtr.me · 18/05/2025
Just updated the @excalidraw.com extension to be able to create link to local files. marketplace.visualstudio.com/items?itemNa... We are approaching 300K installs !
071
Achille Lacoin @pomdtr.me · 16/05/2025
@smallweb.run just appeared in a polish newsletter!
040
Achille Lacoin @pomdtr.me · 06/05/2025
Do any of you know where @smallweb.run has been shared in the past week ? I'm only aware of @piccalil.li newsletter, and I wonder if there is anything else.
040
Achille Lacoin @pomdtr.me · 05/05/2025
Plan for today: adapt tinyfeed to run as a smallweb app ! github.com/TheBigRoomXX...
120
Achille Lacoin @pomdtr.me · 29/04/2025
Looks like a lot of new people are discovering @smallweb.run right now ! I'll be demoing it in the next future of coding virtual meetup on wednesday: lu.ma/6531cavq?tk=...
050
Achille Lacoin @pomdtr.me · 07/04/2025
🤔
100
Achille Lacoin @pomdtr.me · 23/03/2025
Looks like this is getting addressed !
020
Achille Lacoin @pomdtr.me · 21/03/2025
These kind of feedback keeps me going on @smallweb.run !
050
Achille Lacoin @pomdtr.me · 20/03/2025
linkding.link is awesome, but using it as a subdomain has consequences... I guess google thinks I'm trying to fish linkedin users ?
010
Achille Lacoin @pomdtr.me · 11/03/2025
Just released a new version of the @excalidraw.com integration for @vscode.dev ! It includes all new features released in the websites for the past year. It's by far my most successful project, and tbh I would really like some help maintaining it, as I'm not really using the extension anymore 😅
070
Achille Lacoin @pomdtr.me · 02/03/2025
I kinda love the concept behind, and the domain is sweet editable.website Now I want to own small.website, but damn it is expensive !
010
Achille Lacoin @pomdtr.me · 22/02/2025
Hey! Just tried it with the following code, and I got an error. Any idea from where this could be coming from ? My server is running debian
110
Achille Lacoin @pomdtr.me · 13/02/2025
I just love this hackernews comment, it summarize quite well what I'm trying to achieve with @smallweb.run
261
Achille Lacoin @pomdtr.me · 07/02/2025
Hey @tldraw.com, looks like the api key is expired on tldraw.computer
010
Achille Lacoin @pomdtr.me · 29/01/2025
I was a bit tired of my work on smallweb, so I decided to give sunbeam a bit of love. Expect a V3 soon! (sunbeam is command-line launcher inspired by @raycast.com, which can be extended with any language)
120
Achille Lacoin @pomdtr.me · 27/01/2025
Thanks to latest @esm.sh release, I found a new way to embed a full-stack app like @excalidraw.com into a single @jsr.io import: Try it out at excalidraw.smallweb.run
1163
Achille Lacoin @pomdtr.me · 19/01/2025
@smallweb.run v0.21 will allow you to trigger apps from your email client! Each app will get it's own email address at <app>@<your-domain> So many cool usecases: - creating temporary inboxes for spams - forward emails to any apps Basically, a self-hosted alternative to cloudflare email workers!
061
Achille Lacoin @pomdtr.me · 16/01/2025
TIL: curl is an awesome smtp client!
191
Achille Lacoin @pomdtr.me · 16/12/2024
Smallweb 0.19 was just released! It includes a new installation script that allows you to have smallweb running on a fresh new vps in less than a minute. curl -fsSL install.smallweb.run/vps.sh | sh Read the full release notes at blog.smallweb.run/posts/v0.19/
141
Achille Lacoin @pomdtr.me · 12/12/2024
Coming soon to smallweb: an easy way to install an app as a cli in your $PATH!
130