News for hackers. Stuff that matters.

rxliuli

Re: on Sunday August 23, 2026 @07:54PM (#49413757)
I encountered some issues when automating the release of Safari extensions to the App Store. Since I maintain a large number of extensions, I had to fix them in bulk. Perhaps others also frequently encounter publishing issues due to changes in the App Store?
Re: on Sunday January 25, 2026 @07:24AM (#46753503)
This is the fourth post in the extension development series. I've just finished writing the seventh one, which will be published gradually after proofreading.
Re: on Wednesday January 21, 2026 @10:57AM (#46707471)
This is the second post in the extension development series blog. I just finished it, so if you find any errors or have any questions, feel free to leave me a comment!
Re: on Friday January 16, 2026 @07:28AM (#46645765)
I've been building browser extensions for about a year and created around 20 of them. Thought it might be useful to share what I've learned in a series of posts.

This first one covers the basic concepts - manifest files, content scripts, and how they work together.

If you have any questions or suggestions for future topics, feel free to comment!

Re:The Anatomy of a macOS App on Sunday December 07, 2025 @11:00PM (#46188140)
That's right, there's a similar comparison between the iOS App Store and Android Play Store. Although the annual $99 fee is indeed expensive, the Play Store requires every app to find 12 users for 14 days of internal testing before submission for review, which is utterly incomprehensible, not to mention the constant warnings about inactive accounts potentially being disabled.
Re:Apple's App Store Full Front End Source Code on Tuesday November 04, 2025 @10:22AM (#45812010)
Haven't received it yet.
Re:Apple's App Store Full Front End Source Code on Tuesday November 04, 2025 @03:03AM (#45808533)
It appears to have been an accident now - they fixed the issue two hours after I posted on Reddit.
Re:Banned from Twitter on Saturday October 18, 2025 @06:47PM (#45630905)
I guess you're promoting something, which could indeed get blocked.
Re: on Friday September 05, 2025 @10:27AM (#45139022)
Got tired of dealing with unreadable fetch code when copying from browser DevTools - especially those with long query strings and minified JSON.

Built *Fetch Beautifier* to solve this. It formats fetch requests instantly with `Ctrl+Shift+V`.

*Before:* ```js fetch('https://api.example.com/data?userId=123&type=post&limit=10&o...', { headers: { accept: 'application/json', 'content-type': 'application/json', authorization: 'Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9', }, body: '{"title":"Hello World","content":"This is a test"}', method: 'POST', }) ```

*After:* ```js const url = new URL('https://api.example.com/data') url.search = new URLSearchParams([ ['userId', '123'], ['type', 'post'], ['limit', '10'], ['offset', '0'], ]).toString() fetch(url, { headers: { accept: 'application/json', 'content-type': 'application/json', authorization: 'Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9', }, body: JSON.stringify({ title: 'Hello World', content: 'This is a test', }), method: 'POST', }) ```

Free on VS Code marketplace. Feedback welcome!

https://marketplace.visualstudio.com/items?itemName=rxliuli....

Demo Video: https://www.youtube.com/watch?v=9SMLOwZwnU0

Re: on Saturday June 14, 2025 @02:48AM (#44274682)
I built a simple tool to clean them up instantly. It auto-parses URL params, nested JSON, and formats the body perfectly.
Re:Ask HN: Am I old? on Wednesday May 28, 2025 @10:02AM (#44116152)
I want to be able to understand your point. For those who enjoy programming, writing code is indeed a pleasure. I spent the whole day today writing a JavaScript serialization package, and even though I know someone has already done it, I am still willing to write a new one for my specific scenario. On the other hand, I think that although AI seems friendly to newcomers (inexperienced developers), it is actually more friendly to experienced developers because you can have AI help you complete some tasks and then review them yourself. Inexperienced developers have difficulty accurately pinpointing problems when they encounter issues, causing AI to keep going in circles and hitting walls.
Re: on Wednesday May 28, 2025 @09:56AM (#44116086)
Based on devalue, I wrote a new JS serialization library called devaluex, which supports asynchronous serialization and plugins. Through plugins, it supports types like Blob, Stream, Error, Request, Response, etc. It is still quite rudimentary at the moment and is mainly used for communication serialization between browser extension Content Script and Background, as JSON.stringify does not support many types. I previously tried seroval (the SolidJS base library) and devalue (the Svelte base library). The authors support more features and use eval (very cleverly) for deserialization. Unfortunately, eval cannot be used in some environments (such as browser extensions). Although the authors also support a JSON mode, its performance is not as good as devalue, so I ultimately chose to wrap devalue.
I haven't used Starlight, but Docusaurus is very slow. The last time I used it, its performance on a large documentation site was terrible, even causing the GitHub Actions Runner to time out. In other words, a single build took over 30 minutes. I never considered using it again after that.
Re:A privilege escalation from Chrome extensions (2023) on Wednesday May 28, 2025 @07:52AM (#44114967)
Your journey of discovery is really cool.
I was frustrated with the default styles of @tailwindcss/typography, so I created a plugin that ports GitHub's beautiful Markdown styling to Tailwind CSS.

The plugin (`tailwindcss-github-markdown`) lets you add GitHub's Markdown rendering to your projects with minimal effort - just import it and add the `prose` class to your container, exactly like you would with the official typography plugin. It fully supports both light and dark themes via the standard `prose-invert` class.

GitHub: https://github.com/rxliuli/tailwindcss-github-markdown

tailwindcss-github-markdown – GitHub Markdown styling for TailwindCSS

https://www.npmjs.com/package/tailwindcss-github-markdown

I was frustrated with the default styles of @tailwindcss/typography, so I created a plugin that ports GitHub's beautiful Markdown styling to Tailwind CSS.The plugin (`tailwindcss-github-markdown`) lets you add GitHub's Markdown rendering to your projects with minimal effort - just import it and add the `prose` class to your container, exactly like you would with the official typography plugin....

( Read More... | 1 comment | 2 points | on HN )
Re: on Sunday April 27, 2025 @11:17AM (#43812522)
As the title says, today I tried using deepwiki to generate links for one of my small tools. The architecture diagrams/flowcharts look particularly good, and the documentation also appears neat and well-organized. I wonder if placing this link on the GitHub repository homepage would be helpful for people using this project, or do you think that content generated by such LLMs cannot guarantee accuracy and only causes confusion?
Re:Journey to Optimize Cloudflare D1 Database Queries on Tuesday April 22, 2025 @09:49PM (#43767971)
It looks interesting, I will see what effect it has.
Sorry for seeing the reply so late. This is an interesting idea, and my inspiration comes from Shizuku on Android, which allows granting permission only once using adb commands, and then other apps can use advanced Android APIs through this app without each app having to handle it via command line each time. https://shizuku.rikka.app/

So I think it's possible for Web Apps to have a similar experience. Currently, the Chrome WebStore version has been approved, and Firefox/Safari are under review. Hopefully, this extension can eventually be used in all major browsers (including mobile support for plugins like Kiwi/Edge/Safari).

Re:No-Limit Zip Tool: Preserves Folders, Any File Size on Tuesday April 22, 2025 @12:03PM (#43763687)
I was inspired by this Reddit post: https://www.reddit.com/r/FirefoxAddons/comments/1jvg5eu/is_t...

While trying to help solve this problem, I discovered that existing online tools all had various limitations. The top 5 ranked websites either had file size restrictions, couldn't preserve folder structures, or had difficult interfaces.

This prompted me to create myunzip, which can:

- Compress/decompress ZIP files of any size - Fully preserve directory structures - Provide an intuitive user interface - Process everything in-browser with no file uploads

The tool is completely free to use with no ads.

Feedback or bug reports welcome!

Youtube Demo: https://www.youtube.com/watch?v=8F_n_qC5IYc

Re:The Race to Type in Chinese on Sunday April 20, 2025 @07:57AM (#43743241)
Very interesting knowledge, I had never really looked into it before.
Hey everyone! I'd like to share CORS Unblock, a Chrome extension that lets web applications make cross-origin requests directly - just like native apps do.

*Why This Matters:* - No need for a backend proxy server - No server costs - No complex CORS configurations - Your web app can directly access APIs like a native app would

*How It Works:* 1. Install the extension from the [Chrome Web Store](https://chromewebstore.google.com/detail/odkadbffomicljkjfep...) 2. When your web app needs to access external APIs, it will request permission 3. You approve which domains the app can access 4. That's it! The app can now make cross-origin requests

*Security & Privacy:* - You control which websites can access which domains - All operations happen locally in your browser - No data collection - Permissions can be revoked anytime

Check out a demo here: https://web-content-extractor.rxliuli.com/

Let me know if you have any questions!

Re:iOS text highlight and copy is more and more broken on Tuesday April 01, 2025 @08:24AM (#43545912)
I don't know, is this normal for iOS?
Re:Svelte5: A Less Favorable Vue3 on Saturday March 08, 2025 @04:10PM (#43303565)
Yes, that's exactly my point. Vue 3 just improves things using existing technologies instead of creating truly fresh solutions.

Older »