jewei.toString()

18 posts since 2022

Writing

Notes on backend architecture, developer tools, infrastructure, and working with AI.

Follow by RSS

2026 , 12 posts

  1. No. 018

    TinyDash: a tiny dashboard behind a shortcut

    TinyDash is a keyboard-first launcher for macOS, Windows, and Linux. Version 0.6 adds aliases, calculator history, and Homebrew and Linux packages.

  2. No. 017

    Meet Jerd: Local PHP Development, Native on macOS

    Jerd is a native macOS app that serves your .test sites over HTTPS, gives each project its own PHP version, and runs databases, mail, and S3 storage.

  3. No. 016

    Herdr Bar: agent status in the macOS menu bar

    Herdr Bar shows which coding agents are running, need input, or have finished, and opens their terminal panes from the macOS menu bar.

  4. No. 015

    A new look

    Serif text, fewer boxes, and more space for the work and writing.

  5. No. 014

    A performance review of how I use AI

    What I do well with AI coding agents, where my habits cause problems, and what I want to change. A personal review based on two assessments of my chat history.

  6. No. 013

    Full Page: capture a complete page in Brave

    A Brave extension that captures a complete web page as one PNG, with a local preview and no image uploads.

  7. No. 012

    Uppa: A Small Uptime Monitor at the Edge

    A self-hosted uptime monitor and public status page built for Cloudflare Workers.

  8. No. 011

    Bopop: press, type, go

    I built Bopop, a keyboard-first launcher for macOS. Local-first, no Accessibility permission, zero dependencies. Free and open source.

  9. No. 010

    Claude Meter 2.0: Your Claude Usage, Now With Energy

    Claude Meter 2.0 shows your Claude usage as the energy you have left, with a card per account and settings to make it yours. Free and open source for macOS.

  10. No. 009

    Claude Code Tips: 10 Settings and Habits I Use Daily

    Ten Claude Code tips I use every day: auto mode setup, a global CLAUDE.md working agreement, critic agents, effort per model, and settings that cut noise.

  11. No. 008

    Meet Claude Meter: Know Your Claude Usage at a Glance

    I wanted to see my Claude Code usage before hitting the wall, so I built a macOS menu bar app. Picking the data source mattered more than the parser.

  12. No. 007

    The Eight Levels of AI Adoption

    Most people who say they use AI mean they ask ChatGPT questions. A practical guide to the eight levels, from answering questions to running systems.

2025 , 1 posts

  1. No. 006

    TypeID PHP: Type-Safe, Sortable IDs for PHP

    A PHP library for TypeIDs: UUIDv7 with a type prefix, like user_01h455vb4pex5vsknk084sn02q. Sortable, URL-safe, and one composer require away.

2023 , 3 posts

  1. No. 005

    The Spectrum of Software Makers

    From no-code to Python to assembly language. As a software maker aspiring to build a business, what's your game plan?

  2. No. 004

    They said PHP is dead

    Is PHP dead? Why PHP earned its bad reputation, how PHP 7 and 8 made it fast and modern, and why Laravel keeps it the workhorse of the web.

  3. No. 003

    Laravel Skeleton

    The Laravel Skeleton offers a rapid and efficient way to start a new project by scaffolding a Laravel app with minimal setup.

2022 , 2 posts

  1. No. 002

    How to Scale a System to Millions of Users

    From one server to millions of users: stateless web servers, load balancers, read replicas, caching, and a CDN, plus why DigitalOcean is usually enough.

  2. No. 001

    Database Primary Key: Integer vs UUID vs NanoID

    Integer, UUID, ULID, or NanoID as a primary key? My default: an auto-increment integer for joins plus a UUID or ULID for public URLs, with a comparison table.