Photo of DeepakNess DeepakNess

Raw notes

(441 notes)

Short notes, links, and thoughts – shared as I go through my day.


Pi agent lessons from Dillon's shared session

I spent some time reading Dillon Mulroy's shared Pi session, and honestly, I learned more from the workflow than the docs.

The main thing I noticed is that he doesn't use Pi like a quick code generator. He uses it more like a supervised senior implementation partner. The agent is not just asked to "build this thing". It is given specs, constraints, examples, review notes, and a clear process.

A few things I want to copy in my own Pi workflow.

1. Write the spec first

Before asking Pi to implement a large feature, create a small but clear tech spec with goals, constraints, routes, data model, edge cases, and test plan.

2. Add working-style rules to AGENTS.md

My current AGENTS.md has tool preferences and writing style rules. I should also add how I want to work – something like "prefer 3–5 small focused prompts over one large prompt", or "never rewrite a file without showing me the diff first".

3. Do architecture review before coding

Instead of directly saying "rebuild this", first ask Pi to inspect the existing files and explain where the design is weak, where cohesion breaks, and what should be changed.

4. Ask for call graphs and seams

Before implementation, ask Pi to sketch the public API, call graph, injected seams, and production vs test adapters. This makes bad design visible before code is written.

5. Use skills for methodology

A simple prompt like "use TDD" is weaker than a full TDD skill. Dillon injects an inline <skill> block that defines the philosophy, anti-patterns, and step-by-step workflow. I should create or reuse small skills for TDD, review, UI polish, refactors, and audits.

6. Use vertical slices

One failing test, one small implementation, one passing check. Don't ask the model to build the whole dashboard or whole feature in one go.

7. Give hard constraints

Prompts should include rules like: no new package, no mock data, no broad rewrite, no nullable return, no touching unrelated files. This keeps the agent on a tighter leash.

8. Use markdown annotations for review

Instead of explaining everything again, paste notes like this and ask Pi to apply only those changes:

## Markdown Annotations
- Section 4.1: update status to "implemented"
- Line 42: rename `fetchUrl` to `resolveShortLink`
- Section 3: remove the assumption about Cloudflare D1 – it's now R2

9. Codify mistakes permanently

When Pi makes the same kind of mistake, don't just fix it once. Add the rule to AGENTS.md so future sessions inherit it.

10. Use reference repos

For framework-specific work, keep local clones or examples and ask Pi to read those first. Real examples are better than model memory.

11. Use the session tree properly

If a design exploration is risky, fork the session. If it goes wrong, abandon that branch instead of trying to repair a messy conversation.

12. End with a handoff

At the end of a longer task, ask Pi for what changed, tests run, files modified, open issues, and the next 5 todos.

This is probably the biggest takeaway for me:

Better agent results come less from one perfect prompt and more from a better engineering loop.

The loop should be something like:

review the existing design
→ sketch options
→ agree on the shape
→ write or update the spec
→ implement one vertical slice
→ run checks
→ review with annotations
→ save new rules in AGENTS.md
→ hand off clearly

I already use Pi with DeepSeek, web access, goal tracking, and vision proxy, and I wrote about that setup in my Pi coding agent setup post. That setup is working nicely, but Dillon's session made me realize that it is still mostly tool-focused.

The next improvement is process-focused – better specs, better review loops, better constraints, and better handoffs.


Cheaper coding models are excellent with good prompts

Dan posted about cancelling Cursor after 30 minutes of using Composer 2.5, and while the wording was too harsh, I don't think the frustration itself is completely wrong.

I posted about this on X as well, but I think the main thing people miss is that cheaper or smaller models need to be prompted differently.

You can't prompt DeepSeek, Kimi, GLM, Composer, Qwen, or other similar models the same way you prompt Claude Code or Codex.

With Claude Code and Codex, especially with the latest models, you can throw a broad task at them and expect the model to explore the repository, understand patterns, implement the feature, run tests, and come back with something mostly correct. It will still make mistakes, obviously, but it can handle much more ambiguity.

But these cheaper models are not great at that kind of one-shot work.

If you ask them to "build this full dashboard", "rework the entire app", or "implement this complete feature end-to-end", the result is usually messy. They will often do too much, miss existing patterns, break small things, or create a UI that looks good in one part but doesn't fully fit the app.

