JOURNAL // ENGINEERING NOTES

Blog

Field notes on native iOS engineering, web products, and shipping with confidence.

How to write a technical brief for a web or app project, 2026

A technical brief for a web project covers the problem, users, scope, constraints, budget range and success measures in two to four pages.

web developmentiosRead article

Service pages for AI answers: spec and comparison tables, 2026

Put specs in real HTML tables, mirror them in matching markup and keep both current. Google documents no table rule for AI answers, so treat it as practice.

seoaeoRead article

Local SEO for service businesses: profile, citations and reviews, 2026

Local SEO for a service business comes down to an accurate Google Business Profile, consistent citations and honestly earned reviews.

seoRead article

Dispensary schema markup with LocalBusiness and Store JSON-LD, 2026

Use Store with address, geo, phone, URL and hours on each location page. Skip Product merchant markup for cannabis: Google excludes it.

dispensariesseoRead article

Autonomous vs assisted AI: which one your workflow needs, 2026

Assisted AI follows steps you define. Autonomous AI chooses its own. Use the least autonomy that works, then add more only when measured gains justify it.

ai agentsRead article

Sharing auth and data contracts between a Next.js backend and a SwiftUI app, 2026

A shared backend for SwiftUI and Next.js works when one auth provider issues the tokens and one Postgres schema generates the types for both clients.

iosweb developmentRead article

GA4 setup for a new website: tag, key events and consent, 2026

Set up GA4 on a new website in the right order: property and stream, one Google tag, consent defaults before measurement, a few key events, then verification.

web developmentRead article

Zero click search in 2026: how to win when the answer is on the results page

68.01% of US Google searches ended without a click in early 2026. What the number means, what Google says it takes to appear in AI answers, and how to measure demand instead of visits.

seoRead article

Site migration SEO checklist: redirects, canonicals and monitoring, 2026

A site migration SEO checklist based on Google's guidance: map URLs, use 301 redirects, set canonicals, and monitor Search Console after launch.

seoweb developmentRead article

Dispensary website speed: fixing Core Web Vitals on embedded menus, 2026

Embedded menus slow dispensary websites by delaying LCP, shifting layout and busying the main thread. Targets and fixes, sourced from web.dev.

dispensariesseoRead article

LLM API data privacy in 2026: zero retention, residency and vendor terms

Both major vendors keep API data for up to 30 days by default. Zero retention needs approval, covers only some endpoints, and residency splits storage from processing.

ai agentsRead article

App store optimization basics: metadata, keywords and screenshots, 2026

Learn app store optimization basics: the character limits for names, subtitles and keywords, how screenshots rank, and the Google Play differences.

iosseoRead article

WCAG 2.2 requirements for web apps: what developers actually implement, 2026

WCAG 2.2 adds nine success criteria to 2.1. For most web apps, six at Level A and AA need real engineering work: focus visibility, target size, dragging, authentication, redundant entry and help.

web developmentRead article

Image SEO in 2026: formats, alt text and lazy loading that do not hurt LCP

Serve AVIF or WebP with a fallback, never lazy-load the LCP image, and write alt text for people. What Google documents for each.

seoweb developmentRead article

Dispensary loyalty programs: text, email and app rules, 2026

Dispensary loyalty programs can run on the web, by text, email or app. Each channel has its own consent and store rules. Here is what applies in October 2026.

dispensariescannabis retailRead article

Human in the loop AI: which agent actions need a person, 2026

Gate AI agent actions by reversibility: let reads run, log reversible writes, and require a person for sends, spend, deletes and publishing.

ai agentsRead article

Fastlane for iOS CI/CD: automating builds, signing and submission

Fastlane turns the archive, sign and upload loop into named lanes your CI can run. Here is the setup that works: Bundler, an API key, match and pilot.

iosRead article

Marketing site vs SaaS dashboard: architecture differences, 2026

A marketing site and a SaaS dashboard need different rendering, caching and auth. Here is what changes and when one project can serve both.

web developmentseoRead article

