~15 years ago I wrote an original Game Boy emulator over the span of a couple of months.
This weekend, I "wrote" fully functional GBA and SNES emulators with my pal Claude.
It's great at a few things that others usually fall short:
1) Getting enough context (and consequently burning a lot of API tokens, but worth it)
2) Planning before doing using its plan mode
3) Staying on track by generating todos for each task
I've tried to work-around some of these things with other tools using things like claude-task-master but it's just not the same.
So far I've tried Cursor, Augment Code, Aider, ChatGPT & Gemini, and others for coding.
Finally gave Claude Code a try and I think I'm here to stay. π
Got tired of copy and pasting code into Gemini chat, so I built a thing!
Before you ask, not a big fan of Cursor for various reasons. Gemini has massive context windows and I prefer to give it a lot more code upfront as opposed to reading files one by one.
Migrated Superdo from Cloud Run to Kubernetes and deployed an LLM gateway.
That makes supporting other model providers a lot more easy.
Added Google Gemini to start π€
Excited to be soft-launching Superdo! π₯³
Superdo is one place to chat with the best AI models like ChatGPT and Claude 3.5 Sonnet.
There's a free tier that supports models like GPT-4o mini and Claude 3.5.
Pro is $20/m for GPT-4o and Claude 3 Opus.
More to come!
Working on a @figma plugin to visually align layers.
Ever notice how things don't always look aligned after using Figma's alignment tools?
That's because layers are often visually weighted. They have more / darker pixels on either sides.
This plugin takes that into account.
@housecor Especially important when working with a larger team and folks who may not be as familiar with the library. Make the codebase enforce practices and donβt make me think!
IMO - better to handle errors manually if using with typescript.
One of my principles is to avoid surprises & be explicit. You can forget to catch an exception. The DX doesnβt force you to handle error cases before you can read the response.
Better to have an API that narrows based on something like βres.okβ. That way itβs self-documenting and doesnβt let you shoot yourself in the foot.