But if you go feature-by-feature or page-by-page, they can be excellent.

For example, instead of saying:

Build the entire analytics dashboard with filters, charts, empty states, settings, export, and responsive UI.

I would rather ask:

  1. create the empty dashboard layout
  2. add only the filters section
  3. create the first chart
  4. add loading and empty states
  5. make the table work
  6. polish spacing and mobile layout
  7. now review the whole page and fix rough edges

This is a different workflow. You need more patience. You need to be more involved. You need to keep the model on a tighter leash.

But the tradeoff is worth it in many cases because these models are cheap and fast enough that iterating with them still feels good.

A few days ago, I built a small internal feature for SharePDF using DeepSeek V4 Pro via Pi agent. And honestly, the UI was far better than what Codex usually gives me, and everything worked as expected as well. But I didn't ask it to rebuild the whole product in one prompt. I gave it a smaller scope, checked the output, and then continued from there.

This is why I still think models like Composer 2.5, DeepSeek, Kimi, GLM, and Qwen are very useful. In fact, I have already written that Cursor's Composer 2.5 is awesome and that Cursor's $20 plan is great value. That doesn't mean the model will behave like Claude Code or Codex in every situation.

Sometimes when you have the option, there is no point using the cheaper model. If I'm doing a complicated refactor, touching billing logic, debugging something subtle, or making a change across many files, I would still prefer the best model I have access to.

But if I'm designing a page, improving UI, adding a smaller feature, or doing something where I can review each step quickly, I don't mind using cheaper models at all. In some cases, I even prefer them. I still consider Qwen 3.7 or even 3.6 Plus models far better at design than GPT models.

So I think the correct conclusion is not "Composer is bad" or "DeepSeek is bad" or "cheap models are useless".

The correct conclusion is:

don't use a cheaper model like a SOTA model.

Use Claude Code or Codex when you want more autonomy. Use DeepSeek, Kimi, GLM, Composer, or Qwen when you are willing to drive more actively.

Both can be great. You just can't expect the same prompting style to work everywhere.


Cursor's $20 plan offers the best value for month

I last used Cursor in January this year, because it later started seeming too costly. But after their Composer 2.5 model release, I tried Cursor again after 5 months and I loved it a lot. I have been using it for a little over a week now, and it's the best model for the price out there.

Cursor usage

At the time of writing this post, I have used over 430 million tokens in total where almost 320 million tokens are only from Composer 2.5, as you see in the screenshot above.

I have written a post on X about things I like about Cursor and then things I don't.

By the way, I am only on the $20/mo plan for Cursor Pro, and then I have only finished 54% of the monthly limits as of now. I am surprised how good the limits are even on the $20 plan, and I must say, again, that Composer 2.5 is a great model.


Fixing Cursor app's too much resource usage

Cursor app had become weirdly unusable on my Mac recently, and I couldn't figure out why. So I asked Codex to do a read-only audit of my computer and create a small HTML report.

Turns out Cursor itself was not exactly the problem.

Cursor was launching an old Telegram MCP/plugin process from my ~/.claude folder, and that orphaned bun server.ts process was eating a lot of CPU in the background.

The funny part is, I don't even use that Claude setup anymore.

So I deleted ~/.claude, cleared Trash, and still the process kept running. That was the interesting bit: deleting files does not stop an already running process.

Codex then traced the exact PID, stopped only that orphan process, verified it didn't come back, and updated the report with what happened.

Now Cursor is normal again.

The main lesson for me: agent config is not harmless. Old MCP/plugin setup can keep affecting other tools long after you forgot it exists.

Also, I still don't fully understand why Cursor was launching something from my old Claude folder in the first place. But this is exactly why stale agent config feels like technical debt now.


Cursor's Composer 2.5 is awesome

I last used Cursor in December last year, and after hearing great things about the new Composer 2.5 model, I decided to give it another try after 5+ months. While my experience is mostly positive, I will be writing about things I liked as well as things I didn't like.

What I liked:

  1. Composer 2.5 model is fast, even when using without the fast mode. Most of the things I work on, just take seconds and sometimes a few minutes, making it faster than Codex or Claude models I have used in the past.
  2. The 2.5 model is cheap, cheaper than all its competitors, actually. I used ~100 million tokens in a day and that resulted in only ~7% usage of the monthly limit, as you see in the screenshot here. I have posted on X about it in detail.

