All Posts

Thoughts, learnings, and snippets from the journey back to dev.

My last day using Fable5....

I'm using Fable5 like crazy right up until the very last day.

#essay

Building a Prescription Fraud-Verification Blockchain With an AI Coding Assistant (From Smart Contract to Web UI)

A record of recording prescription hashes on-chain with a Solidity smart contract, going from a local demo to a Sepolia testnet deployment and a web UI, all in one day

#Blockchain#Solidity#Hardhat#Ethereum#Claude Code

Landing a Job in Deep Learning & Big Data — What a Developer Should Nail Down in 6 Months

A portfolio beats finishing every course. A learning roadmap for deep learning and big data, organized by job role, aimed squarely at getting hired

#Deep Learning#Big Data#Career#PyTorch#SQL

Two Different AI Functions Were Writing Resumes in the Same Service — One Better Than the Other

Following up on a user's subtle quality-comparison feedback led to discovering a duplicated resume-generation API, unified by porting the RAG and prompt techniques, and cleaning up the redundant buttons

#Claude API#RAG#Prompt Engineering#Next.js#Refactoring

Building My Own Local LLM — A Realistic Way to Run Sonnet-Level Performance on My Mac

Can an individual actually build an LLM? A rundown of realistic options — from running open-weight models, to RAG, LoRA fine-tuning, and training nanoGPT

#LLM#Ollama#LoRA#RAG#MLX

Getting a Free support@yourdomain.com Email With ImprovMX

How to forward custom-domain email to a personal Gmail account for free, and even send from that address, without a paid mailbox

#ImprovMX#Email#DNS#Gmail#Domain

Paddle Domain Review: Matchida (Typeform Survey) Answer Guide

Paddle Instead of Stripe for SaaS Payment Systems... Guide to Answering the Paddle Survey

#Paddle#Stripe

Why We're Returning to a Strategy of Reducing the Number of Tokens

AI ultimately moves at the pace of humans.

#tokens#Human#AI

Claude Fable 5: Resumes After an 18-Day Hiatus; “Free Credits” Period Runs Until 3:59 p.m. on July 8 (KST) – Including Strategies for Generating Codes

Clog Fable 5: Review and Future Usage Tips

#Cladue Fable 5#Mythos#Fable 5

From JobRadar to Matchda — A Side Project Rebranding Story

The naming criteria and branding decisions behind renaming the feature-descriptive "JobRadar" to Matchda

#Branding#Naming#SideProject#matchda

Job Sites Where Link Copying Doesn't Work? Solved With a Manual Card-Add Feature

A record of building a feature to manually enter and create a card for job postings blocked from URL scraping, using Next.js Server Actions

#Next.js#Server Actions#Supabase#TypeScript

Building a Proper Next.js App Router Favicon: From an SVG Monogram to Shrinking a 285KB .ico Down to 2KB

The App Router icon conventions, sharp rendering, the png-to-ico size trap, and hand-rolling ICO encoding I ran into while replacing the default Next.js favicon with a brand monogram

#Next.js#Favicon#sharp#SVG#Branding

Screen Breaks Every Evening? The prefers-color-scheme and Tailwind v4 Layer Trap

The cause of a bug where only the background turned black due to automatic OS dark mode, and the fix using color-scheme to lock it to light

#CSS#TailwindCSS#Next.js#Dark Mode

For a Multilingual Site, Separate URLs Per Language Win at SEO

Why a multilingual site needs distinct per-language URLs like /en/ and /ko/ instead of a single URL that swaps content by browser language, plus hreflang and canonical basics

#SEO#next-intl#i18n#Next.js

Renaming a Service: Custom Domain Setup and the OAuth Redirect Trap (Vercel + GoDaddy + Supabase)

A field report of rebranding from JobRadar to matchda.com — buying the domain, connecting it to Vercel, GoDaddy DNS, and Supabase Auth configuration

#Vercel#GoDaddy#Supabase#DNS#OAuth

