Skip to main content
Photo of DeepakNess DeepakNess

Raw notes

Raw notes include useful resources, incomplete thoughts, ideas, micro thoughts, and learnings as I go about my day. Below, you can also subscribe to the RSS feed to stay updated:

https://deepakness.com/feed/raw.xml

Total Notes: 306


Reddit's natively supported JSON trick

Learned a cool hack that adding .json at the end of any Reddit post's URL shows the post data as well the all comments data in a huge JSON format. For example, see the below URL and see how just .json is added at the end of the URL:

https://www.reddit.com/r/Entrepreneur/comments/1qdsveh/its_your_choice.json

You can then copy the output and ask any LLM to summarize it or find anything specific from the content. I think, it's going to be useful, at least for me.


Interact with Antigravity by using your phone

Honestly, I was thinking about a solution like this and suddenly came across this repo that enables you to control or interact with your Antigravity chat sessions. You can see what's going on in the current chat session and also send messages directly from your phone. And this post on Reddit has some more discussion about the same.

Basically, this uses the Chrome DevTools Protocol (CDP), periodically captures a screenshot of the chat interface that you see on your phone. As explained, it polls every 3 seconds and only updates when content changes.

And based on this, a person created a better version of the setup that does the same but has a better interface and has some other cool features like:

  1. Send and stop messages, switch between fast/planning modes, and change models
  2. Scrolling on the phone also scrolls the desktop chat
  3. Better sync as it has only 1-sec polling interval
  4. Auto installs an SSL certificate, so you can access via HTTPS, etc.

I have already started using these solutions and these are going to be super useful for me, as it's winter here I can be sitting in the sun and still monitoring and giving Antigravity commands.

Crazy stuff.


Laravel SSR on nixpacks via Dokploy

I started using Laravel only a few weeks ago and I am loving it so far, and even building two serious production apps using the framework. I deploy the apps on VPS (typically from Hetzner) by using Dokploy via nixpacks, and despite having RUN npm ci && npm run build:ssr in the Dockerfile, the SSR bundle still wasn't being created during the build process.

Upon investigating, I discovered that nixpacks ignores the Dockerfile completely and uses its own build process, so I created a nixpacks.toml and added the below lines:

[phases.build]
cmds = ["npm run build:ssr"]

[start]
cmd = "node /assets/scripts/prestart.mjs /assets/nginx.template.conf /nginx.conf && (php artisan inertia:start-ssr &) && (php-fpm -y /assets/php-fpm.conf &) && nginx -c /nginx.conf"

Basically, the above file configures build (npm run build:ssr) and also the start command (SSR + PHP-FPM + Nginx). And then it was perfectly working.

Starting SSR server on port 13714...
Inertia SSR server started.

You can verify SSR by looking at the runtime logs, if above lines are present then SSR is working as expected. And I am noting this simple thing down here because I'm sure that I'll be needing this soon. Again.


Unified way to manage Agent Skills

Implementation of Agent Skills by different AI tools is getting out of hand now, because each tool has their own separate paths for the skills folder. For instance, take a look at these leading AI coding assistants:

Tool Name Directory Path
Amp .agents/skills/<skill-name>/
Antigravity .agent/skills/<skill-name>/
Claude Code .claude/skills/<skill-name>/
Codex .codex/skills/<skill-name>/
GitHub Copilot .github/skills/<skill-name>/
Cursor .cursor/skills/<skill-name>/
OpenCode .opencode/skills/<skill-name>/

What's the solution to this madness, then?

One sane solution is this dotagents TUI tool by Ian Nuttall that basically acts as one location for all of your hooks, commands, skills, and AGENT/CLAUDE.md files. I also found this tool called agentctl that claims to provide better management of different agents.

I also discovered this discussion about a standard folder structure for managing agent skills for different AI tools.

Update:

Came across another interesting tool rulesync (created by dyoshikawa1993) that manages this in a slightly better way. It's a CLI tool that automatically generates configuration files for various AI development tools from unified AI rule files.

RuleSync is much more polished and maintained as it supports rules, ignore, mcp, commands, subagents, and skills for multiple AI assistants like Claude Code, Codex CLI, GitHub Copilot, Cursor, OpenCode, Google Antigravity, and much more.


