HN user

jmadeano

259 karma
Posts2
Comments60
View on HN
A simple web we own 5 months ago

I enjoyed the article, but I’m skeptical of the “democratize via hardware + networking” path. Most people won’t run a Pi, manage updates/backups, or debug home networking, and that’s fine (as you note).

But I do think we’re reaching a turning point on the software side. The barrier to building custom, personalized apps is trending toward 0. I’m not naive enough to think every grandma will suddenly start asking ChatGPT to “build me an app to do XYZ,” but with the right UX it can be implicit. Imagine you tell an assistant: “My doctor says my blood sugar is high. Research tips to reduce it.” -> it not only replies with tips, it also proactively builds a custom app (that you own and control) for tracking your blood sugar (measurements, meals, reminders, charts, etc.). You can edit it by describing changes (“add a weekly trend graph,” “don’t nag me after 8pm,” etc.).

This doesn’t fully solve your Big Co control issue (they own the flagship models today), but open-weight + local options keep improving. I'm hopeful we have a chance to tip the scales back toward co-owner and participant.

Ah I see what happened. From those links, I can see the pattern for the script is *://news.ycombinator.com/item?id=* . Some browsers don't support the wildcard (*) in the query param, so it would be better if that match pattern was *://news.ycombinator.com/item* .

In other words, it isn't that the script does nothing, rather the script isn't actually being applied/running on the page. You can verify this by opening the extension on the page, going to Library tab, and seeing if the script appears in "Modifications for Current Page" or "Other Modifications"

I already updated the agent so that it will should no longer generate match tags like that. Try again and hopefully it should work (and let me know if not).

Thanks for the comment and sorry for the trouble!

Thanks for replying. I wasn't expecting a reply since the thread was so popular and there were a bunch of comments :)

The only way you can build a product that people love is by talking to people, so I am doing my best to keep up with all the feedback here!

To your main question: Tampermonkey has >11M downloads, which seems like a lot but at the scale of YouTube, Facebook, etc. the impact is largely inconsequential. I could understand concern about truly policy violating scripts (spam content/requests, etc.) but much of what people seem to want so far is basic Quality of Life things that should already be a native option in the first place.

To me, ad blockers seem like they much more materially impact these sites, and though there is pushback (and setbacks like Manifest V3), ad blockers are still kicking. I don't love that the marketshare of chromium continues to climb, as that gives Google massive power over the future of the web, but I can't do much to solve that.

Who knows what the future holds, but for now I am just focused on enabling people to have more control over their browsing experience :)

Again, loved the extension, and a small suggestion I would make is for the extension to store locally the prompts that generated that code, like the conversation. I'm not sure if this exists—at least I wasn't able to find it—but I think it could be useful.

Great suggestion. I'll add it to our queue!

While building this, we've had to do a lot of debugging. You think "Hey, this is a pretty simple request, why did it fail?" Then you actually dig into the archive that is 98 files of HTML, JS, and CSS, inlined and minified with obscure variable names and no comments. Thankfully many sites do still have relatively stable selectors + aria labels, but I am honestly amazed everyday at how well some of this stuff manages to works.

And that isn't even to mention all the guardrails the sites put in place today: content security policies, untrusted html, dynamic refreshing, etc.

I tried "Make this page look like the 2004 version of CNN" and it did update the theming to be older but it didn't have the true reference, so it just made up the old style.

We don't currently have a way to provide a reference during generation, but if I were you, I'd personally try downloading the old page archive and a new page archive, throw them both in codex/claude code as context and see what it can come up with. Wouldn't be surprised if it could do a decent job writing a converter.

Somewhat tangential: I have had luck with more generic retheming, e.g. "Turn Google into a 1970s era CLI " (https://www.tweeks.io/share/script/8c8c0953f6984163922c4da7) or "Turn LinkedIn into a 90s era Neocities site" These aren't the most useful, but they are fun!

Great minds think alike :) I think it is important for users to have more control over how the browse the internet, so I'm happy to see others building in the space!

Also it turns out llm's are already very good at just generating Violentmonkey scripts for me with minimal prompting. They also are great for quickly generating full blown minimal extensions with something like WXT when you run into userscript limitations.

We've thought about full blown extensions and maybe we'll get there, but I'd wager that there is gap between users who would install/generate a userscript vs a full blown extension. Also a one-click install userscript is much simpler to share vs full chrome store submission/approval (the approval time has been a pain for many developers I've talked with). With that said, this is early days and we're still figuring out what people want.