Knowing When to Give Up on Scraping Is a Skill Too: Landing on a Click-Through Fallback After Fighting Cloudflare + an SPA

A record of throwing a stealth browser at scraping Canva's careers page, giving up, then finding the real cause through diagnostic logs and wrapping up with a practical fallback

#Web Scraping#Cloudflare#Playwright#Vercel#Debugging

Drag Works, But the Order Doesn't Change — Making Sorting and Manual Order Coexist

How I fixed a bug where dnd-kit drag reordering was getting overwritten by auto-sort, then persisted the user's manual order to the database

#dnd-kit#React#Next.js#Supabase#PostgreSQL

An AI That Blocks You One More Time Before You Commit — Automating Commit Validation With a Subagent

How I built a pre-commit-validator subagent to catch hardcoded emails or missing user_id filters from slipping into commits, and the design principles behind it

#Claude Code#Subagent#Code Review#Security#Automation

It Works Locally But Not on the Server — Fighting a Job-Scraping Bot Block

How I absorbed intermittent 403s from Akamai bot blocking with retries and better headers, and fixed a bug where failures were overwriting perfectly good data

#Web Scraping#fetch#Next.js#Vercel#cheerio

I Was Calling the Translation API Every Single Time — Caching Translations in the DB

Eliminating the waste of re-translating the same content every time a modal opens, by caching it in the DB — plus the pattern for invalidating the cache when the source text changes

#Supabase#Next.js#PostgreSQL#Claude API

Just One Username Changed — Tracking Down Hardcoded Absolute Paths

When my macOS username changed from hy to hs after switching laptops, I traced every /Users/hy absolute path across the project with grep and fixed them all — an experience and its lesson

#macOS#grep#Absolute Paths#Dev Environment#Troubleshooting

When Claude Code Breaks Into Dotted Lines in iTerm2: CJK Width Settings and Coding Fonts

A record of fixing horizontal lines breaking into dotted dashes and Korean characters spacing out oddly in iTerm2, using the Unicode 9 width option and D2Coding/Sarasa fonts

#iTerm2#Terminal#Font#Claude Code#macOS

Can You Switch iTerm2s Menus to Korean? My Actual Findings

What I learned trying to switch iTerm2 to Korean via macOS's per-app language setting, and how that differs from the real problem — garbled non-ASCII text

#iTerm2#macOS#Terminal#Localization

What You Actually Need to Save When Switching MacBooks Isn't Code — It's Keys

How to safely move signing keys, environment variables, and credentials that git clone doesn't bring along, over to a new MacBook

#git#macOS#Android#Secrets Management#Dev Environment

4 Ways to Quickly Copy Just a File Path on a MacBook

How to copy the full path of a file or folder on macOS without installing any app — Option right-click, the ⌥⌘C shortcut, terminal drag-and-drop, and pbcopy

#macOS#Finder#Terminal#Productivity

Korean Chat Answers, Translated to English All at Once at the End — Building an Onboarding Flow

My experience collecting user info via chat right after signup, then translating and structuring it into English with a single Claude API call at completion time, saving both Korean and English

#Next.js#Claude API#Supabase#Onboarding

When pnpm install Dies With Exit 1: Build Script Approval and the Per-Platform Native Binary Trap

A record of fixing pnpm install exit 1 while moving an Expo monorepo configured for Replit (linux-x64) over to an Apple Silicon Mac, resolved via onlyBuiltDependencies and allowBuilds

#pnpm#Expo#React Native#Monorepo#Apple Silicon

Building a React Native (Expo) Project on a New Laptop — 4 Traps I Hit

A record of solving JDK, node, Gradle cache, and launcher issues in order while building and installing an RN app on a new Mac with copied node_modules and android folders

#React Native#Expo#Android#Gradle#Troubleshooting

Moving a React Native (Expo) Project to a New Computer — Copying Without node_modules, Then Restoring the Environment

The full process of restoring an Expo project moved without node_modules using npm ci, including catching a missing nvm shell load

#React Native#Expo#npm#nvm#Node.js