Content structure for AI retrieval: headings, chunks and paragraphs, 2026

Structure content for AI retrieval: one topic per heading, the answer first, and paragraphs that still make sense when a system lifts them alone.

aeoseoRead article

Content refresh strategy for blog posts: update, merge or delete, 2026

Update posts that still match a search need, merge overlapping ones with a permanent redirect, and delete only what has no purpose and no better home.

seoRead article

Multi-location dispensary SEO: one site or many, 2026

Use one domain with a page per licensed store. Split into separate sites only when brands, owners or state rules truly differ.

dispensariesseoRead article

AI agent cost control: tokens, caching and model routing, 2026

AI agent cost comes from resent context and output tokens. Cache the stable prefix, trim context and route each step to the cheapest model that passes.

ai agentsRead article

How much does an iOS app cost to build in 2026: ranges by scope

Most 2026 estimates put an iOS app at $15,000 to $50,000 for a simple build and $150,000 to $300,000+ for a complex one. Ranges and cost drivers.

iosRead article

How much does a website cost in 2026: landing pages, marketing sites and SaaS

A website costs about $300 to $3,000 for a landing page, $800 to $10,000 for a marketing site and $15,000+ for SaaS. See what moves each number.

web developmentRead article

AI Overviews and click-through rates: what the data shows in 2026

Clicks fall when a Google AI Overview appears: 38% to 58% in 2026 studies. Here is what each study measured and what it cannot prove.

seoaeoRead article

How to measure SEO results with GA4 and Search Console

Link GA4 and Search Console, publish the report collection, and build a monthly SEO report from clicks, impressions, CTR, position and engaged sessions.

seoRead article

Cannabis advertising restrictions on Google and Meta, 2026

US dispensaries cannot run marijuana ads on Google or THC ads on Meta in 2026. Here is what the policies say and what remains open.

dispensariescannabis retailseoRead article

How to build an eval set for an LLM feature before you ship

Build an LLM eval set before launch: define measurable criteria, mine real cases, add edge cases, validate your grader and gate releases by severity.

ai agentsRead article

Offline-first iOS apps: sync, conflict resolution and background fetch

Build an offline first iOS app: keep a local store as the source of truth, sync with an outbox, pick a conflict rule and treat background fetch as a hint.

iosRead article

Figma to code handoff: how to ship designs without drift

Figma to code handoff works when tokens, components and a ready-for-dev gate are shared artifacts. Here is how to set each one up.

web developmentRead article

How to track AI citations and brand mentions in AI answers, 2026

Track AI citations by separating mentions from citations, freezing a prompt set, logging results, and treating tool data as directional.

aeoRead article

Sitemaps and indexation: how to get pages indexed faster

Accurate lastmod dates, strong internal links and a fast server help new pages get crawled sooner. Here is what Google documents, and what it does not promise.

seoweb developmentRead article

Dispensary website design: 12 elements that turn browsers into orders

A dispensary site converts when the age gate, menu, speed and checkout work together. Here are 12 design elements, each tied to a primary source.

dispensariesweb developmentRead article

Choosing an LLM for a product feature: quality, latency and cost tradeoffs

The right model for a feature is set by its quality bar, latency budget and cost ceiling, not by which model ranks highest overall.

ai agentsweb developmentRead article

Universal links and deep linking: web-to-app handoff done right

Universal links on iOS and App Links on Android open your app from a tapped https link, with a safe fallback when the app is not installed.

iosweb developmentRead article

Vercel deployment guide: preview environments, edge caching and rollbacks, 2026

A practical guide to Vercel deployments: preview environments, edge caching headers, and how to roll back a bad release in seconds.

web developmentRead article

How AI crawlers work: GPTBot, ClaudeBot, PerplexityBot and your robots.txt choices

GPTBot, ClaudeBot and PerplexityBot are not one bot each. Here is what every AI crawler does and how to control them in robots.txt.

aeoseoRead article

Hreflang implementation for multilingual sites: common mistakes and how to fix them