Ollama local LLMs now work with Claude Code

Recently came across the post that Ollama now has Anthropic API compatibility, and now you can use Claude Code with local open-source LLMs. Here is an interesting reply on the same post.

Apart from this, here is some more information about Anthropic compatibility and Claude Code integration. And here is another blog post explaining Claude Code with Anthropic API compatibility.

Simon also tweeted about it and I also found this discussion on Reddit about the same.

I think, it would be interesting to see how these open-source models perform with Claude Code. I am yet to try this.


Ralph Wiggum CLI by Geoffrey Huntley

Geoffrey Huntley created this framework for AI agent loop back in July 2025 and named it Ralph Wiggum. Back then, it didn't get the traction is deserved, but recently became the talk of the AI-verse when Ryan Carson posted an article about it. And ever since a lot of folks are talking about it and sharing their setups.

Recently, Ian Nuttall built a CLI tool based Ralph Wiggum, and it does seem useful for running agents in loops (works for Claude Code and OpenCode). It's a full-fledged CLI tool and has features like PRD and Skills. You can learn about it more from this discussion on X. In the GitHub repo, the Ralph CLI tool is defined as:

Ralph is a minimal, file‑based agent loop for autonomous coding. Each iteration starts fresh, reads the same on‑disk state, and commits work for one story at a time.

Apart from this, I also found the work of other people about Ralph Wiggum and I will be collecting them here:

  1. The Ralph Playbook by Clayton Farr
  2. Ralph for idiots by Agrim Singh
  3. How to Ralph Wiggum by Geoffrey Huntley
  4. Ralph for Claude Code by Frank Bria

Update:

After publishing this post, I received an email from Ben Williams about the new ralph-tui that he created. And it's an even better tool to orchestrate AI agent loops with coding assistants like Claude Code and OpenCode.

I loved it! And you can learn more about how it works and what it can do from this webpage, and here is some discussion about the same.

That's it.

But I will keep adding more resources and information to this page as I discover something noteworthy.


Re-organizing bookmarks using AI

I had over 50 bookmarks in my browser and those were real messy as they were organized in multiple different random folders and sub-folders. And they were really not optimized for extracting anything meaningful when needed, so I finally decided to re-organize them and used Gemini 3 Pro for that.

  1. Downloaded an export of the bookmarks from my browser, it comes in the .html format
  2. Asked Gemini 3 Pro (with Canvas on) to reorganize them into multiple folders, and
  3. Deleted existing bookmarks and imported the one that Gemini gave me, and done!

Instantly, I had my browser bookmarks super organized. And if you can write even better prompts for AI, the organization can be even better.


Antigravity account manager app

Came across this desktop app called Antigravity Manager that lets you use multiple accounts inside the IDE with seamless switching between them. Here's how they explain the tool:

Antigravity Tools is an all-in-one desktop application designed for developers and AI enthusiasts. It perfectly combines multi-account management, protocol conversion, and smart request scheduling to provide you with a stable, high-speed, and low-cost Local AI Relay Station.

You will probably want to look at the English version of the README.md file. It contains all the info about what the tool does.

And it also keeps showing the Antigravity usage in the app as well. You don't need another setup or extension like this to track the usage, it's inbuilt in the app.


Tracking Antigravity usage

Ever since Antigravity announced revised limits, it's now important than ever to track your usage when coding. And since there is no inbuilt way to track this, I researched about it a bit and finally an IDE extension that does that.

The extension is called Antigravity Cockpit and you just have to install this in the Antigravity IDE, and it starts showing you the usage below the chat area. And you might also need to change your marketplace info for the IDE, I have written another post about that.

I also learned that in Antigravity there are different bucket groups for limits, as one person pointed out in this post:

  1. GROUP 1: Gemini 3 Pro (High), Gemini 3 Pro (Low)
  2. GROUP 2: Claude Sonnet 4.5, Claude Sonnet 4.5 (Thinking), Claude Opus 4.5 (Thinking), GPT-OSS 120B
  3. GROUP 3: Gemini 3 Flash