From 'Installing' Apps to 'Generating' Them — The Vision of an AI-Native OS

Mobile and desktop OSes are no longer just about selling apps — we're entering an era where you build what you need, together with AI, right inside the OS

#AI Native

Auto-Generating Slugs in the Admin Editor — DeepL + camelCase + Date

How I improved slug auto-generation from Korean titles by adding English translation, camelCase conversion, and a date suffix

#NextJS#Admin#UX#DeepL

Logging Into Claude Code With a Different Account, Only in a Specific Folder — Using direnv

How to combine CLAUDE_CONFIG_DIR and direnv to keep separate Claude Code login accounts per project folder

#Claude Code#direnv#Dev Environment#macOS

I Tried Fable 5 — Then the US Government Shut It Down for Non-Americans

Anthropic's new Fable 5 Mythos model was noticeably better at explaining things. Then it got blocked for overseas users overnight

#AI#Anthropic#Thoughts#Essay

What It Means to Share a Playlist — Why I Built Sharing Into ChainPlay

Adding a share feature to ChainPlay wasn't just a convenience feature — I wanted to build a culture of sharing taste through playlists

#ChainPlay#SideProject#App Development#YouTube

Sharing App Content Without a Server — GitHub Pages + Android Deep Links

How I added a chain-sharing feature to ChainPlay using nothing but GitHub Pages and deep links, with no server involved

#Android#GitHub Pages#Deep Link#React Native#Expo

Building a Share Feature Without a Database — Shrinking a URL That Got Too Long

How I fixed a share-link URL that ballooned past 1,300 characters, by dropping titles and listing only videoIds, bringing it down to 266

#React Native#Expo#oEmbed#GitHub Pages#Deep Link

Building a Tailored Resume With AI While Keeping DOCX Formatting Intact — JSZip + Claude API

How I used JSZip to manipulate a DOCX's internal XML directly, keeping the original layout untouched while letting Claude AI rewrite only the paragraph text to match a job description

#JSZip#Claude API#DOCX#Next.js#TypeScript

Turning Off the Red Warnings in Google Search Console — Fixing Next.js i18n Redirect Errors

From 404s to redirect errors to duplicate pages — digging through Search Console errors one by one and fixing them with a few lines in next.config.ts

#NextJS#SEO#GoogleSearchConsole#next-intl#Debugging

Managing My Application History in Code — Storing Submitted Resumes + Auto-Logging Application Dates

How I used Next.js Server Actions and Supabase to attach a submitted resume and application date directly to each job card

#Next.js#Supabase#Server Actions#TypeScript#SideProject

Got an IARC Email After Registering an App on Google Play — Just Ignore It

An IARC Live Rating Notice is just a notification that your app's age rating is now live on the store. Here's why you don't need to do anything about it

#GooglePlay#Android#App Publishing#IARC

Showing an English Page to Foreign Users — By Browser Language, Not IP

How I auto-detect language in Next.js 16 proxy.ts using the Accept-Language header, with a cookie to persist the user's choice

#Next.js#i18n#next-intl#Multilingual

The Menu Is Cut Off on Mobile — Fix It with a Hamburger Menu

How I fixed the scrolling issue in the Next.js blog navigation on mobile using a hamburger menu

#Next.js#React#Responsive Design#Tailwind CSS

How I Fixed Google AdSense's "Low Value Content" Rejection

When a single-feature tool site keeps getting rejected by AdSense as low-value content, here's how I restructured the pages and content to pass review

#AdSense#SEO#React#SideProject

Koreans say 'better than expected' more than expected

A quiet observation about why Koreans soften every compliment with "better than I thought"

#thoughts

Google Play Production Approved

Google Play production approved

#googleplay#app registration

Renaming a Core App Concept — From Folder to Chain, Front to Back

What it took to rename the Folder concept to Chain across the ChainPlay app, and how a type-driven TypeScript refactor made it manageable

#React Native#TypeScript#Refactoring#ChainPlay

Why Should You Delete a Merged Feature Branch? — Local & Remote Deletion, Summarized

