How to Keep a Virtual Pet on Your iPhone Home Screen
Add a pet widget to your Home Screen and Lock Screen, care for it with a tap, and set reminders that check in without nagging. A short guide for iPhone.
Read MoreFirst-hand engineering write-ups from the AgentsMesh team on iOS architecture, Go backends, observability, and agent infrastructure — with the trade-offs.
Add a pet widget to your Home Screen and Lock Screen, care for it with a tap, and set reminders that check in without nagging. A short guide for iPhone.
Read MoreStart slower than feels necessary, move up only after steady runs, and take small steps near the target. A practical method for reaching your teacher's tempo.
Read MoreA video diary survives when each day costs seconds, not an evening of editing. What to film, when, how to handle missed days, and how to keep the footage private.
Read MoreAdding captions to a video on iPhone? Choose burned-in or a sidecar file by destination, then apply the line, timing and safe-zone rules viewers can read.
Read MoreAllergy, intolerance and coeliac disease follow different rules. How to keep one profile per person, record severity, and prepare an emergency plan and card.
Read MoreBulk delete screenshots on iPhone by sliding to select in the Screenshots collection. First check codes, receipts and tickets, and that iCloud isn't full.
Read MoreAI can read a label and flag known allergens, but not concentration, pH or your skin's history. What ingredient analysis can infer, and what it never can.
Read MoreA widget helps mood tracking only while you still notice it. How habituation, iOS 17 interactive widgets, the Lock Screen and StandBy change what it can do.
Read MoreAn iPhone widget is a snapshot that gets about 40 to 70 refreshes a day, not a tiny app. Build a custom one in order: data, size, layout, empty states.
Read MoreDenoise an iPhone recording without the underwater sound: name the noise, fix it at the mic, reduce lightly and compare both versions at equal loudness.
Read MoreExact HEX colours from a photo depend on light, camera processing, JPEG and colour space. Sample an averaged area, read it in sRGB, and know when to measure.
Read MoreTwo studies have tested Pomodoro breaks against self-chosen ones. What they found on fatigue, focus and finished work, and which rhythm fits which kind of task.
Read MoreA GPS watermark lets anyone read time and place but is easy to crop or fake; tamper-evidence lets software catch edits. When to use each, and how to pair them.
Read MoreA useful avoid list names allergens you have evidence against, from a patch test or a dated reaction log, not every scary ingredient. How to build yours.
Read MoreWidgetCraft widget missing from the gallery, reading No Widget Selected, or stuck on old data? Here is the cause behind each symptom and the fix for it.
Read MoreFocus modes, Screen Time limits and blockers built on Apple's Screen Time API stop different things and fail differently. How to set a boundary that holds.
Read MoreLossless music on iPhone stays lossless only to the weakest link: file format, Bluetooth, the DAC and level matching. What each one does, and what to check.
Read MoreApple Watch logs HRV as SDNN, which shifts with age, sleep, alcohol, illness and time of day. Why your own rolling baseline beats norms, and how to read it.
Read MoreA music player with no account and no ads should prove it. Read the privacy label, check tracking, App Privacy Report and permissions with this checklist.
Read MoreA personal hours record persuades when it is written at the time, specific, consistent and backed by other evidence. What to log per shift, and the deadlines.
Read MoreChina has had 13 statutory holiday days since 2025, plus weekend make-up workdays. Which days pay 300% extra, which 200%, which are ordinary, and where to look.
Read MoreRemove vocals from a song on iPhone knowing what to expect: why channel cancellation fails, what AI separation scores, and where copyright still applies.
Read MoreTell staff before you order, ask about fryers, sauces and garnishes, and know what EU, UK and US rules oblige a restaurant to tell you about allergens.
Read MoreChinese characters fade fastest right after you learn them, so test yourself at widening intervals rather than rereading. Research, SM-2, FSRS and intervals.
Read MoreRun the agent on a server inside tmux and use the phone as its remote control. How to connect, lock down key and network, and answer approvals from an iPhone.
Read MoreSaving a colour palette as an image: when Display P3 beats sRGB, why PNG keeps flat swatches exact, and what happens to a P3 file in apps that only know sRGB.
Read MoreBefore you delete a screenshot, copy its code, address or booking number into the app that will use it, and stop keeping screenshots of passwords and IDs.
Read MoreHow SFTP compares with SCP, FTPS, SMB and sshfs on iPhone, how to resume a failed copy, how to verify it with a checksum, and where the Files app fits in.
Read MoreStroke-order rules, the four tones plus the neutral tone, tone changes in speech and where pinyin puts the tone mark: what to learn with every new character.
Read MoreTo sync video cuts to the beat on iPhone, turn BPM into frames: a beat lasts 60 ÷ BPM seconds. A table for 24, 30 and 60 fps, the drift fix, where to cut.
Read MoreA SHA-256 hash shows a photo is unchanged since it was hashed; a trusted timestamp shows when. Neither shows where, by whom, or that the scene was real.
Read MoreAn iPhone keyboard can bring AI into any text field only with Allow Full Access. What that switch grants, where keyboards stop working, and built-in options.
Read MoreBuild a colour palette from a photo that holds up: choose roles by subject, split 60-30-10, check hue angles and test text against WCAG's 4.5:1.
Read MoreClean up duplicate photos on iPhone with Duplicates and Merge, then handle what Merge leaves: bursts, near-identical shots, repeat screenshots and videos.
Read MoreCreating remixable content by voice takes more than dictation: an editable source, a credit chain and instructions spoken as structure. How each works.
Read MorePaged notebooks suit iPad notes you will print or hand in; infinite canvases suit ideas with a shape. How to choose, and which Pencil features matter.
Read MoreTo edit video on iPhone without a watermark, export a five-second test first, then match resolution, frame rate, codec and HDR to where the video will go.
Read MoreFrom the first prenatal visit to the 3-year checkup: the records clinicians ask for later, the schedules they follow, and why one timeline beats four apps.
Read MoreFind the best photos in your camera roll with a two-pass cull: reject failures on sight, then pick by focus, eyes, light and uniqueness, and mark the keepers.
Read MoreA mood log sticks when the daily act is tiny, tied to a routine you already have and rated on a fixed scale. What habit research says, and how to set it up.
Read MoreThe Flowtime Technique swaps the 25-minute countdown for a count-up, an interruption log and breaks sized to the work. How to run a session and review a week.
Read MoreUS labels must flag 9 allergens, EU labels 14, China's new standard 8, and none has to warn about cross-contact. What a label or a scan can show before you eat.
Read MoreA job photo report that settles disputes shows each item before, during and after, framed wide to close, labelled, and checked for gaps before you leave site.
Read MoreEveryday signs and objects can teach Chinese characters if you capture, decode and review them. What the research says, and where photos fall short.
Read MoreAn aesthetic Home Screen is a small design system: colors sampled from the wallpaper, one font pairing, shared margins and corners, and a plan for Tinted mode.
Read MorePlan a moon-watching night: pick a phase near first quarter for craters, time moonrise (about 50 minutes later each day), then check altitude, cloud and seeing.
Read MoreRecord, edit and master a song on iPhone: wired monitoring, 24-bit takes, comping, a first mix and a master that suits -14 LUFS and -1 dBTP streaming targets.
Read MoreIngredient lists follow legal rules: weight order down to the 1% line, parfum for fragrance, CI codes last. Read one yourself and see why barcode apps miss.
Read MoreiOS suspends backgrounded apps within seconds and a Wi-Fi to 5G switch breaks TCP. What keepalives, Mosh and tmux each fix when SSH on iPhone keeps dropping.
Read MorePlay music from a NAS on iPhone without copying it: SMB, WebDAV, DLNA or Subsonic, the bitrates involved, safe remote access and why sleeping disks stall.
Read MorePhoto evidence holds up when the recipient can check it: shoot a scaled sequence, keep the original, hash it early, hand it over unconverted and log transfers.
Read MoreEstimating pay from logged hours takes an hourly basis (China ÷174, Taiwan ÷240, the US regular rate) and the right overtime multiplier. Worked examples.
Read MoreThe Translate app and Live Text read a menu in seconds, but dish names, dialect words and stylised fonts defeat literal translation. How to get a usable read.
Read MoreA currency missing from our FX table made one subscription vanish from every USD rollup, silently. The fix asks a different question at the money's entrance.
Read MoreA cost-per-acquisition threshold fired on two installs. We killed three keywords; two were healthy. Now the instrument cannot report a verdict without its sample size.
Read MoreWaveCraft had tracks that looked real but were not signal paths. We made every edit, effect, pan and export share one graph, then made the project survive a restart.
Read MoreWe removed a feature and forgot the App Review notes, which still told reviewers to press a button that no longer existed. The same copy lived in four independent files.
Read MoreWe built a tool to classify the keywords we rank for, so we would stop guessing. Three biases in it were self-confirming, and it told us to delete our best terms.
Read MoreAn upstream release swapped its default iOS test runner in one line, no description. 1,070 of our test targets left the simulator capacity lease overnight, silently.
Read MoreSix Apple signing keys sat in our repository for eleven months, reaching every clone, every worktree, every CI job. The guard marked critical could not have found them.
Read MoreBoth obvious verdicts, not-empty and not-white, are constantly true: before the first frame the view shows a flat tile of background. Pixel verdicts must name content.
Read MoreEvery suite was green while the shipped APK crashed on entering any 3D scene. R8 renamed a class JNI resolves by name, and every test ran a build R8 never touched.
Read MoreOur input engine hashed 80 MB of shipped data on every launch — 557 ms, against a 224 microsecond keystroke decode. The data had already been proven once, by the writer.
Read MoreFour things can be true of a scene's routing and the old shape named two, so a healthy row rendered as a red fault. A warning that is always on is not a warning.
Read MoreThe catalog said the model could see images, so the app sent one, and the relay dropped it silently. Two places computed one intersection by hand, one line apart.
Read MoreTwo Android SDK constants moved into the file that looked right — and that file is loaded by a module extension. Our lockfile went stale, and CI went red on Go linters.
Read MoreA Play release failed with a 400 that our own code treats as retryable, and the comment explaining the fix says the opposite. Both comments are in one function.
Read MoreLoopal's agent became cross-platform through one Rust runtime for admission, connectors, memory and event projection, with native host lifecycles.
Read MoreWe had an agent loop in Rust and another in Swift. Deleting the Swift one: 22,207 lines removed, five added. The duplication was not free — it billed us as one-off fixes.
Read MoreShipping Riff, QuipKey and WaveCraft across App Store and Play needed one durable state machine, not two scripts. The ledger now owns intent, evidence and recovery.
Read MoreWidgetCraft stopped shipping a second UI implementation: a document package now feeds the creator preview, the extension, and the renderer from one tested tree.
Read MoreContext made a ranking bug worse. Five root causes were wrong. The real one: an unsmoothed estimate scoring 3.46 bits below its own baseline — whose fix disabled context.
Read MoreOur agent can only reach a mailbox once a user connects their account. The wrong two-state answer asked for calendar access first, then said we needed Gmail.
Read MoreOur CI orchestrator re-derived pass/fail from stdout, so a test that passed on retry was judged red. The verdict now comes from Bazel's event stream.
Read MoreA table derived from 23 product declarations put every product in every other blast radius: Bazel invalidates per file, not per symbol, so a narrower export did nothing.
Read MoreKafka consumers committed by poll watermark, so a later batch could commit past an unprocessed record. Three months of rows vanished silently — one cursor owner fixes it.
Read MoreMore entries made our ranking worse. A five-times-larger lexicon scored 42.36% top-1 against our 47.71%, in 86 MiB against 18 — and the model still cannot promote itself.
Read MoreOur architecture guard watches the repository it verifies. Its tests kept flaking on macOS notification timing, and the end was deleting the invariant they enforced.
Read MoreTen UI tests each waited a minute for one missing element: 50 of a 70-minute job. The fix memoises the failure — a failed wait is a fact, a passed one a measurement.
Read MoreGetStringUTFChars does not return UTF-8. A supplementary character comes back as six bytes where standard UTF-8 has four, and a Rust boundary rejects it.
Read MoreOur architecture rules were prose in a contributor guide, and code drifted quietly. Each is now a manifest a tool enforces on the exact lines you are about to write.
Read MoreA CI runner could not get 8 GiB. Two attempts with JVM flags, each carrying a check that shrinking the heap to 16m must break the build. Both passed. CI still died.
Read MoreAgent memory built on a typed graph and an append-only event log instead of a vector store, so recall reinforces across sessions. Measured: +7.4% MRR, +16.1% R@10.
Read MoreYAML remote config let a product set a ghost key or split experiment weights that don't sum to 100. Two .rc dialects let the compiler reject that before runtime.
Read MoreDropping Sentry for an in-house iOS crash path: a release stage sending dSYMs to MinIO, getsentry/symbolicator for symbolication, agent triage via mainline-cli.
Read MoreA performance metric pipeline shipped, compiled, and registered cleanly, yet recorded zero rows for months. Four serial gaps, each one passing every green light.
Read MoreRatios and percentiles survive telemetry sampling for free. Business totals don't: dividing by the sampling rate quietly lies. The distinction that matters.
Read MoreTwo DSLs each project one spec into Swift, Go, TypeScript, Proto and ClickHouse DDL — one Rust binary, several subcommands, one genrule per output.
Read MoreOne analytics binary did ingest, enrich, query and admin. We split it into collector/worker/datahouse, moved to Connect-RPC, and walled test data off from prod.
Read MoreA shared River queue let a daily 100-deep burst starve sub-second cron jobs. Nine kind-scoped queues with their own budgets, plus OTel metrics split from traces.
Read MoreA three-path i18n audit — static CSV check, Swift source scan, pseudo-localization OCR — took one app from 247 hardcoded leaks to 0, at 95%+ locale coverage.
Read MoreOur agent runtime hung 30s at startup because one process sent IPC before the other read. The bad ordering is now a compile error via a typestate bootstrap chain.
Read MoreFolding a CI/CD platform and a five-stage analytics pipeline into the iOS monorepo: where boundaries go, how Go and pnpm deps are shared, hash-based port isolation.
Read MoreA runner leaked one defunct process per pod create-destroy cycle because Release() doesn't reparent. Every long-lived child now goes through one double-fork manager.
Read MoreA dotted Google email became a username, got templated into an org slug, and the API returned 422. Not one validation call — six layers that each fail closed.
Read MoreLoopal's agent had no tiebreaker when guidelines conflicted. Six Prime Axioms in a priority-110 prompt fragment — what each fixes, and why they outrank user input.
Read MoreEach agent tool had a hand-written JSON schema and a separate hand-written parser, and the two drifted. A Rust trait made the parameter struct the source for both.
Read MoreOur sandbox rejected legitimate ops work with unoverridable errors. The fix: stop treating path violations as fatal and route them through the permission system.
Read MoreOne deep-research request spawned 38 agents; an earlier task spawned 129. Depth-degraded tools, an atomic hub budget and forked context bound the tree without a cap.
Read MoreMoving multi-agent channels from a global single-channel store to a per-channel cache with IM-standard scroll, and wiring @mention straight into a pod's PTY.
Read MoreOur pod daemon spoke Unix sockets on macOS/Linux and named pipes on Windows: two transports, two test paths, a 104-byte limit. All of it collapsed onto TCP loopback.
Read MoreTerminal image paste returned 502 in US deployments: a 15s backend timeout under a proxy-to-S3 round trip. Presigned PUT/GET removed the backend and ~900 lines.
Read MoreA year of polishing WidgetCraft, from first idea to shipped app: the journey, the design decisions, and why home-screen widget customization is worth pursuing.
Read MoreSwift 6 strict concurrency checking cost us plenty and raised our code quality anyway. The problems we hit migrating an iOS app, and the solutions we settled on.
Read MoreDesign principles and best practices for iOS widgets that stay both beautiful and functional in very limited screen space, learned while building WidgetCraft.
Read MoreWhy AgentsMesh? From the initial vision to becoming a tech team focused on the iOS ecosystem, this article tells our origin story.
Read More