And it does make sense, because the Antigravity Cockpit also shows the usage as per different groups. For example, here is what it looked like for me at the time of writing this post:

Feature Group 1 Group 2 Group 3
Percentage 100.00% 78.67% 88.87.%
Reset In 5h 0m 2h 21m 3h 45m
Reset Time 01/10/2026 21:22 01/10/2026 18:43 01/10/2026 19:23
Included Models (Count) 3 4 1

Cool, right?

I tried a bunch of other IDE extensions as well, but this one seemed more polished.


Antigravity limits

I am subscribed to the Google's AI Pro plan that also gives me an enhanced limit in Antigravity IDE, but today is the first time I have hit the limit when using the Claude Opus 4.5 model extensively for ~2 hours. And after hitting the limits, the below message is shown above the chat interface:

You have reached the quota limit for Claude Opus 4.5 (Thinking). You can resume using this model at 1/9/2026, 8:34:23 PM. You can upgrade to the Google AI Ultra plan to receive the highest rate limits.

I have also read at multiple places that there's a 5-hour limit in Antigravity (at least for AI Pro subscribers) - means, even if you hit the limits, it will be restored within 5 hours, at max.

Update:

As we balance giving the best possible quotas and maintaining fairness between users, especially under incredible demand, we will be establishing generous weekly limits for all models. This will only affect a minority of Google AI Pro users. These limits do not apply to Google AI Ultra, which continues to be the best plan for power developers!

Google Antigravity account tweeted this info just today.


Adding Laravel Boost MCP to Antigravity

Laravel Boost is awesome as it makes your new projects AI-ready from the start, but the laravel-boost MCP wasn't working in Antigravity from the start. It worked in Cursor, but not in Antigravity initially... but I have finally found the fix for it.

First, here's what worked for me (I'm on macOS):

{
    "mcpServers": {
        "laravel-boost": {
            "command": "/Users/deepak/.config/herd-lite/bin/php",
            "args": [
                "/Users/deepak/Documents/laravel-test/artisan",
                "boost:mcp"
            ]
        }
    }
}

For your information, deepak is my laptop's username, and I was working in the /Documents/laravel-test folder at the time.

Please note that I installed Laravel on my device using CLI by following the steps explained on the official installation documentation page. First, installed PDF using /bin/bash -c "$(curl -fsSL https://php.new/install/mac/8.4)" command and then Laravel using composer global require laravel/installer command.

But if you have installed PHP using Homebrew, then the command inside the above MCP JSON would be probably something like /opt/homebrew/opt/php@8.4/bin/php and then it should work.

I got some ideas for getting the MCP working from this discussion, but it didn't work directly and I still had to try a bunch of different things.


Fix slow loading of Antigravity extensions

If you're trying to install any extensions on your Antigravity IDE and nothing loads for minutes when you search for the extension, here's a simple fix for that.

Navigate to Settings > Antigravity Settings > Editor and then copy-paste URLs for the followings:

Marketplace Item URL:

https://marketplace.visualstudio.com/items

Marketplace Gallery URL:

https://marketplace.visualstudio.com/_apis/public/gallery

Basically, Antigravity is a VS Code fork, but it uses OpenVSX/OpenVSCode for extensions, which is very slow and sometimes doesn't even work. However, it directly gives you the option to change marketplace item and gallery URL to the VS Code official marketplace and that fixes everything.

I didn't know this, so I had to wait for like 5 minutes to install a simple extension in the IDE, but now it's fast. And I got to know this from this article by Jimmy Song.


Organic social media marketing trick

Utilizing social media correctly for your marketing can give some serious boost to your business from the start, and I see more and more people benefit from this a lot. And it's a great thing, and probably a marketing masterclass as well.

For example, recently I saw this post from Connor, it went viral, and then one person quoted the tweet and replied exactly with an app just like that. Here I am not interested in whether they both collaborated and planned this, but interested in the concept here.

For example, you can ask someone from your circle to post something generic that has the possibility to go viral and then reply with the product you're working on. And that's it. Of course, it won't work all the time, but who says you can only try once?

Love this trick, even as a consumer.


The best advice on writing