Why you should delete feature branches after merging, plus the commands for deleting them both locally and remotely

#git#branch#Collaboration#Version Control

My Blog's Post List Vanished Because of a GitHub REST API Rate Limit

How I fixed a Next.js blog's post list disappearing after hitting the GitHub API rate limit, by switching to the GraphQL API

#GitHub API#GraphQL#Next.js#Troubleshooting

Upload 10 Images, Get 1 Commit — Batch Uploads With the GitHub Tree API

How I improved a Next.js admin so that selecting multiple images produces only a single commit, using the GitHub Tree API

#GitHub API#Next.js#Tree API#Troubleshooting

Google Play Console - Registering for production after private testing

A summary of what you need to fill out to apply for production access after completing 14 days of private testing.

#Google Play Console#app launch#Private testing

Google Play Closed Testing — the More Often You Update, the Faster Approval Comes

What I felt bumping the Tilt game version — update frequency directly affects review approval during closed testing

#Android#GooglePlay#Private testing#App Publishing#Game Development

How to Clean Up Android Build Files — Reclaim Several GB in One Shot

A complete rundown of how to safely clean up Android build files once they start eating your disk space

#Android#Gradle#Dev Environment#Disk Management

Next.js Multilingual Blog SEO — Why Google Ignores /ko, and Two Fixes

How a missing x-default hreflang and unhandled isFallback posts caused a Google Search Console duplicate-page error, and how to fix both

#Next.js#SEO#next-intl#hreflang

Supabase Free Usage Restrictions

Found out the hard way that Supabase free plan only allows 2 active projects

#Supabase

How to Create and Use Agents

Using AI agents on the blog

#AI Agent#Claude Code

[INFO] Blockchain & AI Hackathon utilizing mobile IDs

Applying for a blockchain & AI hackathon that uses mobile digital IDs

#Hackathon#AI#BlockChain

Next.js + next-intl: A /ko/ Redirect Error and a proxy.ts Conflict Ordeal

How I hit a build error while trying to fix a Google Search Console redirect error, and what I learned about the proxy.ts structure

#Next.js#next-intl#SEO#middleware

Ollama Review (How it feels to use each model)

Review of each model - DeepSeek, EXAONE, QWEN comparison

#Ollama#AI#Local AI#DeepSeek#EXAONE#Qwen

Installing Ollama and getting started with local AI

A guide to installing Ollama and selecting a model for local AI

#Ollama#AI#local AI#macOS

Why I Removed "1 min read" From the Blog Post List

Why a read-time badge backfires on a young blog, and how I removed it from Next.js components

#Next.js#UI#Blog#React

The Day Google Crawled a Code Example on My Blog as an Actual Link

Tracing a 404 error in Search Console led to discovering Google had interpreted a filename inside a post's code example as a real URL — fixed with redirects in next.config.ts

#NextJS#SEO#GoogleSearchConsole#Debugging

What Happens When You Forget Canonical on a Next.js Multilingual Blog

Why Google Search Console flagged "Duplicate, Google chose different canonical than user" and how to set up canonical correctly in a next-intl environment

#NextJS#SEO#next-intl#GoogleSearchConsole

Why My Next.js Site Got a Scroll Animation Every Time I Navigated Pages

Tracking down two consecutive scroll-jump bugs caused by a back button implementation tangled up with scroll-behavior smooth

#NextJS#AppRouter#Debugging#UX#CSS

After GitHub Warned Me About a Huge AAB File — Moving Build Artifacts to Local Version Control

Why you shouldn't commit Android release build files (AAB/APK) to GitHub, and how to version them in a local folder instead

#Android#AAB#GitHub#Git#ReactNative

Adding Korean/English Support to a React Native (Expo) App — My Locale Detection Ordeal

Trying three different approaches — expo-localization, NativeModules, and the Intl API — and landing on the final answer

#React Native#Expo#i18n#Android

50 screenshots blew up my blog - debugging GitHub API limit exceedance