Hreflang tells search engines which page serves which language and region. Here is the setup, a Next.js example, and the mistakes that break it.

seoweb developmentRead article

Google Business Profile for dispensaries: what you can and cannot list in 2026

What dispensaries can and cannot put on a Google Business Profile in 2026: category rules, disabled features, review policy and state compliance layers.

dispensariescannabis retailseoRead article

How AI content engines work, and where the quality gate goes

An AI content engine runs research, outline, draft and review as separate stages. The quality gate belongs before publish, not after.

ai agentsaeoseoRead article

Push notifications on iOS: APNs setup, rich payloads and permission timing

iOS push notifications need a one hour APNs provider token, a payload under 4KB, and a permission prompt timed to a real user action, not app launch.

iosRead article

Web performance budgets: how to set them and enforce them in CI

A performance budget is a numerical limit on load time and page weight, enforced on every pull request so a site stays fast instead of slowly regressing.

web developmentseoRead article

Entity SEO: how to make your brand unambiguous to search engines and LLMs

Entity SEO makes your brand a single, unambiguous entity to Google and LLMs. Learn the schema, sameAs and consistency tactics that drive AI citations.

seoaeoRead article

B2B keyword research: how to do it for a services business

B2B keyword research starts with the buying committee, not a tool. Here is how to find terms that match real search intent and commercial value.

seoRead article

Cannabis website compliance checklist, 2026

License display, age gates, exact warning text and ad audience thresholds differ by state. A 2026 checklist for cannabis website compliance.

cannabis retaildispensariesRead article

How to scope an AI workflow automation project

A practical method for scoping an AI workflow automation project: map the process by hand, sort each step into three buckets, and gate what can't be undone.

ai agentsRead article

SwiftData vs Core Data: choosing a persistence layer in 2026

SwiftData fits most new iOS 17+ apps. Core Data still wins for older OS support, SQL-layer aggregate queries, and existing CloudKit setups.

iosRead article

Landing page conversion: 15 elements backed by testing data

A 2,000 page 2026 study shows which landing page elements actually move conversion, and which cosmetic changes barely matter.

web developmentcase studiesRead article

FAQPage schema and AI answers: does structured data still matter in 2026

Google dropped the FAQ rich result on May 7, 2026. Here is what still works for FAQPage schema and AI answer engines like ChatGPT and Google AI Overviews.

aeoseoRead article

The schema markup guide to rich results in 2026

A schema markup guide to which structured data types still earn Google rich results in 2026, and why FAQPage no longer does.

seoRead article

Dispensary menu integrations: embedded menus versus native menus

Embedded iframe menus load fast but are often invisible to search engines. Native menus cost more to build and are the ones Google can actually index.

dispensariesweb developmentRead article

AI agent guardrails: permissions, approval gates and audit logs

AI agent guardrails are permission scopes, approval gates and audit logs enforced outside the model. Here is how to set them up, and where teams go wrong.

ai agentsRead article

WidgetKit and Live Activities: what they are and when to ship them

WidgetKit covers widgets, controls and Live Activities, but only Live Activities run on ActivityKit, skip timelines and drop network and location access.

iosRead article

Choosing a CMS for a Next.js marketing site: headless vs. database-backed

A database like Supabase fits when a developer owns every publish. A headless CMS fits when editors need independence or the content must reach another channel.

web developmentRead article

How to write answer capsules AI assistants actually quote

An answer capsule is a short, self-contained answer, about 120 to 160 characters, placed right after a heading so an AI assistant can quote it whole.

aeoseoRead article

Internal linking strategy for small sites: a practical structure

A small site needs two or three pillar pages, three to five contextual links per article, and a quarterly orphan page check, not enterprise tooling.

seoaeoRead article

Dispensary online ordering: pickup, delivery and payment options in 2026

Cannabis delivery, pickup and online ordering rules vary by state. Here is what compliant checkout requires in Washington, New York and California in 2026.

dispensariescannabis retailRead article