Cursor usage for the Composer 2.5 model

For your information, I am subscribed to the Cursor Pro plan which costs $20/month. And they're currently running a 2x offer for the week, but I think it's still a great value for money even after the offer ends. When I last used Cursor, the $20 plan was basically nothing when using any decent model. But that's not the case anymore, Composer 2.5 is a great model and that makes Cursor a great subscription plan right now.

What I didn't like:

I'm using a MacBook Air M2 with 16 GB of RAM and the Cursor app is just consuming too much resources, so much that the laptop is constantly running hot. I have heavily used Codex or Claude Code app but never had this issue earlier, so it's clear that they need to optimize the app for performance.

This was so serious that I ditched the app, and currently using the Cursor CLI only. It's great, I am loving it, and have even created a custom /statusline for myself.

My advice for others:

If you're confused about whether you should subscribe to Cursor, I would strongly suggest giving it a try. The Composer 2.5 model is amazing and can do most of your work.

As per calculations from my usage, if you're using 50 million tokens per day by using the Composer 2.5 model, the $20 plan will last for ~24 days before you exhaust your monthly limit. And this is great for people working on one or two projects simultaneously.

And if you can get the $60/mo plan, it's even better.


My experience with Antigravity 2.0 (it's bad!)

Google I/O 2026 happened and Google announced a bunch of interesting things in the event. One thing I was particularly interested in was the new Antigravity 2.0, as I loved using the tool and coded the first versions of SharePDF by using this only in December-January this year.

But the new IDE didn't live up to my expectations, and it's bad!

So... let's look at everything bad one-by-one for the new Antigravity app:

1. Couldn't log in for hours

As soon as they announced Antigravity in the event, it was available for download. I updated the existing Antigravity app, and it got logged out when the new app opened. I tried logging in multiple times, but I kept seeing auth errors.

Antigravity auth is not working

I kept seeing the above screen no matter how many times I tried. After an hour or so, the authentication successfully worked but when I quit and reopened the app, it started having the same issues again.

But it finally worked when I used it after several hours.

2. Keep asking for approvals

I have set Auto Execution and Review Policy options to "Always Proceed" as you see in the screenshot below, but it keeps asking for approvals each time.

Auto Execution and Review Policy set to Always Proceed

And this is just an example, I had to approve at least 20 times for a simple HTML page I asked it to create. I have given "Full Access" to it, but this is still happening.

At least this wasn't happening on the Antigravity 1.0, right?

3. Creates lots of unwanted HTML files

I asked it to create a personal website for me by taking the required data from my existing website, but to be precise this was the exact prompt:

Create a clean and minimal personal website for me.
Take whatever info you need from my existing website: deepakness.com

Antigravity created multiple temporary HTML files

And while it created the website using HTML, CSS, and JavaScript, it also created a bunch of temporary HTML files in the folder. I confronted, then it said that those can be safely deleted.

4. No plan mode anymore

I don't see the plan mode anywhere in the IDE, the dropdown we had earlier for planning/fast modes, no longer appears to be there.

5. Creates SPA all the time

When you don't mention the tech-stack, it always creates websites as SPA (single page applications). For the personal website sample project I created earlier:

All views (#home, #projects, #about, #newsletter) live in a single index.html and are toggled via JavaScript (navigateTo() in app.js) without full page reloads. It uses hash-based routing (#home, #projects, etc.) and content is dynamically shown/hidden client-side.

I tried the same prompt (from #3 above) at least 5 times, it created SPAs every time.

6. Has a bad design taste

I thought that the new model will have a great design capabilities, but it does not! It's still all purple, as you see in screenshots here.

Sample personal website

Another sample personal website page

I blame the Antigravity harness here, because designs are slightly better when I used the same prompt in the Google AI Studio.

7. Antigravity CLI also has bugs

To be honest, the Antigravity CLI is far better than the previous Gemini CLI and it's better than the Antigravity app as well. But it also has some bugs:

  • the prompt input field sometimes disappear
  • the scroll doesn't work at all sometimes
  • keeps asking for approvals, even after setting everything as "Always Proceed"

8. Other people sharing their experiences

Here are some posts by other people who have shared about Antigravity, that I found while browsing the internet:

Now, here are some things I liked:

  1. I liked the multi-folder options for projects, as I can give access to multiple folders without giving access to the entire computer.
  2. Usage limits for the new models are slightly higher than earlier on the AI Pro plan, and I think they have also added 1,000 extra AI credits for everyone.

That's it.

I will keep updating this page as I discover more things I like or dislike.


AI Search Optimization Skill as per Google's guidelines

Recently, Google published a detailed guide on optimizing your website for generative AI features on Google Search, including a lot of interesting information. I came across this from this post on X from Gagan Ghotra, and created a powerful skill by consulting Gagan.

I published the skill in this public GitHub repo, and it can be accessed, installed, and used by anyone by following the provided instructions. And also created this quick video for beginners where I'm showing how to set up and use the skill (the same video on X).

Over the next few days, I will also be using the skills on different personal projects and will keep improving as per my experience with it. But since the GitHub repo is public, other people are also welcome to contribute.

And not to mention, the skill can be used with almost any AI agent/harness we have out there.


Freeing 100+ GB of storage on macOS using Codex

I still use the MacBook Air M2 with 16 GB of RAM and only 256 GB of storage, and it was working perfectly fine for my use case until recently. I started getting the low storage warnings sometimes, and that annoyed me a lot. And I was about to factory reset my laptop... but then at the last moment, I decided to ask Codex about it, and glad that I did.

Codex helped me free more than 100 GB of storage by deleting unnecessary stuff that were there from some apps that I used and deleted earlier. For example, I once tried a local model via Hugging Face and LM Studio and they were together taking 35 GB of storage. Similarly, I tried a Docker alternative called Colima and it was taking another 19 GB, as you see in the screenshot here.

Storage taken by unnecessary stuff on MacBook Air

It also gave me suggestion to remove folders from the ~Library/Application Support/* from apps which were not used or not installed on my system anymore. From here, you can see that I try a lot of applications like browsers and so on.

Library > Application Data on macOS

The screenshots you see above, is from an HTML file that I asked Codex to create after analyzing my laptop in detail. And it created a complete checklist with all the information that I can do to optimize my laptop. It did a great job.

Now, the funny thing is I earlier used Mole and even subscribed to the CleanMyMac app and there also weren't able to free these unnecessarily occupied storage. I tried them a few times, and they only cleared a maximum of 5-10 GB storage.

Another funny thing is, I have used Linux for years in the past and I know about the file systems a bit. But I have become lazy ever since I started using macOS (I love my MacBook though) and didn't even bother to check those folders. But after Codex gave suggestions, I went and deleted unnecessary folders and files by myself, and cleared over 100 GB of storage.

Life's good now!


SharePDF now has 200 users

I started working on SharePDF in January 2026, and it's been an amazing journey. It took ~4 months to reach 100 users, and now we're looking at 200 users in just 20 days after that.

Crazy, right? At least for me.

SharePDF now has 200 users

And in the last few weeks, I have also added enhanced existing stuff and have also added a few more features to the app. Some improvements done were:

  1. Added a way to replace PDFs while keeping the same old share link
  2. Introduced collections, a way to better manage lots of PDFs for power users
  3. Improved analytics, so now users can see more data points, including per PDF analytics as well
  4. Improved custom domain, billing, support, uploads, reliability, etc.

And still working to make everything even better for users.

Also, wrote a new blog post listing all the cool features SharePDF now has. I have tried to include everything here, and will probably keep this updated as well.

Apart from this, I am also launching SharePDF on Product Hunt tomorrow, i.e., May 13th at 12:30 IST. And I request your support for the launch, if you're reading this.

Thank you!


Run NVIDIA Kimi K2.6 and others in OpenCode

I wanted to use Kimi K2.6 from NVIDIA inside OpenCode, and it was simpler than I first thought. This and a bunch of other open-source models are free to try in NVIDIA, by the way.

I only had to add the API key, model details, and the correct base URL in the OpenCode config.

I wanted to try Kimi K2.6 but you can try other models as well. For Kimi, NVIDIA's model name is:

moonshotai/kimi-k2.6

But inside OpenCode, I had use it like below

nvidia/moonshotai/kimi-k2.6

I edited this file on my macOS device:

~/.config/opencode/opencode.jsonc

And added this config:

{
  "$schema": "https://opencode.ai/config.json",
  "model": "nvidia/moonshotai/kimi-k2.6",
  "provider": {
    "nvidia": {
      "npm": "@ai-sdk/openai-compatible",
      "name": "NVIDIA",
      "api": "https://integrate.api.nvidia.com/v1",
      "options": {
        "baseURL": "https://integrate.api.nvidia.com/v1",
        "apiKey": "YOUR_NVIDIA_API_KEY_HERE",
        "timeout": 600000,
        "chunkTimeout": 60000,
        "extraBody": {
          "chat_template_kwargs": {
            "thinking": true
          }
        }
      },
      "models": {
        "moonshotai/kimi-k2.6": {
          "name": "Kimi K2.6",
          "reasoning": true,
          "tool_call": true,
          "temperature": true,
          "attachment": true,
          "interleaved": {
            "field": "reasoning_content"
          },
          "modalities": {
            "input": ["text", "image", "video"],
            "output": ["text"]
          },
          "limit": {
            "context": 262144,
            "output": 65536
          },
          "options": {
            "chat_template_kwargs": {
              "thinking": true
            }
          }
        }
      }
    }
  }
}

The important bit is this URL:

https://integrate.api.nvidia.com/v1

NVIDIA's example uses the full /chat/completions URL, but OpenCode only needs the base URL. It adds /chat/completions by itself.

Works as expected, so that's it.


Laravel installer getting killed after update

I ran into this after updating Laravel / Herd Lite using the php.new installer. The update itself looked successful, but when I tried creating a new Laravel project, the command was immediately killed by macOS.

Initially, it looked like a Laravel installer issue because I also saw a PHP parse error from inside the Laravel installer PHAR. But the actual issue was lower-level: the bundled PHP binary was getting blocked/killed when running from Herd Lite's installed bin directory.

The fix was to download fresh PHP, Composer, and Laravel installer binaries and place them in a clean local bin directory. Then I updated my shell PATH so this clean directory is used before the problematic Herd Lite bin path.

In short:

export PATH="$HOME/.local/herd-lite-bin:$PATH"

After reloading the terminal, php, composer, and laravel resolved to the working binaries, and laravel new started working again.

So if Laravel commands suddenly start saying zsh: killed after a Herd Lite / php.new update, check where your php and laravel binaries are coming from first.


From free tools to full SaaS

I created a free tool a few months ago, and now it's getting 10-15 clicks every day from Google, as you see in the screenshot here. So... I researched a bit and realized that there is a solid SaaS opportunity on the site, I can have the main tool free but then can also build some paid features in the web app.

Google Search Console screenshot of a free tool getting traffic

And not just this, take a look at another free tool I created before ChatGPT was launched, and it's still getting lots of traffic from Google and other referrers. Take a look at the screenshot here:

GSC for another free app getting traffic from Google

This one is getting 80-140 clicks a day consistently for years now, and I haven't done anything with it yet, but not anymore. I am working on it to bring some paid offerings in the app, currently, in the brainstorming phase. For research, I am analyzing other similar apps and also going through the data from Google Search Console, and it's been very helpful so far.

If you're wondering, I am not going to tell you what the app is about just yet because it's very simple, and the idea can be copied with just a prompt. But yes, I will eventually share more about these.

Honestly, "distribution" has always been important, but it has become even more important in the age of AI because "code" is not the moat anymore. In my case, I already have thousands of visitors coming to the tool and if I create the paid version, I will instantly have lots of potential customers.

Also, the concept of engineering as marketing is the most rewarding than ever in the current time, because creating free tools around your main product is simpler and faster than ever. If you want to experiment something with the lowest effort, just ask any LLM to give you ideas for free tools around you main product, create one, publish it in a subdomain, and forget it for a few weeks. If you see a positive traction, create the tool on the main domain, and do a redirect from the subdomain.

I think, this is the best use-case of AI for marketing.


Save a clipboard image to computer on macOS

I take a lot of screenshots and most of the time keep them in my clipboard and then paste wherever needed, like on socials or in AI coding tools when working. But sometimes, I also need to save those images locally on my computer, and till now I have been doing one of these two things:

  1. Either take the screenshot once again, or
  2. Paste images somewhere like on Imgur, and then save by using "save image as" feature

Silly, but yes.

However, I recently found out a trick that works like a charm, at least on macOS. The process is:

  1. Open the Preview app, you can do so by searching for Preview via Spotlight search
  2. Press cmd + n and you should already see the image from your clipboard

Now, just save it using cmd + s or however you want to, as you see in the screenshot here.

Save clipboard image on computer in macOS

It works as expected and even gives you image format you want to save your screenshots as.

TIL.


DeepSeek v4 Pro should be taken seriously

For the last 2 days, I have been using the DeepSeek v4 Pro model via OpenCode Go and it has been a fantastic experience. I never expected the model to be this good at UI as well as logic.

For example, I am creating a custom blog publishing CMS powered entirely by Cloudflare (D1, R2, and Workers). Initially, I used Codex for this and Codex did ready the first working version, but the UI was very bad and cluttered and the user-experience wasn't great either. I didn't even like the CMS a bit.

But then I fired up OpenCode and gave everything to the DeepSeek v4 Pro model, and asked it to re-do and re-design everything by keeping user-experience in mind. I, then, went to the gym and the model had done its magic by the time I returned. It ran for ~35 mins and completed everything in one go, and the design was already looking much cleaner and just better.

Design created by DeepSeek v4 Pro

I still had to give a few more prompts to refine some things, and it did everything perfectly. Just for your information, while working, I kept the thinking effort as default, as you see in the screenshot.

DeepSeek v4 Pro thinking effort as Default

From the next month, I think I am going to save decent amount of money on AI tools subscriptions. Currently, I am subscribed to Codex $100 plan but now I think Codex $20 with OpenCode $10 (+ $10-20 for extra usage) should be enough for my use case.

Lastly, I think the DeepSeek v4 models should be taken more seriously by everyone. Their API pricing is also currently discounted by 75%, and there is absolutely no reason to not use this model.


Introducing EternalQR – a dynamic QR code tool

Introducing EternalQR – a small web-app to create dynamic QR codes, update their links later, track scans, customize them, and download them as PNG or SVG files.

I got the idea for this from something that happened to my brother.

He had created a video on YouTube and added a QR code to it using some free QR code tool he found online. Initially, the QR code was working correctly. But later, when the video started getting lots of views, the QR code stopped working.

And because the QR code was already inside the video, there was no way to update or replace it.

That made me think that QR codes are a bit different from normal links. A link on a website can be changed anytime. But a QR code often ends up in places that are hard to edit later – YouTube videos, restaurant menus, business cards, flyers, packaging, event signs, invoices, stickers, and so on.

So I created EternalQR around one simple idea: if a QR code is already created and used somewhere, normal plan changes should not turn it into a dead link.

Creating new QR code in EternalQR app

Some things it supports right now:

  • dynamic QR codes with editable destinations
  • scan analytics with country, device, browser, referrer, and time
  • QR codes for websites, contact cards, Wi-Fi, SMS, email, phone, and plain text
  • logo and color customization
  • PNG and SVG downloads
  • pause, expiry dates, tags, and basic dashboard management
  • existing QR codes keep redirecting through normal plan changes

The app is built on Cloudflare Workers, D1, and KV, so redirects are very cheap to serve. Paid plans are mainly for things like more QR codes, longer analytics history, customization, and other features.

The pricing is also kept simple:

  1. Free – 5 QR codes
  2. Starter – $5/mo for 50 QR codes
  3. Pro – $19/mo for unlimited QR codes
  4. Lifetime – $89 once for Starter features

Not to mention, but all these plans come with unlimited scans.

Here's how an already created QR code page looks, with scan analytics and more.

Scan analytics for QR codes at EternalQR

It's not a huge ambitious product, but just a practical tool for a problem I saw happen in real life.


Compact Tabs are back in the Safari browser

I love using the Safari web browser on my MacBook, especially when I'm traveling because it consumes less battery on the laptop. But with the macOS Tahoe 26 update, the Compact tabs feature was removed from the browser, and I was sad about it.

And I'm just learning that with the new macOS Tahoe 26.4.1 update, the compact tabs feature is back in the Safari browser, as you see in the screenshot here.

Compact tabs feature in the Safari browser.

It's good already, but I think it behaves a bit differently than it did in the macOS Sequoia or Sonoma, when it was still available. But it's still good, and I'm using it for a day and love it.

Thank you, Apple.


How to best spend $50 on AI coding tools

I have been spending over $100 every month on Claude Max and Codex Pro plans as I use the latest models from these providers for coding, but now I don't think that's the best way to do it anymore.

The current best option I think is, instead of getting higher plan for any one AI tool, get smaller plans for multiple providers. And the best combo I can think of is the following.

  1. Claude Pro – $20/mo
  2. Codex Plus – $20/mo
  3. OpenCode Go – $10/mo

Getting all these will only cost $50, but this is more than enough for my requirements. Here I will save money and also have access to top models from multiple providers. The different models can be used for different tasks that they're actually good at, for example:

  • for all design and UI related work – use the latest Claude models
  • for complex logic and programming – use the latest Codex models
  • for smaller tasks and everything else – use Kimi, GLM, or Qwen models via OpenCode

And not just me but several other people are also starting to realize this.

Currently, I am subscribed to Codex $100 plan that ends next month, and also to OpenCode Go plan. But I'm going to downgrade Codex to $20 plan and then also subscribe to Claude $20 plan and keep my OpenCode Go for $10.

That should be more than enough for three full-time projects I am currently working on.


My experience with the new GPT-5.5 model

Yesterday, OpenAI launched the newest model GPT-5.5 which I was too excited about for the last few days. And here are my experiences so far with using the new model inside the Codex app.

  1. GPT-5.5 is far better in frontend design than other OpenAI models like GPT-5.4 or 5.3-Codex. But it's still not at the level of Opus 4.7 of 4.6 when it comes to UI design.
  2. Even though it was claimed by Sam Altman that the new model uses fewer tokens per task than previous models, it's not the case when I use it. In my case, it used way more tokens than GPT-5.4 because earlier I could never finish the 5-hour limit on the $100 plan, but today I did, as you see below.

GPT-5.5 token usage

  1. The new model, GPT-5.5, definitely feels slightly faster than the previous, GPT-5.4, model in the standard mode. I think, both are equally faster in the speed/fast mode.
  2. I didn't notice any significant improvement in the programming though with the GPT-5.5 model, it feels similarly capable as GPT-5.4 model. Or, maybe I haven't tested this enough yet.

Also, the new Codex app feels snappier and the UI and UX is slightly improved now.

Apart from this, I can still not rely completely on the Codex subscription itself. I can use OpenCode with models like GLM-5.1 and Kimi-K2.6 for frontend design and then GPT-5.5 for everything else. The OpenCode Go plan is very generous at $10/mo and has crazy limits as well. So if I had to reduce my monthly spending, I would go with OpenCode Go ($10/mo) + ChatGPT Plus ($20/mo) and maybe $20-30 extra on OpenCode, and that should cover all my requirements.

I'm still playing with the GPT-5.5 model so if I find something new worth sharing, I will keep this post updated.

Update: Apr 25, 2026

I posted about limits draining too fast on X and many people recommended that I should rarely use Extra High effort for my tasks, and suggested using either Medium or High for most tasks. So... I gave the "High" effort a try, and it's good, I am satisfied with it so far.


SharePDF reaches 100 users

The app to share PDFs, SharePDF.app, that I created early this year has now reached the milestone of 100 users and I'm so happy for it. It took around 4 months to reach this milestone and I don't know what, but it makes me super happy.

I have been documenting most of the things on this page and reading previous logs takes me through the journey of things I did in the past few months – how I finalized which tech-stack to use, how I decided different features the app has, and more.

SharePDF is running stable and I don't need to do much on it now. But I still have 1-2 features or rather enhancements planned for near future. Also, I will be working on improving the landing pages as well, and maybe even create a few new ones targeting keywords that get searched a lot.


Codex is smarter than Claude Code

After seriously using Codex for a few days, it definitely seems smarter than Claude Code. But Codex is just awful at design. I have tried to make good designs using Codex multiple times, and it just doesn't work. In fact, I tried creating a few new pages for my Vemgram project that I am mainly working on these days, and even though the site has a design system set up, Codex is still unable to create designs that matches the aesthetics of the rest of the website.

I am very much disappointed for that.

For this reason, nowadays, I have started using OpenCode whenever I need to design something. I love the newest launched models like Kimi K2.5, Qwen 3.6 Plus, and GLM-5.1 models inside OpenCode. These open-source models are almost as good as Opus 4.6/4.7 when it comes to design.

Apart from this, I am hearing rumors that OpenAI is about to launch GPT-5.5 and also that it's great at design. If that's the case, I won't regret subscribing to Codex Pro at all.


After Claude, now Codex can't keep up with the demand

It's been almost an hour since OpenAI's Codex is completely down, as you see in the screenshot below. I recently moved away from Claude for this reason, and now I am facing the same issues here as well.

Codex is down

Codex still hasn't become as bad as Claude was a week ago and before that, but it seems like it's getting there. And it's surprising to me that if these AI companies can't keep up with the rising demands, why don't they just pause new signups temporarily? I mean, it will be better for everyone, no? – for users and then for their own brand image as well.

This is not at all fair for users. They're paying the premium to just experience degraded performance all the time. For example, just take a look at Claude's status chart for the last 90 days and you'll see lots of yellows and reds.

Claude status for the last 90 days

I, myself, had been paying at least $100 each month to Claude and now to Codex, but getting the same degraded performance. Honestly, I don't blame OpenAI or Anthropic for that they can't keep up with the demand, but I blame them because why are they still allowing signups and ruining the experience for everyone? They should just pause signups for some time till they get more compute, and if required pause again for some time till they get more compute, and so on.

I also run a SaaS, and I will feel very bad if I keep charging a fee to my customers and if my app is consistently down. I will even refund them and pause new signups till I get things sorted.

That's it.

Sorry for the rant, really.


I like Claude Code CLI's no flicker mode

I just started using Claude Code's new no-flicker or full-screen mode for the CLI and I like it better than earlier. When enabled, it just sends the text input field at the bottom of the screen and makes it sticky. Just like how you see in the screenshot here:

Claude Code CLI no-flicker mode

I like it because it doesn't disturb me when Claude is generating a large output, then I can keep reading from the top while it outputs at the bottom, without disturbing my flow.


Mistakes were made at Google Search Console

Today, I suddenly started receiving emails like below from Google Search Console for all my sites already added. These emails are normally sent when a new site is added to the GSC for tracking the search performance, but mistakes were made, for sure.

Repeated emails from Google Search Console

I have at least 8-10 sites added to this Gmail account and I received emails for all those in a 3-5 hour span. I also posted about this on X and several people confirmed that they have also received the same emails.

GSC email detail

And if you're curious about the contents of these emails, see the screenshot above. It's the same that Google sends when you add a new site to GSC.

I hope they fix it soon and do not annoy me, again.

Update: Apr 15, 2026

It was just a "glitch" as everyone suspected, as confirmed by John Muller from Google. Learned about this from this post on X by Gagan Ghotra.


Introducing SharePDF app

Introducing SharePDF – a web-app to host PDFs, share them as URLs, track their view analytics, and do much more. It's live and working, and already has more than 80 users at the time of writing this post.

I had this idea to create an app that makes sharing PDFs easier for at least 2 years, but I never worked on it. However, somehow I started working on it from January this year, i.e. 2026. I haven't done any kind of marketing as of now, and still regularly getting signups from sources I wouldn't even have guessed – Instagram and ChatGPT. Yes, someone must have created some content that people are discovering SharePDF from.

SharePDF X intro

Today, I have also posted on X for the first time about the app. Apart from this, I have also been sharing build logs on this page on my website – it just helps me keep myself in the loop.

Currently, I am not working on new features for the app but mainly working on improving the landing page, copy, and user experience.

By the way, I also launched Vemgram, a platform to connect Indian manufacturers with buyers, a few days ago. So, now, I have two full time projects that I am working on these days.


Better utilize Claude Code limits

Came across this post on X that shares a hack, a way to maximum utilize your Claude Code usage limits by setting up scheduled tasks. It seems silly at first, but it's actually helpful.

Claude Code reset Cron

As explained in the post, I set up a cron that sends "hi" every 5 hours starting from 8AM IST so that as soon as the limit resets, it immediately starts a new cycle so that you have clean time blocks.

30 2,7,12,17 * * *

And the best thing is, you don't need any extra tool to use for this.