One angle I was/am considering that I think could be interesting would be truly private and personal recommendation systems using LLM's that build up personal context on your likes/dislikes and that you fully control and could own and steer. Ideally local inference and basically an algo that has zero outside business interests.

I've definitely considered the idea of your own personal, tunable recommendation system that follows you across the web. And I have some background there (worked on recommendations systems at Pinterest), but recommendation systems are very data hungry (unless we regress to the XGBoost days), and task of predicting will/won't the user like this image (binary) is vastly easier than operating over the entire page UI. Definitely not impossible, but we aren't there yet. For now, I just want to make it super easy for you to generate your own useful page mods

Totally hear you on the permissions/access. I'd love to request fewer permissions, but the chrome store doesn't support that kind of permissions granting.

In order for us to be able to execute your scripts that do powerful things (send notifications, save to local storage, download things, etc.), our extension needs to have those permissions itself. Google doesn't have any way for us to say our extension itself only requires permissions x, y, z but give this user script permissions j, k, l.

Your browsing/page data is yours. That data is only accessed when you explicitly request to generate a script (i.e. can't generate a script to modify a page without seeing that page).

I've also noticed the fragmentation of the ecosystem. There is still some powerful stuff out there, but it is hard to find and UX has a lot of room for improvement (especially for laypeople).

Part of the fragmentation (on the extension side at least) came from Manifest V3 which required a massive re-write of logic and introduced a lot of friction for userscript managers. Many projects just died or stayed in maintenance mode since it was a big undertaking. MV3 certainly has been a pain to work with on our side.

This one was a fail: it took 180+ seconds (vs. around 60 seconds of previous query), then some thumbnails got smaller (not all), while the physical space and padding for each entry was still there (so no real density was gained from the change)

Did you try updating that one (click the New Modification drop to select or Library -> click Modify)? It's not always perfect on the first attempt but a follow up can often help.

Right now, it feels like a very slow iteration process where I write something, it doesn't get it, and I keep trying to refine it and waiting around 60 to 100 seconds between results.

There is a push and pull here. We've spent a lot of time evaluating models and pipelines for this. We can make generation much faster but the results will be worse (so faster iteration, but more required). We can also make generation much better (e.g. if you give me 5 minutes, we can do a bunch of post processing: manually selector validation, LLM-as-a-judge, even test the whole thing in something like playwright). In practice, we chose something in the middle, but everyone's preference is different. We do have a "fast" vs "smart" mode but so far it seems like people just rely on the default ("smart"). Of course, as we keep improving, our goal is to make it much faster and smarter.

I'd also like to see the actual filters that are being generated and applied on each change.

This is possible. Go to the Library tab, scroll down and click Open Options. You'll be able to see the details of all your scripts there. The options page could be improved a lot (you're kind of seeing the plumbing behind the scenes) but hopefully useful for you.

A collection of curated changes would be useful. My first instinct was to check if there's a gallery of the most common changes that people request to some popular websites.

We're working on more social/discoverability features. You can already share your individual tweeks and curate your own profile of tweeks at www.tweeks.io/share/profile (here's my profile with some examples: www.tweeks.io/share/jason). This is all early. We are also working on a system to surface top scripts for a given site dynamically as your browse different pages. There is a lot of work to do here.

Changing website contents was out of reach for the general public before, so this extension could become their door to that.

1000% agree with that.

Really appreciate all your feedback, and we're excited to keep improving. You can reach me any time at contact@trynextbyte.com or https://www.tweeks.io/discord if you have more questions/feedback :)

There are a few things that could have happened:

1. Maybe the domain matching missed? You can check this by going to the library tab and seeing if it appears in "Modifications for Current Page" when you're on the site.

2. Maybe there was a silent error. Our current error system relies on chrome notifications and we've come to realize that many people have them disabled. That means you don't get a clear error message when something goes wrong. We are actively working on this.

3. The script could be caught be a content policy. Checking console log could help to see if there are any errors.

4. Maybe the script just doesn't work on the first try. Can't guarantee it will work perfectly every time. You can try to update the script (Library -> click Modify on the script) and say that it didn't work/you don't see any changes.

Happy to provide more support via email (contact@trynextbyte.com) or discord (https://www.tweeks.io/discord)

That's the goal! This whole project started because I was originally just asking ChatGPT to write userscripts. For generic ones, it was okay, but the feedback loop was slow: I had to save the page archive, manually feed it to LLM, write a detailed prompt, generate a script (that probably didn't work initially), and then repeat that process until I was happy.

Now I can do that all in seconds (and iterate just as quickly). I also love the ability to easily share scripts I made with friends. Hopefully it's useful for you!