What is RAG (retrieval-augmented generation), and why support and sales assistants need it

RAG lets an AI assistant answer from your real documents, not a guess. Here is how it works, and why support and sales bots need it.

ai agentsRead article

The App Store rejection reasons that trip up most submissions in 2026

Apple ties over 40% of unresolved App Store rejections to one guideline. See the six that account for most rejections, quoted from Apple's own text.

iosRead article

Incremental static regeneration: how ISR works and when to use it

Incremental static regeneration caches pages instantly and rebuilds them in the background. Here is how time-based and on-demand ISR work, and when to use it.

web developmentRead article

llms.txt explained: what it is, who reads it, and how to write one

llms.txt is a proposed Markdown file that lists a site's key pages for AI agents to read. Here is the format, who actually uses it, and how to write one.

aeoseoRead article

Programmatic SEO: template pages that rank without thin content, 2026

Programmatic SEO pages don't get penalized for being templated. They get penalized for offering no value per page. Here's how to build the template correctly.

seoRead article

Dispensary SEO: how to rank for dispensary near me in 2026

Ranking for dispensary near me comes down to a verified, storefront only Google Business Profile, LocalBusiness schema and real reviews, not keyword stuffing.

dispensariesseoRead article

What is MCP (Model Context Protocol), and how do AI agents use it to connect to tools

MCP is Anthropic's open standard, launched in November 2024, for connecting AI agents to outside tools and data through one consistent interface.

ai agentsweb developmentRead article

Swift 6 strict concurrency: a migration guide for existing apps

Swift 6 strict concurrency turns data races into compile time errors. Here is the module by module process for migrating an existing app without a full rewrite.

iosRead article

Supabase row level security, explained for multi-tenant apps

Row level security is Postgres's built in authorization system. Here is how grants, policies and auth.uid() combine to keep tenants apart in a Supabase app.

web developmentRead article

How to get cited by ChatGPT, Perplexity and Google AI Overviews in 2026

Getting cited by ChatGPT, Perplexity and Google AI Overviews takes search fundamentals plus platform-specific authority, not a special AI file.

aeoseoRead article

Core Web Vitals in 2026: LCP, INP and CLS targets and how to hit them

The 2026 Core Web Vitals targets are LCP under 2.5 seconds, INP under 200ms and CLS under 0.1, measured at the 75th percentile of real visits.

seoweb developmentRead article

Dispensary website age gate requirements by state, 2026

New York, Washington and California each define a cannabis website age gate differently. Here is what each regulator's text actually requires in 2026.

dispensariescannabis retailRead article

What is an AI agent? A plain-English definition for business owners

An AI agent is software that pursues a goal and completes multi-step tasks using tools, with real autonomy, unlike a chatbot that only answers questions.

ai agentsRead article

SwiftUI vs UIKit in 2026: when native SwiftUI is the right call

In 2026, SwiftUI is the default for new iOS screens and rewrites, while UIKit still fits legacy code and a few uncovered APIs. Here is the decision rule.

iosRead article

Next.js App Router versus Pages Router for a new project in 2026

For a new project in 2026, Next.js recommends the App Router. Here is what changes, what still favors Pages Router, and the caching pitfalls to expect.

web developmentRead article

What is answer engine optimization, and how does it differ from SEO

Answer engine optimization (AEO) means earning a citation inside an AI generated answer, not just ranking a page. Here is what changes, and what does not.

aeoseoRead article

Dispensary website requirements in Minnesota, 2026

Minnesota dispensary sites must meet age verification, ordering, advertising and accessibility rules. Here is what compliance requires in 2026.

dispensariescannabis retailRead article

Next.js technical SEO audit checklist, 2026

A technical SEO audit checklist for Next.js sites: rendering strategy, metadata, sitemaps, Core Web Vitals, structured data and hreflang.

seoweb developmentRead article

Shipping SwiftUI Apps With Confidence

How we take a SwiftUI product from first commit to a clean App Store release: audits, bridges, and staged rollouts.

ioscase studiesRead article