The story of how committing 50 images at once caused a Vercel build to spin 50 times and hit the GitHub API request limit.

#Vercel#GitHub#NextJS#Debugging

Google Play Store App Registration A-Z - The whole process with screenshots

A hands-on, screenshot-filled guide to the entire Google Play Console process, from creating an app to passing a private test.

#googleplay#Android#AppStore#app launch

A Privacy Policy's Children's Clause and Play Store's 'Everyone' Rating Are Separate Things

My confusion over whether adding "not directed at children under 13" to a privacy policy meant I had to set a 13+ content rating

#Google Play#App Publishing#Privacy Policy#COPPA#Content Rating

[Essay] Something Is Starting to Click

Seven weeks of building with AI — and somewhere along the way, I fell into AI engineering without meaning to

#thoughts

Getting an Expo app to the Play Store - From building AAB to creating store assets

A walkthrough of the build, asset creation, and bug fixing process we went through to get our React Native (Expo) game app to the Google Play Store for the first time.

#Expo#ReactNative#Android#GooglePlayStore#Supabase

One apostrophe broke my Vercel build — the YAML frontmatter trap

When local builds were fine but only Vercel failed, the culprit was a single line of YAML title with English abbreviations.

#Vercel#YAML#NextJS#Debugging#GitHubActions

Google AdSense Rejected Me — The Reality of a Tool-Only Site

After being rejected for "low value content," I expanded content and reapplied to AdSense on a WiFi QR code generator site

#AdSense#React#i18n#SEO#SideProject

I Built a WiFi QR Code Generator — My First Completed Side Project with AI

A WiFi QR code generator I made because sharing passwords to guests was annoying — React + i18n + print support

#React#TypeScript#i18n#SideProject#qrcode

Your own playlist app without YouTube Premium - Build it yourself with React Native (Expo)

Building a YouTube playlist app from scratch with Expo SDK 54 + TypeScript — what broke and how I fixed it

#React Native#Expo#expo#YouTube#Android

How to Install Android Apps Directly - From APK to USB Debugging

How to install Android apps without Google Play and how to install them directly with ADB USB debugging.

#Android#adb#React Native#development environment#app development

Why GitHub Actions Commits Don't Show on Your Contribution Graph — Fix with KST Timezone

The timezone issue where GitHub Actions auto-commits don't appear on the contribution graph. One line — TZ=Asia/Seoul — fixes it.

#GitHub#GitHubActions#ContributionGraph#Automation

React Native YouTube App — Android WebView Playback, Custom Button, and Keyboard Bugs

From Android WebView security policies, KeyboardAvoidingView pitfalls, and autoplay timing bugs - here are the issues and solutions we encountered while improving the YT Player app.

#ReactNative#Expo#Android#WebView#Bugfixes#YouTube

Launching a React Native app on the Play Store - from build to intro copywriting

A recap of our first launch, including automating AAB builds, resolving versionCode errors, writing store intro copy, and analyzing Play Console recommended actions.

#Android#play store#React Native#Expo#ASO

Claude Code, why longer conversations get slower and how to use /clear

Claude Code gives a practical overview of why piling on context gets slower and more expensive, and how to fix it with /clear.

#Claude Code#context window#token management#AI development tools

Why Google Ignored My Blog - 2 Next.js SEO Bug Fixes

How I discovered a missing index in Google Search Console and fixed the canonical tag and footer 404 links.

#Next.js#seo#canonical#i18n#Google Search Console

Obsidian Git Mobile Settings - Synchronizing GitHub on Android

How to clone a GitHub repo with the Obsidian Git plugin on Android and set up automatic synchronization.

#Obsidian#git#android#GitHub#Mobile

The story of setting up the Obsidian Git plugin and encountering an xcrun error

How to resolve the xcrun error I encountered while connecting Obsidian to GitHub and setting up the Git plugin.

#Obsidian#Git#macOS#GitHub#xcode

Data isolation bugs exposed by creating multi-user apps with Supabase service role

4 data isolation pitfalls and solutions when using only the service role client without RLS.