I currently use a patchwork of site specific extensions, so will definitely give this a go

Hopefully we can help you trim down the patchwork. If they're broadly useful, I'm happy to assist with the creation to share with others. Just let me know!

You can specify in plain english what the algorithm should exclude / include - that pulls from your fb/ig/gmail/tiktok feeds.

The is the holy grail. Admittedly, we aren't there yet, but something like that might be possible as we keep building

I had a simple scenario in mind: Hide annoying "shorts" section from youtube.

You can install the script above (copied here: http://tweeks.io/share/script/bcd8bc32b8034b79a78a8564) to remove shorts, no login required :)

I expected to be able to create a script for myself locally.

When you click to generate a script, a (non-local) LLM assists with the generation. We have tried hard to make something work locally, but it isn't viable with current tech. I apologize if that wasn't clear from the post.

Why would that lead to spamming requests?

The unfortunate truth of public launches like this is that there are always some bad actors/abusers. I've launched without auth in the past and been burned. Even today, I can see people spamming email sign ups, poking around different endpoints, etc.

Totally understand the friction that auth introduces, and I'm sorry for your experience.

Great comment, I've thought a lot about similar ideas. We're just getting started with sharing + discoverability and already working on a feature to surface popular modifications for a given page you are visiting.

The hardest part is doing it in a way that is privacy-first and not annoying. Done wrong, it's kind of like injecting unwanted popups, and no one wants that. Not to mention properly handling points 1-4.

We very likely won't get it perfect on the first try, but hopefully with a few iterations of user feedback we can tune into a useful system.

Cool idea and onboarding experience. I spun up Chrome to demo it, and although its got the rough edges of a prototype, the potential is there.

I'd love to hear more about the rough edges. We're working hard to polish everything up! Would you be willing to share the script you generated so that I can take a closer look? And any other suggestions are welcome :)

an accessible way to find and apply vetted addons so that you don't have to (fail at) making your own

This is on the immediate roadmap. We just shipped V0 of the share/profile and sharing + discoverability are going to play an important role in upcoming launches.

Let's say it perfectly one-shotted your request for youtube: Would you be more likely to generate more scripts yourself or still lean toward vetted and relevant existing tweeks?

It can handle content block, but that is just a small piece of the pie.

I think I am not fully understanding the use case yet.

Even after playing with it a long time myself, I am still surprised by the creative use cases people come up with! The biggest pause for many users we've seen so far is "This is awesome, but I don't know what to use it for"

The main post text above has some varied examples. The space of possibilities is somewhere between anything a Tampermonkey script can do and anything a standalone chrome extension can do. We plan to keep developing and sharing useful example scripts and we hope as we get more users, they can share their scripts as well to create a community dynamic that makes it easier to get started.

Could you share more about the dark pattern? That's definitely not my intent. No sign in is required for installing/managing scripts, sign up is only required to generate scripts (and that's because without it, there's no way to prevent abuse of e.g. spamming requests).

We tried to keep the setup process slim: Step 1 is install, step 2 is pin (I guess technically this could be moved later but in testing, without pinning it, users couldn't find it to do the other steps), step 3 is required to make it functional at all (blame chrome manifest V3). Would your preference be to sign up before that?

Great feature request. For the moment, you can go to www.tweeks.io/share/profile to manage your tweeks and share/install your own tweeks from one device to another.

We're also actively working on an update system that might be helpful here (i.e. if you create a tweek on computer A, install it on computer B, then update it on computer A, you might want it to update on computer B).

Can the AI agent that generates the transformations be run locally?

We've tried. While building this, we tested just about every top model you can think of (closed and open). We weren't able to get any of the open models to perform to our standards. We have a background in model training/fine tuning, so I'm sure some further tuning could even the playing field but definitely getting a bit ahead of myself.

What makes its results deterministic? Is it a "pick from a menu of curated transformations"?

When you send a request to generate a script (e.g. "change to dark mode"), the agent analyzes your current page (e.g. read through the CSS to look for relevant selectors) and generates targeted edits to achieve the desired results. The response is deterministic JS/CSS that can be applied on each page load (all local after the initial generation).

What is the risk level of it generating something harmful? (Eg. That directly or inadvertently leaks data I don't want to leak)

We have a permissions framework inspired by Greasemonkey. For example, your script can only make web requests if it includes a grant for GM_xmlhttpRequest. That should clue you in if for some reason a given script is doing something unexpected. You can also dig into the options and find the scripts themselves if you want a thorough review