I don't remember how I came across this article titled The Day You Became A Better Writer, but I did, and I'm glad that I did. It gives you the best advice on writing better in the simplest way possible.

The article is now deleted so I have linked to the Archive version, and I learned that it was written by Scott Adams, an American author and cartoonist. I have copied the entire piece below (I just don't want to lose it):

I went from being a bad writer to a good writer after taking a one-day course in “business writing.” I couldn’t believe how simple it was. I’ll tell you the main tricks here so you don’t have to waste a day in class.

Business writing is about clarity and persuasion. The main technique is keeping things simple. Simple writing is persuasive. A good argument in five sentences will sway more people than a brilliant argument in a hundred sentences. Don’t fight it.

Simple means getting rid of extra words. Don’t write, “He was very happy” when you can write “He was happy.” You think the word “very” adds something. It doesn’t. Prune your sentences.

Humor writing is a lot like business writing. It needs to be simple. The main difference is in the choice of words. For humor, don’t say “drink” when you can say “swill.”

Your first sentence needs to grab the reader. Go back and read my first sentence to this post. I rewrote it a dozen times. It makes you curious. That’s the key.

Write short sentences. Avoid putting multiple thoughts in one sentence. Readers aren’t as smart as you’d think.

Learn how brains organize ideas. Readers comprehend “the boy hit the ball” quicker than “the ball was hit by the boy.” Both sentences mean the same, but it’s easier to imagine the object (the boy) before the action (the hitting). All brains work that way. (Notice I didn’t say, “That is the way all brains work”?)

That’s it. You just learned 80% of the rules of good writing. You’re welcome.

I researched a bit about Scott, and discovered that nowadays he's mostly active on X (Twitter) and doesn't write much. He also does podcasts and YouTube.


How browsers work

Came across this post from Dmytro Krasun where mentioned publishing a new interactive blog post he wrote about how browsers work. By the way, it's an open-source project and here's the GitHub repo for that. The topics that explained in an interactive way are:

  • How browsers work with URLs
  • URLs turning into HTTP requests
  • Resolving server addresses
  • Establishing TCP connections
  • HTTP requests and responses
  • Parsing HTML and building the DOM tree, etc.

The website built with Next.js and Tailwind CSS and is hosted at Cloudflare Pages.

I liked the site and how it explains the concept. Also, I noticed that there's no favicon on the site, so I added one and opened a PR on GitHub for adding the site icon 😅. Now, let's see if it gets accepted.


Creating decent-looking PDFs using TailwindCSS

Came across this interesting post titled How to vibe code a PDF that talks about creating decent-looking PDFs by vibe coding, or AI-assisted coding (as I like to say). Although the post is long, here are the direct steps mentioned in the post:

1. Scaffold a basic setup with Tailwind CSS. I used Next.JS but you could also just use basic HTML.
2. Prompt the agent to use the print modifier within Tailwind CSS to build the core PDF, keeping in mind the standard 8.5 by 11 inch page size.
3. Run your dev server and load your page on localhost.
4. Use your print shortcut to preview the page.
5. Iterate as needed.
6. Download the PDF (tip: turn off the "Headers and footers" option on Chrome for a clean export).

I think, I have already done something like this one time, but it's good to keep the best practices documented for the future.


Claude Code Chrome extension does wonders

A while ago, Anthropic launched a Chrome extension for Claude Code and a lot of people are sharing how great it is. Basically, think of this as the Perplexity's Comet browser or OpenAI's Atlas browser. The extension can read webpages, click links and buttons, fill up forms, and other tasks that you ask.

For example, a user asked to make X (Twitter) into dark mode and the extension clicked through different options in settings and finally applied the dark theme.

And not just this, you can write social media posts, plan events, create Chrome extensions, chat with customer support, play chess with you, and whatnot.

I like how differently people are using the Claude Code for Chrome extension.


Guide to LLM Agent

This new post titled The Hitchhikers Guide to LLM Agent is a recent article from Saurabh who has explained different aspects of an LLM Agent in an easy-to-understand way. There is some more discussion on X about the same that can also be useful.

The article covers topics like:

  • LLM and inference
  • Context engineering
  • Memory
  • Agent evaluation
  • Subagents, etc.

The article is a good read, understandable even for a beginner like me.


Using Perplexity inside Google Sheets

I have a list of 100s of URLs that I wanted to visit and then grab specific information from those pages, but obviously it's not possible to do that manually. So I used this script that lets me use multiple AI models inside Google Sheets via OpenRouter.

Perplexity is not good at providing output in the specified format, so I just used Perplexity Sonar Pro model to grab all info I wanted in whatever format it provides, fed that info to OpenAI GPT 5.2, and then asked it generate the final output in the format I wanted, for all rows.

This setup works great, as all the info is 100% correct this way.


Localflare: Local Cloudflare development dashboard

Discovered this cool tool called Localflare, created by Rohan Prasad, that works as a dashboard for local development with Cloudflare Workers, as mentioned on the website. Basically, it gives you a dashboard that keeps showing info about:

  • D1 Databases
  • KV Namespaces
  • R2 Buckets
  • Durable Objects
  • Queues
  • Tail Logs, etc.

Not to mention, it's an open-source project and here's the GitHub repo for this. I am yet to use this, but seems like a cool idea.


How to self-host videos with HLS

My YouTube channel got deleted over a month ago, and these days I am seeing more and more channels getting deleted. Recently, I learned that Ilias Ism's channel also got deleted and the appeal got rejected as well, so he decided to self-host all videos. And the similar thing happened with Pat from StarterStory as well, and now he's also self-hosting videos.

Ilias also wrote a detailed post about his setup of self-hosting videos, and I am going to copy all the text below, in case the X post is no longer live. And it seems like too valuable information to let go.

Yeah, very similar approach! Here's what I did:
- Setup: Hetzner dedicated server (EX63, Intel Core Ultra 7, 64GB RAM, 1TB NVMe)
- Coolify, on Docker -> Nginx -> Filesystem mount to SSD
- Nginx is serving HLS streams directly from disk
- FFmpeg is transcoding to 3 quality levels (360p, 720p, 1080p)
- Also making thumbnails
- On hover there is a preview sprite looping (example: https://video.seoroast.com/i-roasted-this-slack-app-s-seo-guinea-pig/preview-sprite.jpg)
- Cloudflare in front for caching/CDN

💰 Cost: ~€80/month for the dedicated server (which also runs the main app, database, etc)

🧠 The process:
- Upload raw MP4s to server
- Batch convert to HLS with FFmpeg (adaptive bitrate)
- Nginx serves the .m3u8 playlists and .ts segments
- hls.js on the frontend for playback

It's all on the same server - no separate storage service.  The 1TB NVMe handles ~100 videos fine.

For thumbnails/sprites I generate those during conversion too.

Main win vs YouTube: No ads, full control over the player, videos load faster, and Google can't delete my channel again 😅

Ilias is encoding videos on the Hetzner server itself, so he doesn't need to keep encoding GBs of video files locally, which seems like a good idea. He converted all his 110 GB of videos to HLS.js, transcoded via FFmpeg, and then transcribed all 2,000 mins of footage with Whisper, as he mentions in this post.

But if you have a machine fast enough and don't have to transcode a lot of videos, you can also transcode your videos locally and then host them on Cloudflare R2. This method is explained in detail in this blog post.

I also found some cool blog posts on self-hosting videos that are worth-reading:

Also, I think the easiest option to self-host videos will be Cloudflare Stream service, a paid service where you can directly upload videos or via an API and then it automatically transcodes in the background. And from here you can embed the video anywhere or share as a URL.

Apart from this, Videopress by WordPress.com can be another good option, but I guess it works only with WordPress. Has a generous pricing tier though.

I also did a post about the same that might be a bit helpful.


Dual-boot Linux on Windows from an .exe file

Came across this weird project that lets you dual-boot Linux on a Windows machines, but via a .exe file. The project is called LinuxGate and here's the GitHub repo with more info on how it works. But before you try, just know that:

WARNING: This project is functional but NOT RECOMMENDED for production use.

It seems like an interesting idea, but I wouldn't try it because I'm perfectly versed with creating a bootable USB drive and then install whatever distro I want. But I guess, it should be very helpful for people who are not as tech-savvy.