#Supabase#Next.js#PostgreSQL#PostgREST#Multiuser

Why Is Android Background Playback So Hard — Doze, WakeLock, and Foreground Service

How I fixed a bug where track transitions stopped working when the screen turned off in a cassette music player app, using Foreground Service + PARTIAL_WAKE_LOCK

#Android#React Native#Expo#BackgroundAudio#WakeLock

[JobRadar Part 7] Google OAuth "Database error" — Down the Supabase Trigger Rabbit Hole

Google login kept failing with "Database error saving new user" — I dug all the way to creating a new Supabase project before finding the fix was one line in a trigger function

#JobRadar#Supabase#OAuth#Debugging#SideProject

[JobRadar Part 6] Cover Letters Done Right, UX Polish, and Adding Login

Cover letter save/download/AI review, memo and status management, direct JD input, and Supabase Auth — everything built in one day

#JobRadar#Supabase#NextJS#TypeScript#SideProject

How to run a blog with Claude Code - automate from creation to scheduled distribution

The complete workflow of running a blog with Claude Code, from post creation, translation, registration, and scheduled distribution.

#ClaudeCode#blogging#Automation

[Claude Console] Buy Credits button is disabled - Causes and solutions for not checking out

In the Claude Console, the Buy button would not activate even after all payment information was entered. The cause was a bug that reset the city selection when switching languages.

#Claude#ClaudeConsole#Troubleshooting

JobRadar Part 5: Dropping the Automation Fantasy and Building a Practical Pipeline

After giving up on Playwright auto-scraping, I built an on-demand pipeline — URL paste → JD scraping → AI matching → cover letter generation — over two days.

#JobRadar#NextJS#Playwright#cheerio#AI#SideProject

JobRadar Part 4: Why I Ditched Playwright for cheerio — The Day-4 Pivot

After three days fighting Playwright, I gave up. On day 4, I completely changed direction — from auto-collection to URL-based on-demand scraping, using cheerio + JSON-LD.

#JobRadar#cheerio#Scraping#Vercel

How to Email Claude Support — Bypassing the AI Chatbot

When Claude support only gives you AI responses, here's the step-by-step process to create a real email ticket and reach an actual person.

#Claude#Support

Building a Claude Code Custom Agent — A Practical Guide with blog-auto-draft

How to create Claude Code custom agents to automate repetitive tasks. A step-by-step walkthrough using blog-auto-draft as a real example, from file structure to invocation.

#ClaudeCode#Agent#Automation

[Claude Console] Payment Broken. DO NOT Delete Your Organization!!!

Claude Console organization deletion accidentally deleted the account — a cautionary tale

JobRadar Part 3: Deploying Playwright to Vercel Blew Up — The @sparticuz/chromium Journey

Why a scraper that ran fine locally kept exploding on Vercel. From @sparticuz/chromium adoption to ETXTBSY, 60-second timeouts, and everything in between.

#JobRadar#Playwright#Vercel#Serverless

Connecting Gemini to Claude Code via MCP — Using Two AIs Without Token Anxiety

A step-by-step guide to connecting Gemini as an MCP tool inside Claude Code, so you can delegate token-heavy tasks to Gemini without leaving your workflow.

#ClaudeCode#MCP#Gemini#AI

[JobRadar Part 2] Supabase Schema + Playwright Scraper — Debugging Notes

JobRadar part 2. From Supabase multi-user schema design to Indeed and Seek Playwright scraper implementation. Glassdoor blocks, ETXTBSY, missing modules — all the pain points documented.

#JobRadar#Playwright#Supabase#Scraping

Claude Code Hooks — Automate Tasks When Claude Finishes

Auto-format on save, response completion alerts, approval request notifications — a step-by-step guide to automating repetitive tasks with Claude Code Hooks.

#ClaudeCode#Hooks#Automation

[JobRadar Part 1] Project Setup — I Built an AI Tool to Help Me Find a Job

From automated job scraping to AI matching — JobRadar side project part 1. A step-by-step walkthrough of the initial Next.js + Supabase + Vercel setup.

#JobRadar#NextJS#Vercel#SideProject

I Built an App — Now How Do I Publish It? Google Play Console from Start to Finish

A step-by-step walkthrough of publishing an app on Google Play Console for the first time — from developer account registration to AAB upload and review submission.

#Android#Google Play#App Publishing#React Native

[App Launch] How to Gather 12 Testers — Why You Should Use Google Groups

How to efficiently recruit 12 testers for a Google Play test track. Why Google Groups beats manual email registration, and the exact order of steps that actually works.

#AppStore#AppTesting#GooglePlay

DeepL API Integration — Adding Translation to a Next.js App

A step-by-step guide to adding translation functionality to a Next.js app using the DeepL API Free plan. From getting an API key to building a server-side route.

#DeepL#Translation API#Next.js#API Integration

Scheduled Blog Post Publishing with GitHub Actions

How to set up a GitHub Actions workflow that automatically publishes blog posts on a specified date — based on a real implementation experience.

#GitHub Actions#Automation#CI/CD#Vercel#Blog

How to Register a Google Play Developer Account (2026 Guide)

A complete step-by-step guide to creating a Google Play Console developer account and completing identity verification as of 2026.

#Google Play Console

Comparing 3 translation APIs - MyMemory vs DeepL vs Claude, what should I use?

I'm comparing and contrasting my experience with MyMemory, DeepL, and Claude APIs while adding translation functionality to my blog admin.

#Translation API#DeepL#MyMemory#Claude API#Next.js

Changing Page Title and Meta Tags per Page in React SPA — react-helmet-async

How to dynamically control title and meta tags per page in a React SPA using react-helmet-async for better SEO.

#React#SEO#react-helmet-async#SPA

Wireless ADB Debugging — Install APKs Without a Cable

How to set up wireless ADB debugging between a MacBook and an Android device. Install APKs over Wi-Fi with a single command — no USB cable needed.

#android

[Claude Code] How to Create and Use Skills - Your Own Slash Commands

Learn how to create and use Skills to automate repetitive tasks in Claude Code with hands-on examples.

#Claude Code#Skill#Automation#Slash commands

Getting Your Site on Google — Next.js SEO Setup Guide

How to add robots.txt, sitemap.xml, Open Graph, and JSON-LD to a Next.js App Router blog to get it indexed on Google — based on a real implementation.

#SEO#Next.js#Google Search Console#Open Graph

[App] Developing Cassette Player App_02

Cassette Tape Player App Development Journal 02

#React Native#Cassette App

[App] Developing Cassette Player App_01

Cassette tape player app development journal 01

#React Native#Cassette App

What is a good platform for beginners to Replit vs Claude Code?

Reviews comparing Replit and ClaudeCode.

#Replit#ClaudeCode

Data inbreeding

When the data produced by AI-dependent humans stops growing, what happens to AI?

I Go to the Library to Look at Covers

Book titles reflect what an era cares about — and I think I've been going to the library just to browse them

#thoughts#Essay

[Claude Code] Claude Code Study Guidelines to Learn Efficiently and Quickly

Claude Code The direction to study and the basic study sequence

#Claude Code Study#Study Guideline

[AI] Stitch review

Reviews using Design AI in Stitch

#Stitch#Design system

[AI_StartDevelopment04] Maintain Session

If the network changes while working, the session is sometimes broken.: (

#AI coding start#Session

I was a legacy developer.

#AI Development#Legacy

[Start AI Development_000] Opinion on AI Development (Guidelines)

Comments and Thoughts on AI Development

#AI coding start

[AI development start_003] Create multilingual features

How to create multilingual features

#AI coding start#multilingual

[AI Start_001] Claude Code Start

start creating this blog with ai clod code

#Start Claude Code

[AI Start Development_002] Add Image

Add image embedding feature

#Add blog image.ai

Starting Over at 40

Why I built this site — and why I'm returning to development after a decade away

#BackToDev