<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Posts | SUMAN</title><link>https://suman.netlify.app/post/</link><atom:link href="https://suman.netlify.app/post/index.xml" rel="self" type="application/rss+xml"/><description>Posts</description><generator>Hugo Blox Builder (https://hugoblox.com)</generator><language>en-us</language><lastBuildDate>Mon, 27 Apr 2026 00:00:00 +0000</lastBuildDate><image><url>https://suman.netlify.app/media/icon_hu_1f8f41e4ad59c1b5.png</url><title>Posts</title><link>https://suman.netlify.app/post/</link></image><item><title>Environmental Data — and Where Does It Come From | GIS</title><link>https://suman.netlify.app/post/environmental-data/</link><pubDate>Mon, 27 Apr 2026 00:00:00 +0000</pubDate><guid>https://suman.netlify.app/post/environmental-data/</guid><description>&lt;p&gt;If you have ever read a report warning that a river is shrinking, a wetland is disappearing, or a city&amp;rsquo;s air quality is dangerous, you were reading the conclusions drawn from environmental data. But what exactly is environmental data, and who collects it in the first place?&lt;/p&gt;
&lt;h2 id="a-simple-definition"&gt;A Simple Definition&lt;/h2&gt;
&lt;p&gt;Environmental data is any measured, observed, or recorded information about the natural world and how human activity interacts with it. It can describe the physical state of land, water, and air; the health of ecosystems and species; or the pressures that human settlements, industry, and agriculture place on natural resources.&lt;/p&gt;
&lt;p&gt;The key word is &lt;em&gt;measured&lt;/em&gt;. Environmental data is not opinion or estimate — it is grounded in observation, whether that observation comes from a satellite 700 km above Earth or a farmer describing how long floodwater stayed on her fields last monsoon.&lt;/p&gt;
&lt;h2 id="the-main-types"&gt;The Main Types&lt;/h2&gt;
&lt;p&gt;Environmental data generally falls into a few broad families.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Physical and geographic data&lt;/strong&gt; describes the landscape itself — elevation, soil type, river discharge, rainfall, temperature, and land cover. This is the baseline against which everything else is measured.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Ecological and biodiversity data&lt;/strong&gt; records which species live where, in what numbers, and in what condition — fish populations in a beel, migratory birds using a haor, or the presence of a plant species that has not been recorded in a district for twenty years.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Pollution and contamination data&lt;/strong&gt; captures what humans are releasing into the environment — agrochemical residues in soil, effluent in rivers, particulate matter from brick kilns, or arsenic in groundwater.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Socioeconomic and land use data&lt;/strong&gt; links the natural environment to human activity — how much agricultural land was converted to settlement last decade, how many households depend on open-water fisheries, or which communities flood most frequently and why.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Hazard and disaster data&lt;/strong&gt; documents events — flood years, drought duration, storm damage — and helps identify which areas are most vulnerable and why.&lt;/p&gt;
&lt;p&gt;No single report uses all of these. But a serious environmental assessment draws from at least three or four types together, because environmental problems are almost never caused by one factor alone.&lt;/p&gt;
&lt;h2 id="where-environmental-data-comes-from"&gt;Where Environmental Data Comes From&lt;/h2&gt;
&lt;p&gt;Sources fall into two broad categories: &lt;strong&gt;primary data&lt;/strong&gt;, which you collect yourself, and &lt;strong&gt;secondary data&lt;/strong&gt;, which institutions have already collected and published.&lt;/p&gt;
&lt;h3 id="secondary-sources--the-foundation"&gt;Secondary Sources — the Foundation&lt;/h3&gt;
&lt;p&gt;For most environmental reports, secondary data from government agencies and research institutions does the heavy lifting. In Bangladesh, for example, the Bangladesh Bureau of Statistics (BBS) holds population, agricultural production, and livelihood data at the upazila level. The Soil Resource Development Institute (SRDI) has decades of soil survey records. The Bangladesh Water Development Board (BWDB) maintains river discharge measurements and flood frequency histories. The Department of Environment (DoE) holds pollution monitoring records and the legal register of Ecologically Critical Areas.&lt;/p&gt;
&lt;p&gt;Internationally, satellite platforms make an enormous amount of environmental data freely available. Sentinel-2 and Landsat imagery from the European Space Agency and NASA respectively allow anyone with a computer to map land cover, measure water body area, and track vegetation health across time — without setting foot in the field.&lt;/p&gt;
&lt;h3 id="primary-sources--what-only-you-can-find"&gt;Primary Sources — what only you can find&lt;/h3&gt;
&lt;p&gt;Secondary data has limits. It may be out of date. It may not exist at the upazila or union level. And it almost never captures the lived knowledge of local communities.&lt;/p&gt;
&lt;p&gt;This is where primary data collection becomes essential. Focus Group Discussions (FGDs) with farmers, fishers, and local government members can reveal fish species that have disappeared from a beel within living memory, specific roads whose construction blocked a drainage channel, or the precise years that particular storms destroyed crops. That knowledge is irreplaceable and cannot be retrieved from any database.&lt;/p&gt;
&lt;p&gt;Field observation — visiting a beel, walking a river bank, photographing a brick field — adds ground truth that satellite imagery alone cannot provide.&lt;/p&gt;
&lt;h3 id="the-rule-never-mix-the-two-up"&gt;The Rule: never mix the two up&lt;/h3&gt;
&lt;p&gt;A common mistake in environmental reporting is presenting estimated or locally-observed information with the same confidence as rigorously measured institutional data. Good practice is to always signal the source and its certainty — phrases like &amp;ldquo;according to BWDB records,&amp;rdquo; &amp;ldquo;based on community consultation,&amp;rdquo; or &amp;ldquo;estimated from regional satellite analysis&amp;rdquo; give the reader the information they need to judge how much weight to place on each finding.&lt;/p&gt;
&lt;h2 id="why-it-matters-for-land-zoning"&gt;Why It Matters for Land Zoning&lt;/h2&gt;
&lt;p&gt;Environmental data is not collected for its own sake. Its purpose is to inform decisions — about where to protect agricultural land from development, which wetlands deserve legal conservation status, where brick fields should not be permitted, and which communities need flood resilience investment most urgently.&lt;/p&gt;
&lt;p&gt;A land zoning plan built without solid environmental data is essentially a map drawn in the dark. It may look authoritative, but it cannot account for what is actually there — the soil that takes a generation to regenerate, the beel that is the last remaining spawning ground for five fish species, the drainage channel that, if blocked by a new road, will flood three unions every monsoon.&lt;/p&gt;
&lt;p&gt;Getting the data right is not a bureaucratic formality. It is the difference between a zoning plan that protects a landscape and one that accelerates its destruction.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;em&gt;This post is part of a series on environmental planning methodology for Bangladesh. The next post covers how to analyse land use change using free satellite imagery.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://sumangeo.vercel.app/uploads/BD_Environmental_Reporting_Framework.html" target="_blank" rel="noopener"&gt;Framework&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;A comprehensive breakdown across two categories: &lt;strong&gt;LLMs for GIS reasoning/coding&lt;/strong&gt; and &lt;strong&gt;specialized GIS/geospatial AI platforms&lt;/strong&gt;.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="-best-general-llms-for-gis-tasks"&gt;🤖 Best General LLMs for GIS Tasks&lt;/h2&gt;
&lt;p&gt;Based on the &lt;strong&gt;GeoBenchX benchmark&lt;/strong&gt; — which specifically tested LLMs on multistep geospatial tasks (spatial reasoning, coordinate systems, geodata, mapping):&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Claude Sonnet 3.5 and GPT-4o achieved the best overall performance&lt;/strong&gt; across commercial LLMs tested (which included Claude Sonnet 3.5, 3.7, Haiku 3.5, Gemini 2.0, GPT-4o, GPT-4o mini, and o3-mini). Claude models excelled on solvable GIS tasks, while OpenAI models were better at identifying unsolvable scenarios.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Model&lt;/th&gt;
&lt;th&gt;Provider&lt;/th&gt;
&lt;th&gt;GIS Strength&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Claude Sonnet 3.5/3.7&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Anthropic&lt;/td&gt;
&lt;td&gt;Best on solvable geospatial tasks&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;GPT-4o&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;OpenAI&lt;/td&gt;
&lt;td&gt;Strong overall, good at edge cases&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Gemini 2.0&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Google&lt;/td&gt;
&lt;td&gt;Solid, benefits from GEE integration&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;o3-mini&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;OpenAI&lt;/td&gt;
&lt;td&gt;Good reasoning for spatial logic&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;hr&gt;
&lt;h2 id="-specialized-gis--geospatial-ai-platforms"&gt;🗺️ Specialized GIS &amp;amp; Geospatial AI Platforms&lt;/h2&gt;
&lt;h3 id="for-geodatabase--full-gis-workflow"&gt;For Geodatabase &amp;amp; Full GIS Workflow&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;ArcGIS Pro / ArcGIS Enterprise (Esri)&lt;/strong&gt; — Industry standard
GeoAI is embedded throughout ArcGIS across geoprocessing and analysis tools. ML algorithms handle clustering, prediction (classification &amp;amp; regression), and spatiotemporal forecasting. Deep learning is used for pixel classification, image segmentation, object detection and tracking, change detection, and extracting geospatial data from unstructured text.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;QGIS&lt;/strong&gt; — Free &amp;amp; open source
QGIS integrates with GRASS GIS and SAGA GIS for enhanced analytical capabilities, and supports publishing via QGIS Server through OGC-compliant web services. It&amp;rsquo;s completely free and open-source under the GNU General Public License.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id="for-satellite-imagery--remote-sensing"&gt;For Satellite Imagery &amp;amp; Remote Sensing&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Google Earth Engine (GEE)&lt;/strong&gt;
GEE provides access to an extensive archive of satellite imagery and environmental datasets. Its AI-driven features include detecting landscape changes using ML algorithms — tracking deforestation, urban sprawl, and natural disasters in near real-time. The cloud-based platform allows processing of enormous datasets without expensive hardware.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Planet (now Planet Labs)&lt;/strong&gt;
Planet runs the largest fleet of Earth observation satellites, imaging the entire planet&amp;rsquo;s landmass every single day. Their APIs and web interface make imagery accessible for monitoring applications needing frequent revisits.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;ICEYE&lt;/strong&gt; — For SAR (all-weather imaging)
ICEYE runs the world&amp;rsquo;s largest commercial SAR (Synthetic Aperture Radar) constellation with over 60 satellites. Their Gen4 satellites hit 16cm resolution, and SAR works through clouds, rain, and darkness — something optical satellites can&amp;rsquo;t do.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id="for-raster--vector-ai-analysis"&gt;For Raster &amp;amp; Vector AI Analysis&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;GeoAI (Python package)&lt;/strong&gt;
GeoAI is a Python package offering a unified framework for processing satellite imagery, aerial photographs, and vector data using deep learning models. It integrates PyTorch, Transformers, and geospatial libraries, and includes vector-to-raster and raster-to-vector conversion utilities, automated training dataset generation, and workflows for segmenting buildings, water bodies, wetlands, and solar panels.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;GRASS GIS&lt;/strong&gt;
GRASS GIS provides tools for raster and vector data management, spatial modeling, and visualization. It includes over 500 modules for processing raster, vector, and 3D formats, and can connect to spatial databases and interface with various third-party systems.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;SAGA GIS&lt;/strong&gt;
SAGA GIS specializes in raster image processing with a strong emphasis on image classification and calculation of vegetation indices from satellite and aerial imagery, with modules for terrain analysis derived from digital elevation models.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="-quick-recommendation-by-use-case"&gt;🧭 Quick Recommendation by Use Case&lt;/h2&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Use Case&lt;/th&gt;
&lt;th&gt;Best Tool/Model&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;GIS coding &amp;amp; scripting help&lt;/td&gt;
&lt;td&gt;Claude Sonnet / GPT-4o&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Geodatabase management&lt;/td&gt;
&lt;td&gt;ArcGIS Enterprise / QGIS&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Satellite imagery analysis&lt;/td&gt;
&lt;td&gt;Google Earth Engine / Planet&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Raster processing&lt;/td&gt;
&lt;td&gt;GRASS GIS / SAGA GIS / ArcGIS&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Vector data &amp;amp; feature extraction&lt;/td&gt;
&lt;td&gt;GeoAI (Python) / Mapflow&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;All-weather SAR imagery&lt;/td&gt;
&lt;td&gt;ICEYE&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;No-code GIS AI analysis&lt;/td&gt;
&lt;td&gt;GeoWGS84.ai / Picterra&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Large-scale cloud geospatial&lt;/td&gt;
&lt;td&gt;Google Earth Engine / HEAVY.AI&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;For most GIS professionals, the winning combo is &lt;strong&gt;ArcGIS or QGIS&lt;/strong&gt; for the GIS platform + &lt;strong&gt;Claude or GPT-4o&lt;/strong&gt; for AI-assisted scripting and analysis + &lt;strong&gt;Google Earth Engine&lt;/strong&gt; for large-scale satellite work.&lt;/p&gt;</description></item><item><title>Make Chrome Feel New Again: 8 Speed Tweaks for 2026</title><link>https://suman.netlify.app/post/chrome_spee_up/</link><pubDate>Mon, 20 Apr 2026 00:00:00 +0000</pubDate><guid>https://suman.netlify.app/post/chrome_spee_up/</guid><description>&lt;p&gt;Chrome is still the fastest browser on paper, but after a few months of tabs, extensions, and cached junk, it starts to crawl. Google has been shipping real speed improvements — Chrome 112 alone brought a 10% boost in benchmarks — but you have to turn on the right settings.&lt;/p&gt;
&lt;p&gt;Here is the exact checklist I use when Chrome feels sluggish (tested on Windows, Mac, and low-RAM laptops in 2026).&lt;/p&gt;
&lt;h2 id="1-update-first-always"&gt;1. Update First, Always&lt;/h2&gt;
&lt;p&gt;Google ships performance patches in the background. If you never close Chrome, you never get them.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Click ⋮ &amp;gt; Help &amp;gt; About Google Chrome&lt;/li&gt;
&lt;li&gt;Let it update, then hit Relaunch&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="2-stop-the-tab-hoard"&gt;2. Stop the Tab Hoard&lt;/h2&gt;
&lt;p&gt;Each open tab eats RAM and a bit of CPU. More tabs = slower load times and freezes.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Press Shift+Esc to open Chrome&amp;rsquo;s Task Manager and kill memory hogs&lt;/li&gt;
&lt;li&gt;Enable Memory Saver: Settings &amp;gt; Performance &amp;gt; Memory Saver &amp;gt; &lt;strong&gt;Maximum&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Add Gmail, YouTube Music, or WhatsApp Web to &amp;ldquo;Always keep these sites active&amp;rdquo; so they never freeze&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="3-prune-extensions"&gt;3. Prune Extensions&lt;/h2&gt;
&lt;p&gt;Extensions add features, but too many slow everything down.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Go to chrome://extensions&lt;/li&gt;
&lt;li&gt;Toggle off anything you don&amp;rsquo;t use daily&lt;/li&gt;
&lt;li&gt;Keep one good ad-blocker (uBlock Origin) — blocking ads is the single biggest speed win&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;Managed browser? You may not be able to remove work extensions, but you can still disable personal ones.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id="4-clear-the-cache-not-everything"&gt;4. Clear the Cache (Not Everything)&lt;/h2&gt;
&lt;p&gt;Clearing browsing data frees disk space and fixes sites broken by old files.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;⋮ &amp;gt; Settings &amp;gt; Privacy and security &amp;gt; Clear browsing data&lt;/li&gt;
&lt;li&gt;Time range: Last 4 weeks&lt;/li&gt;
&lt;li&gt;Check only &amp;ldquo;Cached images and files&amp;rdquo; — keeps you logged in&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Do this once a month.&lt;/p&gt;
&lt;h2 id="5-turn-on-the-hidden-speed-switches"&gt;5. Turn On the Hidden Speed Switches&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Preload pages:&lt;/strong&gt; Settings &amp;gt; Privacy and security &amp;gt; Preload pages &amp;gt; Extended preloading. Chrome loads links before you click them.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Hardware acceleration:&lt;/strong&gt; Settings &amp;gt; System &amp;gt; Use hardware acceleration when available &amp;gt; ON. Offloads graphics to your GPU.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Stop background apps:&lt;/strong&gt; Settings &amp;gt; System &amp;gt; turn OFF &amp;ldquo;Continue running background apps when Google Chrome is closed&amp;rdquo;&lt;/p&gt;
&lt;h2 id="6-two-flags-worth-enabling"&gt;6. Two Flags Worth Enabling&lt;/h2&gt;
&lt;p&gt;Type chrome://flags in the address bar:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Parallel downloading&lt;/strong&gt; → Enabled (splits large files into chunks — huge help on slower connections)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;GPU rasterization&lt;/strong&gt; → Enabled (paints pages faster, smoother scrolling)&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Relaunch Chrome after.&lt;/p&gt;
&lt;h2 id="7-fix-energy-saver"&gt;7. Fix Energy Saver&lt;/h2&gt;
&lt;p&gt;Energy Saver saves battery but throttles performance.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Desktop: Settings &amp;gt; Performance &amp;gt; Energy Saver &amp;gt; OFF&lt;/li&gt;
&lt;li&gt;Laptop: set to &amp;ldquo;Turn on only when battery is 20% or less&amp;rdquo;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="8-reset-if-nothing-else-works"&gt;8. Reset If Nothing Else Works&lt;/h2&gt;
&lt;p&gt;Settings &amp;gt; Reset settings &amp;gt; Restore settings to their original defaults. Keeps bookmarks and passwords, removes extensions and bad tweaks.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id="my-2-minute-daily-habit"&gt;My 2-Minute Daily Habit&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;Keep tabs under 10 — use OneTab to park the rest&lt;/li&gt;
&lt;li&gt;Restart Chrome every 2–3 days to apply updates&lt;/li&gt;
&lt;li&gt;Check Shift+Esc once a week for runaway tabs&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Do steps 1–4 and you will feel the difference immediately. The rest is for power users who want Chrome to feel like it did on day one.&lt;/p&gt;</description></item><item><title>Best LLMs for Coding in 2026: Ranked from Number 1 to Last</title><link>https://suman.netlify.app/post/best-model-2026/best-coding-llms-2026/</link><pubDate>Fri, 17 Apr 2026 00:00:00 +0000</pubDate><guid>https://suman.netlify.app/post/best-model-2026/best-coding-llms-2026/</guid><description>&lt;p&gt;Not all AI models are created equal, especially when it comes to writing, editing, and reasoning about code. With dozens of models now available across cloud APIs and local runtimes like Ollama, it is easy to get lost. This post ranks the best coding LLMs in 2026 based on real benchmarks: &lt;strong&gt;SWE-Bench&lt;/strong&gt; (real GitHub issue resolution), &lt;strong&gt;LiveCodeBench&lt;/strong&gt; (unseen competitive programming), and &lt;strong&gt;BFCL&lt;/strong&gt; (tool/function calling accuracy).&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="tier-1---cloud--api-models-best-overall"&gt;Tier 1 - Cloud / API Models (Best Overall)&lt;/h2&gt;
&lt;p&gt;These are the top-performing models available via API. If output quality is your priority and cost is secondary, start here.&lt;/p&gt;
&lt;h3 id="1-claude-opus-47---best-for-agentic-coding"&gt;1. Claude Opus 4.7 - Best for Agentic Coding&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;SWE-Bench:&lt;/strong&gt; 87.6% (1st in the world)&lt;/li&gt;
&lt;li&gt;Best model for multi-step, autonomous coding tasks (Claude Code, Cursor, agentic loops)&lt;/li&gt;
&lt;li&gt;Dominates real-world GitHub issue resolution, not just toy benchmarks&lt;/li&gt;
&lt;li&gt;Use when you need the model to think, plan, and execute across files&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="2-claude-sonnet-45---best-daily-driver"&gt;2. Claude Sonnet 4.5 - Best Daily Driver&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;SWE-Bench:&lt;/strong&gt; 82%&lt;/li&gt;
&lt;li&gt;Faster and cheaper than Opus 4.7, with nearly the same agentic performance&lt;/li&gt;
&lt;li&gt;The sweet spot for production coding workflows, great for CI/CD integration&lt;/li&gt;
&lt;li&gt;Ideal for developers who run dozens of tasks a day&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="3-gemini-3-pro---strong-all-rounder"&gt;3. Gemini 3 Pro - Strong All-Rounder&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;LiveCodeBench:&lt;/strong&gt; 79.7% | &lt;strong&gt;SWE-Bench:&lt;/strong&gt; 76.2%&lt;/li&gt;
&lt;li&gt;Google&amp;rsquo;s most capable coding model, competitive across all benchmark types&lt;/li&gt;
&lt;li&gt;Excellent context handling and multimodal support&lt;/li&gt;
&lt;li&gt;Good alternative if you are already in the Google ecosystem&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="4-gpt-51--gpt-5---reliable-openai-option"&gt;4. GPT-5.1 / GPT-5 - Reliable OpenAI Option&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;SWE-Bench:&lt;/strong&gt; 76.3% (GPT-5.1) / 74.9% (GPT-5)&lt;/li&gt;
&lt;li&gt;Solid across the board, well-integrated with GitHub Copilot and OpenAI&amp;rsquo;s ecosystem&lt;/li&gt;
&lt;li&gt;Strong instruction following and function calling&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="5-kimi-k2-thinking---best-raw-code-generation"&gt;5. Kimi K2 Thinking - Best Raw Code Generation&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;LiveCodeBench:&lt;/strong&gt; 83.1% (1st on this benchmark)&lt;/li&gt;
&lt;li&gt;Moonshot AI&amp;rsquo;s reasoning model, excels at algorithm writing and competitive programming&lt;/li&gt;
&lt;li&gt;Strong SWE-Bench score of 71.3%&lt;/li&gt;
&lt;li&gt;New contender worth watching closely&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="6-grok-3-beta---competitive-coding-beast"&gt;6. Grok 3 (Beta) - Competitive Coding Beast&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;LiveCodeBench:&lt;/strong&gt; 79.4%&lt;/li&gt;
&lt;li&gt;xAI&amp;rsquo;s flagship, particularly strong on pure code generation tasks&lt;/li&gt;
&lt;li&gt;Less proven on agentic/real-world benchmarks but improving fast&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="7-openai-o3-mini---best-budget-reasoning-model"&gt;7. OpenAI o3-mini - Best Budget Reasoning Model&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;LiveCodeBench:&lt;/strong&gt; 74.1% | &lt;strong&gt;SWE-Bench:&lt;/strong&gt; 61% | &lt;strong&gt;BFCL:&lt;/strong&gt; 65.1%&lt;/li&gt;
&lt;li&gt;The most cost-efficient reasoning model for coding&lt;/li&gt;
&lt;li&gt;Great for developers who need chain-of-thought reasoning without paying for full o3&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="8-deepseek-r1---best-for-logic-heavy-code"&gt;8. DeepSeek R1 - Best for Logic-Heavy Code&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;LiveCodeBench:&lt;/strong&gt; 64.3% | &lt;strong&gt;MATH-500:&lt;/strong&gt; 97.3%&lt;/li&gt;
&lt;li&gt;Open-source model with exceptional mathematical and logical reasoning&lt;/li&gt;
&lt;li&gt;Great for algorithmic problems, data structures, and ML code&lt;/li&gt;
&lt;li&gt;Available on free tier via DeepSeek API, accessible from Bangladesh&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id="tier-2---local--ollama-models-free-and-self-hosted"&gt;Tier 2 - Local / Ollama Models (Free and Self-Hosted)&lt;/h2&gt;
&lt;p&gt;These models run fully locally via Ollama, LM Studio, or similar. No API costs, no internet required after download.&lt;/p&gt;
&lt;h3 id="1-deepseek-v3-0324---best-open-source-overall"&gt;1. DeepSeek V3 0324 - Best Open Source Overall&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;LiveCodeBench:&lt;/strong&gt; 41% | &lt;strong&gt;SWE-Bench:&lt;/strong&gt; 38.8% | &lt;strong&gt;BFCL:&lt;/strong&gt; 58.5%&lt;/li&gt;
&lt;li&gt;The best locally runnable model for general coding tasks&lt;/li&gt;
&lt;li&gt;MIT-licensed, fast on consumer hardware with quantized versions&lt;/li&gt;
&lt;li&gt;Recommended first choice for Ollama users&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="2-qwen25-coder--qwen25-vl-32b---best-tool-use-locally"&gt;2. Qwen2.5-Coder / Qwen2.5-VL-32B - Best Tool Use Locally&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;BFCL Tool Use:&lt;/strong&gt; 62.8% (highest among open models)&lt;/li&gt;
&lt;li&gt;Alibaba&amp;rsquo;s Qwen series is purpose-built for code&lt;/li&gt;
&lt;li&gt;Excellent for function calling, structured output, and agentic tasks locally&lt;/li&gt;
&lt;li&gt;Available in 7B, 14B, 32B sizes, runs well on mid-range GPUs&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="3-llama-4-behemoth---best-for-reasoning-high-vram"&gt;3. Llama 4 Behemoth - Best for Reasoning (High VRAM)&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;LiveCodeBench:&lt;/strong&gt; 49.4% | &lt;strong&gt;MATH-500:&lt;/strong&gt; 95%&lt;/li&gt;
&lt;li&gt;Meta&amp;rsquo;s most capable open model, requires significant hardware&lt;/li&gt;
&lt;li&gt;Best choice if you have a high-end GPU setup (48GB+ VRAM)&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="4-llama-4-maverick---balanced-performance"&gt;4. Llama 4 Maverick - Balanced Performance&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;LiveCodeBench:&lt;/strong&gt; 41%&lt;/li&gt;
&lt;li&gt;Good balance between model size and coding performance&lt;/li&gt;
&lt;li&gt;Multimodal support and very long context window (up to 1M tokens)&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="5-gemma-3-27b---lightweight-and-capable"&gt;5. Gemma 3 27B - Lightweight and Capable&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;MATH-500:&lt;/strong&gt; 89% | &lt;strong&gt;BFCL:&lt;/strong&gt; 59.1%&lt;/li&gt;
&lt;li&gt;Google&amp;rsquo;s open model, surprisingly strong tool use for its size&lt;/li&gt;
&lt;li&gt;Runs comfortably on consumer hardware (16-24GB VRAM)&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="6-glm-4--glm-5-zhipuai---decent-but-outclassed"&gt;6. GLM-4 / GLM-5 (ZhipuAI) - Decent but Outclassed&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Usable for general coding, especially Chinese-language documentation&lt;/li&gt;
&lt;li&gt;Significantly behind DeepSeek V3 and Qwen2.5 on every major benchmark&lt;/li&gt;
&lt;li&gt;Consider only if you have specific GLM integration requirements&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id="best-by-use-case"&gt;Best by Use Case&lt;/h2&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Use Case&lt;/th&gt;
&lt;th&gt;Best Model&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Agentic coding (Claude Code, Cursor)&lt;/td&gt;
&lt;td&gt;Claude Opus 4.7&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Everyday coding assistant&lt;/td&gt;
&lt;td&gt;Claude Sonnet 4.5&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Raw algorithm / competitive coding&lt;/td&gt;
&lt;td&gt;Kimi K2 Thinking&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Tool and function calling (API)&lt;/td&gt;
&lt;td&gt;GPT-4.5 (69.9% BFCL)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Budget reasoning (API)&lt;/td&gt;
&lt;td&gt;OpenAI o3-mini&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Local - best overall&lt;/td&gt;
&lt;td&gt;DeepSeek V3 0324&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Local - tool/function calling&lt;/td&gt;
&lt;td&gt;Qwen2.5-Coder 32B&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Local - low VRAM (8GB)&lt;/td&gt;
&lt;td&gt;Qwen2.5-Coder 7B or Gemma 3&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Free API (accessible in Bangladesh)&lt;/td&gt;
&lt;td&gt;DeepSeek API or Groq (Llama/Qwen)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;hr&gt;
&lt;h2 id="key-takeaways"&gt;Key Takeaways&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Claude dominates agentic coding.&lt;/strong&gt; If you are using any coding agent (Claude Code, Cursor, Continue), Claude Opus 4.7 or Sonnet 4.5 will outperform everything else on real-world tasks.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;For local/Ollama, skip GLM and use DeepSeek V3 or Qwen2.5.&lt;/strong&gt; These are objectively stronger on every benchmark and have better English instruction-following.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;The agent matters as much as the model.&lt;/strong&gt; The same model produces meaningfully better outputs in a well-engineered agent vs. a naive one.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Free options exist.&lt;/strong&gt; DeepSeek&amp;rsquo;s free tier and Groq&amp;rsquo;s API (running Llama/Qwen) give you near-frontier model quality at zero cost, both accessible from Bangladesh without VPN.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;hr&gt;
&lt;p&gt;&lt;em&gt;Benchmark data sourced from Vellum AI Coding LLM Leaderboard, updated March 2026. Rankings reflect SWE-Bench Verified, LiveCodeBench, and BFCL scores where available.&lt;/em&gt;&lt;/p&gt;</description></item><item><title>Redmi Note 15 Pro+ 5G — Complete Debloat &amp; Ad Removal Guide</title><link>https://suman.netlify.app/post/debloat-ad-removal-guide/</link><pubDate>Fri, 17 Apr 2026 00:00:00 +0000</pubDate><guid>https://suman.netlify.app/post/debloat-ad-removal-guide/</guid><description>&lt;h2 id="-device-info"&gt;📌 Device Info&lt;/h2&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Details&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Device&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Redmi Note 15 Pro+ 5G&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Purchase Price&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;৳60,000 (3-month EMI)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;OS&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;HyperOS (Global)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;PC&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Windows 10 Pro + Android Studio installed&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;hr&gt;
&lt;h2 id="-important--payjoy-warning-emi-device"&gt;⚠️ IMPORTANT — PayJoy Warning (EMI Device)&lt;/h2&gt;
&lt;p&gt;The app &lt;code&gt;com.payjoy.access&lt;/code&gt; was found pre-installed. &lt;strong&gt;PayJoy&lt;/strong&gt; is a device-financing lock app. Since this phone was bought on &lt;strong&gt;3-month EMI&lt;/strong&gt;, &lt;strong&gt;do NOT remove this app&lt;/strong&gt; until all installments are paid — the finance company can remotely lock your device.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;✅ Once EMI is fully paid, remove it safely:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;adb shell pm uninstall -k --user &lt;span class="m"&gt;0&lt;/span&gt; com.payjoy.access
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/blockquote&gt;
&lt;hr&gt;
&lt;h2 id="-adb-methods--choose-one"&gt;🔧 ADB Methods — Choose One&lt;/h2&gt;
&lt;h3 id="method-1--adb-via-pc-windows"&gt;Method 1 — ADB via PC (Windows)&lt;/h3&gt;
&lt;h4 id="step-1--enable-developer-options"&gt;Step 1 — Enable Developer Options&lt;/h4&gt;
&lt;p&gt;&lt;code&gt;Settings → About Phone → tap &amp;quot;HyperOS Version&amp;quot; 7 times fast&lt;/code&gt;
You&amp;rsquo;ll see: &lt;em&gt;&amp;ldquo;You are now a developer!&amp;rdquo;&lt;/em&gt;&lt;/p&gt;
&lt;h4 id="step-2--enable-usb-debugging"&gt;Step 2 — Enable USB Debugging&lt;/h4&gt;
&lt;p&gt;&lt;code&gt;Settings → Additional Settings → Developer Options&lt;/code&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Turn ON &lt;strong&gt;USB Debugging&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Turn ON &lt;strong&gt;USB Debugging (Security Settings)&lt;/strong&gt; ← &lt;em&gt;Critical for HyperOS!&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="step-3--get-adb-on-pc"&gt;Step 3 — Get ADB on PC&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;Option A — From Android Studio (already installed):&lt;/strong&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-gdscript3" data-lang="gdscript3"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;C&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;\&lt;span class="n"&gt;Users&lt;/span&gt;\&lt;span class="n"&gt;YourName&lt;/span&gt;\&lt;span class="n"&gt;AppData&lt;/span&gt;\&lt;span class="n"&gt;Local&lt;/span&gt;\&lt;span class="n"&gt;Android&lt;/span&gt;\&lt;span class="n"&gt;Sdk&lt;/span&gt;\&lt;span class="n"&gt;platform&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;tools&lt;/span&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;code&gt;Shift + Right-click&lt;/code&gt; in that folder → &lt;em&gt;Open PowerShell / CMD here&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Option B — Download standalone:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://developer.android.com/tools/releases/platform-tools" target="_blank" rel="noopener"&gt;https://developer.android.com/tools/releases/platform-tools&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Extract to &lt;code&gt;C:\platform-tools\&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Option C — Add to System PATH (permanent):&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;code&gt;Win + S&lt;/code&gt; → &lt;em&gt;&amp;ldquo;Environment Variables&amp;rdquo;&lt;/em&gt; → &lt;strong&gt;Path&lt;/strong&gt; → &lt;strong&gt;Edit&lt;/strong&gt; → &lt;strong&gt;New&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Paste: &lt;code&gt;C:\Users\Dell\AppData\Local\Android\Sdk\platform-tools&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;OK → OK → OK → reopen terminal&lt;/li&gt;
&lt;/ol&gt;
&lt;h4 id="step-4--connect--verify"&gt;Step 4 — Connect &amp;amp; Verify&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;Plug phone with original data cable → tap &lt;strong&gt;ALLOW&lt;/strong&gt; on phone popup&lt;/li&gt;
&lt;li&gt;Change USB mode to &lt;strong&gt;File Transfer (MTP)&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-powershell" data-lang="powershell"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c"&gt;# PowerShell — use .\adb prefix&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;.\&lt;/span&gt;&lt;span class="n"&gt;adb&lt;/span&gt; &lt;span class="n"&gt;devices&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c"&gt;# CMD — use adb directly&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;adb&lt;/span&gt; &lt;span class="n"&gt;devices&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Expected output:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;List of devices attached
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;XXXXXXXXXXXXXXXX device
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Output&lt;/th&gt;
&lt;th&gt;Fix&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;unauthorized&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Check phone popup, tap Allow&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;offline&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Try different USB port or cable&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;empty list&lt;/td&gt;
&lt;td&gt;Set USB mode to MTP; run &lt;code&gt;adb kill-server&lt;/code&gt; then &lt;code&gt;adb start-server&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;hr&gt;
&lt;h3 id="method-2--wireless-adb-via-termux-no-pc-needed--recommended"&gt;Method 2 — Wireless ADB via Termux (No PC Needed) ✅ Recommended&lt;/h3&gt;
&lt;p&gt;Shizuku is not available for HyperOS. Use Termux with Wireless ADB instead — full ADB control, no PC required.&lt;/p&gt;
&lt;h4 id="step-1--enable-wireless-debugging-on-phone"&gt;Step 1 — Enable Wireless Debugging on Phone&lt;/h4&gt;
&lt;p&gt;&lt;code&gt;Settings → Additional Settings → Developer Options → Wireless Debugging → Turn ON&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Tap &lt;strong&gt;&amp;ldquo;Pair device with pairing code&amp;rdquo;&lt;/strong&gt; — note the IP, pairing port, and pairing code.&lt;/p&gt;
&lt;h4 id="step-2--install-adb-in-termux"&gt;Step 2 — Install ADB in Termux&lt;/h4&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;pkg update &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; pkg install android-tools
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h4 id="step-3--pair-termux-with-phone"&gt;Step 3 — Pair Termux with Phone&lt;/h4&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;adb pair &amp;lt;IP&amp;gt;:&amp;lt;pairing-port&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Example:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;adb pair 192.168.1.5:41234
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Enter the pairing code when prompted: 123456&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h4 id="step-4--connect"&gt;Step 4 — Connect&lt;/h4&gt;
&lt;p&gt;Back in the Wireless Debugging screen, note the main &lt;strong&gt;IP:Port&lt;/strong&gt; (different from pairing port):&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;adb connect 192.168.1.5:5555
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h4 id="step-5--run-commands-normally"&gt;Step 5 — Run Commands Normally&lt;/h4&gt;
&lt;p&gt;All commands below work exactly the same — no &lt;code&gt;.\&lt;/code&gt; prefix needed in Termux:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;adb shell pm uninstall -k --user &lt;span class="m"&gt;0&lt;/span&gt; com.package.name
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;hr&gt;
&lt;h2 id="-removal-results-actual-session-via-pc"&gt;🗑️ Removal Results (Actual Session via PC)&lt;/h2&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Package&lt;/th&gt;
&lt;th&gt;App&lt;/th&gt;
&lt;th&gt;Result&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;com.xiaomi.mipicks&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;GetApps Store&lt;/td&gt;
&lt;td&gt;✅ Removed&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;com.miui.videoplayer&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Mi Video&lt;/td&gt;
&lt;td&gt;✅ Removed&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;com.xiaomi.joyose&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Ad/Tracking Service&lt;/td&gt;
&lt;td&gt;✅ Removed&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;com.miui.yellowpage&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Yellow Pages&lt;/td&gt;
&lt;td&gt;✅ Removed&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;com.miui.cleanmaster&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Cleaner&lt;/td&gt;
&lt;td&gt;❌ Not installed&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;com.xiaomi.gamecenter&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Game Center&lt;/td&gt;
&lt;td&gt;❌ Not installed&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;com.mi.globalbrowser&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Mi Browser&lt;/td&gt;
&lt;td&gt;❌ Not installed&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;com.miui.android.fashiongallery&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Fashion Gallery&lt;/td&gt;
&lt;td&gt;❌ Not installed&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;com.miui.systemAdSolution&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Ad System&lt;/td&gt;
&lt;td&gt;❌ Not installed&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;com.miui.weather2&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Mi Weather&lt;/td&gt;
&lt;td&gt;❌ Protected [-1000]&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;hr&gt;
&lt;blockquote&gt;
&lt;p&gt;[!IMPORTANT]&lt;br&gt;
Use &lt;strong&gt;.\adb&lt;/strong&gt; instead of adb (Quick Fix); Just add .\ before every command:&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id="-priority--ad--tracking-apps-remove-first"&gt;🔴 Priority — Ad &amp;amp; Tracking Apps (Remove First)&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;adb shell pm uninstall -k --user &lt;span class="m"&gt;0&lt;/span&gt; com.miui.msa.global
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;adb shell pm uninstall -k --user &lt;span class="m"&gt;0&lt;/span&gt; com.miui.analytics
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;adb shell pm uninstall -k --user &lt;span class="m"&gt;0&lt;/span&gt; com.mi.globalminusscreen
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;adb shell pm uninstall -k --user &lt;span class="m"&gt;0&lt;/span&gt; com.xiaomi.discover
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;adb shell pm uninstall -k --user &lt;span class="m"&gt;0&lt;/span&gt; com.miui.cleaner
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;adb shell pm uninstall -k --user &lt;span class="m"&gt;0&lt;/span&gt; com.miui.bugreport
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;adb shell pm uninstall -k --user &lt;span class="m"&gt;0&lt;/span&gt; com.xiaomi.barrage
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;adb shell pm uninstall -k --user &lt;span class="m"&gt;0&lt;/span&gt; com.miui.misightservice
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Package&lt;/th&gt;
&lt;th&gt;Why Remove&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;com.miui.msa.global&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Main ad engine — serves ads system-wide&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;com.miui.analytics&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Tracks usage, sends data to Xiaomi&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;com.mi.globalminusscreen&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Left-swipe news feed full of ads&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;com.xiaomi.discover&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&amp;ldquo;Content discovery&amp;rdquo; = ads in disguise&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;com.miui.cleaner&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Fake cleaner, shows lots of ads&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;com.xiaomi.barrage&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Floating danmaku feature, useless&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;com.miui.bugreport&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Sends bug reports to Xiaomi servers&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;com.miui.misightservice&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Sight AI tracking service&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;hr&gt;
&lt;h2 id="-facebook-bloatware-remove"&gt;🟠 Facebook Bloatware (Remove)&lt;/h2&gt;
&lt;p&gt;These run silently in the background even if you never use Facebook:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;adb shell pm uninstall -k --user &lt;span class="m"&gt;0&lt;/span&gt; com.facebook.appmanager
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;adb shell pm uninstall -k --user &lt;span class="m"&gt;0&lt;/span&gt; com.facebook.system
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;adb shell pm uninstall -k --user &lt;span class="m"&gt;0&lt;/span&gt; com.facebook.services
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;hr&gt;
&lt;h2 id="-microsoft-bloatware-remove"&gt;🟠 Microsoft Bloatware (Remove)&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;adb shell pm uninstall -k --user &lt;span class="m"&gt;0&lt;/span&gt; com.microsoft.appmanager
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;adb shell pm uninstall -k --user &lt;span class="m"&gt;0&lt;/span&gt; com.microsoft.deviceintegrationservice
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;adb shell pm uninstall -k --user &lt;span class="m"&gt;0&lt;/span&gt; com.microsoftsdk.crossdeviceservicebroker
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;hr&gt;
&lt;h2 id="-xiaomi-optional-apps"&gt;🟡 Xiaomi Optional Apps&lt;/h2&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Package&lt;/th&gt;
&lt;th&gt;App&lt;/th&gt;
&lt;th&gt;What It Does&lt;/th&gt;
&lt;th&gt;Remove If&amp;hellip;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;com.miui.player&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Mi Music&lt;/td&gt;
&lt;td&gt;Built-in music player&lt;/td&gt;
&lt;td&gt;You use VLC, Auxio, etc.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;com.mi.healthglobal&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Mi Health&lt;/td&gt;
&lt;td&gt;Fitness/step tracking&lt;/td&gt;
&lt;td&gt;You don&amp;rsquo;t use Mi Band&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;com.miui.cloudbackup&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Mi Cloud Backup&lt;/td&gt;
&lt;td&gt;Backs up to Xiaomi cloud&lt;/td&gt;
&lt;td&gt;You use Google Backup&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;com.miui.cloudservice&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Mi Cloud Service&lt;/td&gt;
&lt;td&gt;Core Xiaomi cloud engine&lt;/td&gt;
&lt;td&gt;You don&amp;rsquo;t use Mi Cloud&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;com.miui.micloudsync&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Mi Cloud Sync&lt;/td&gt;
&lt;td&gt;Syncs contacts to Mi Cloud&lt;/td&gt;
&lt;td&gt;You use Google Contacts&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;com.miui.misound&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Mi Sound&lt;/td&gt;
&lt;td&gt;Audio tuner/equalizer&lt;/td&gt;
&lt;td&gt;You don&amp;rsquo;t use Xiaomi sound&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;com.miui.touchassistant&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Touch Assistant&lt;/td&gt;
&lt;td&gt;Floating virtual home button&lt;/td&gt;
&lt;td&gt;You use gesture navigation&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;com.xiaomi.aiservice&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Xiaomi AI Service&lt;/td&gt;
&lt;td&gt;Powers Xiaomi AI features&lt;/td&gt;
&lt;td&gt;You don&amp;rsquo;t use Xiaomi AI&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;com.xiaomi.cameramind&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Camera Mind AI&lt;/td&gt;
&lt;td&gt;AI scene detection&lt;/td&gt;
&lt;td&gt;You prefer manual camera&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;com.xiaomi.aicr&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;AI Call Recording&lt;/td&gt;
&lt;td&gt;Call transcription&lt;/td&gt;
&lt;td&gt;You don&amp;rsquo;t record calls&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;com.xiaomi.aiasst.vision&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;AI Vision&lt;/td&gt;
&lt;td&gt;Camera &amp;ldquo;scan to search&amp;rdquo;&lt;/td&gt;
&lt;td&gt;You don&amp;rsquo;t use this&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;com.miui.extraphoto&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Extra Photo Formats&lt;/td&gt;
&lt;td&gt;RAW/HEIF support&lt;/td&gt;
&lt;td&gt;You only use JPG&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;com.miui.aod&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Always On Display&lt;/td&gt;
&lt;td&gt;Clock on locked screen&lt;/td&gt;
&lt;td&gt;You don&amp;rsquo;t use AOD&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;com.mi.appfinder&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;App Finder&lt;/td&gt;
&lt;td&gt;Swipe-down app search&lt;/td&gt;
&lt;td&gt;You use Google search&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;com.miui.backup&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Mi Backup&lt;/td&gt;
&lt;td&gt;Local + cloud backup&lt;/td&gt;
&lt;td&gt;You back up via Google/ADB&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;com.miui.phrase&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Phrases&lt;/td&gt;
&lt;td&gt;Text snippet shortcuts&lt;/td&gt;
&lt;td&gt;You never use this&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;com.miui.qr&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Mi QR Scanner&lt;/td&gt;
&lt;td&gt;Built-in QR scanner&lt;/td&gt;
&lt;td&gt;You use Google Lens&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;adb shell pm uninstall -k --user &lt;span class="m"&gt;0&lt;/span&gt; com.miui.player
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;adb shell pm uninstall -k --user &lt;span class="m"&gt;0&lt;/span&gt; com.mi.healthglobal
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;adb shell pm uninstall -k --user &lt;span class="m"&gt;0&lt;/span&gt; com.miui.cloudbackup
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;adb shell pm uninstall -k --user &lt;span class="m"&gt;0&lt;/span&gt; com.miui.cloudservice
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;adb shell pm uninstall -k --user &lt;span class="m"&gt;0&lt;/span&gt; com.miui.micloudsync
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;adb shell pm uninstall -k --user &lt;span class="m"&gt;0&lt;/span&gt; com.miui.misound
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;adb shell pm uninstall -k --user &lt;span class="m"&gt;0&lt;/span&gt; com.miui.touchassistant
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;adb shell pm uninstall -k --user &lt;span class="m"&gt;0&lt;/span&gt; com.xiaomi.aiservice
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;adb shell pm uninstall -k --user &lt;span class="m"&gt;0&lt;/span&gt; com.xiaomi.cameramind
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;adb shell pm uninstall -k --user &lt;span class="m"&gt;0&lt;/span&gt; com.xiaomi.aicr
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;adb shell pm uninstall -k --user &lt;span class="m"&gt;0&lt;/span&gt; com.xiaomi.aiasst.vision
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;adb shell pm uninstall -k --user &lt;span class="m"&gt;0&lt;/span&gt; com.miui.extraphoto
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;adb shell pm uninstall -k --user &lt;span class="m"&gt;0&lt;/span&gt; com.miui.aod
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;adb shell pm uninstall -k --user &lt;span class="m"&gt;0&lt;/span&gt; com.mi.appfinder
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;adb shell pm uninstall -k --user &lt;span class="m"&gt;0&lt;/span&gt; com.miui.backup
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;adb shell pm uninstall -k --user &lt;span class="m"&gt;0&lt;/span&gt; com.miui.phrase
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;adb shell pm uninstall -k --user &lt;span class="m"&gt;0&lt;/span&gt; com.miui.qr
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;hr&gt;
&lt;h2 id="-google-apps-optional"&gt;🟡 Google Apps (Optional)&lt;/h2&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Package&lt;/th&gt;
&lt;th&gt;App&lt;/th&gt;
&lt;th&gt;Remove If&amp;hellip;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;com.google.android.apps.tachyon&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Google Meet&lt;/td&gt;
&lt;td&gt;You use Zoom/Jitsi&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;com.google.android.apps.youtube.music&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;YouTube Music&lt;/td&gt;
&lt;td&gt;You use VLC/local music&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;com.google.android.videos&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Google TV&lt;/td&gt;
&lt;td&gt;You don&amp;rsquo;t buy from Google Play&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;com.google.android.apps.bard&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Google Gemini&lt;/td&gt;
&lt;td&gt;You use Claude 😄&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;com.google.android.apps.subscriptions.red&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;YouTube Premium&lt;/td&gt;
&lt;td&gt;You don&amp;rsquo;t have YT Premium&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;com.google.android.apps.wellbeing&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Digital Wellbeing&lt;/td&gt;
&lt;td&gt;You don&amp;rsquo;t track screen time&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;com.google.android.apps.safetyhub&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Safety Hub&lt;/td&gt;
&lt;td&gt;You don&amp;rsquo;t use Google safety&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;com.google.android.gm&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Gmail&lt;/td&gt;
&lt;td&gt;You use K-9 Mail or webmail&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;com.google.android.apps.docs&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Google Docs&lt;/td&gt;
&lt;td&gt;You use LibreOffice, etc.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;com.google.android.apps.messaging&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Google Messages&lt;/td&gt;
&lt;td&gt;You use Xiaomi Messages&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;com.google.android.apps.photos&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Google Photos&lt;/td&gt;
&lt;td&gt;You use local/other backup&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;com.google.android.apps.restore&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Google Restore&lt;/td&gt;
&lt;td&gt;Phone is already set up&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;adb shell pm uninstall -k --user &lt;span class="m"&gt;0&lt;/span&gt; com.google.android.apps.tachyon
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;adb shell pm uninstall -k --user &lt;span class="m"&gt;0&lt;/span&gt; com.google.android.apps.youtube.music
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;adb shell pm uninstall -k --user &lt;span class="m"&gt;0&lt;/span&gt; com.google.android.videos
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;adb shell pm uninstall -k --user &lt;span class="m"&gt;0&lt;/span&gt; com.google.android.apps.bard
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;adb shell pm uninstall -k --user &lt;span class="m"&gt;0&lt;/span&gt; com.google.android.apps.subscriptions.red
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;adb shell pm uninstall -k --user &lt;span class="m"&gt;0&lt;/span&gt; com.google.android.apps.wellbeing
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;adb shell pm uninstall -k --user &lt;span class="m"&gt;0&lt;/span&gt; com.google.android.apps.safetyhub
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;adb shell pm uninstall -k --user &lt;span class="m"&gt;0&lt;/span&gt; com.google.android.gm
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;adb shell pm uninstall -k --user &lt;span class="m"&gt;0&lt;/span&gt; com.google.android.apps.docs
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;adb shell pm uninstall -k --user &lt;span class="m"&gt;0&lt;/span&gt; com.google.android.apps.messaging
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;adb shell pm uninstall -k --user &lt;span class="m"&gt;0&lt;/span&gt; com.google.android.apps.photos
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;adb shell pm uninstall -k --user &lt;span class="m"&gt;0&lt;/span&gt; com.google.android.apps.restore
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;blockquote&gt;
&lt;p&gt;⚠️ Skip Gmail if you actively use it. Skip Google Photos if you rely on it for backup.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;h2 id="-do-not-touch--critical-system-apps"&gt;🟢 DO NOT TOUCH — Critical System Apps&lt;/h2&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Package&lt;/th&gt;
&lt;th&gt;Why Keep&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;com.android.systemui&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Core UI — removing = black screen&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;com.google.android.gms&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Google Play Services&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;com.android.vending&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Play Store&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;com.miui.home&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Launcher&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;com.miui.securitycenter&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Core security&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;com.miui.securitycore&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Core security&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;com.android.phone&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Phone calls&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;com.android.bluetooth&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Bluetooth&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;com.android.settings&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Settings app&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;com.xiaomi.account&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Mi Account (Find Device)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;com.qualcomm.*&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Chipset drivers&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;com.android.providers.*&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Data providers&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;hr&gt;
&lt;h2 id="-find-any-apps-package-name"&gt;🔍 Find Any App&amp;rsquo;s Package Name&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;From Phone Settings:&lt;/strong&gt;
&lt;code&gt;Settings → Apps → [find the app] → ⋮ → Additional Info&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;From ADB:&lt;/strong&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# List all system apps&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;adb shell pm list packages -s
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Filter by keyword&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;adb shell pm list packages -s &lt;span class="p"&gt;|&lt;/span&gt; grep &lt;span class="s2"&gt;&amp;#34;miui&amp;#34;&lt;/span&gt; &lt;span class="c1"&gt;# Termux / Linux&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;adb shell pm list packages -s &lt;span class="p"&gt;|&lt;/span&gt; findstr &lt;span class="s2"&gt;&amp;#34;miui&amp;#34;&lt;/span&gt; &lt;span class="c1"&gt;# Windows CMD&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;hr&gt;
&lt;h2 id="-restore-a-mistakenly-removed-app"&gt;🔄 Restore a Mistakenly Removed App&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;adb shell cmd package install-existing com.package.name
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;hr&gt;
&lt;h2 id="-block-remaining-ads--private-dns"&gt;🛡️ Block Remaining Ads — Private DNS&lt;/h2&gt;
&lt;p&gt;Even after debloating, some ads slip through system apps. Block them system-wide with no root:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;Settings → More Connection Settings → Private DNS → Private DNS provider hostname&lt;/code&gt;&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Option&lt;/th&gt;
&lt;th&gt;Hostname&lt;/th&gt;
&lt;th&gt;Notes&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;✅ &lt;strong&gt;AdGuard DNS&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;dns.adguard.com&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;No account needed, just works&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;NextDNS&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&amp;lt;your-id&amp;gt;.dns.nextdns.io&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Needs free account at nextdns.io — your unique ID is shown on the dashboard&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;blockquote&gt;
&lt;p&gt;⚠️ Entering just &lt;code&gt;nextdns.io&lt;/code&gt; will break internet. You must use your personal subdomain like &lt;code&gt;abc123.dns.nextdns.io&lt;/code&gt; from your NextDNS dashboard.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;strong&gt;Recommendation:&lt;/strong&gt; Use &lt;code&gt;dns.adguard.com&lt;/code&gt; — simpler, zero setup, equally effective.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="-open-source-ad-free-alternatives-f-droid"&gt;📱 Open-Source Ad-Free Alternatives (F-Droid)&lt;/h2&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Removed App&lt;/th&gt;
&lt;th&gt;Replacement&lt;/th&gt;
&lt;th&gt;Source&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Mi Browser&lt;/td&gt;
&lt;td&gt;Mull / Fennec F-Droid (Firefox-based)&lt;/td&gt;
&lt;td&gt;F-Droid&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Mi Video&lt;/td&gt;
&lt;td&gt;VLC / mpv for Android&lt;/td&gt;
&lt;td&gt;F-Droid&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Mi Music&lt;/td&gt;
&lt;td&gt;Auxio / Music Player GO&lt;/td&gt;
&lt;td&gt;F-Droid&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Mi File Manager&lt;/td&gt;
&lt;td&gt;Material Files&lt;/td&gt;
&lt;td&gt;F-Droid&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Mi Calendar&lt;/td&gt;
&lt;td&gt;Etar Calendar&lt;/td&gt;
&lt;td&gt;F-Droid&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;GetApps&lt;/td&gt;
&lt;td&gt;F-Droid&lt;/td&gt;
&lt;td&gt;f-droid.org&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Mi Weather&lt;/td&gt;
&lt;td&gt;Breezy Weather&lt;/td&gt;
&lt;td&gt;F-Droid&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Mi Notes&lt;/td&gt;
&lt;td&gt;Markor (Markdown notes)&lt;/td&gt;
&lt;td&gt;F-Droid&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Mi Gallery&lt;/td&gt;
&lt;td&gt;Aves&lt;/td&gt;
&lt;td&gt;F-Droid / GitHub&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Mi Cleaner&lt;/td&gt;
&lt;td&gt;❌ Not needed — Android manages RAM itself&lt;/td&gt;
&lt;td&gt;—&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Game Center&lt;/td&gt;
&lt;td&gt;❌ Just uninstall&lt;/td&gt;
&lt;td&gt;—&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;hr&gt;
&lt;h2 id="-after-ota-updates"&gt;💡 After OTA Updates&lt;/h2&gt;
&lt;p&gt;Apps removed via ADB are &lt;strong&gt;hidden for your user account&lt;/strong&gt;, not fully deleted. A major HyperOS OTA may restore some of them. Simply &lt;strong&gt;re-run the relevant commands&lt;/strong&gt; — takes about 2 minutes.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;em&gt;Reference guide generated from a personal Claude conversation — April 2026.&lt;/em&gt;&lt;br&gt;
&lt;em&gt;For a full community-maintained package list, see &lt;a href="https://github.com/Universal-Debloater-Alliance/universal-android-debloater-next-generation" target="_blank" rel="noopener"&gt;UAD-ng on GitHub&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;</description></item><item><title>Converting Your Web App to an Android App Using WebView</title><link>https://suman.netlify.app/post/android-app-dev/</link><pubDate>Fri, 27 Mar 2026 00:00:00 +0000</pubDate><guid>https://suman.netlify.app/post/android-app-dev/</guid><description>&lt;h1 id="converting-web-app-to-an-android-app-using-webview"&gt;Converting Web App to an Android App Using WebView&lt;/h1&gt;
&lt;h2 id="deploy-your-react-app-vercel"&gt;DEPLOY YOUR REACT APP (Vercel)&lt;/h2&gt;
&lt;p&gt;✅ Build your project (LOCAL)
📂 Open your React project folder
G:\lzproject\lzapp-v2
🔹 Open Terminal in this folder&lt;/p&gt;
&lt;p&gt;👉 In VS Code:&lt;/p&gt;
&lt;p&gt;Terminal → New Terminal
🔹 Run this command:
npm run build
✅ Expected result:&lt;/p&gt;
&lt;p&gt;You will see a new folder:&lt;/p&gt;
&lt;p&gt;dist/&lt;/p&gt;
&lt;p&gt;👉 This is your production build&lt;/p&gt;
&lt;p&gt;🌐 Deploy to Vercel
🔹 Step 1 — Open Vercel&lt;/p&gt;
&lt;p&gt;Go to:
👉 &lt;a href="https://vercel.com" target="_blank" rel="noopener"&gt;https://vercel.com&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;🔹 Step 2 — Login&lt;/p&gt;
&lt;p&gt;Use:&lt;/p&gt;
&lt;p&gt;GitHub (recommended)
OR
Google
🔹 Step 3 — Import Project&lt;/p&gt;
&lt;p&gt;Click:&lt;/p&gt;
&lt;p&gt;Add New → Project
🔹 Step 4 — Select your repo&lt;/p&gt;
&lt;p&gt;If your project is already on GitHub:&lt;/p&gt;
&lt;p&gt;👉 Select:&lt;/p&gt;
&lt;p&gt;lzapp-v2
🔹 Step 5 — Configure&lt;/p&gt;
&lt;p&gt;Vercel auto-detects Vite 👍&lt;/p&gt;
&lt;p&gt;Check:&lt;/p&gt;
&lt;p&gt;Framework: Vite
Build Command: npm run build
Output Directory: dist&lt;/p&gt;
&lt;p&gt;👉 Click:&lt;/p&gt;
&lt;p&gt;Deploy
⏳ Wait 1–2 minutes
✅ STEP 6 — Get your URL&lt;/p&gt;
&lt;p&gt;After deploy, you’ll get:&lt;/p&gt;
&lt;p&gt;&lt;a href="https://your-project-name.vercel.app" target="_blank" rel="noopener"&gt;https://your-project-name.vercel.app&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;✅ Any update- TEST BEFORE DEPLOY&lt;/p&gt;
&lt;p&gt;Run locally:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;npm run dev
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;👉 Open: http://localhost:5173&lt;/p&gt;
&lt;p&gt;THEN DEPLOY AGAIN&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;npm run build
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Every time you change UI:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;1. Edit React (App.jsx / CSS)
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;2. npm run build
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;3. Push or redeploy Vercel
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;4. Open Android app → updated automatically, See updated UI
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="-1-install-android-studio-setup"&gt;🚀 1. Install Android Studio (Setup)&lt;/h2&gt;
&lt;h3 id="-download--install"&gt;🔹 Download &amp;amp; Install&lt;/h3&gt;
&lt;p&gt;Head over to the official Android Developer website: &lt;a href="https://developer.android.com/studio" target="_blank" rel="noopener"&gt;https://developer.android.com/studio&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Download and install the latest version of Android Studio. The installation process is straightforward and includes everything you need to get started.&lt;/p&gt;
&lt;h3 id="-during-setup"&gt;🔹 During Setup&lt;/h3&gt;
&lt;p&gt;When prompted during installation, make sure to select:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;✅ Standard installation&lt;/li&gt;
&lt;li&gt;✅ Install Android SDK&lt;/li&gt;
&lt;li&gt;✅ Install Emulator (optional, but useful for testing)&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="-after-installation"&gt;🔹 After Installation&lt;/h3&gt;
&lt;p&gt;Launch Android Studio and click &amp;ldquo;New Project&amp;rdquo; to begin.&lt;/p&gt;
&lt;h2 id="-2-create-new-android-project"&gt;📱 2. Create New Android Project&lt;/h2&gt;
&lt;p&gt;In the New Project wizard, select:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Template:&lt;/strong&gt; Empty Views Activity&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Language:&lt;/strong&gt; Java (simpler for beginners)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Minimum SDK:&lt;/strong&gt; API 21 (Android 5.0) - this covers about 95% of active Android devices&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Fill in the project details:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Name:&lt;/strong&gt; LzApp&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Package:&lt;/strong&gt; com.yourname.lzapp&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Click &lt;strong&gt;Finish&lt;/strong&gt; and let Android Studio set up your project.&lt;/p&gt;
&lt;h2 id="-3-add-internet-permission"&gt;🌐 3. Add Internet Permission&lt;/h2&gt;
&lt;p&gt;Your web app will need internet access, so we need to add the necessary permission.&lt;/p&gt;
&lt;p&gt;Navigate to: &lt;code&gt;app &amp;gt; src &amp;gt; main &amp;gt; AndroidManifest.xml&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Add this line just above the &lt;code&gt;&amp;lt;application&amp;gt;&lt;/code&gt; tag:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-xml" data-lang="xml"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;&amp;lt;uses-permission&lt;/span&gt; &lt;span class="na"&gt;android:name=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;android.permission.INTERNET&amp;#34;&lt;/span&gt; &lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="-4-add-webview-in-layout"&gt;🌍 4. Add WebView in Layout&lt;/h2&gt;
&lt;p&gt;Now let&amp;rsquo;s set up the user interface. Open: &lt;code&gt;res &amp;gt; layout &amp;gt; activity_main.xml&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Replace the entire contents with:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-xml" data-lang="xml"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="cp"&gt;&amp;lt;?xml version=&amp;#34;1.0&amp;#34; encoding=&amp;#34;utf-8&amp;#34;?&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;&amp;lt;WebView&lt;/span&gt; &lt;span class="na"&gt;xmlns:android=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;http://schemas.android.com/apk/res/android&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;android:id=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;@+id/webView&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;android:layout_width=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;match_parent&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;android:layout_height=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;match_parent&amp;#34;&lt;/span&gt; &lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;This creates a full-screen WebView that will display your web app.&lt;/p&gt;
&lt;h2 id="-5-load-your-vercel-app-in-webview"&gt;⚙️ 5. Load Your Vercel App in WebView&lt;/h2&gt;
&lt;p&gt;Open: &lt;code&gt;MainActivity.java&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Replace the entire file with:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-java" data-lang="java"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kn"&gt;package&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;com.yourname.landzoning&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt;&lt;/span&gt;&lt;span class="kn"&gt;import&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;android.os.Bundle&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt;&lt;/span&gt;&lt;span class="kn"&gt;import&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;android.webkit.WebView&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt;&lt;/span&gt;&lt;span class="kn"&gt;import&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;android.webkit.WebViewClient&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt;&lt;/span&gt;&lt;span class="kn"&gt;import&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;androidx.appcompat.app.AppCompatActivity&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt;&lt;/span&gt;&lt;span class="kd"&gt;public&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kd"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;MainActivity&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kd"&gt;extends&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;AppCompatActivity&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;WebView&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;webView&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nd"&gt;@Override&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kd"&gt;protected&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kt"&gt;void&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nf"&gt;onCreate&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;Bundle&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;savedInstanceState&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kd"&gt;super&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="na"&gt;onCreate&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;savedInstanceState&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;webView&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;new&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;WebView&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;setContentView&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;webView&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;webView&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="na"&gt;setWebViewClient&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;new&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;WebViewClient&lt;/span&gt;&lt;span class="p"&gt;());&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;webView&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="na"&gt;getSettings&lt;/span&gt;&lt;span class="p"&gt;().&lt;/span&gt;&lt;span class="na"&gt;setJavaScriptEnabled&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;webView&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="na"&gt;getSettings&lt;/span&gt;&lt;span class="p"&gt;().&lt;/span&gt;&lt;span class="na"&gt;setDomStorageEnabled&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;webView&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="na"&gt;loadUrl&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;https://your-vercel-app.vercel.app&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt;&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;Important:&lt;/strong&gt; Replace &lt;code&gt;https://your-vercel-app.vercel.app&lt;/code&gt; with your actual deployed Vercel URL.&lt;/p&gt;
&lt;h2 id="-6-handle-back-button-important"&gt;🔙 6. Handle Back Button (IMPORTANT)&lt;/h2&gt;
&lt;p&gt;To provide a native app experience, we need to handle the back button properly. Add this method to your &lt;code&gt;MainActivity.java&lt;/code&gt;:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-java" data-lang="java"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nd"&gt;@Override&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt;&lt;/span&gt;&lt;span class="kd"&gt;public&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kt"&gt;void&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nf"&gt;onBackPressed&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;if&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;webView&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="na"&gt;canGoBack&lt;/span&gt;&lt;span class="p"&gt;())&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;webView&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="na"&gt;goBack&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;else&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kd"&gt;super&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="na"&gt;onBackPressed&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt;&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;This allows users to navigate back through your web app&amp;rsquo;s history before exiting the app.&lt;/p&gt;
&lt;h2 id="-7-improve-webview-production-ready-basics"&gt;⚡ 7. Improve WebView (Production Ready Basics)&lt;/h2&gt;
&lt;p&gt;Let&amp;rsquo;s enhance the WebView settings for better performance and user experience. Add these lines after the existing settings in &lt;code&gt;onCreate()&lt;/code&gt;:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-java" data-lang="java"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;webView&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="na"&gt;getSettings&lt;/span&gt;&lt;span class="p"&gt;().&lt;/span&gt;&lt;span class="na"&gt;setLoadWithOverviewMode&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt;&lt;/span&gt;&lt;span class="n"&gt;webView&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="na"&gt;getSettings&lt;/span&gt;&lt;span class="p"&gt;().&lt;/span&gt;&lt;span class="na"&gt;setUseWideViewPort&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt;&lt;/span&gt;&lt;span class="n"&gt;webView&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="na"&gt;getSettings&lt;/span&gt;&lt;span class="p"&gt;().&lt;/span&gt;&lt;span class="na"&gt;setBuiltInZoomControls&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt;&lt;/span&gt;&lt;span class="n"&gt;webView&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="na"&gt;getSettings&lt;/span&gt;&lt;span class="p"&gt;().&lt;/span&gt;&lt;span class="na"&gt;setDisplayZoomControls&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;These settings ensure your web app displays properly on different screen sizes and provides zoom controls.&lt;/p&gt;
&lt;h2 id="-8-add-splash-screen"&gt;🎬 8. Add Splash Screen&lt;/h2&gt;
&lt;p&gt;A splash screen provides a professional first impression. Let&amp;rsquo;s add one.&lt;/p&gt;
&lt;h3 id="step-1-create-splash-layout"&gt;Step 1: Create splash layout&lt;/h3&gt;
&lt;p&gt;Create a new file: &lt;code&gt;res &amp;gt; layout &amp;gt; splash.xml&lt;/code&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-xml" data-lang="xml"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="cp"&gt;&amp;lt;?xml version=&amp;#34;1.0&amp;#34; encoding=&amp;#34;utf-8&amp;#34;?&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;&amp;lt;LinearLayout&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;xmlns:android=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;http://schemas.android.com/apk/res/android&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;android:orientation=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;vertical&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;android:gravity=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;center&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;android:background=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;#ffffff&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;android:layout_width=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;match_parent&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;android:layout_height=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;match_parent&amp;#34;&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;lt;TextView&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;android:text=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;Land Zoning BD&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;android:textSize=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;24sp&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;android:textStyle=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;bold&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;android:textColor=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;#000&amp;#34;&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;&amp;lt;/LinearLayout&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="step-2-create-splashactivity"&gt;Step 2: Create SplashActivity&lt;/h3&gt;
&lt;p&gt;Right-click on your package → New → Activity → Empty Activity
Name: &lt;code&gt;SplashActivity&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Replace the code with:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-java" data-lang="java"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kn"&gt;package&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;com.yourname.landzoning&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt;&lt;/span&gt;&lt;span class="kn"&gt;import&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;android.content.Intent&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt;&lt;/span&gt;&lt;span class="kn"&gt;import&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;android.os.Bundle&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt;&lt;/span&gt;&lt;span class="kn"&gt;import&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;android.os.Handler&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt;&lt;/span&gt;&lt;span class="kn"&gt;import&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;androidx.appcompat.app.AppCompatActivity&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt;&lt;/span&gt;&lt;span class="kd"&gt;public&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kd"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;SplashActivity&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kd"&gt;extends&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;AppCompatActivity&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nd"&gt;@Override&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kd"&gt;protected&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kt"&gt;void&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nf"&gt;onCreate&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;Bundle&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;savedInstanceState&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kd"&gt;super&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="na"&gt;onCreate&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;savedInstanceState&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;setContentView&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;R&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="na"&gt;layout&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="na"&gt;splash&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;new&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;Handler&lt;/span&gt;&lt;span class="p"&gt;().&lt;/span&gt;&lt;span class="na"&gt;postDelayed&lt;/span&gt;&lt;span class="p"&gt;(()&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;startActivity&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;new&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;Intent&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;SplashActivity&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="na"&gt;this&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;MainActivity&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="na"&gt;class&lt;/span&gt;&lt;span class="p"&gt;));&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;finish&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;2000&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="c1"&gt;// 2 seconds&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt;&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="step-3-make-splash-first-screen"&gt;Step 3: Make Splash First Screen&lt;/h3&gt;
&lt;p&gt;In &lt;code&gt;AndroidManifest.xml&lt;/code&gt;, modify the activity declarations:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-xml" data-lang="xml"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;&amp;lt;activity&lt;/span&gt; &lt;span class="na"&gt;android:name=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;.SplashActivity&amp;#34;&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;lt;intent-filter&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;lt;action&lt;/span&gt; &lt;span class="na"&gt;android:name=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;android.intent.action.MAIN&amp;#34;&lt;/span&gt; &lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;lt;category&lt;/span&gt; &lt;span class="na"&gt;android:name=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;android.intent.category.LAUNCHER&amp;#34;&lt;/span&gt; &lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;lt;/intent-filter&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;&amp;lt;/activity&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;&amp;lt;activity&lt;/span&gt; &lt;span class="na"&gt;android:name=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;.MainActivity&amp;#34;&lt;/span&gt; &lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="-9-build-apk-production"&gt;📦 9. Build APK (Production)&lt;/h2&gt;
&lt;h3 id="-build-debug-apk"&gt;🔹 Build Debug APK&lt;/h3&gt;
&lt;p&gt;From the top menu: &lt;strong&gt;Build → Build APK(s)&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;After the build completes, click &lt;strong&gt;Locate&lt;/strong&gt; to find your APK at:
&lt;code&gt;app/build/outputs/apk/debug/app-debug.apk&lt;/code&gt;&lt;/p&gt;
&lt;h2 id="-10-build-release-apk-important"&gt;🔐 10. Build Release APK (IMPORTANT)&lt;/h2&gt;
&lt;p&gt;For distribution, you need a signed release APK.&lt;/p&gt;
&lt;p&gt;Go to: &lt;strong&gt;Build → Generate Signed Bundle / APK&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Choose:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;APK&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Create new keystore&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Fill in:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Password&lt;/li&gt;
&lt;li&gt;Key alias&lt;/li&gt;
&lt;li&gt;Validity: 25 years&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Then:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Select release&lt;/li&gt;
&lt;li&gt;Finish&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Your signed APK will be at: &lt;code&gt;app-release.apk&lt;/code&gt;&lt;/p&gt;
&lt;h2 id="-11-install-on-phone"&gt;🚀 11. Install on Phone&lt;/h2&gt;
&lt;p&gt;You can install the APK in two ways:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;USB Method:&lt;/strong&gt; Copy the APK to your phone and install it directly.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;ADB Method:&lt;/strong&gt; Connect your phone via USB and run:
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;adb install app-release.apk
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="-important-tips-for-your-gis-app"&gt;⚠️ Important Tips for Your GIS App&lt;/h2&gt;
&lt;p&gt;Since you&amp;rsquo;re working with Leaflet, Firebase, and Vercel:&lt;/p&gt;
&lt;h3 id="-security--performance"&gt;🔹 Security &amp;amp; Performance&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;✅ Ensure HTTPS (Vercel handles this automatically)&lt;/li&gt;
&lt;li&gt;❌ Avoid mixed content (no HTTP resources in HTTPS pages)&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="-map-performance-optimization"&gt;🔹 Map Performance Optimization&lt;/h3&gt;
&lt;p&gt;Add these settings for better map rendering:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-java" data-lang="java"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;webView&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="na"&gt;getSettings&lt;/span&gt;&lt;span class="p"&gt;().&lt;/span&gt;&lt;span class="na"&gt;setAllowFileAccess&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt;&lt;/span&gt;&lt;span class="n"&gt;webView&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="na"&gt;getSettings&lt;/span&gt;&lt;span class="p"&gt;().&lt;/span&gt;&lt;span class="na"&gt;setAllowContentAccess&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="-next-steps"&gt;🎯 Next Steps&lt;/h2&gt;
&lt;p&gt;Once you have the basic WebView wrapper working, consider these enhancements:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Offline Caching:&lt;/strong&gt; Implement PWA features for offline functionality&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Native Loading Indicators:&lt;/strong&gt; Add progress bars and loading states&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Pull-to-Refresh:&lt;/strong&gt; Implement swipe-to-refresh functionality&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Push Notifications:&lt;/strong&gt; Integrate Firebase Cloud Messaging&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Custom Toolbar:&lt;/strong&gt; Add navigation controls that feel native&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Play Store Release:&lt;/strong&gt; Prepare your app for Google Play Store distribution&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="-if-build-issues-occur"&gt;⚠️ If Build Issues Occur&lt;/h2&gt;
&lt;p&gt;Sometimes after moving, you may see errors like:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Gradle path issue&lt;/li&gt;
&lt;li&gt;SDK not found&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Fix:&lt;/p&gt;
&lt;p&gt;🔹 1. Re-sync Gradle&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;File → Sync Project with Gradle Files&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;🔹 2. Clean &amp;amp; Rebuild&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Build → Clean Project&lt;/li&gt;
&lt;li&gt;Build → Rebuild Project&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;🔹 3. Check SDK Path&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;File → Project Structure → SDK Location&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Make sure it points to something like:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;C:\Users\Dell\AppData\Local\Android\Sdk&lt;/code&gt;&lt;/p&gt;
&lt;h2 id="-summary"&gt;👉 Summary&lt;/h2&gt;
&lt;p&gt;You&amp;rsquo;re essentially creating a native Android wrapper around your web application:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;React App (Vercel) → Android WebView Wrapper → APK App
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description></item><item><title>web app development</title><link>https://suman.netlify.app/post/web-app-dev/</link><pubDate>Fri, 27 Mar 2026 00:00:00 +0000</pubDate><guid>https://suman.netlify.app/post/web-app-dev/</guid><description>&lt;h1 id="web-app"&gt;Web App&lt;/h1&gt;
&lt;h2 id="youve-already-built-a-solid-web--gis-dashboard-system-now-well-upgrade-it-into-a-full-ecosystem"&gt;You’ve already built a solid Web + GIS dashboard system. Now we’ll upgrade it into a full ecosystem:&lt;/h2&gt;
&lt;p&gt;✅ Android App (Data Control Panel)
✅ Realtime Database (replace Google Sheets)
✅ Web App (auto-sync updates)&lt;/p&gt;
&lt;p&gt;🧠 System Architecture (Upgraded)&lt;/p&gt;
&lt;p&gt;🔄 Current (Your Setup)
Google Sheet → Web App (Vercel) → Map UI&lt;/p&gt;
&lt;p&gt;🚀 New System (Recommended)
Android App → Firebase / Supabase DB → Web App (Vercel)&lt;/p&gt;
&lt;p&gt;✔ No more manual Google Sheet editing
✔ Real-time sync
✔ Mobile control panel
✔ Scalable + faster&lt;/p&gt;
&lt;p&gt;⚙️ STEP 1: Choose Backend (VERY IMPORTANT)&lt;/p&gt;
&lt;p&gt;🥇 Best Option: Firebase (Recommended)&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Realtime database&lt;/li&gt;
&lt;li&gt;Easy Android integration&lt;/li&gt;
&lt;li&gt;Free tier enough&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Alternative:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Supabase (PostgreSQL)&lt;/li&gt;
&lt;li&gt;Node.js API + MongoDB (more control)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;👉 I’ll proceed with Firebase Firestore (best for your case)&lt;/p&gt;
&lt;p&gt;🔥 STEP 2: Database Structure&lt;/p&gt;
&lt;p&gt;Replace your Excel with this structure:&lt;/p&gt;
&lt;p&gt;Collection: upazila_progress
{
&amp;ldquo;id&amp;rdquo;: &amp;ldquo;123&amp;rdquo;,
&amp;ldquo;division&amp;rdquo;: &amp;ldquo;Dhaka&amp;rdquo;,
&amp;ldquo;district&amp;rdquo;: &amp;ldquo;Gazipur&amp;rdquo;,
&amp;ldquo;upazila&amp;rdquo;: &amp;ldquo;Kaliganj&amp;rdquo;,
&amp;ldquo;status&amp;rdquo;: &amp;ldquo;done&amp;rdquo;, // done | ongoing | todo
&amp;ldquo;updated_at&amp;rdquo;: &amp;ldquo;2026-03-24T10:00:00&amp;rdquo;
}&lt;/p&gt;
&lt;p&gt;🌐 STEP 3: Update Your Web App (IMPORTANT)&lt;/p&gt;
&lt;p&gt;Replace Google Sheets API with Firebase fetch.&lt;/p&gt;
&lt;p&gt;Install Firebase in your web project
npm install firebase&lt;/p&gt;
&lt;p&gt;Firebase config (JS)
import { initializeApp } from &amp;ldquo;firebase/app&amp;rdquo;;
import { getFirestore, collection, getDocs } from &amp;ldquo;firebase/firestore&amp;rdquo;;&lt;/p&gt;
&lt;p&gt;const firebaseConfig = {
apiKey: &amp;ldquo;XXXX&amp;rdquo;,
authDomain: &amp;ldquo;XXXX&amp;rdquo;,
projectId: &amp;ldquo;XXXX&amp;rdquo;,
};&lt;/p&gt;
&lt;p&gt;const app = initializeApp(firebaseConfig);
const db = getFirestore(app);&lt;/p&gt;
&lt;p&gt;export async function fetchUpazilaData() {
const querySnapshot = await getDocs(collection(db, &amp;ldquo;upazila_progress&amp;rdquo;));
return querySnapshot.docs.map(doc =&amp;gt; doc.data());
}&lt;/p&gt;
&lt;p&gt;👉 Replace your Google Sheet logic with this.&lt;/p&gt;
&lt;p&gt;📱 STEP 4: Android App (Core Part)&lt;/p&gt;
&lt;p&gt;We build a Minimal Admin App&lt;/p&gt;
&lt;p&gt;Features:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Upazila list&lt;/li&gt;
&lt;li&gt;Status change (Done / Ongoing / ToDo)&lt;/li&gt;
&lt;li&gt;Search&lt;/li&gt;
&lt;li&gt;Dashboard summary&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;🏗 Tech Stack&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Kotlin&lt;/li&gt;
&lt;li&gt;Firebase Firestore&lt;/li&gt;
&lt;li&gt;Jetpack Compose (or XML if you prefer)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;📲 Android UI Structure
Screens:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Dashboard&lt;/li&gt;
&lt;li&gt;Upazila List&lt;/li&gt;
&lt;li&gt;Edit Status&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;🧩 Example Code&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Firebase Setup (Android)
val db = FirebaseFirestore.getInstance()&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Fetch Data
fun getUpazilas(onResult: (List&lt;Upazila&gt;) -&amp;gt; Unit) {
db.collection(&amp;ldquo;upazila_progress&amp;rdquo;)
.get()
.addOnSuccessListener { result -&amp;gt;
val list = result.map { doc -&amp;gt;
Upazila(
id = doc.id,
name = doc.getString(&amp;ldquo;upazila&amp;rdquo;) ?: &amp;ldquo;&amp;rdquo;,
status = doc.getString(&amp;ldquo;status&amp;rdquo;) ?: &amp;ldquo;todo&amp;rdquo;
)
}
onResult(list)
}
}&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Update Status (🔥 KEY PART)
fun updateStatus(id: String, newStatus: String) {
db.collection(&amp;ldquo;upazila_progress&amp;rdquo;)
.document(id)
.update(&amp;ldquo;status&amp;rdquo;, newStatus)
}&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;👉 This is what replaces Google Sheets editing.&lt;/p&gt;
&lt;ol start="4"&gt;
&lt;li&gt;Simple UI (XML idea)
&lt;Button
android:text="Mark Done"
android:onClick="markDone"/&gt;
fun markDone() {
updateStatus(upazilaId, &amp;ldquo;done&amp;rdquo;)
}&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;🔄 STEP 5: Real-Time Sync (Important Upgrade)&lt;/p&gt;
&lt;p&gt;Instead of getDocs(), use listener:&lt;/p&gt;
&lt;p&gt;Web + Android both
onSnapshot(collection(db, &amp;ldquo;upazila_progress&amp;rdquo;), (snapshot) =&amp;gt; {
// auto update map
});&lt;/p&gt;
&lt;p&gt;👉 Now:
✔ Android change → instantly updates web map
✔ No refresh needed&lt;/p&gt;
&lt;p&gt;📊 STEP 6: Dashboard Logic (Same as Web)&lt;/p&gt;
&lt;p&gt;Count status:&lt;/p&gt;
&lt;p&gt;val done = list.count { it.status == &amp;ldquo;done&amp;rdquo; }
val ongoing = list.count { it.status == &amp;ldquo;ongoing&amp;rdquo; }
val todo = list.count { it.status == &amp;ldquo;todo&amp;rdquo; }&lt;/p&gt;
&lt;p&gt;🎯 FINAL RESULT
Android App&lt;/p&gt;
&lt;p&gt;✔ Change status
✔ View progress
✔ Control system&lt;/p&gt;
&lt;p&gt;Web App&lt;/p&gt;
&lt;p&gt;✔ Map auto-updates
✔ No Google Sheets
✔ Real-time sync&lt;/p&gt;
&lt;p&gt;🚀 OPTIONAL ADVANCED FEATURES&lt;/p&gt;
&lt;p&gt;If you want next-level:&lt;/p&gt;
&lt;p&gt;🔐 Login system (Admin only)
📍 GPS tagging per update
📸 Upload field images
📶 Offline sync (Firestore supports)
📊 Analytics dashboard&lt;/p&gt;
&lt;p&gt;⚠️ Important Advice&lt;/p&gt;
&lt;p&gt;👉 Do NOT keep Google Sheets now
👉 Firebase = faster + scalable
👉 Your current map code can stay mostly same&lt;/p&gt;
&lt;p&gt;🧱 STEP 1: Add Firebase to Your Project&lt;/p&gt;
&lt;p&gt;Go to: &lt;a href="https://console.firebase.google.com" target="_blank" rel="noopener"&gt;https://console.firebase.google.com&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;→ Create project: landzoning&lt;/p&gt;
&lt;p&gt;Then:&lt;/p&gt;
&lt;p&gt;Enable:
✅ Firestore Database
✅ (Optional) Authentication later&lt;/p&gt;
&lt;p&gt;🔑 Get Config&lt;/p&gt;
&lt;p&gt;You’ll get something like:&lt;/p&gt;
&lt;p&gt;const firebaseConfig = {
apiKey: &amp;ldquo;XXXX&amp;rdquo;,
authDomain: &amp;ldquo;XXXX&amp;rdquo;,
projectId: &amp;ldquo;XXXX&amp;rdquo;,
};&lt;/p&gt;
&lt;p&gt;📦 STEP 2: Modify Your GitHub Code&lt;/p&gt;
&lt;p&gt;In your repo
👉 Landzoning-main&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Install Firebase
npm install firebase&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Create New File
📁 /src/firebase.js
import { initializeApp } from &amp;ldquo;firebase/app&amp;rdquo;;
import { getFirestore } from &amp;ldquo;firebase/firestore&amp;rdquo;;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;const firebaseConfig = {
apiKey: &amp;ldquo;YOUR_KEY&amp;rdquo;,
authDomain: &amp;ldquo;YOUR_DOMAIN&amp;rdquo;,
projectId: &amp;ldquo;YOUR_PROJECT_ID&amp;rdquo;,
};&lt;/p&gt;
&lt;p&gt;const app = initializeApp(firebaseConfig);
export const db = getFirestore(app);&lt;/p&gt;
&lt;p&gt;🔁 STEP 3: Replace Google Sheet Logic&lt;/p&gt;
&lt;p&gt;Find your current file where you load Excel/Sheet data
(Probably something like fetchData.js, App.js, or map.js)&lt;/p&gt;
&lt;p&gt;❌ REMOVE (Old)
// Google Sheet / XLSX loading
fetch(&amp;ldquo;bdupazila.xlsx&amp;rdquo;)&lt;/p&gt;
&lt;p&gt;✅ ADD (New Firebase Fetch)
import { collection, onSnapshot } from &amp;ldquo;firebase/firestore&amp;rdquo;;
import { db } from &amp;ldquo;./firebase&amp;rdquo;;&lt;/p&gt;
&lt;p&gt;export function listenToUpazilaData(callback) {
const unsub = onSnapshot(collection(db, &amp;ldquo;upazila_progress&amp;rdquo;), (snapshot) =&amp;gt; {
const data = snapshot.docs.map(doc =&amp;gt; ({
id: doc.id,
&amp;hellip;doc.data()
}));
callback(data);
});&lt;/p&gt;
&lt;p&gt;return unsub;
}&lt;/p&gt;
&lt;p&gt;🗺 STEP 4: Connect with Your Map&lt;/p&gt;
&lt;p&gt;Where you currently update map colors:&lt;/p&gt;
&lt;p&gt;Replace your data source with:&lt;/p&gt;
&lt;p&gt;listenToUpazilaData((data) =&amp;gt; {
updateMap(data); // your existing function
updateStats(data); // your dashboard logic
});&lt;/p&gt;
&lt;p&gt;🎨 STEP 5: Keep Your Map Styling (NO CHANGE)&lt;/p&gt;
&lt;p&gt;Your existing:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Leaflet map&lt;/li&gt;
&lt;li&gt;GeoJSON boundaries&lt;/li&gt;
&lt;li&gt;Color logic&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;👉 KEEP EVERYTHING SAME
👉 Only change data source&lt;/p&gt;
&lt;p&gt;📊 STEP 6: Status Color Mapping (Ensure This)&lt;/p&gt;
&lt;p&gt;function getColor(status) {
switch (status) {
case &amp;ldquo;done&amp;rdquo;:
return &amp;ldquo;#22c55e&amp;rdquo;; // green
case &amp;ldquo;ongoing&amp;rdquo;:
return &amp;ldquo;#facc15&amp;rdquo;; // yellow
default:
return &amp;ldquo;#9ca3af&amp;rdquo;; // gray
}
}&lt;/p&gt;
&lt;p&gt;🧪 STEP 7: Upload Initial Data to Firebase&lt;/p&gt;
&lt;p&gt;Go to Firestore → Collection: upazila_progress&lt;/p&gt;
&lt;p&gt;Add documents manually OR use script:&lt;/p&gt;
&lt;p&gt;import { collection, addDoc } from &amp;ldquo;firebase/firestore&amp;rdquo;;&lt;/p&gt;
&lt;p&gt;const data = [
{ upazila: &amp;ldquo;Kaliganj&amp;rdquo;, status: &amp;ldquo;done&amp;rdquo; },
];&lt;/p&gt;
&lt;p&gt;data.forEach(async (item) =&amp;gt; {
await addDoc(collection(db, &amp;ldquo;upazila_progress&amp;rdquo;), item);
});
🔄 RESULT
Now your system becomes:
Android App → Firebase → Web Map (Auto Update)&lt;/p&gt;
&lt;p&gt;✔ No refresh needed
✔ Real-time updates
✔ Centralized control&lt;/p&gt;
&lt;p&gt;📱 NEXT (Android Integration)&lt;/p&gt;
&lt;p&gt;Your Android app will:&lt;/p&gt;
&lt;p&gt;db.collection(&amp;ldquo;upazila_progress&amp;rdquo;)
.document(id)
.update(&amp;ldquo;status&amp;rdquo;, &amp;ldquo;done&amp;rdquo;)&lt;/p&gt;
&lt;p&gt;👉 Web updates instantly 🔥&lt;/p&gt;
&lt;p&gt;🚀 BONUS: Performance Upgrade&lt;/p&gt;
&lt;p&gt;Use indexing:&lt;/p&gt;
&lt;p&gt;Firestore → Indexes → Add:&lt;/p&gt;
&lt;p&gt;status ASC
district ASC
⚠️ Common Mistakes&lt;/p&gt;
&lt;p&gt;❌ Using getDocs() (not realtime)
✅ Use onSnapshot()&lt;/p&gt;
&lt;p&gt;❌ Keeping Excel logic
✅ Fully remove it&lt;/p&gt;</description></item><item><title>Best ai model for coding for developer</title><link>https://suman.netlify.app/post/ai-model-for-developer/</link><pubDate>Thu, 26 Mar 2026 00:00:00 +0000</pubDate><guid>https://suman.netlify.app/post/ai-model-for-developer/</guid><description>&lt;p&gt;For most developers in 2026, the “best” AI model for coding is &lt;strong&gt;OpenAI’s GPT‑5 series (especially GPT‑5.2 Pro / Thinking)&lt;/strong&gt;, closely followed by &lt;strong&gt;Anthropic’s Claude Opus 4.5 / Sonnet 4.5&lt;/strong&gt; and &lt;strong&gt;Google’s Gemini 3 Pro&lt;/strong&gt;.&lt;sup id="fnref:1"&gt;&lt;a href="#fn:1" class="footnote-ref" role="doc-noteref"&gt;1&lt;/a&gt;&lt;/sup&gt;&lt;sup id="fnref:2"&gt;&lt;a href="#fn:2" class="footnote-ref" role="doc-noteref"&gt;2&lt;/a&gt;&lt;/sup&gt;&lt;sup id="fnref:3"&gt;&lt;a href="#fn:3" class="footnote-ref" role="doc-noteref"&gt;3&lt;/a&gt;&lt;/sup&gt;&lt;sup id="fnref:4"&gt;&lt;a href="#fn:4" class="footnote-ref" role="doc-noteref"&gt;4&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;
&lt;h3 id="top-allround-pick"&gt;Top all‑round pick&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;OpenAI GPT‑5.2 (Pro / Thinking)&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;Very strong at solving algorithmic problems, generating clean syntax‑correct code, and writing tests and docs.&lt;sup id="fnref1:3"&gt;&lt;a href="#fn:3" class="footnote-ref" role="doc-noteref"&gt;3&lt;/a&gt;&lt;/sup&gt;&lt;sup id="fnref1:1"&gt;&lt;a href="#fn:1" class="footnote-ref" role="doc-noteref"&gt;1&lt;/a&gt;&lt;/sup&gt;&lt;/li&gt;
&lt;li&gt;Works well via VS Code, Cursor, and other IDEs, so it fits into a typical developer workflow.&lt;sup id="fnref1:2"&gt;&lt;a href="#fn:2" class="footnote-ref" role="doc-noteref"&gt;2&lt;/a&gt;&lt;/sup&gt;&lt;sup id="fnref1:4"&gt;&lt;a href="#fn:4" class="footnote-ref" role="doc-noteref"&gt;4&lt;/a&gt;&lt;/sup&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="best-for-reasoning-and-design"&gt;Best for reasoning and design&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Claude Opus 4.5 / Sonnet 4.5&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;Excellent at system‑design, large refactors, and keeping consistency across big codebases.&lt;sup id="fnref2:4"&gt;&lt;a href="#fn:4" class="footnote-ref" role="doc-noteref"&gt;4&lt;/a&gt;&lt;/sup&gt;&lt;sup id="fnref2:2"&gt;&lt;a href="#fn:2" class="footnote-ref" role="doc-noteref"&gt;2&lt;/a&gt;&lt;/sup&gt;&lt;/li&gt;
&lt;li&gt;Good for tasks where you need deep reasoning, not just autocomplete.&lt;sup id="fnref3:2"&gt;&lt;a href="#fn:2" class="footnote-ref" role="doc-noteref"&gt;2&lt;/a&gt;&lt;/sup&gt;&lt;sup id="fnref3:4"&gt;&lt;a href="#fn:4" class="footnote-ref" role="doc-noteref"&gt;4&lt;/a&gt;&lt;/sup&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="best-for-contextheavy-projects"&gt;Best for context‑heavy projects&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Google Gemini 3 Pro&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;Huge context window lets it “see” many files at once, so it’s strong for debugging interactions across large projects.&lt;sup id="fnref2:3"&gt;&lt;a href="#fn:3" class="footnote-ref" role="doc-noteref"&gt;3&lt;/a&gt;&lt;/sup&gt;&lt;sup id="fnref4:2"&gt;&lt;a href="#fn:2" class="footnote-ref" role="doc-noteref"&gt;2&lt;/a&gt;&lt;/sup&gt;&lt;/li&gt;
&lt;li&gt;Works well for quick prototyping and when you want to upload entire directories or long logs.&lt;sup id="fnref5:2"&gt;&lt;a href="#fn:2" class="footnote-ref" role="doc-noteref"&gt;2&lt;/a&gt;&lt;/sup&gt;&lt;sup id="fnref3:3"&gt;&lt;a href="#fn:3" class="footnote-ref" role="doc-noteref"&gt;3&lt;/a&gt;&lt;/sup&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="if-you-want-free-or-local"&gt;If you want free or local&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Mistral, CodeGemma, DeepSeek‑Coder / Qwen‑Coder&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;Good for local/self‑hosted setups or budget‑constrained teams; they cover many languages and are strong on repetitive tasks.&lt;sup id="fnref:5"&gt;&lt;a href="#fn:5" class="footnote-ref" role="doc-noteref"&gt;5&lt;/a&gt;&lt;/sup&gt;&lt;sup id="fnref2:1"&gt;&lt;a href="#fn:1" class="footnote-ref" role="doc-noteref"&gt;1&lt;/a&gt;&lt;/sup&gt;&lt;sup id="fnref4:3"&gt;&lt;a href="#fn:3" class="footnote-ref" role="doc-noteref"&gt;3&lt;/a&gt;&lt;/sup&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="practical-recommendation-for-you"&gt;Practical recommendation for you&lt;/h3&gt;
&lt;p&gt;Given your comfort with Python, JavaScript, and advanced tooling (VS Code, web, and cloud), you’re likely best served by:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Primary model&lt;/strong&gt;: GPT‑5.2 Pro (via VS Code / Cursor) for daily coding, debugging, and quick prototyping.&lt;sup id="fnref3:1"&gt;&lt;a href="#fn:1" class="footnote-ref" role="doc-noteref"&gt;1&lt;/a&gt;&lt;/sup&gt;&lt;sup id="fnref4:4"&gt;&lt;a href="#fn:4" class="footnote-ref" role="doc-noteref"&gt;4&lt;/a&gt;&lt;/sup&gt;&lt;sup id="fnref6:2"&gt;&lt;a href="#fn:2" class="footnote-ref" role="doc-noteref"&gt;2&lt;/a&gt;&lt;/sup&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Secondary model&lt;/strong&gt;: Claude Opus 4.5 or Gemini 3 Pro for heavier design and refactoring work.&lt;sup id="fnref5:4"&gt;&lt;a href="#fn:4" class="footnote-ref" role="doc-noteref"&gt;4&lt;/a&gt;&lt;/sup&gt;&lt;sup id="fnref5:3"&gt;&lt;a href="#fn:3" class="footnote-ref" role="doc-noteref"&gt;3&lt;/a&gt;&lt;/sup&gt;&lt;sup id="fnref7:2"&gt;&lt;a href="#fn:2" class="footnote-ref" role="doc-noteref"&gt;2&lt;/a&gt;&lt;/sup&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If you tell your main stack (backend, web, data‑science, etc.), I can narrow this down to one best‑fit model and a concrete setup (IDE + extensions).
&lt;span style="display:none"&gt;&lt;sup id="fnref:6"&gt;&lt;a href="#fn:6" class="footnote-ref" role="doc-noteref"&gt;6&lt;/a&gt;&lt;/sup&gt;&lt;sup id="fnref:7"&gt;&lt;a href="#fn:7" class="footnote-ref" role="doc-noteref"&gt;7&lt;/a&gt;&lt;/sup&gt;&lt;sup id="fnref:8"&gt;&lt;a href="#fn:8" class="footnote-ref" role="doc-noteref"&gt;8&lt;/a&gt;&lt;/sup&gt;&lt;sup id="fnref:9"&gt;&lt;a href="#fn:9" class="footnote-ref" role="doc-noteref"&gt;9&lt;/a&gt;&lt;/sup&gt;&lt;sup id="fnref:10"&gt;&lt;a href="#fn:10" class="footnote-ref" role="doc-noteref"&gt;10&lt;/a&gt;&lt;/sup&gt;&lt;/span&gt;&lt;/p&gt;
&lt;div align="center"&gt;⁂&lt;/div&gt;
&lt;hr&gt;
&lt;h1 id="how-to-free-use-these-models-as-longer-complex-coding-require"&gt;How to free use these models as longer complex coding require&lt;/h1&gt;
&lt;p&gt;You can &lt;strong&gt;use powerful coding models for free&lt;/strong&gt; by mixing &lt;strong&gt;free tiers, standalone tools, and local‑run open‑source models&lt;/strong&gt;—you just need to be strategic about when you use each.&lt;sup id="fnref:11"&gt;&lt;a href="#fn:11" class="footnote-ref" role="doc-noteref"&gt;11&lt;/a&gt;&lt;/sup&gt;&lt;sup id="fnref:12"&gt;&lt;a href="#fn:12" class="footnote-ref" role="doc-noteref"&gt;12&lt;/a&gt;&lt;/sup&gt;&lt;sup id="fnref:13"&gt;&lt;a href="#fn:13" class="footnote-ref" role="doc-noteref"&gt;13&lt;/a&gt;&lt;/sup&gt;&lt;sup id="fnref:14"&gt;&lt;a href="#fn:14" class="footnote-ref" role="doc-noteref"&gt;14&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;
&lt;h3 id="1-use-free-tiers-of-big-models"&gt;1. Use free tiers of big models&lt;/h3&gt;
&lt;p&gt;Big vendors offer limited free usage that works well for long but not “all‑day” coding:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;GPT‑5 / GPT‑4.1‑based tools&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;Many IDEs and wrappers (Cursor, GitHub Copilot’s chat, Warp, etc.) give you &lt;strong&gt;free tiers or credits&lt;/strong&gt; (e.g., hundreds of completions/chat requests per month).&lt;sup id="fnref1:12"&gt;&lt;a href="#fn:12" class="footnote-ref" role="doc-noteref"&gt;12&lt;/a&gt;&lt;/sup&gt;&lt;/li&gt;
&lt;li&gt;Example: GitHub Copilot free tier includes ~50 chat requests + ~2,000 completions/month without a credit card.&lt;sup id="fnref2:12"&gt;&lt;a href="#fn:12" class="footnote-ref" role="doc-noteref"&gt;12&lt;/a&gt;&lt;/sup&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Claude models (Opus / Sonnet)&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;Some platforms (Warp, Kilo Code, Rovo Dev CLI, Amazon Q, etc.) bundle &lt;strong&gt;Claude Sonnet/Opus&lt;/strong&gt; with free monthly credits or signup bonuses (e.g., 10–150 “fast” requests/month).&lt;sup id="fnref3:12"&gt;&lt;a href="#fn:12" class="footnote-ref" role="doc-noteref"&gt;12&lt;/a&gt;&lt;/sup&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Gemini 3 Pro / 2.5 Pro&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;Google’s free tier of Gemini 3 Pro is &lt;strong&gt;very limited for deep reasoning&lt;/strong&gt; (often only ~3–5 heavy prompts per day), but you can still use it for light help; Gemini 2.5 Pro is more generous in some tools.&lt;sup id="fnref:15"&gt;&lt;a href="#fn:15" class="footnote-ref" role="doc-noteref"&gt;15&lt;/a&gt;&lt;/sup&gt;&lt;sup id="fnref4:12"&gt;&lt;a href="#fn:12" class="footnote-ref" role="doc-noteref"&gt;12&lt;/a&gt;&lt;/sup&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Practical tip: rotate models (GPT‑5 → Claude → Gemini) across different tasks instead of hammering one, so you stay inside free limits.&lt;sup id="fnref:16"&gt;&lt;a href="#fn:16" class="footnote-ref" role="doc-noteref"&gt;16&lt;/a&gt;&lt;/sup&gt;&lt;sup id="fnref1:11"&gt;&lt;a href="#fn:11" class="footnote-ref" role="doc-noteref"&gt;11&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id="2-join-unified-free-portals"&gt;2. Join “unified” free portals&lt;/h3&gt;
&lt;p&gt;Several platforms let you switch between GPT‑5, Claude, Gemini, and others &lt;strong&gt;in one place for free&lt;/strong&gt;, usually with a small monthly quota:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Tools like &lt;strong&gt;Admix&lt;/strong&gt; or similar “vault”‑style apps front‑end GPT‑5, Claude, Gemini, and others with &lt;strong&gt;free plans&lt;/strong&gt; (often after a quick signup).&lt;sup id="fnref:17"&gt;&lt;a href="#fn:17" class="footnote-ref" role="doc-noteref"&gt;17&lt;/a&gt;&lt;/sup&gt;&lt;sup id="fnref2:11"&gt;&lt;a href="#fn:11" class="footnote-ref" role="doc-noteref"&gt;11&lt;/a&gt;&lt;/sup&gt;&lt;/li&gt;
&lt;li&gt;These are good for &lt;strong&gt;long‑form coding sessions&lt;/strong&gt; where you can try one model until it throttles, then switch to another.&lt;sup id="fnref3:11"&gt;&lt;a href="#fn:11" class="footnote-ref" role="doc-noteref"&gt;11&lt;/a&gt;&lt;/sup&gt;&lt;sup id="fnref1:17"&gt;&lt;a href="#fn:17" class="footnote-ref" role="doc-noteref"&gt;17&lt;/a&gt;&lt;/sup&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h3 id="3-run-local-opensource-coding-models-truly-free"&gt;3. Run local open‑source coding models (truly free)&lt;/h3&gt;
&lt;p&gt;For long, complex coding that you want to run without hitting API limits, install &lt;strong&gt;local coding‑optimized models&lt;/strong&gt;:&lt;/p&gt;
&lt;p&gt;Popular free models you can run on a decent laptop or cloud VM:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;CodeLlama 13B / 34B&lt;/strong&gt; – strong pure‑code model, works well via Ollama or Hugging Face.&lt;sup id="fnref1:13"&gt;&lt;a href="#fn:13" class="footnote-ref" role="doc-noteref"&gt;13&lt;/a&gt;&lt;/sup&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Mistral / Codestral‑22B&lt;/strong&gt; – efficient code‑first models that fit on a single high‑end GPU.&lt;sup id="fnref1:14"&gt;&lt;a href="#fn:14" class="footnote-ref" role="doc-noteref"&gt;14&lt;/a&gt;&lt;/sup&gt;&lt;sup id="fnref2:13"&gt;&lt;a href="#fn:13" class="footnote-ref" role="doc-noteref"&gt;13&lt;/a&gt;&lt;/sup&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Qwen‑Coder / Qwen3‑Coder&lt;/strong&gt; – 30B–480B MoE models with large context, good for repo‑level refactors.&lt;sup id="fnref3:13"&gt;&lt;a href="#fn:13" class="footnote-ref" role="doc-noteref"&gt;13&lt;/a&gt;&lt;/sup&gt;&lt;sup id="fnref2:14"&gt;&lt;a href="#fn:14" class="footnote-ref" role="doc-noteref"&gt;14&lt;/a&gt;&lt;/sup&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Tools to run them:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Ollama&lt;/strong&gt; (simple, works on Linux/macOS/Windows):&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;ollama pull codellama:13b
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;ollama run codellama:13b
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;sup id="fnref4:13"&gt;&lt;a href="#fn:13" class="footnote-ref" role="doc-noteref"&gt;13&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;LM Studio / Jan&lt;/strong&gt; – GUIs for local models that can plug into VS Code or standalone editors.&lt;sup id="fnref5:13"&gt;&lt;a href="#fn:13" class="footnote-ref" role="doc-noteref"&gt;13&lt;/a&gt;&lt;/sup&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Downside: local models usually need at least 16–24 GB RAM / 8–24 GB VRAM for best performance, but they’re &lt;strong&gt;free to run forever&lt;/strong&gt; and keep your code private.&lt;sup id="fnref3:14"&gt;&lt;a href="#fn:14" class="footnote-ref" role="doc-noteref"&gt;14&lt;/a&gt;&lt;/sup&gt;&lt;sup id="fnref6:13"&gt;&lt;a href="#fn:13" class="footnote-ref" role="doc-noteref"&gt;13&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id="4-practical-workflow-for-you-python--web-dev"&gt;4. Practical workflow for you (Python + web dev)&lt;/h3&gt;
&lt;p&gt;For your stack (Python, JS, web, some data‑science / GIS), you can:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Daily coding&lt;/strong&gt;:
&lt;ul&gt;
&lt;li&gt;Use free tiers of &lt;strong&gt;GPT‑5‑enabled IDEs&lt;/strong&gt; (Cursor, VS Code with Copilot, etc.) for quick refactors, boilerplate, and debugging.&lt;sup id="fnref1:16"&gt;&lt;a href="#fn:16" class="footnote-ref" role="doc-noteref"&gt;16&lt;/a&gt;&lt;/sup&gt;&lt;sup id="fnref5:12"&gt;&lt;a href="#fn:12" class="footnote-ref" role="doc-noteref"&gt;12&lt;/a&gt;&lt;/sup&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Heavy design / refactors&lt;/strong&gt;:
&lt;ul&gt;
&lt;li&gt;Save your “heavy” prompts for &lt;strong&gt;Claude Sonnet&lt;/strong&gt; or &lt;strong&gt;Gemini 3 Pro&lt;/strong&gt; when you get free credits, e.g., re‑architecting a module or writing a long spec.&lt;sup id="fnref1:15"&gt;&lt;a href="#fn:15" class="footnote-ref" role="doc-noteref"&gt;15&lt;/a&gt;&lt;/sup&gt;&lt;sup id="fnref2:16"&gt;&lt;a href="#fn:16" class="footnote-ref" role="doc-noteref"&gt;16&lt;/a&gt;&lt;/sup&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Long‑run / offline projects&lt;/strong&gt;:
&lt;ul&gt;
&lt;li&gt;Run a &lt;strong&gt;local CodeLlama or Qwen‑Coder&lt;/strong&gt; model for tasks that might blow cloud free limits (large‑file refactors, generating many functions, docs).&lt;sup id="fnref4:14"&gt;&lt;a href="#fn:14" class="footnote-ref" role="doc-noteref"&gt;14&lt;/a&gt;&lt;/sup&gt;&lt;sup id="fnref7:13"&gt;&lt;a href="#fn:13" class="footnote-ref" role="doc-noteref"&gt;13&lt;/a&gt;&lt;/sup&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h3 id="if-you-tell-your-setup"&gt;If you tell your setup&lt;/h3&gt;
&lt;p&gt;If you share your machine (RAM/VRAM, OS, whether you use VS Code / JetBrains), I can give you a &lt;strong&gt;step‑by‑step plan&lt;/strong&gt; like:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;which model to install locally,&lt;/li&gt;
&lt;li&gt;which free web tools to use, and&lt;/li&gt;
&lt;li&gt;how to structure prompts so you don’t waste your limited free‑tier tokens on long coding tasks.
&lt;span style="display:none"&gt;&lt;sup id="fnref:18"&gt;&lt;a href="#fn:18" class="footnote-ref" role="doc-noteref"&gt;18&lt;/a&gt;&lt;/sup&gt;&lt;sup id="fnref:19"&gt;&lt;a href="#fn:19" class="footnote-ref" role="doc-noteref"&gt;19&lt;/a&gt;&lt;/sup&gt;&lt;sup id="fnref:20"&gt;&lt;a href="#fn:20" class="footnote-ref" role="doc-noteref"&gt;20&lt;/a&gt;&lt;/sup&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div align="center"&gt;⁂&lt;/div&gt;
&lt;hr&gt;
&lt;h1 id="how-to-structure-prompts-so-i-dont-waste-my-limited-freetier-tokens-in-different-model-also-structure-a-crazy-plan-with-tricks-using-smartly-all-free-plan-tire-for-a-whole-project"&gt;how to structure prompts so I don’t waste my limited free‑tier tokens in different model. Also structure a crazy plan with tricks using smartly all free plan tire for a whole project&lt;/h1&gt;
&lt;p&gt;To avoid blowing your free‑tier tokens, you need both &lt;strong&gt;prompt discipline&lt;/strong&gt; and a &lt;strong&gt;“free‑tier rotation” plan&lt;/strong&gt; that lets you use GPT‑5, Claude, Gemini, and local models strategically across an entire project.&lt;sup id="fnref:21"&gt;&lt;a href="#fn:21" class="footnote-ref" role="doc-noteref"&gt;21&lt;/a&gt;&lt;/sup&gt;&lt;sup id="fnref:22"&gt;&lt;a href="#fn:22" class="footnote-ref" role="doc-noteref"&gt;22&lt;/a&gt;&lt;/sup&gt;&lt;sup id="fnref:23"&gt;&lt;a href="#fn:23" class="footnote-ref" role="doc-noteref"&gt;23&lt;/a&gt;&lt;/sup&gt;&lt;sup id="fnref:24"&gt;&lt;a href="#fn:24" class="footnote-ref" role="doc-noteref"&gt;24&lt;/a&gt;&lt;/sup&gt;&lt;sup id="fnref:25"&gt;&lt;a href="#fn:25" class="footnote-ref" role="doc-noteref"&gt;25&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;
&lt;p&gt;Below is a &lt;strong&gt;two‑part answer&lt;/strong&gt;:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;How to &lt;strong&gt;structure prompts smartly&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;A &lt;strong&gt;“crazy but smart” free‑tier plan&lt;/strong&gt; for a whole coding project.&lt;/li&gt;
&lt;/ol&gt;
&lt;hr&gt;
&lt;h3 id="1-how-to-structure-prompts-to-save-tokens"&gt;1. How to structure prompts to save tokens&lt;/h3&gt;
&lt;p&gt;Use these rules for every model.&lt;/p&gt;
&lt;h4 id="a-set-clear-roles-and-constraints"&gt;a) Set clear roles and constraints&lt;/h4&gt;
&lt;p&gt;Tell each model &lt;em&gt;what&lt;/em&gt; it is and &lt;em&gt;what it must not do&lt;/em&gt;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Header pattern&lt;/strong&gt;:
&lt;ul&gt;
&lt;li&gt;“You are a senior Python/JS developer.
&lt;ul&gt;
&lt;li&gt;Task: [refactor / debug / design].&lt;/li&gt;
&lt;li&gt;Constraints:
&lt;ul&gt;
&lt;li&gt;No long explanations unless I ask.&lt;/li&gt;
&lt;li&gt;Output only code + minimal comments.&lt;/li&gt;
&lt;li&gt;Respect PEP 8 / best practices.”&lt;sup id="fnref1:22"&gt;&lt;a href="#fn:22" class="footnote-ref" role="doc-noteref"&gt;22&lt;/a&gt;&lt;/sup&gt;&lt;sup id="fnref1:25"&gt;&lt;a href="#fn:25" class="footnote-ref" role="doc-noteref"&gt;25&lt;/a&gt;&lt;/sup&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="b-split-big-tasks-into-small-atomic-prompts"&gt;b) Split big tasks into small atomic prompts&lt;/h4&gt;
&lt;p&gt;Instead of:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;“Help me build a whole API backend with auth, DB, and tests.”&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Break it into:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;“Design a high‑level architecture for a REST API in Python (FastAPI) with auth, Postgres, and tests.”&lt;/li&gt;
&lt;li&gt;“Generate a minimal FastAPI &lt;code&gt;main.py&lt;/code&gt; with a &lt;code&gt;/users&lt;/code&gt; endpoint and auth stubs.”&lt;/li&gt;
&lt;li&gt;“Now write only the auth middleware, no extra explanation.”&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Smaller prompts = fewer tokens per request and less chance of model drifting off‑topic.&lt;sup id="fnref1:23"&gt;&lt;a href="#fn:23" class="footnote-ref" role="doc-noteref"&gt;23&lt;/a&gt;&lt;/sup&gt;&lt;sup id="fnref2:22"&gt;&lt;a href="#fn:22" class="footnote-ref" role="doc-noteref"&gt;22&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;
&lt;h4 id="c-reuse-contexts-and-remember-this"&gt;c) Re‑use contexts and “remember this”&lt;/h4&gt;
&lt;p&gt;Always keep your sessions short but consistent:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Start each coding session with:
&lt;ul&gt;
&lt;li&gt;“Remember:
&lt;ul&gt;
&lt;li&gt;Project: [name]&lt;/li&gt;
&lt;li&gt;Stack: Python 3.11, FastAPI, PostgreSQL, Docker.&lt;/li&gt;
&lt;li&gt;Style: PEP 8, no comments unless necessary.”&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Then, follow up with:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;“Continue from previous context, but only write the next file: &lt;code&gt;auth.py&lt;/code&gt;.”&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This keeps the model in the same “mental state” without re‑sending your whole codebase every time.&lt;sup id="fnref2:25"&gt;&lt;a href="#fn:25" class="footnote-ref" role="doc-noteref"&gt;25&lt;/a&gt;&lt;/sup&gt;&lt;sup id="fnref3:22"&gt;&lt;a href="#fn:22" class="footnote-ref" role="doc-noteref"&gt;22&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;
&lt;h4 id="d-use-return-only-code-mode"&gt;d) Use “return only code” mode&lt;/h4&gt;
&lt;p&gt;Add this line at the end of code‑focused prompts:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;“Return only code. Do not explain or repeat instructions.”&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This cuts down ~30–50% of the token usage in each reply.&lt;sup id="fnref4:22"&gt;&lt;a href="#fn:22" class="footnote-ref" role="doc-noteref"&gt;22&lt;/a&gt;&lt;/sup&gt;&lt;sup id="fnref2:23"&gt;&lt;a href="#fn:23" class="footnote-ref" role="doc-noteref"&gt;23&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;
&lt;h4 id="e-let-one-model-do-one-job-well"&gt;e) Let one model do “one job” well&lt;/h4&gt;
&lt;p&gt;Assign roles:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;GPT‑5 / GPT‑4.1&lt;/strong&gt; → fast code completion, small refactors, Python/JS boilerplate.&lt;sup id="fnref3:23"&gt;&lt;a href="#fn:23" class="footnote-ref" role="doc-noteref"&gt;23&lt;/a&gt;&lt;/sup&gt;&lt;sup id="fnref5:22"&gt;&lt;a href="#fn:22" class="footnote-ref" role="doc-noteref"&gt;22&lt;/a&gt;&lt;/sup&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Claude Opus/Sonnet&lt;/strong&gt; → design, big refactors, docs, and tests.&lt;sup id="fnref:26"&gt;&lt;a href="#fn:26" class="footnote-ref" role="doc-noteref"&gt;26&lt;/a&gt;&lt;/sup&gt;&lt;sup id="fnref6:22"&gt;&lt;a href="#fn:22" class="footnote-ref" role="doc-noteref"&gt;22&lt;/a&gt;&lt;/sup&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Gemini 3/2.5 Pro&lt;/strong&gt; → quick debugging, log analysis, or lighter design.&lt;sup id="fnref:27"&gt;&lt;a href="#fn:27" class="footnote-ref" role="doc-noteref"&gt;27&lt;/a&gt;&lt;/sup&gt;&lt;sup id="fnref7:22"&gt;&lt;a href="#fn:22" class="footnote-ref" role="doc-noteref"&gt;22&lt;/a&gt;&lt;/sup&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This way you don’t waste your best‑quality model tokens on trivial tasks (like “convert nested loop to list comprehension”).&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id="2-crazy-but-smart-freetier-plan-for-a-whole-project"&gt;2. “Crazy but smart” free‑tier plan for a whole project&lt;/h3&gt;
&lt;p&gt;Assume:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;You have free tiers of GPT‑5, Claude, Gemini, and one local model (e.g., CodeLlama or Qwen‑Coder).&lt;sup id="fnref1:24"&gt;&lt;a href="#fn:24" class="footnote-ref" role="doc-noteref"&gt;24&lt;/a&gt;&lt;/sup&gt;&lt;sup id="fnref1:21"&gt;&lt;a href="#fn:21" class="footnote-ref" role="doc-noteref"&gt;21&lt;/a&gt;&lt;/sup&gt;&lt;sup id="fnref3:25"&gt;&lt;a href="#fn:25" class="footnote-ref" role="doc-noteref"&gt;25&lt;/a&gt;&lt;/sup&gt;&lt;sup id="fnref4:23"&gt;&lt;a href="#fn:23" class="footnote-ref" role="doc-noteref"&gt;23&lt;/a&gt;&lt;/sup&gt;&lt;/li&gt;
&lt;li&gt;You’re building a medium‑size backend (e.g., Python API + tests + Docker + some frontend glue).&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="phase-0-setup-and-tokenbudgeting"&gt;Phase 0: Setup and token‑budgeting&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;Decide:
&lt;ul&gt;
&lt;li&gt;“I’ll spend ~20% of my free tokens on GPT‑5, 30% on Claude, 30% on Gemini, 20% on local models.”&lt;sup id="fnref2:21"&gt;&lt;a href="#fn:21" class="footnote-ref" role="doc-noteref"&gt;21&lt;/a&gt;&lt;/sup&gt;&lt;sup id="fnref5:23"&gt;&lt;a href="#fn:23" class="footnote-ref" role="doc-noteref"&gt;23&lt;/a&gt;&lt;/sup&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Always:
&lt;ul&gt;
&lt;li&gt;Use &lt;strong&gt;local model for heavy‑rework tasks&lt;/strong&gt; (multi‑file refactors, docs, bulk generation).&lt;/li&gt;
&lt;li&gt;Use &lt;strong&gt;cloud models for high‑quality, short‑cycle tasks&lt;/strong&gt; (quick fixes, small features).&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="phase-1-project-scaffolding-use-gpt5"&gt;Phase 1: Project scaffolding (use GPT‑5)&lt;/h4&gt;
&lt;p&gt;Goal: Get structure fast, under tight token budget.&lt;/p&gt;
&lt;p&gt;Steps:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Architecture prompt (1 long prompt)&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;“Design a Python FastAPI project with auth, PostgreSQL, async, Docker, and tests.
&lt;ul&gt;
&lt;li&gt;Output: directory structure as JSON, plus a short &lt;code&gt;README.md&lt;/code&gt; sketch.”&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;You paste this once; re‑use it as a “single source of truth.”&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Generate skeleton files (small prompts)&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;“Based on that structure, write only &lt;code&gt;main.py&lt;/code&gt; for a minimal API with &lt;code&gt;/health&lt;/code&gt;.”&lt;/li&gt;
&lt;li&gt;Then: “Now write only &lt;code&gt;models.py&lt;/code&gt; for a &lt;code&gt;User&lt;/code&gt; model (FastAPI + SQLAlchemy).”&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Use GPT‑5 for “first passes”&lt;/strong&gt;
Each file is one small prompt; review and trim its output locally.&lt;sup id="fnref8:22"&gt;&lt;a href="#fn:22" class="footnote-ref" role="doc-noteref"&gt;22&lt;/a&gt;&lt;/sup&gt;&lt;sup id="fnref6:23"&gt;&lt;a href="#fn:23" class="footnote-ref" role="doc-noteref"&gt;23&lt;/a&gt;&lt;/sup&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Token‑saving trick:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;After each file, &lt;strong&gt;copy‑paste only the changed lines&lt;/strong&gt; into your local repo, then &lt;strong&gt;delete the chat history&lt;/strong&gt; and start fresh in the next model to avoid context bloat.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="phase-2-heavy-design-and-refactoring-use-claude-sonnet"&gt;Phase 2: Heavy design and refactoring (use Claude Sonnet)&lt;/h4&gt;
&lt;p&gt;Goal: Create a solid, maintainable design and large‑scale refactors.&lt;/p&gt;
&lt;p&gt;How to use Claude:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Feed it only the important parts&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;Paste only:
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;README.md&lt;/code&gt; choices.&lt;/li&gt;
&lt;li&gt;Core modules (&lt;code&gt;auth.py&lt;/code&gt;, &lt;code&gt;models.py&lt;/code&gt;, &lt;code&gt;main.py&lt;/code&gt;).&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Prompt:
&lt;ul&gt;
&lt;li&gt;“Analyze this API design.
&lt;ul&gt;
&lt;li&gt;Suggest 3 refactors to improve maintainability and testability.&lt;/li&gt;
&lt;li&gt;Return only bullet points and file names to change.”&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Let Claude do “one refactor at a time”&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;Prompt:
&lt;ul&gt;
&lt;li&gt;“Now, refactor only &lt;code&gt;auth.py&lt;/code&gt; to be modular and testable.
&lt;ul&gt;
&lt;li&gt;Return only updated &lt;code&gt;auth.py&lt;/code&gt; code.”&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Use it for docs and tests plans&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;“From this project, write a high‑level test plan and a short Sphinx doc structure.”&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;This keeps expensive Claude tokens focused on high‑value design, not trivial edits.&lt;sup id="fnref1:26"&gt;&lt;a href="#fn:26" class="footnote-ref" role="doc-noteref"&gt;26&lt;/a&gt;&lt;/sup&gt;&lt;sup id="fnref9:22"&gt;&lt;a href="#fn:22" class="footnote-ref" role="doc-noteref"&gt;22&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;
&lt;h4 id="phase-3-debugging-and-smallscale-fixes-use-gemini"&gt;Phase 3: Debugging and small‑scale fixes (use Gemini)&lt;/h4&gt;
&lt;p&gt;Goal: Use Gemini as your “cheap” debugger and quick‑fix worker.&lt;/p&gt;
&lt;p&gt;Strategy:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Logs and errors&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;Paste only the error stack trace plus a few surrounding lines.&lt;/li&gt;
&lt;li&gt;Prompt:
&lt;ul&gt;
&lt;li&gt;“Here’s an error in my FastAPI app.
&lt;ul&gt;
&lt;li&gt;What is the most likely cause and a minimal fix?”&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Micro‑tasks only&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;“Fix only this SQL query in &lt;code&gt;models.py&lt;/code&gt; to support async.”&lt;/li&gt;
&lt;li&gt;“Change all &lt;code&gt;snake_case&lt;/code&gt; variable names to &lt;code&gt;kebab_case&lt;/code&gt; in this function.”&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Avoid using Gemini for full‑file rewrites; save that for Claude or your local model.&lt;sup id="fnref1:27"&gt;&lt;a href="#fn:27" class="footnote-ref" role="doc-noteref"&gt;27&lt;/a&gt;&lt;/sup&gt;&lt;sup id="fnref10:22"&gt;&lt;a href="#fn:22" class="footnote-ref" role="doc-noteref"&gt;22&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;
&lt;h4 id="phase-4-longrunning--heavy-work-use-local-models"&gt;Phase 4: Long‑running / heavy work (use local models)&lt;/h4&gt;
&lt;p&gt;Goal: Do bulk, multi‑file, or repetitive work that would burn through cloud free tiers.&lt;/p&gt;
&lt;p&gt;Examples:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Bulk documentation&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;Local model prompt:
&lt;ul&gt;
&lt;li&gt;“Annotate each function in &lt;code&gt;auth.py&lt;/code&gt; with a short docstring.”&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Multi‑file refactors&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;“Rewrite all PostgreSQL‑related functions to use async SQLAlchemy.”&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Code migration&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;“Convert this old Flask‑style API to FastAPI‑style endpoints.”&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Because you run this locally, you can make as many iterative prompts as needed without worrying about quotas.&lt;sup id="fnref2:24"&gt;&lt;a href="#fn:24" class="footnote-ref" role="doc-noteref"&gt;24&lt;/a&gt;&lt;/sup&gt;&lt;sup id="fnref4:25"&gt;&lt;a href="#fn:25" class="footnote-ref" role="doc-noteref"&gt;25&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;
&lt;h4 id="phase-5-final-polish-and-review-rotate-models"&gt;Phase 5: Final polish and review (rotate models)&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Ask each model&lt;/strong&gt; to review the &lt;em&gt;same&lt;/em&gt; final file, but with different focus:
&lt;ul&gt;
&lt;li&gt;GPT‑5: “Review this Python file for bugs and style issues. Return only line numbers and fixes.”&lt;/li&gt;
&lt;li&gt;Claude: “Review this file for maintainability and suggest 2–3 improvements.”&lt;/li&gt;
&lt;li&gt;Gemini: “Find any obvious performance issues or slow queries.”&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This spreads your final‑review cost across multiple free tiers instead of overloading one.&lt;sup id="fnref7:23"&gt;&lt;a href="#fn:23" class="footnote-ref" role="doc-noteref"&gt;23&lt;/a&gt;&lt;/sup&gt;&lt;sup id="fnref11:22"&gt;&lt;a href="#fn:22" class="footnote-ref" role="doc-noteref"&gt;22&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id="3-extra-tricks-to-stretch-free-tiers"&gt;3. Extra “tricks” to stretch free tiers&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Cache and reuse&lt;/strong&gt;:
&lt;ul&gt;
&lt;li&gt;Save model outputs in a &lt;code&gt;notes.md&lt;/code&gt; or &lt;code&gt;model‑output/&lt;/code&gt; folder.&lt;/li&gt;
&lt;li&gt;When you switch models, paste the &lt;strong&gt;last 5–10 lines&lt;/strong&gt; of that file, not the entire project.&lt;sup id="fnref5:25"&gt;&lt;a href="#fn:25" class="footnote-ref" role="doc-noteref"&gt;25&lt;/a&gt;&lt;/sup&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Use “diff” style prompts&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;Instead of pasting full files:
&lt;ul&gt;
&lt;li&gt;“Here’s the diff of my &lt;code&gt;auth.py&lt;/code&gt; (I added these lines):&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;...
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;pre&gt;&lt;code&gt; - Suggest improvements to only the new code.”
&lt;/code&gt;&lt;/pre&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Work offline first&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;Write your own first draft, then ask the AI to “fix” or “polish” it instead of generating from scratch; this massively reduces token usage.&lt;sup id="fnref6:25"&gt;&lt;a href="#fn:25" class="footnote-ref" role="doc-noteref"&gt;25&lt;/a&gt;&lt;/sup&gt;&lt;sup id="fnref12:22"&gt;&lt;a href="#fn:22" class="footnote-ref" role="doc-noteref"&gt;22&lt;/a&gt;&lt;/sup&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h3 id="what-to-do-next-for-your-setup"&gt;What to do next for your setup&lt;/h3&gt;
&lt;p&gt;If you tell:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;your OS, RAM/VRAM,&lt;/li&gt;
&lt;li&gt;which IDE you use (VS Code / JetBrains), and&lt;/li&gt;
&lt;li&gt;your current project (Python API, web app, GIS tool, etc.),&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I can give you a &lt;strong&gt;concrete “token‑budget sheet”&lt;/strong&gt; plus a &lt;strong&gt;step‑by‑step prompt‑template set&lt;/strong&gt; tailored for your exact stack and hardware, so you can execute this “crazy plan” as a real workflow.&lt;/p&gt;
&lt;div align="center"&gt;⁂&lt;/div&gt;
&lt;hr&gt;
&lt;h1 id="which-ai-offers-delete-specific-chat-i-cant-see-options-to-remove-immediate-chat"&gt;Which Ai offers delete specific chat. I can&amp;rsquo;t see options to remove immediate chat.&lt;/h1&gt;
&lt;p&gt;Also tell me how can I use ollama cloud in mobile?&lt;/p&gt;
&lt;p&gt;Several AI services let you delete specific chats, and you can absolutely use &lt;strong&gt;Ollama Cloud / local‑hosted Ollama models on mobile&lt;/strong&gt; with a few tweaks.&lt;sup id="fnref:28"&gt;&lt;a href="#fn:28" class="footnote-ref" role="doc-noteref"&gt;28&lt;/a&gt;&lt;/sup&gt;&lt;sup id="fnref:29"&gt;&lt;a href="#fn:29" class="footnote-ref" role="doc-noteref"&gt;29&lt;/a&gt;&lt;/sup&gt;&lt;sup id="fnref:30"&gt;&lt;a href="#fn:30" class="footnote-ref" role="doc-noteref"&gt;30&lt;/a&gt;&lt;/sup&gt;&lt;sup id="fnref:31"&gt;&lt;a href="#fn:31" class="footnote-ref" role="doc-noteref"&gt;31&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id="1-which-ai-lets-you-delete-specific-chats"&gt;1. Which AI lets you delete specific chats?&lt;/h3&gt;
&lt;p&gt;Most major AI chat platforms now let you delete &lt;strong&gt;individual threads/conversations&lt;/strong&gt;, not just “clear all”.&lt;/p&gt;
&lt;h4 id="perplexity-this-app"&gt;Perplexity (this app)&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;You &lt;strong&gt;can delete specific threads&lt;/strong&gt; but not “one line” inside a chat; you delete the whole thread.
&lt;ul&gt;
&lt;li&gt;Go to &lt;strong&gt;Library&lt;/strong&gt; at &lt;code&gt;https://www.perplexity.ai/library&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Click the &lt;strong&gt;three‑dots menu&lt;/strong&gt; next to any thread and choose &lt;strong&gt;“Delete thread”&lt;/strong&gt;.&lt;sup id="fnref1:31"&gt;&lt;a href="#fn:31" class="footnote-ref" role="doc-noteref"&gt;31&lt;/a&gt;&lt;/sup&gt;&lt;sup id="fnref:32"&gt;&lt;a href="#fn:32" class="footnote-ref" role="doc-noteref"&gt;32&lt;/a&gt;&lt;/sup&gt;&lt;/li&gt;
&lt;li&gt;You can also delete all threads at once from the top‑right menu.&lt;sup id="fnref2:31"&gt;&lt;a href="#fn:31" class="footnote-ref" role="doc-noteref"&gt;31&lt;/a&gt;&lt;/sup&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="chatgpt--openai"&gt;ChatGPT / OpenAI&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;In the web or desktop app:
&lt;ul&gt;
&lt;li&gt;Hover over a &lt;strong&gt;chat in the sidebar&lt;/strong&gt;, click the three dots, and choose &lt;strong&gt;“Delete”&lt;/strong&gt;.&lt;sup id="fnref3:31"&gt;&lt;a href="#fn:31" class="footnote-ref" role="doc-noteref"&gt;31&lt;/a&gt;&lt;/sup&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;You cannot delete a single message inside a chat; only the whole thread.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="claude-anthropic"&gt;Claude (Anthropic)&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;On the web app:
&lt;ul&gt;
&lt;li&gt;Open the &lt;strong&gt;History&lt;/strong&gt; sidebar, click the three dots next to a project / chat, and select &lt;strong&gt;“Delete”&lt;/strong&gt;.&lt;sup id="fnref:33"&gt;&lt;a href="#fn:33" class="footnote-ref" role="doc-noteref"&gt;33&lt;/a&gt;&lt;/sup&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="gemini-google"&gt;Gemini (Google)&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;In the Gemini web or mobile app:
&lt;ul&gt;
&lt;li&gt;Long‑tap a chat (mobile) or click the three dots (web) and choose &lt;strong&gt;“Delete”&lt;/strong&gt;.&lt;sup id="fnref:34"&gt;&lt;a href="#fn:34" class="footnote-ref" role="doc-noteref"&gt;34&lt;/a&gt;&lt;/sup&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If you tell me &lt;strong&gt;which specific AI app&lt;/strong&gt; you’re using (e.g., “the Perplexity mobile app” or “Claude Android”), I can give exact taps for that UI.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id="2-how-to-use-ollama-cloud--ollamahosted-models-on-mobile"&gt;2. How to use Ollama Cloud / Ollama‑hosted models on mobile&lt;/h3&gt;
&lt;p&gt;There are two main ways:&lt;/p&gt;
&lt;h4 id="option-a-use-ollama-cloud-via-a-mobile-client-androidios"&gt;Option A: Use Ollama Cloud via a mobile client (Android/iOS)&lt;/h4&gt;
&lt;p&gt;Ollama Cloud itself is accessed via the &lt;strong&gt;Ollama API&lt;/strong&gt; (&lt;code&gt;/api/generate&lt;/code&gt;, &lt;code&gt;/api/chat&lt;/code&gt;), so you connect to it from a mobile app that supports Ollama servers.&lt;sup id="fnref:35"&gt;&lt;a href="#fn:35" class="footnote-ref" role="doc-noteref"&gt;35&lt;/a&gt;&lt;/sup&gt;&lt;sup id="fnref1:28"&gt;&lt;a href="#fn:28" class="footnote-ref" role="doc-noteref"&gt;28&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;
&lt;p&gt;Popular choices:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Off Grid (Android &amp;amp; iOS)&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;Lets you &lt;strong&gt;scan and connect&lt;/strong&gt; to a local or cloud Ollama server on your network.&lt;/li&gt;
&lt;li&gt;Steps:&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;ol&gt;
&lt;li&gt;Run Ollama on your PC/laptop (or self‑hosted server).&lt;/li&gt;
&lt;li&gt;On your phone, open &lt;strong&gt;Off Grid → Remote Models → Scan Network&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Tap the detected Ollama server and start chatting.&lt;sup id="fnref1:29"&gt;&lt;a href="#fn:29" class="footnote-ref" role="doc-noteref"&gt;29&lt;/a&gt;&lt;/sup&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;LMSA for LM Studio &amp;amp; Ollama (Android)&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;Supports &lt;strong&gt;Ollama servers&lt;/strong&gt; and also cloud APIs like OpenRouter.&lt;/li&gt;
&lt;li&gt;Steps:&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;ol&gt;
&lt;li&gt;Enable Ollama’s local server and allow network access (&lt;code&gt;OLLAMA_HOST=0.0.0.0:11434&lt;/code&gt;).&lt;sup id="fnref1:30"&gt;&lt;a href="#fn:30" class="footnote-ref" role="doc-noteref"&gt;30&lt;/a&gt;&lt;/sup&gt;&lt;/li&gt;
&lt;li&gt;In LMSA, add your server IP (&lt;code&gt;http://YOUR_IP:11434&lt;/code&gt;) and pick a model.&lt;sup id="fnref:36"&gt;&lt;a href="#fn:36" class="footnote-ref" role="doc-noteref"&gt;36&lt;/a&gt;&lt;/sup&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Third‑party Ollama‑style apps&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;Apps like &lt;strong&gt;“MyOllama”&lt;/strong&gt; or other open‑source clients let you connect to an Ollama server and talk to CodeLlama, Qwen‑Coder, etc. directly from your phone.&lt;sup id="fnref:37"&gt;&lt;a href="#fn:37" class="footnote-ref" role="doc-noteref"&gt;37&lt;/a&gt;&lt;/sup&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="option-b-use-a-web-ui-on-mobile-no-install"&gt;Option B: Use a web UI on mobile (no install)&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;Run &lt;strong&gt;Open WebUI&lt;/strong&gt; or similar on your PC/server, pointing at Ollama.&lt;/li&gt;
&lt;li&gt;Access it from your phone browser at &lt;code&gt;http://YOUR_IP:port&lt;/code&gt; (same network) or via a secure tunnel (e.g., Pinggy, Cloudflare Tunnel).&lt;sup id="fnref2:30"&gt;&lt;a href="#fn:30" class="footnote-ref" role="doc-noteref"&gt;30&lt;/a&gt;&lt;/sup&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This is the “cheapest” way if you already have a laptop running Ollama at home.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id="concrete-mobile-setup-example-you--ollama"&gt;Concrete mobile setup example (you + Ollama)&lt;/h3&gt;
&lt;p&gt;If you’re on &lt;strong&gt;Android&lt;/strong&gt; and already run Ollama on your laptop:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;On laptop:
&lt;ul&gt;
&lt;li&gt;Ensure Ollama listens on the network (e.g., &lt;code&gt;OLLAMA_HOST=0.0.0.0:11434&lt;/code&gt;).&lt;sup id="fnref3:30"&gt;&lt;a href="#fn:30" class="footnote-ref" role="doc-noteref"&gt;30&lt;/a&gt;&lt;/sup&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;On Android:
&lt;ul&gt;
&lt;li&gt;Install &lt;strong&gt;Off Grid&lt;/strong&gt; from GitHub Releases or the Play Store.&lt;/li&gt;
&lt;li&gt;Open &lt;strong&gt;Remote Models → Scan Network&lt;/strong&gt; → pick your Ollama machine.&lt;/li&gt;
&lt;li&gt;Select a coding model (e.g., &lt;code&gt;codellama:13b&lt;/code&gt;, &lt;code&gt;qwen:32b&lt;/code&gt;) and start chatting.&lt;sup id="fnref2:29"&gt;&lt;a href="#fn:29" class="footnote-ref" role="doc-noteref"&gt;29&lt;/a&gt;&lt;/sup&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;If you tell your &lt;strong&gt;OS&lt;/strong&gt; (Android/iOS) and whether Ollama is on &lt;strong&gt;laptop vs cloud server&lt;/strong&gt;, I can give you a step‑by‑step command + exact settings for your exact setup.
&lt;span style="display:none"&gt;&lt;sup id="fnref:38"&gt;&lt;a href="#fn:38" class="footnote-ref" role="doc-noteref"&gt;38&lt;/a&gt;&lt;/sup&gt;&lt;sup id="fnref:39"&gt;&lt;a href="#fn:39" class="footnote-ref" role="doc-noteref"&gt;39&lt;/a&gt;&lt;/sup&gt;&lt;sup id="fnref:40"&gt;&lt;a href="#fn:40" class="footnote-ref" role="doc-noteref"&gt;40&lt;/a&gt;&lt;/sup&gt;&lt;sup id="fnref:41"&gt;&lt;a href="#fn:41" class="footnote-ref" role="doc-noteref"&gt;41&lt;/a&gt;&lt;/sup&gt;&lt;/span&gt;&lt;/p&gt;
&lt;div align="center"&gt;⁂&lt;/div&gt;
&lt;hr&gt;
&lt;h1 id="are-there-any-way-in-onlineweb-i-can-run-ollama-free"&gt;Are there any way in online/web I can run ollama free&lt;/h1&gt;
&lt;p&gt;Yes, there are ways to use &lt;strong&gt;Ollama‑style models for free on the web&lt;/strong&gt;, but you cannot fully “run Ollama” in the browser the same way you run it locally—instead, you either:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Use &lt;strong&gt;Ollama‑compatible web UIs&lt;/strong&gt; that talk to your own Ollama server, or&lt;/li&gt;
&lt;li&gt;Use platforms that integrate &lt;strong&gt;Ollama‑compatible models&lt;/strong&gt; and let you interact with them via a web UI.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h3 id="1-free-ollamacompatible-web-uis-you-host-you-browse"&gt;1. Free Ollama‑compatible web UIs (you host, you browse)&lt;/h3&gt;
&lt;p&gt;These are tools that let you &lt;strong&gt;browse Ollama models in a browser&lt;/strong&gt;, but you still need Ollama running somewhere (laptop, home server, or cheap cloud VM):&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Open WebUI&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;A popular web‑based UI that connects to your Ollama instance and lets you chat like ChatGPT.&lt;/li&gt;
&lt;li&gt;You install it once (Docker or native) and then open it in your browser at &lt;code&gt;http://localhost:3000&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Works free forever; you only pay for the VM if you host it in the cloud.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Ollama UI / “LlamaPen”‑style lightweight web GUIs&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;Some folks have built simple no‑install‑needed web‑based GUIs that connect to a running Ollama server.&lt;/li&gt;
&lt;li&gt;You run Ollama on your machine, enable network access, then open the web UI in your phone browser and use it anywhere.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;These are free to run, but the &lt;strong&gt;compute cost&lt;/strong&gt; only vanishes if you run Ollama on your own hardware.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id="2-ollamastyle-cloud-models-limited-free-tier"&gt;2. Ollama‑style cloud models (limited free tier)&lt;/h3&gt;
&lt;p&gt;Ollama now offers &lt;strong&gt;cloud‑hosted models&lt;/strong&gt; that you can use via their API or some integrated tools:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Ollama Cloud models&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;You can log in to Ollama and use a few cloud‑hosted models for free (limited usage).&lt;/li&gt;
&lt;li&gt;Heavier usage or many requests will push you into paid territory.&lt;/li&gt;
&lt;li&gt;You can access these via CLI or connect them to tools like &lt;strong&gt;Open WebUI&lt;/strong&gt; or &lt;strong&gt;Lobe Chat&lt;/strong&gt; so they feel like a web app.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Third‑party “free‑tier‑first” platforms&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;Some tools let you wire Ollama‑compatible models (including Ollama Cloud) and give you a &lt;strong&gt;web UI&lt;/strong&gt; on top, with a free tier.&lt;/li&gt;
&lt;li&gt;Examples include certain LLM‑frontend dashboards that support Ollama‑style backends.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h3 id="3-truly-free-run-ollama-in-a-browser-no-install"&gt;3. Truly “free run Ollama” in a browser (no install)?&lt;/h3&gt;
&lt;p&gt;At the moment there’s &lt;strong&gt;no mainstream, fully‑hosted “Ollama in the browser”&lt;/strong&gt; where you get free heavy GPU usage forever. What you &lt;em&gt;can&lt;/em&gt; do:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Spin up a &lt;strong&gt;cheap cloud VM&lt;/strong&gt; (e.g., $5–10/month) with Ollama + Open WebUI, then use it via your phone or laptop browser; effectively “online Ollama” for coding.&lt;/li&gt;
&lt;li&gt;Use &lt;strong&gt;Ollama‑fronted web apps&lt;/strong&gt; that expose a small number of models for free, but usually with rate limits.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h3 id="practical-path-for-you-freefocused"&gt;Practical path for you (free‑focused)&lt;/h3&gt;
&lt;p&gt;Given you’re comfortable with Python and cloud tools:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Option A – DIY “online Ollama”&lt;/strong&gt;:
&lt;ul&gt;
&lt;li&gt;Rent a cheap Linux VM, install Ollama + Open WebUI, then access it from your browser like a web app.&lt;/li&gt;
&lt;li&gt;Run CodeLlama / Qwen‑Coder / Mistral for free (you pay only for the VM).&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Option B – Use Ollama‑fronted web tools&lt;/strong&gt;:
&lt;ul&gt;
&lt;li&gt;Pick a free‑tier‑friendly Ollama‑compatible web UI (e.g., Open WebUI or Lobe Chat) and connect it to your Ollama instance or Ollama Cloud.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;If you tell your preferred cloud (e.g., AWS, DigitalOcean, or home‑laptop‑only), I can give you a &lt;strong&gt;step‑by‑step command‑line setup&lt;/strong&gt; tailored to your hardware and budget.
&lt;span style="display:none"&gt;&lt;sup id="fnref:42"&gt;&lt;a href="#fn:42" class="footnote-ref" role="doc-noteref"&gt;42&lt;/a&gt;&lt;/sup&gt;&lt;sup id="fnref:43"&gt;&lt;a href="#fn:43" class="footnote-ref" role="doc-noteref"&gt;43&lt;/a&gt;&lt;/sup&gt;&lt;sup id="fnref:44"&gt;&lt;a href="#fn:44" class="footnote-ref" role="doc-noteref"&gt;44&lt;/a&gt;&lt;/sup&gt;&lt;sup id="fnref:45"&gt;&lt;a href="#fn:45" class="footnote-ref" role="doc-noteref"&gt;45&lt;/a&gt;&lt;/sup&gt;&lt;sup id="fnref:46"&gt;&lt;a href="#fn:46" class="footnote-ref" role="doc-noteref"&gt;46&lt;/a&gt;&lt;/sup&gt;&lt;sup id="fnref:47"&gt;&lt;a href="#fn:47" class="footnote-ref" role="doc-noteref"&gt;47&lt;/a&gt;&lt;/sup&gt;&lt;sup id="fnref:48"&gt;&lt;a href="#fn:48" class="footnote-ref" role="doc-noteref"&gt;48&lt;/a&gt;&lt;/sup&gt;&lt;sup id="fnref:49"&gt;&lt;a href="#fn:49" class="footnote-ref" role="doc-noteref"&gt;49&lt;/a&gt;&lt;/sup&gt;&lt;sup id="fnref:50"&gt;&lt;a href="#fn:50" class="footnote-ref" role="doc-noteref"&gt;50&lt;/a&gt;&lt;/sup&gt;&lt;sup id="fnref:51"&gt;&lt;a href="#fn:51" class="footnote-ref" role="doc-noteref"&gt;51&lt;/a&gt;&lt;/sup&gt;&lt;/span&gt;&lt;/p&gt;
&lt;div align="center"&gt;⁂&lt;/div&gt;
&lt;hr&gt;
&lt;h1 id="can-i-host-ollama-in-github-and-run-in-mobile-freely-or-already-exist-such-feature"&gt;Can I host ollama in GitHub and run in mobile freely, or already exist such feature?&lt;/h1&gt;
&lt;p&gt;&lt;strong&gt;Short answer&lt;/strong&gt;: You &lt;strong&gt;cannot host Ollama “on GitHub Pages”&lt;/strong&gt; (the static site host), but you &lt;strong&gt;can run Ollama inside a GitHub Codespace and then access it from your mobile browser&lt;/strong&gt;—effectively a “free (within limits) online Ollama you can use from phone”.&lt;sup id="fnref:52"&gt;&lt;a href="#fn:52" class="footnote-ref" role="doc-noteref"&gt;52&lt;/a&gt;&lt;/sup&gt;&lt;sup id="fnref:53"&gt;&lt;a href="#fn:53" class="footnote-ref" role="doc-noteref"&gt;53&lt;/a&gt;&lt;/sup&gt;&lt;sup id="fnref:54"&gt;&lt;a href="#fn:54" class="footnote-ref" role="doc-noteref"&gt;54&lt;/a&gt;&lt;/sup&gt;&lt;sup id="fnref:55"&gt;&lt;a href="#fn:55" class="footnote-ref" role="doc-noteref"&gt;55&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;
&lt;p&gt;There is &lt;strong&gt;no official “Ollama on GitHub” button&lt;/strong&gt; that gives you a ready‑made mobile‑friendly web UI for free forever, but you can build this pattern yourself.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id="1-why-you-cant-put-ollama-on-github-pages"&gt;1. Why you can’t put Ollama on GitHub Pages&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;GitHub Pages is for static sites only&lt;/strong&gt; (HTML, JS, CSS, no backend).&lt;sup id="fnref1:52"&gt;&lt;a href="#fn:52" class="footnote-ref" role="doc-noteref"&gt;52&lt;/a&gt;&lt;/sup&gt;&lt;/li&gt;
&lt;li&gt;Ollama is a &lt;strong&gt;server process that needs CPU/GPU, RAM, and a persistent runtime&lt;/strong&gt;; Pages can’t run that.&lt;sup id="fnref2:52"&gt;&lt;a href="#fn:52" class="footnote-ref" role="doc-noteref"&gt;52&lt;/a&gt;&lt;/sup&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;So you &lt;strong&gt;cannot&lt;/strong&gt; host Ollama itself directly on GitHub Pages and expect it to run models there.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id="2-what-you-can-do-ollama--github-codespace--mobile"&gt;2. What you &lt;em&gt;can&lt;/em&gt; do: Ollama + GitHub Codespace + mobile&lt;/h3&gt;
&lt;p&gt;You can:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Run Ollama inside a GitHub Codespace&lt;/strong&gt; (cloud‑based dev environment)
&lt;ul&gt;
&lt;li&gt;GitHub Codespaces give you a Linux VM with CPU/RAM and a VS Code–like editor in the browser.&lt;sup id="fnref1:53"&gt;&lt;a href="#fn:53" class="footnote-ref" role="doc-noteref"&gt;53&lt;/a&gt;&lt;/sup&gt;&lt;sup id="fnref1:54"&gt;&lt;a href="#fn:54" class="footnote-ref" role="doc-noteref"&gt;54&lt;/a&gt;&lt;/sup&gt;&lt;/li&gt;
&lt;li&gt;You can install Ollama in the Codespace and run models like &lt;code&gt;llama3‑8b&lt;/code&gt;, &lt;code&gt;phi‑3&lt;/code&gt;, etc. inside it.&lt;sup id="fnref2:54"&gt;&lt;a href="#fn:54" class="footnote-ref" role="doc-noteref"&gt;54&lt;/a&gt;&lt;/sup&gt;&lt;sup id="fnref2:53"&gt;&lt;a href="#fn:53" class="footnote-ref" role="doc-noteref"&gt;53&lt;/a&gt;&lt;/sup&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expose it as a web endpoint&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;Install a simple web UI (e.g., &lt;code&gt;Open WebUI&lt;/code&gt; or a minimal chat server) in the Codespace.&lt;sup id="fnref:56"&gt;&lt;a href="#fn:56" class="footnote-ref" role="doc-noteref"&gt;56&lt;/a&gt;&lt;/sup&gt;&lt;sup id="fnref:57"&gt;&lt;a href="#fn:57" class="footnote-ref" role="doc-noteref"&gt;57&lt;/a&gt;&lt;/sup&gt;&lt;/li&gt;
&lt;li&gt;GitHub Codespace provides a &lt;strong&gt;public URL&lt;/strong&gt; (e.g., &lt;code&gt;your‑codespace‑xxx-443.github.dev&lt;/code&gt;), which you can open &lt;strong&gt;on your phone browser&lt;/strong&gt;.&lt;sup id="fnref1:55"&gt;&lt;a href="#fn:55" class="footnote-ref" role="doc-noteref"&gt;55&lt;/a&gt;&lt;/sup&gt;&lt;sup id="fnref3:54"&gt;&lt;a href="#fn:54" class="footnote-ref" role="doc-noteref"&gt;54&lt;/a&gt;&lt;/sup&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Connect your phone to that URL&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;From your Android/iOS browser, go to the Codespace URL → open the web UI → chat with Ollama, just like a web app.&lt;sup id="fnref4:54"&gt;&lt;a href="#fn:54" class="footnote-ref" role="doc-noteref"&gt;54&lt;/a&gt;&lt;/sup&gt;&lt;sup id="fnref2:55"&gt;&lt;a href="#fn:55" class="footnote-ref" role="doc-noteref"&gt;55&lt;/a&gt;&lt;/sup&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;Limits&lt;/strong&gt;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;GitHub’s free Codespace tier has &lt;strong&gt;limited hours and compute&lt;/strong&gt;; heavy Ollama usage will either exhaust your free tier or push you into paid.&lt;sup id="fnref3:55"&gt;&lt;a href="#fn:55" class="footnote-ref" role="doc-noteref"&gt;55&lt;/a&gt;&lt;/sup&gt;&lt;sup id="fnref5:54"&gt;&lt;a href="#fn:54" class="footnote-ref" role="doc-noteref"&gt;54&lt;/a&gt;&lt;/sup&gt;&lt;/li&gt;
&lt;li&gt;You run small‑to‑medium models (7B–13B) best; big 30B+ models will be slow or fail in Codespaces.&lt;sup id="fnref3:53"&gt;&lt;a href="#fn:53" class="footnote-ref" role="doc-noteref"&gt;53&lt;/a&gt;&lt;/sup&gt;&lt;sup id="fnref6:54"&gt;&lt;a href="#fn:54" class="footnote-ref" role="doc-noteref"&gt;54&lt;/a&gt;&lt;/sup&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h3 id="3-already-exist-such-feature-community-workarounds"&gt;3. “Already exist such feature?” (community workarounds)&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;GitHub Codespace + Ollama + web UI&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;Guides like “Run Ollama in GitHub Codespace” and community repos (&lt;code&gt;Ollama‑in‑GitHub‑Codespaces&lt;/code&gt;) show exactly how to set this up.&lt;sup id="fnref4:53"&gt;&lt;a href="#fn:53" class="footnote-ref" role="doc-noteref"&gt;53&lt;/a&gt;&lt;/sup&gt;&lt;sup id="fnref7:54"&gt;&lt;a href="#fn:54" class="footnote-ref" role="doc-noteref"&gt;54&lt;/a&gt;&lt;/sup&gt;&lt;sup id="fnref4:55"&gt;&lt;a href="#fn:55" class="footnote-ref" role="doc-noteref"&gt;55&lt;/a&gt;&lt;/sup&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Distributed Ollama APIs&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;Projects like &lt;strong&gt;OllamaFreeAPI&lt;/strong&gt; provide a free, community‑run API gateway to Ollama‑style models, but this is not “hosted on GitHub” and still has usage limits.&lt;sup id="fnref:58"&gt;&lt;a href="#fn:58" class="footnote-ref" role="doc-noteref"&gt;58&lt;/a&gt;&lt;/sup&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h3 id="4-practical-free-mobilefriendly-flow-for-you"&gt;4. Practical “free mobile‑friendly” flow for you&lt;/h3&gt;
&lt;p&gt;If you want to &lt;strong&gt;use Ollama freely from mobile&lt;/strong&gt; via GitHub‑adjacent tech:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Create a repo on GitHub and enable &lt;strong&gt;Codespaces&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;In the Codespace &lt;code&gt;.devcontainer.json&lt;/code&gt;, add the Ollama feature so it installs on startup.&lt;sup id="fnref8:54"&gt;&lt;a href="#fn:54" class="footnote-ref" role="doc-noteref"&gt;54&lt;/a&gt;&lt;/sup&gt;&lt;sup id="fnref5:53"&gt;&lt;a href="#fn:53" class="footnote-ref" role="doc-noteref"&gt;53&lt;/a&gt;&lt;/sup&gt;&lt;/li&gt;
&lt;li&gt;Run:&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;ollama run llama3:8b
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;and optionally install a web UI (e.g., Open WebUI) that listens on a port.
4. Open the &lt;strong&gt;Codespace URL&lt;/strong&gt; in your phone browser and use the web UI as your “mobile Ollama client”.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;If you tell me:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;your OS (Windows/Linux/macOS) and&lt;/li&gt;
&lt;li&gt;whether you already use GitHub Codespaces,&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I can give you a &lt;strong&gt;copy‑paste commands + &lt;code&gt;devcontainer.json&lt;/code&gt; snippet&lt;/strong&gt; so you can spin this up in under 10 minutes and access it from your phone.
&lt;span style="display:none"&gt;&lt;sup id="fnref:59"&gt;&lt;a href="#fn:59" class="footnote-ref" role="doc-noteref"&gt;59&lt;/a&gt;&lt;/sup&gt;&lt;sup id="fnref:60"&gt;&lt;a href="#fn:60" class="footnote-ref" role="doc-noteref"&gt;60&lt;/a&gt;&lt;/sup&gt;&lt;sup id="fnref:61"&gt;&lt;a href="#fn:61" class="footnote-ref" role="doc-noteref"&gt;61&lt;/a&gt;&lt;/sup&gt;&lt;sup id="fnref:62"&gt;&lt;a href="#fn:62" class="footnote-ref" role="doc-noteref"&gt;62&lt;/a&gt;&lt;/sup&gt;&lt;/span&gt;&lt;/p&gt;
&lt;div align="center"&gt;⁂&lt;/div&gt;
&lt;hr&gt;
&lt;h1 id="free-alternatives-to-host-ollama-for-mobile-access"&gt;Free alternatives to host Ollama for mobile access&lt;/h1&gt;
&lt;p&gt;Yes—there are several &lt;strong&gt;free‑tier ways to host Ollama and access it from your mobile browser&lt;/strong&gt; without paying for a full‑time VPS. Here are the best options:&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id="1-free-cloud-vps--always-free-tiers"&gt;1. Free cloud VPS / “Always Free” tiers&lt;/h3&gt;
&lt;p&gt;These give you a &lt;strong&gt;real Linux server&lt;/strong&gt; where you install Ollama + a web UI and then open it in your phone’s browser.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Oracle Cloud “Always Free” ARM VM&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;4–6 ARM cores, 24 GB RAM, 200 GB storage, free forever if you don’t exceed limits.&lt;/li&gt;
&lt;li&gt;Perfect for 7B–13B models (CodeLlama, Qwen‑Coder, Mistral) with Ollama + Open WebUI.&lt;sup id="fnref:63"&gt;&lt;a href="#fn:63" class="footnote-ref" role="doc-noteref"&gt;63&lt;/a&gt;&lt;/sup&gt;&lt;/li&gt;
&lt;li&gt;Steps:&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;ol&gt;
&lt;li&gt;Create an Oracle Cloud account and launch an Always‑Free ARM VM.&lt;/li&gt;
&lt;li&gt;Install Ollama and a web UI (Open WebUI / Lobe Chat).&lt;/li&gt;
&lt;li&gt;Open the server’s IP or domain in your phone browser.&lt;/li&gt;
&lt;/ol&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Railway.app&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;Gives new users &lt;strong&gt;$5 free monthly credits&lt;/strong&gt;, enough to run a small Ollama‑style app or Ollama + web UI for light usage.&lt;sup id="fnref:64"&gt;&lt;a href="#fn:64" class="footnote-ref" role="doc-noteref"&gt;64&lt;/a&gt;&lt;/sup&gt;&lt;/li&gt;
&lt;li&gt;Good if you want a managed Docker‑style setup rather than managing a raw VM.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Other “free‑trial‑first” hosts (Kamatera, Koyeb, etc.)&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;Services like &lt;strong&gt;Koyeb&lt;/strong&gt; and &lt;strong&gt;Kamatera&lt;/strong&gt; offer free credits or short‑term trials (e.g., up to $200 in credit).&lt;sup id="fnref:65"&gt;&lt;a href="#fn:65" class="footnote-ref" role="doc-noteref"&gt;65&lt;/a&gt;&lt;/sup&gt;&lt;sup id="fnref:66"&gt;&lt;a href="#fn:66" class="footnote-ref" role="doc-noteref"&gt;66&lt;/a&gt;&lt;/sup&gt;&lt;/li&gt;
&lt;li&gt;You can deploy Ollama as a one‑click app or custom service and stop it when you hit your free cap.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h3 id="2-developercloud-free-tiers-githubadjacent"&gt;2. Developer‑cloud free tiers (GitHub‑adjacent)&lt;/h3&gt;
&lt;p&gt;These are not “Ollama as a service” but places where you can &lt;strong&gt;run Ollama‑compatible setups for free within limits&lt;/strong&gt;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;GitHub Codespaces&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;Free‑tier credits let you spin up a Linux VM in the browser, install Ollama, and run 7B–13B models for light work.&lt;/li&gt;
&lt;li&gt;You can then expose a web UI (e.g., Open WebUI) and access it from your phone via the Codespace URL.&lt;sup id="fnref:67"&gt;&lt;a href="#fn:67" class="footnote-ref" role="doc-noteref"&gt;67&lt;/a&gt;&lt;/sup&gt;&lt;sup id="fnref:68"&gt;&lt;a href="#fn:68" class="footnote-ref" role="doc-noteref"&gt;68&lt;/a&gt;&lt;/sup&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Fly.io / Heroku‑style platforms with free tiers&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;Some platforms let you deploy Ollama‑compatible backends (often via Docker) and give you a free subdomain.&lt;/li&gt;
&lt;li&gt;Once running, you can open that domain in your phone’s browser like a web chat app.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h3 id="3-free-communityrun-ollamastyle-apis"&gt;3. “Free” community‑run Ollama‑style APIs&lt;/h3&gt;
&lt;p&gt;These are not Ollama per se, but &lt;strong&gt;Ollama‑compatible&lt;/strong&gt; ways to get models for free on mobile:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;OllamaFreeAPI&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;Community‑run distributed API that lets you query Ollama‑style models without paying for infrastructure yourself.&lt;sup id="fnref:69"&gt;&lt;a href="#fn:69" class="footnote-ref" role="doc-noteref"&gt;69&lt;/a&gt;&lt;/sup&gt;&lt;/li&gt;
&lt;li&gt;You connect a mobile client (e.g., Off Grid, LMSA, or your own web UI) to this API instead of a self‑hosted server.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Other Ollama‑fronted hubs&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;A few platforms aggregate open‑source models behind an Ollama‑compatible API and offer a free tier for light usage.&lt;sup id="fnref:70"&gt;&lt;a href="#fn:70" class="footnote-ref" role="doc-noteref"&gt;70&lt;/a&gt;&lt;/sup&gt;&lt;sup id="fnref1:64"&gt;&lt;a href="#fn:64" class="footnote-ref" role="doc-noteref"&gt;64&lt;/a&gt;&lt;/sup&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h3 id="4-localhosted--free-mobile-access"&gt;4. Local‑hosted + “free” mobile access&lt;/h3&gt;
&lt;p&gt;You can also run Ollama &lt;strong&gt;on your own hardware&lt;/strong&gt; and make it reachable from your phone:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Home‑laptop or mini‑PC&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;Install Ollama + Open WebUI, enable network access (&lt;code&gt;OLLAMA_HOST=0.0.0.0:11434&lt;/code&gt;), and open &lt;code&gt;http://your‑laptop‑ip:3000&lt;/code&gt; from your phone on the same Wi‑Fi.&lt;sup id="fnref:71"&gt;&lt;a href="#fn:71" class="footnote-ref" role="doc-noteref"&gt;71&lt;/a&gt;&lt;/sup&gt;&lt;sup id="fnref:72"&gt;&lt;a href="#fn:72" class="footnote-ref" role="doc-noteref"&gt;72&lt;/a&gt;&lt;/sup&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Use a secure tunnel (e.g., Pinggy, Cloudflare Tunnel)&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;Forward your local Ollama‑web‑UI to a public URL, then open that URL from anywhere on your phone.&lt;sup id="fnref1:70"&gt;&lt;a href="#fn:70" class="footnote-ref" role="doc-noteref"&gt;70&lt;/a&gt;&lt;/sup&gt;&lt;sup id="fnref1:71"&gt;&lt;a href="#fn:71" class="footnote-ref" role="doc-noteref"&gt;71&lt;/a&gt;&lt;/sup&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h3 id="simple-freemobile-recommendation-for-you"&gt;Simple “free‑mobile” recommendation for you&lt;/h3&gt;
&lt;p&gt;Given you’re comfortable with Linux and cloud tools, the &lt;strong&gt;cheapest and most “free” path&lt;/strong&gt; is:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Pick a free‑tier host&lt;/strong&gt;:
&lt;ul&gt;
&lt;li&gt;Oracle Cloud Always Free (long‑term free) or Railway (low‑cost, easy).&lt;sup id="fnref1:63"&gt;&lt;a href="#fn:63" class="footnote-ref" role="doc-noteref"&gt;63&lt;/a&gt;&lt;/sup&gt;&lt;sup id="fnref2:64"&gt;&lt;a href="#fn:64" class="footnote-ref" role="doc-noteref"&gt;64&lt;/a&gt;&lt;/sup&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Deploy&lt;/strong&gt;:
&lt;ul&gt;
&lt;li&gt;Ollama + Open WebUI (or similar web UI) on that machine.&lt;sup id="fnref:73"&gt;&lt;a href="#fn:73" class="footnote-ref" role="doc-noteref"&gt;73&lt;/a&gt;&lt;/sup&gt;&lt;sup id="fnref2:63"&gt;&lt;a href="#fn:63" class="footnote-ref" role="doc-noteref"&gt;63&lt;/a&gt;&lt;/sup&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Access from mobile&lt;/strong&gt;:
&lt;ul&gt;
&lt;li&gt;Open the server IP/domain in your phone’s browser; use it as a mobile‑friendly Ollama chat app.&lt;sup id="fnref3:64"&gt;&lt;a href="#fn:64" class="footnote-ref" role="doc-noteref"&gt;64&lt;/a&gt;&lt;/sup&gt;&lt;sup id="fnref3:63"&gt;&lt;a href="#fn:63" class="footnote-ref" role="doc-noteref"&gt;63&lt;/a&gt;&lt;/sup&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;If you tell me:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;which host you prefer (Oracle / Railway / GitHub Codespaces / home‑PC),
I can give you a &lt;strong&gt;step‑by‑step command set&lt;/strong&gt; (what to run on the server and what to type in your phone) so you can be up and running in 10–15 minutes.
&lt;span style="display:none"&gt;&lt;sup id="fnref:74"&gt;&lt;a href="#fn:74" class="footnote-ref" role="doc-noteref"&gt;74&lt;/a&gt;&lt;/sup&gt;&lt;sup id="fnref:75"&gt;&lt;a href="#fn:75" class="footnote-ref" role="doc-noteref"&gt;75&lt;/a&gt;&lt;/sup&gt;&lt;sup id="fnref:76"&gt;&lt;a href="#fn:76" class="footnote-ref" role="doc-noteref"&gt;76&lt;/a&gt;&lt;/sup&gt;&lt;sup id="fnref:77"&gt;&lt;a href="#fn:77" class="footnote-ref" role="doc-noteref"&gt;77&lt;/a&gt;&lt;/sup&gt;&lt;sup id="fnref:78"&gt;&lt;a href="#fn:78" class="footnote-ref" role="doc-noteref"&gt;78&lt;/a&gt;&lt;/sup&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div align="center"&gt;⁂&lt;/div&gt;
&lt;hr&gt;
&lt;h1 id="if-i-host-ollama-in-my-office-pc-how-can-i-access-it-at-home-in-pcmobile"&gt;If I HOST OLLAMA IN my office pc, how can I access it at home in pc/mobile?&lt;/h1&gt;
&lt;p&gt;Yes—you can host Ollama on your &lt;strong&gt;office PC&lt;/strong&gt; and securely access it from home on your &lt;strong&gt;PC and mobile&lt;/strong&gt;. There are two main safe patterns: &lt;strong&gt;same‑network tunneling&lt;/strong&gt; and &lt;strong&gt;public‑accessible‑only‑via‑tunnel&lt;/strong&gt;.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id="1-basic-setup-on-your-office-pc"&gt;1. Basic setup on your office PC&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Make Ollama listen on the network&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;Set the environment variable:
&lt;ul&gt;
&lt;li&gt;Windows:&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bat" data-lang="bat"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;set&lt;/span&gt; &lt;span class="nv"&gt;OLLAMA_HOST&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;0.0.0.0
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;ollama serve
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;pre&gt;&lt;code&gt; - Linux/macOS:
&lt;/code&gt;&lt;/pre&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;export&lt;/span&gt; &lt;span class="nv"&gt;OLLAMA_HOST&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;0.0.0.0
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;ollama serve
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;pre&gt;&lt;code&gt;- Now Ollama listens on `0.0.0.0:11434` instead of just `127.0.0.1`.[^8_1][^8_2][^8_3]
&lt;/code&gt;&lt;/pre&gt;
&lt;ol start="2"&gt;
&lt;li&gt;&lt;strong&gt;Optionally add a web UI&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;Install &lt;strong&gt;Open WebUI&lt;/strong&gt; or &lt;strong&gt;Lobe Chat&lt;/strong&gt; on the same machine and point it to &lt;code&gt;http://your‑office‑ip:11434&lt;/code&gt;; it will act as a nice chat frontend.&lt;sup id="fnref:79"&gt;&lt;a href="#fn:79" class="footnote-ref" role="doc-noteref"&gt;79&lt;/a&gt;&lt;/sup&gt;&lt;sup id="fnref:80"&gt;&lt;a href="#fn:80" class="footnote-ref" role="doc-noteref"&gt;80&lt;/a&gt;&lt;/sup&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;hr&gt;
&lt;h3 id="2-access-from-home-pc--mobile"&gt;2. Access from home (PC + mobile)&lt;/h3&gt;
&lt;h4 id="option-a-via-a-secure-tunnel-easiest-and-safe"&gt;Option A: Via a secure tunnel (easiest and safe)&lt;/h4&gt;
&lt;p&gt;You &lt;strong&gt;don’t expose Ollama directly to the internet&lt;/strong&gt;; instead you use a tunnel service that forwards your office &lt;code&gt;11434&lt;/code&gt; to a public URL:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Tools like Pinggy, Cloudflare Tunnel, or localtunnel&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;Example with &lt;strong&gt;Pinggy&lt;/strong&gt; (free tier exists):&lt;sup id="fnref:81"&gt;&lt;a href="#fn:81" class="footnote-ref" role="doc-noteref"&gt;81&lt;/a&gt;&lt;/sup&gt;&lt;sup id="fnref1:79"&gt;&lt;a href="#fn:79" class="footnote-ref" role="doc-noteref"&gt;79&lt;/a&gt;&lt;/sup&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;ol&gt;
&lt;li&gt;On your office PC (behind any firewall), run:&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;ssh -R 0:localhost:11434 qr@free.pinggy.io
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ol start="2"&gt;
&lt;li&gt;Pinggy gives you a public URL (like &lt;code&gt;https://xxxxx.pinggy.io&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;From home:
- On PC: open &lt;code&gt;https://xxxxx.pinggy.io&lt;/code&gt; → use Ollama API or web UI at that URL.
- On mobile: open the same URL in your phone browser or an Ollama‑compatible app (e.g., Off Grid, LMSA).&lt;sup id="fnref:82"&gt;&lt;a href="#fn:82" class="footnote-ref" role="doc-noteref"&gt;82&lt;/a&gt;&lt;/sup&gt;&lt;sup id="fnref1:81"&gt;&lt;a href="#fn:81" class="footnote-ref" role="doc-noteref"&gt;81&lt;/a&gt;&lt;/sup&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;This is the &lt;strong&gt;safest&lt;/strong&gt; option because:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Your office PC is not exposed to the open internet.&lt;/li&gt;
&lt;li&gt;Only the tunnel endpoint is public.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h4 id="option-b-portforwarding-your-router-more-advanced-riskier"&gt;Option B: Port‑forwarding your router (more advanced, riskier)&lt;/h4&gt;
&lt;p&gt;If your office network allows it, you can expose Ollama more directly:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;In your office router, set up &lt;strong&gt;port forwarding&lt;/strong&gt;:
&lt;ul&gt;
&lt;li&gt;External port: &lt;code&gt;11434&lt;/code&gt; → Internal IP of your office PC: &lt;code&gt;11434&lt;/code&gt;.&lt;sup id="fnref:83"&gt;&lt;a href="#fn:83" class="footnote-ref" role="doc-noteref"&gt;83&lt;/a&gt;&lt;/sup&gt;&lt;sup id="fnref2:79"&gt;&lt;a href="#fn:79" class="footnote-ref" role="doc-noteref"&gt;79&lt;/a&gt;&lt;/sup&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;From home, access:
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;http://YOUR_OFFICE_PUBLIC_IP:11434&lt;/code&gt; (API) or &lt;code&gt;http://YOUR_OFFICE_PUBLIC_IP:3000&lt;/code&gt; if you run Open WebUI on port 3000.&lt;sup id="fnref:84"&gt;&lt;a href="#fn:84" class="footnote-ref" role="doc-noteref"&gt;84&lt;/a&gt;&lt;/sup&gt;&lt;sup id="fnref3:79"&gt;&lt;a href="#fn:79" class="footnote-ref" role="doc-noteref"&gt;79&lt;/a&gt;&lt;/sup&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;Security warnings:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;This exposes Ollama to the &lt;strong&gt;entire internet&lt;/strong&gt; unless you add:
&lt;ul&gt;
&lt;li&gt;A reverse proxy (e.g., Nginx) with basic auth or API‑key protection.&lt;sup id="fnref:85"&gt;&lt;a href="#fn:85" class="footnote-ref" role="doc-noteref"&gt;85&lt;/a&gt;&lt;/sup&gt;&lt;sup id="fnref:86"&gt;&lt;a href="#fn:86" class="footnote-ref" role="doc-noteref"&gt;86&lt;/a&gt;&lt;/sup&gt;&lt;/li&gt;
&lt;li&gt;A VPN or IP‑whitelist (e.g., Cloudflare Access or Tailscale) so only your home IP can reach it.&lt;sup id="fnref1:86"&gt;&lt;a href="#fn:86" class="footnote-ref" role="doc-noteref"&gt;86&lt;/a&gt;&lt;/sup&gt;&lt;sup id="fnref1:85"&gt;&lt;a href="#fn:85" class="footnote-ref" role="doc-noteref"&gt;85&lt;/a&gt;&lt;/sup&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h3 id="3-practical-workflow-for-you-safe--simple"&gt;3. Practical workflow for you (safe + simple)&lt;/h3&gt;
&lt;p&gt;Given your tech comfort, here’s a &lt;strong&gt;recommended setup&lt;/strong&gt;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;At the office&lt;/strong&gt;:
&lt;ul&gt;
&lt;li&gt;Install Ollama + Open WebUI on your office PC.&lt;/li&gt;
&lt;li&gt;Run Ollama with &lt;code&gt;OLLAMA_HOST=0.0.0.0&lt;/code&gt; and keep it on your internal network.&lt;sup id="fnref:87"&gt;&lt;a href="#fn:87" class="footnote-ref" role="doc-noteref"&gt;87&lt;/a&gt;&lt;/sup&gt;&lt;sup id="fnref1:84"&gt;&lt;a href="#fn:84" class="footnote-ref" role="doc-noteref"&gt;84&lt;/a&gt;&lt;/sup&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;At home&lt;/strong&gt;:
&lt;ul&gt;
&lt;li&gt;Use &lt;strong&gt;Pinggy&lt;/strong&gt; (or similar tunnel) from your office PC so it gives you a public URL.&lt;sup id="fnref:88"&gt;&lt;a href="#fn:88" class="footnote-ref" role="doc-noteref"&gt;88&lt;/a&gt;&lt;/sup&gt;&lt;sup id="fnref2:81"&gt;&lt;a href="#fn:81" class="footnote-ref" role="doc-noteref"&gt;81&lt;/a&gt;&lt;/sup&gt;&lt;/li&gt;
&lt;li&gt;On your &lt;strong&gt;home PC / laptop&lt;/strong&gt;: open &lt;code&gt;https://xxxxx.pinggy.io&lt;/code&gt; like a normal web app.&lt;/li&gt;
&lt;li&gt;On your &lt;strong&gt;mobile&lt;/strong&gt;:
&lt;ul&gt;
&lt;li&gt;Install an Ollama‑compatible client (e.g., &lt;strong&gt;Off Grid&lt;/strong&gt; or &lt;strong&gt;LMSA&lt;/strong&gt;) and point it to the Pinggy URL.&lt;sup id="fnref:89"&gt;&lt;a href="#fn:89" class="footnote-ref" role="doc-noteref"&gt;89&lt;/a&gt;&lt;/sup&gt;&lt;sup id="fnref1:82"&gt;&lt;a href="#fn:82" class="footnote-ref" role="doc-noteref"&gt;82&lt;/a&gt;&lt;/sup&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If you tell me:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;your OS at the office (Windows/Linux) and&lt;/li&gt;
&lt;li&gt;whether you can install SSH‑style tunnels on that machine,
I can give you the &lt;strong&gt;exact commands&lt;/strong&gt; for both the office PC and your home/mobile side so you can be up and running in 10 minutes.
&lt;span style="display:none"&gt;&lt;sup id="fnref:90"&gt;&lt;a href="#fn:90" class="footnote-ref" role="doc-noteref"&gt;90&lt;/a&gt;&lt;/sup&gt;&lt;sup id="fnref:91"&gt;&lt;a href="#fn:91" class="footnote-ref" role="doc-noteref"&gt;91&lt;/a&gt;&lt;/sup&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div align="center"&gt;⁂&lt;/div&gt;
&lt;hr&gt;
&lt;h1 id="pinggy-free-tire-60-minutes-tunnel-timeout-are-there-alternatives"&gt;Pinggy free tire 60 minutes tunnel timeout, are there alternatives&lt;/h1&gt;
&lt;p&gt;Yes, there are several &lt;strong&gt;free tunnel alternatives&lt;/strong&gt; that either give you &lt;strong&gt;longer‑lived or persistent free tunnels&lt;/strong&gt; than Pinggy’s 60‑minute limit, or are free‑forever but with small trade‑offs.&lt;sup id="fnref:92"&gt;&lt;a href="#fn:92" class="footnote-ref" role="doc-noteref"&gt;92&lt;/a&gt;&lt;/sup&gt;&lt;sup id="fnref:93"&gt;&lt;a href="#fn:93" class="footnote-ref" role="doc-noteref"&gt;93&lt;/a&gt;&lt;/sup&gt;&lt;sup id="fnref:94"&gt;&lt;a href="#fn:94" class="footnote-ref" role="doc-noteref"&gt;94&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;
&lt;p&gt;Here are the best options for keeping your &lt;strong&gt;Ollama‑on‑office‑PC tunnel active longer&lt;/strong&gt;.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id="1-cloudflare-tunnel-free--no-time-limit-feel"&gt;1. Cloudflare Tunnel (free + “no time limit” feel)&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Pros&lt;/strong&gt;:
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Free tier has no hard time limit&lt;/strong&gt; (ephemeral or named tunnels can stay up as long as you run &lt;code&gt;cloudflared&lt;/code&gt; on your office PC).&lt;/li&gt;
&lt;li&gt;High‑performance global network, HTTPS by default, good for serving Ollama + a web UI.&lt;sup id="fnref:95"&gt;&lt;a href="#fn:95" class="footnote-ref" role="doc-noteref"&gt;95&lt;/a&gt;&lt;/sup&gt;&lt;sup id="fnref1:93"&gt;&lt;a href="#fn:93" class="footnote-ref" role="doc-noteref"&gt;93&lt;/a&gt;&lt;/sup&gt;&lt;sup id="fnref1:92"&gt;&lt;a href="#fn:92" class="footnote-ref" role="doc-noteref"&gt;92&lt;/a&gt;&lt;/sup&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Setup&lt;/strong&gt;:
&lt;ul&gt;
&lt;li&gt;Install &lt;code&gt;cloudflared&lt;/code&gt; on your office PC.&lt;/li&gt;
&lt;li&gt;Run something like:&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;cloudflared tunnel --hostname myollama.your‑domain.com --url http://localhost:11434
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;pre&gt;&lt;code&gt;- You access `https://myollama.your‑domain.com` from home on PC/mobile.[^9_4][^9_1]
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;This is one of the &lt;strong&gt;strongest free‑forever options&lt;/strong&gt; if you own a domain (or can use a free one via Cloudflare).&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id="2-localtunnel-free-simple-shortlived"&gt;2. Localtunnel (free, simple, short‑lived)&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Pros&lt;/strong&gt;:
&lt;ul&gt;
&lt;li&gt;Very simple: &lt;code&gt;npx localtunnel --port 11434&lt;/code&gt; and it assigns a public URL.&lt;/li&gt;
&lt;li&gt;No account or payment required.&lt;sup id="fnref2:93"&gt;&lt;a href="#fn:93" class="footnote-ref" role="doc-noteref"&gt;93&lt;/a&gt;&lt;/sup&gt;&lt;sup id="fnref1:94"&gt;&lt;a href="#fn:94" class="footnote-ref" role="doc-noteref"&gt;94&lt;/a&gt;&lt;/sup&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Limit&lt;/strong&gt;:
&lt;ul&gt;
&lt;li&gt;URLs are &lt;strong&gt;ephemeral&lt;/strong&gt;; the tunnel dies when you stop the process or your PC reboots.&lt;/li&gt;
&lt;li&gt;Not ideal for “always on”, but great for &lt;strong&gt;sporadic remote Ollama access&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h3 id="3-serveo-free-nosetup-style"&gt;3. Serveo (free, no‑setup style)&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Serveo&lt;/strong&gt; is a free SSH‑based tunnel like Pinggy, with &lt;strong&gt;no signup&lt;/strong&gt; and &lt;strong&gt;no hard 60‑min cap&lt;/strong&gt; in the free tier (just resource‑based eviction).&lt;sup id="fnref2:94"&gt;&lt;a href="#fn:94" class="footnote-ref" role="doc-noteref"&gt;94&lt;/a&gt;&lt;/sup&gt;&lt;sup id="fnref3:93"&gt;&lt;a href="#fn:93" class="footnote-ref" role="doc-noteref"&gt;93&lt;/a&gt;&lt;/sup&gt;&lt;/li&gt;
&lt;li&gt;Example:&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;ssh -R 80:localhost:11434 serveo.net
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;pre&gt;&lt;code&gt;- Gives you a public URL you can open in your phone browser.
&lt;/code&gt;&lt;/pre&gt;
&lt;ul&gt;
&lt;li&gt;Trade‑off: less stable than Pinggy/Cloudflare, and may be taken down or throttled if heavily used.&lt;sup id="fnref3:94"&gt;&lt;a href="#fn:94" class="footnote-ref" role="doc-noteref"&gt;94&lt;/a&gt;&lt;/sup&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h3 id="4-tunnelmole-free--diyfriendly"&gt;4. Tunnelmole (free + DIY‑friendly)&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Tunnelmole is a &lt;strong&gt;self‑hostable&lt;/strong&gt; tunnel server; you can run it yourself on a cheap VM and point your office PC at it.&lt;/li&gt;
&lt;li&gt;The public instance has a &lt;strong&gt;free tier&lt;/strong&gt; with reasonable uptime, and you can build your own “forever free” setup if you rent a minimal VPS.&lt;sup id="fnref:96"&gt;&lt;a href="#fn:96" class="footnote-ref" role="doc-noteref"&gt;96&lt;/a&gt;&lt;/sup&gt;&lt;sup id="fnref4:94"&gt;&lt;a href="#fn:94" class="footnote-ref" role="doc-noteref"&gt;94&lt;/a&gt;&lt;/sup&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h3 id="5-selfhosted-tunnel-gateways-zrok-frp-etc"&gt;5. Self‑hosted “tunnel gateways” (Zrok, frp, etc.)&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Tools like &lt;strong&gt;Zrok&lt;/strong&gt; or &lt;strong&gt;frp&lt;/strong&gt; let you deploy a &lt;strong&gt;tunnel gateway&lt;/strong&gt; on a cheap VM (or even always‑free Oracle), then connect your office Ollama to it.&lt;sup id="fnref1:96"&gt;&lt;a href="#fn:96" class="footnote-ref" role="doc-noteref"&gt;96&lt;/a&gt;&lt;/sup&gt;&lt;sup id="fnref5:94"&gt;&lt;a href="#fn:94" class="footnote-ref" role="doc-noteref"&gt;94&lt;/a&gt;&lt;/sup&gt;&lt;/li&gt;
&lt;li&gt;You get &lt;strong&gt;no time‑out limit&lt;/strong&gt; as long as the gateway is up.&lt;/li&gt;
&lt;li&gt;Best if you’re comfortable with Linux + Docker/VMs and want a &lt;strong&gt;true “forever‑free” tunnel&lt;/strong&gt; stack.&lt;sup id="fnref6:94"&gt;&lt;a href="#fn:94" class="footnote-ref" role="doc-noteref"&gt;94&lt;/a&gt;&lt;/sup&gt;&lt;sup id="fnref2:96"&gt;&lt;a href="#fn:96" class="footnote-ref" role="doc-noteref"&gt;96&lt;/a&gt;&lt;/sup&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h3 id="practical-recommendation-for-you-1"&gt;Practical recommendation for you&lt;/h3&gt;
&lt;p&gt;For your use case (Ollama on office PC → PC + mobile at home):&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Best “free &amp;amp; stable”&lt;/strong&gt;:
&lt;ul&gt;
&lt;li&gt;Use &lt;strong&gt;Cloudflare Tunnel&lt;/strong&gt; if you can configure a domain (even a cheap/free one). It avoids Pinggy’s 60‑min limit and still stays free.&lt;sup id="fnref2:92"&gt;&lt;a href="#fn:92" class="footnote-ref" role="doc-noteref"&gt;92&lt;/a&gt;&lt;/sup&gt;&lt;sup id="fnref4:93"&gt;&lt;a href="#fn:93" class="footnote-ref" role="doc-noteref"&gt;93&lt;/a&gt;&lt;/sup&gt;&lt;sup id="fnref1:95"&gt;&lt;a href="#fn:95" class="footnote-ref" role="doc-noteref"&gt;95&lt;/a&gt;&lt;/sup&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;If you don’t want a domain + need simple&lt;/strong&gt;:
&lt;ul&gt;
&lt;li&gt;Use &lt;strong&gt;Serveo&lt;/strong&gt; or &lt;strong&gt;Localtunnel&lt;/strong&gt; for on‑demand Ollama access from home.&lt;sup id="fnref5:93"&gt;&lt;a href="#fn:93" class="footnote-ref" role="doc-noteref"&gt;93&lt;/a&gt;&lt;/sup&gt;&lt;sup id="fnref7:94"&gt;&lt;a href="#fn:94" class="footnote-ref" role="doc-noteref"&gt;94&lt;/a&gt;&lt;/sup&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If you tell me:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;whether you have a &lt;strong&gt;domain&lt;/strong&gt; (even a cheap &lt;code&gt;.ml&lt;/code&gt; / free CF‑hosted one) and&lt;/li&gt;
&lt;li&gt;your OS at the office (Windows/Linux),&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I can give you &lt;strong&gt;exact commands&lt;/strong&gt; for Cloudflare Tunnel or Serveo‑style setup so you can keep your Ollama tunnel alive much longer than 60 minutes.
&lt;span style="display:none"&gt;&lt;sup id="fnref:97"&gt;&lt;a href="#fn:97" class="footnote-ref" role="doc-noteref"&gt;97&lt;/a&gt;&lt;/sup&gt;&lt;sup id="fnref:98"&gt;&lt;a href="#fn:98" class="footnote-ref" role="doc-noteref"&gt;98&lt;/a&gt;&lt;/sup&gt;&lt;sup id="fnref:99"&gt;&lt;a href="#fn:99" class="footnote-ref" role="doc-noteref"&gt;99&lt;/a&gt;&lt;/sup&gt;&lt;sup id="fnref:100"&gt;&lt;a href="#fn:100" class="footnote-ref" role="doc-noteref"&gt;100&lt;/a&gt;&lt;/sup&gt;&lt;sup id="fnref:101"&gt;&lt;a href="#fn:101" class="footnote-ref" role="doc-noteref"&gt;101&lt;/a&gt;&lt;/sup&gt;&lt;/span&gt;&lt;/p&gt;
&lt;div align="center"&gt;⁂&lt;/div&gt;
&lt;hr&gt;
&lt;h1 id="how-to-set-up-cloudflare-tunnel-for-ollama-access"&gt;How to set up Cloudflare Tunnel for Ollama access&lt;/h1&gt;
&lt;p&gt;Here’s a &lt;strong&gt;step‑by‑step plan&lt;/strong&gt; to set up &lt;strong&gt;Cloudflare Tunnel&lt;/strong&gt; so you can access your Ollama server (on your office PC) securely from home on PC and mobile, via HTTPS.&lt;sup id="fnref:102"&gt;&lt;a href="#fn:102" class="footnote-ref" role="doc-noteref"&gt;102&lt;/a&gt;&lt;/sup&gt;&lt;sup id="fnref:103"&gt;&lt;a href="#fn:103" class="footnote-ref" role="doc-noteref"&gt;103&lt;/a&gt;&lt;/sup&gt;&lt;sup id="fnref:104"&gt;&lt;a href="#fn:104" class="footnote-ref" role="doc-noteref"&gt;104&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;
&lt;p&gt;Assumptions:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Ollama is already running on your office PC at &lt;code&gt;http://localhost:11434&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;You have a &lt;strong&gt;Cloudflare account&lt;/strong&gt; and a &lt;strong&gt;domain&lt;/strong&gt; (e.g., &lt;code&gt;yourdomain.com&lt;/code&gt;).&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h3 id="1-set-up-ollama-to-listen-on-the-network"&gt;1. Set up Ollama to listen on the network&lt;/h3&gt;
&lt;p&gt;On your office PC:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Set Ollama to listen on all interfaces:
&lt;ul&gt;
&lt;li&gt;Linux/macOS:&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;export&lt;/span&gt; &lt;span class="nv"&gt;OLLAMA_HOST&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;0.0.0.0
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;ollama serve
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;pre&gt;&lt;code&gt;- Windows:
&lt;/code&gt;&lt;/pre&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bat" data-lang="bat"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;set&lt;/span&gt; &lt;span class="nv"&gt;OLLAMA_HOST&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;0.0.0.0
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;ollama serve
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ul&gt;
&lt;li&gt;Ollama now accepts connections on &lt;code&gt;http://127.0.0.1:11434&lt;/code&gt; and &lt;code&gt;http://YOUR_OFFICE_IP:11434&lt;/code&gt;.&lt;sup id="fnref:105"&gt;&lt;a href="#fn:105" class="footnote-ref" role="doc-noteref"&gt;105&lt;/a&gt;&lt;/sup&gt;&lt;sup id="fnref:106"&gt;&lt;a href="#fn:106" class="footnote-ref" role="doc-noteref"&gt;106&lt;/a&gt;&lt;/sup&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h3 id="2-install-cloudflared-on-your-office-pc"&gt;2. Install &lt;code&gt;cloudflared&lt;/code&gt; on your office PC&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Download &lt;code&gt;cloudflared&lt;/code&gt;&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;Go to: &lt;a href="https://github.com/cloudflare/cloudflared/releases" target="_blank" rel="noopener"&gt;https://github.com/cloudflare/cloudflared/releases&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Pick the binary for your OS (e.g., &lt;code&gt;cloudflared-windows-amd64.exe&lt;/code&gt;, &lt;code&gt;cloudflared-linux‑amd64&lt;/code&gt;).&lt;sup id="fnref1:103"&gt;&lt;a href="#fn:103" class="footnote-ref" role="doc-noteref"&gt;103&lt;/a&gt;&lt;/sup&gt;&lt;sup id="fnref1:102"&gt;&lt;a href="#fn:102" class="footnote-ref" role="doc-noteref"&gt;102&lt;/a&gt;&lt;/sup&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Put it in PATH / a folder&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;Example on Linux:&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo install cloudflared-linux-amd64 /usr/local/bin/cloudflared
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;pre&gt;&lt;code&gt;- On Windows: place `cloudflared.exe` in a folder like `C:\cloudflared` and add that folder to your PATH.[^10_1]
&lt;/code&gt;&lt;/pre&gt;
&lt;hr&gt;
&lt;h3 id="3-authenticate-cloudflared-with-your-domain"&gt;3. Authenticate &lt;code&gt;cloudflared&lt;/code&gt; with your domain&lt;/h3&gt;
&lt;p&gt;Run this on your office PC &lt;strong&gt;once&lt;/strong&gt;:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;cloudflared tunnel login
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ul&gt;
&lt;li&gt;A browser window will open; choose the domain (e.g., &lt;code&gt;yourdomain.com&lt;/code&gt;) you want to use.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;cloudflared&lt;/code&gt; saves a credentials file (e.g., &lt;code&gt;~/.cloudflared/cert.pem&lt;/code&gt;).&lt;sup id="fnref2:103"&gt;&lt;a href="#fn:103" class="footnote-ref" role="doc-noteref"&gt;103&lt;/a&gt;&lt;/sup&gt;&lt;sup id="fnref2:102"&gt;&lt;a href="#fn:102" class="footnote-ref" role="doc-noteref"&gt;102&lt;/a&gt;&lt;/sup&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h3 id="4-create-a-tunnel-for-ollama"&gt;4. Create a tunnel for Ollama&lt;/h3&gt;
&lt;p&gt;Create a named tunnel (e.g., &lt;code&gt;ollama-tunnel&lt;/code&gt;):&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;cloudflared tunnel create ollama-tunnel
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ul&gt;
&lt;li&gt;This generates a &lt;code&gt;ollama-tunnel.json&lt;/code&gt; file with an ID.&lt;sup id="fnref1:104"&gt;&lt;a href="#fn:104" class="footnote-ref" role="doc-noteref"&gt;104&lt;/a&gt;&lt;/sup&gt;&lt;sup id="fnref3:102"&gt;&lt;a href="#fn:102" class="footnote-ref" role="doc-noteref"&gt;102&lt;/a&gt;&lt;/sup&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Now configure it:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Create a config file&lt;/strong&gt; (e.g., &lt;code&gt;~/.cloudflared/config.yaml&lt;/code&gt; or &lt;code&gt;C:\Users\YourUser\.cloudflared\config.yaml&lt;/code&gt;):&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-yaml" data-lang="yaml"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;tunnel&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;ollama-tunnel&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt;&lt;/span&gt;&lt;span class="nt"&gt;credentials-file&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;C:\Users\YourUser\.cloudflared\ollama-tunnel.json&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt;&lt;/span&gt;&lt;span class="nt"&gt;ingress&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;- &lt;span class="nt"&gt;hostname&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;ollama.yourdomain.com&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;service&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;http://localhost:11434&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;- &lt;span class="nt"&gt;service&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;http_status:404&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;pre&gt;&lt;code&gt;- `ollama.yourdomain.com` is the public URL you’ll use.
- `http://localhost:11434` is your Ollama API.[^10_1][^10_2]
&lt;/code&gt;&lt;/pre&gt;
&lt;ol start="2"&gt;
&lt;li&gt;&lt;strong&gt;Add DNS record in Cloudflare&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;In Cloudflare dashboard → DNS → add:
&lt;ul&gt;
&lt;li&gt;Type: &lt;code&gt;CNAME&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Name: &lt;code&gt;ollama&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Target: (Cloudflare will show a random ID like &lt;code&gt;xxxxx.cfargotunnel.com&lt;/code&gt; after you create the tunnel.)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Or let &lt;code&gt;cloudflared&lt;/code&gt; auto‑configure DNS:&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;cloudflared tunnel route dns ollama-tunnel ollama.yourdomain.com
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;sup id="fnref3:103"&gt;&lt;a href="#fn:103" class="footnote-ref" role="doc-noteref"&gt;103&lt;/a&gt;&lt;/sup&gt;&lt;sup id="fnref4:102"&gt;&lt;a href="#fn:102" class="footnote-ref" role="doc-noteref"&gt;102&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id="5-start-the-tunnel-keep-it-running"&gt;5. Start the tunnel (keep it running)&lt;/h3&gt;
&lt;p&gt;On your office PC:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;cloudflared tunnel run ollama-tunnel
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ul&gt;
&lt;li&gt;This keeps the tunnel open as long as the process runs.&lt;/li&gt;
&lt;li&gt;For “always‑on”, you can turn it into a &lt;strong&gt;system service&lt;/strong&gt; (Windows service or Linux systemd).&lt;sup id="fnref2:104"&gt;&lt;a href="#fn:104" class="footnote-ref" role="doc-noteref"&gt;104&lt;/a&gt;&lt;/sup&gt;&lt;sup id="fnref5:102"&gt;&lt;a href="#fn:102" class="footnote-ref" role="doc-noteref"&gt;102&lt;/a&gt;&lt;/sup&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h3 id="6-access-ollama-from-home-pc--mobile"&gt;6. Access Ollama from home (PC + mobile)&lt;/h3&gt;
&lt;p&gt;Once the tunnel is up:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;From home PC&lt;/strong&gt;:
&lt;ul&gt;
&lt;li&gt;Open: &lt;code&gt;https://ollama.yourdomain.com/v1/models&lt;/code&gt; or &lt;code&gt;https://ollama.yourdomain.com&lt;/code&gt; (if you also run Open WebUI there).&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;From mobile&lt;/strong&gt;:
&lt;ul&gt;
&lt;li&gt;In your browser, open &lt;code&gt;https://ollama.yourdomain.com&lt;/code&gt; and use it like a web app, or&lt;/li&gt;
&lt;li&gt;In an Ollama‑compatible mobile app (e.g., Off Grid, LMSA), set the server URL to &lt;code&gt;https://ollama.yourdomain.com&lt;/code&gt;.&lt;sup id="fnref:107"&gt;&lt;a href="#fn:107" class="footnote-ref" role="doc-noteref"&gt;107&lt;/a&gt;&lt;/sup&gt;&lt;sup id="fnref:108"&gt;&lt;a href="#fn:108" class="footnote-ref" role="doc-noteref"&gt;108&lt;/a&gt;&lt;/sup&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h3 id="7-optional-add-a-web-ui-in-front-of-ollama"&gt;7. Optional: Add a web UI in front of Ollama&lt;/h3&gt;
&lt;p&gt;If you want a nicer chat interface:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Run &lt;strong&gt;Open WebUI&lt;/strong&gt; (or similar) on your office PC, pointed to &lt;code&gt;http://localhost:11434&lt;/code&gt;.&lt;sup id="fnref:109"&gt;&lt;a href="#fn:109" class="footnote-ref" role="doc-noteref"&gt;109&lt;/a&gt;&lt;/sup&gt;&lt;/li&gt;
&lt;li&gt;Expose the Open WebUI port (e.g., &lt;code&gt;http://localhost:3000&lt;/code&gt;) via Cloudflare Tunnel instead, or alongside the Ollama API:&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-yaml" data-lang="yaml"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;ingress&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;- &lt;span class="nt"&gt;hostname&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;ollama-ui.yourdomain.com&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;service&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;http://localhost:3000&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;- &lt;span class="nt"&gt;service&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;http_status:404&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Then on mobile you just open &lt;code&gt;https://ollama-ui.yourdomain.com&lt;/code&gt; and chat as if it were a hosted AI app.&lt;sup id="fnref1:109"&gt;&lt;a href="#fn:109" class="footnote-ref" role="doc-noteref"&gt;109&lt;/a&gt;&lt;/sup&gt;&lt;sup id="fnref6:102"&gt;&lt;a href="#fn:102" class="footnote-ref" role="doc-noteref"&gt;102&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id="if-you-share-your-os-windowslinux-and-domain-i-can"&gt;If you share your OS (Windows/Linux) and domain, I can:&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Give you &lt;strong&gt;exact commands&lt;/strong&gt; (including how to create a Windows service or Linux systemd unit) so the tunnel starts automatically on boot and stays up 24/7.&lt;/li&gt;
&lt;/ul&gt;
&lt;div align="center"&gt;⁂&lt;/div&gt;
&lt;hr&gt;
&lt;h1 id="instead-local-pc-can-i-host-ollama-at-cloudfare-freely"&gt;Instead local pc, can I host ollama at cloudfare freely?&lt;/h1&gt;
&lt;p&gt;Short answer: &lt;strong&gt;you cannot run Ollama &lt;em&gt;itself&lt;/em&gt; on Cloudflare for free&lt;/strong&gt;, but you &lt;em&gt;can&lt;/em&gt; use &lt;strong&gt;Cloudflare‑hosted AI models (Workers AI)&lt;/strong&gt; and &lt;strong&gt;Cloudflare Tunnel&lt;/strong&gt; in a free tier so it feels like you’re hosting an AI backend “in Cloudflare” while Ollama stays on your own machine.&lt;sup id="fnref:110"&gt;&lt;a href="#fn:110" class="footnote-ref" role="doc-noteref"&gt;110&lt;/a&gt;&lt;/sup&gt;&lt;sup id="fnref:111"&gt;&lt;a href="#fn:111" class="footnote-ref" role="doc-noteref"&gt;111&lt;/a&gt;&lt;/sup&gt;&lt;sup id="fnref:112"&gt;&lt;a href="#fn:112" class="footnote-ref" role="doc-noteref"&gt;112&lt;/a&gt;&lt;/sup&gt;&lt;sup id="fnref:113"&gt;&lt;a href="#fn:113" class="footnote-ref" role="doc-noteref"&gt;113&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;
&lt;p&gt;Below I’ll split this for you:&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id="1-why-host-ollama-on-cloudflare-isnt-possible"&gt;1. Why “host Ollama on Cloudflare” isn’t possible&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Cloudflare Workers&lt;/strong&gt; run &lt;strong&gt;serverless JavaScript&lt;/strong&gt; (or WASM), not full OS‑level processes like Ollama.
&lt;ul&gt;
&lt;li&gt;You cannot ssh into a Cloudflare machine, install CUDA, or run &lt;code&gt;ollama serve&lt;/code&gt;.&lt;sup id="fnref1:111"&gt;&lt;a href="#fn:111" class="footnote-ref" role="doc-noteref"&gt;111&lt;/a&gt;&lt;/sup&gt;&lt;sup id="fnref1:110"&gt;&lt;a href="#fn:110" class="footnote-ref" role="doc-noteref"&gt;110&lt;/a&gt;&lt;/sup&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Cloudflare Workers AI&lt;/strong&gt; is a &lt;strong&gt;managed LLM API&lt;/strong&gt; (Llama 3, 4, etc.), not a place where you install Ollama yourself.&lt;sup id="fnref2:110"&gt;&lt;a href="#fn:110" class="footnote-ref" role="doc-noteref"&gt;110&lt;/a&gt;&lt;/sup&gt;&lt;sup id="fnref2:111"&gt;&lt;a href="#fn:111" class="footnote-ref" role="doc-noteref"&gt;111&lt;/a&gt;&lt;/sup&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;So you cannot simply “move Ollama to Cloudflare” the way you could move it to a VPS.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id="2-what-you-can-do-for-free"&gt;2. What you &lt;em&gt;can&lt;/em&gt; do for free&lt;/h3&gt;
&lt;h4 id="a-use-cloudflare-workers-ai-as-your-cloud-llm"&gt;A) Use Cloudflare Workers AI as your “cloud LLM”&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;Cloudflare Workers AI lets you call large models (e.g., Llama 3, 4 Scout, etc.) from a Worker.&lt;sup id="fnref3:111"&gt;&lt;a href="#fn:111" class="footnote-ref" role="doc-noteref"&gt;111&lt;/a&gt;&lt;/sup&gt;&lt;sup id="fnref3:110"&gt;&lt;a href="#fn:110" class="footnote-ref" role="doc-noteref"&gt;110&lt;/a&gt;&lt;/sup&gt;&lt;/li&gt;
&lt;li&gt;You can:
&lt;ul&gt;
&lt;li&gt;Write a small Worker that exposes an &lt;strong&gt;OpenAI‑style API&lt;/strong&gt; endpoint.&lt;/li&gt;
&lt;li&gt;From your PC or mobile app, call that Worker URL as if it were an LLM backend.&lt;sup id="fnref:114"&gt;&lt;a href="#fn:114" class="footnote-ref" role="doc-noteref"&gt;114&lt;/a&gt;&lt;/sup&gt;&lt;sup id="fnref4:110"&gt;&lt;a href="#fn:110" class="footnote-ref" role="doc-noteref"&gt;110&lt;/a&gt;&lt;/sup&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The &lt;strong&gt;free tier&lt;/strong&gt; of Cloudflare includes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Free SSL, CDN, DDoS protection, and a &lt;strong&gt;limited free quota for Workers AI&lt;/strong&gt; (a few hundred‑thousand tokens per month, details in Cloudflare’s docs).&lt;sup id="fnref1:113"&gt;&lt;a href="#fn:113" class="footnote-ref" role="doc-noteref"&gt;113&lt;/a&gt;&lt;/sup&gt;&lt;sup id="fnref5:110"&gt;&lt;a href="#fn:110" class="footnote-ref" role="doc-noteref"&gt;110&lt;/a&gt;&lt;/sup&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="b-use-cloudflare-tunnel-to-expose-your-real-ollama"&gt;B) Use Cloudflare Tunnel to expose your &lt;em&gt;real&lt;/em&gt; Ollama&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;You still run &lt;strong&gt;Ollama on your PC or home server&lt;/strong&gt;, but you expose it via &lt;strong&gt;Cloudflare Tunnel&lt;/strong&gt; so it’s reachable from anywhere over &lt;code&gt;https://ollama.yourdomain.com&lt;/code&gt;.&lt;sup id="fnref1:112"&gt;&lt;a href="#fn:112" class="footnote-ref" role="doc-noteref"&gt;112&lt;/a&gt;&lt;/sup&gt;&lt;sup id="fnref:115"&gt;&lt;a href="#fn:115" class="footnote-ref" role="doc-noteref"&gt;115&lt;/a&gt;&lt;/sup&gt;&lt;/li&gt;
&lt;li&gt;The &lt;strong&gt;Cloudflare Tunnel&lt;/strong&gt; piece is &lt;strong&gt;free&lt;/strong&gt; (you only pay if you exceed Workers CPU/request limits at very high scale).&lt;sup id="fnref:116"&gt;&lt;a href="#fn:116" class="footnote-ref" role="doc-noteref"&gt;116&lt;/a&gt;&lt;/sup&gt;&lt;sup id="fnref2:113"&gt;&lt;a href="#fn:113" class="footnote-ref" role="doc-noteref"&gt;113&lt;/a&gt;&lt;/sup&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This is the closest to “hosting Ollama in Cloudflare freely”:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Ollama runs on your hardware.&lt;/li&gt;
&lt;li&gt;Cloudflare Tunnel gives you a &lt;strong&gt;free, secure HTTPS endpoint&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h3 id="3-concrete-freeish-setup-for-your-use-case"&gt;3. Concrete “free‑ish” setup for your use case&lt;/h3&gt;
&lt;p&gt;Given you want to access Ollama from mobile:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Keep Ollama on your office PC&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;export OLLAMA_HOST=0.0.0.0 &amp;amp;&amp;amp; ollama serve&lt;/code&gt;.&lt;sup id="fnref:117"&gt;&lt;a href="#fn:117" class="footnote-ref" role="doc-noteref"&gt;117&lt;/a&gt;&lt;/sup&gt;&lt;sup id="fnref:118"&gt;&lt;a href="#fn:118" class="footnote-ref" role="doc-noteref"&gt;118&lt;/a&gt;&lt;/sup&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expose it via Cloudflare Tunnel&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;Set up &lt;code&gt;cloudflared&lt;/code&gt; and tunnel &lt;code&gt;localhost:11434&lt;/code&gt; to &lt;code&gt;ollama.yourdomain.com&lt;/code&gt; (exact steps in the previous reply).&lt;sup id="fnref1:115"&gt;&lt;a href="#fn:115" class="footnote-ref" role="doc-noteref"&gt;115&lt;/a&gt;&lt;/sup&gt;&lt;sup id="fnref2:112"&gt;&lt;a href="#fn:112" class="footnote-ref" role="doc-noteref"&gt;112&lt;/a&gt;&lt;/sup&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;(Optional) Replace Ollama with Workers AI for some tasks&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;If you don’t strictly need Ollama, you can:
&lt;ul&gt;
&lt;li&gt;Write a Cloudflare Worker that calls &lt;code&gt;@llama‑3&lt;/code&gt; or &lt;code&gt;@llama‑4&lt;/code&gt; via Workers AI.&lt;/li&gt;
&lt;li&gt;Use that URL in your mobile app instead of an Ollama‑hosted one.&lt;sup id="fnref6:110"&gt;&lt;a href="#fn:110" class="footnote-ref" role="doc-noteref"&gt;110&lt;/a&gt;&lt;/sup&gt;&lt;sup id="fnref4:111"&gt;&lt;a href="#fn:111" class="footnote-ref" role="doc-noteref"&gt;111&lt;/a&gt;&lt;/sup&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;hr&gt;
&lt;h3 id="4-if-you-tell-me"&gt;4. If you tell me&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;your &lt;strong&gt;domain&lt;/strong&gt; (or whether you’re okay buying a cheap one),&lt;/li&gt;
&lt;li&gt;and whether you prefer &lt;strong&gt;true Ollama on your PC vs a Cloudflare‑only API&lt;/strong&gt;,&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I can give you:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;two copy‑paste examples&lt;/strong&gt;:
&lt;ul&gt;
&lt;li&gt;One &lt;code&gt;worker.js&lt;/code&gt; for a Cloudflare‑only LLM API (Workers AI), and&lt;/li&gt;
&lt;li&gt;One &lt;code&gt;config.yaml&lt;/code&gt; for Cloudflare Tunnel + Ollama so you can seamlessly switch between them.
&lt;span style="display:none"&gt;&lt;sup id="fnref:119"&gt;&lt;a href="#fn:119" class="footnote-ref" role="doc-noteref"&gt;119&lt;/a&gt;&lt;/sup&gt;&lt;sup id="fnref:120"&gt;&lt;a href="#fn:120" class="footnote-ref" role="doc-noteref"&gt;120&lt;/a&gt;&lt;/sup&gt;&lt;sup id="fnref:121"&gt;&lt;a href="#fn:121" class="footnote-ref" role="doc-noteref"&gt;121&lt;/a&gt;&lt;/sup&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;div align="center"&gt;⁂&lt;/div&gt;
&lt;hr&gt;
&lt;h1 id="what-is-the-limit-of-free-tire-for-cloudfare-tunnel-for-ollama"&gt;What is the limit of free tire for cloudfare tunnel for ollama?&lt;/h1&gt;
&lt;p&gt;Cloudflare Tunnel (via &lt;code&gt;cloudflared&lt;/code&gt;) is &lt;strong&gt;free to use&lt;/strong&gt; for exposing services like Ollama, but the &lt;em&gt;real&lt;/em&gt; limits come from Cloudflare’s &lt;strong&gt;overall free plan&lt;/strong&gt;, bandwidth, and CPU usage, not from Tunnel itself.&lt;sup id="fnref:122"&gt;&lt;a href="#fn:122" class="footnote-ref" role="doc-noteref"&gt;122&lt;/a&gt;&lt;/sup&gt;&lt;sup id="fnref:123"&gt;&lt;a href="#fn:123" class="footnote-ref" role="doc-noteref"&gt;123&lt;/a&gt;&lt;/sup&gt;&lt;sup id="fnref:124"&gt;&lt;a href="#fn:124" class="footnote-ref" role="doc-noteref"&gt;124&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;
&lt;p&gt;Here’s how it breaks down for your use case:&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id="1-cloudflare-tunnel-itself-no-hard-tunnel-limit"&gt;1. Cloudflare Tunnel itself (no hard “tunnel” limit)&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Cloudflare Tunnel&lt;/strong&gt; (the &lt;code&gt;cloudflared&lt;/code&gt; tunnel component) has &lt;strong&gt;no explicit per‑tunnel cost or timeout&lt;/strong&gt; in the free tier.&lt;sup id="fnref1:123"&gt;&lt;a href="#fn:123" class="footnote-ref" role="doc-noteref"&gt;123&lt;/a&gt;&lt;/sup&gt;&lt;sup id="fnref1:124"&gt;&lt;a href="#fn:124" class="footnote-ref" role="doc-noteref"&gt;124&lt;/a&gt;&lt;/sup&gt;&lt;/li&gt;
&lt;li&gt;You can run &lt;code&gt;cloudflared tunnel run ollama-tunnel&lt;/code&gt; 24/7 and it stays up as long as your PC/VM is up and within Cloudflare’s broader free limits.&lt;sup id="fnref:125"&gt;&lt;a href="#fn:125" class="footnote-ref" role="doc-noteref"&gt;125&lt;/a&gt;&lt;/sup&gt;&lt;sup id="fnref2:123"&gt;&lt;a href="#fn:123" class="footnote-ref" role="doc-noteref"&gt;123&lt;/a&gt;&lt;/sup&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h3 id="2-freeplan-limits-that-matter-for-ollama"&gt;2. Free‑plan limits that matter for Ollama&lt;/h3&gt;
&lt;p&gt;Cloudflare’s &lt;strong&gt;Free Plan&lt;/strong&gt; (which you get by default with a domain):&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Bandwidth &amp;amp; requests&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;Cloudflare sits in front of your tunnel as a CDN; it handles a lot of requests for free, but extremely high traffic may push you into paid tiers (Cloudflare rarely charges for normal dev‑level usage).&lt;sup id="fnref2:124"&gt;&lt;a href="#fn:124" class="footnote-ref" role="doc-noteref"&gt;124&lt;/a&gt;&lt;/sup&gt;&lt;sup id="fnref:126"&gt;&lt;a href="#fn:126" class="footnote-ref" role="doc-noteref"&gt;126&lt;/a&gt;&lt;/sup&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Rate‑limiting &amp;amp; abuse protection&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;Free plan includes DDoS and rate limiting; if someone scrapes your Ollama API, Cloudflare may throttle.&lt;sup id="fnref3:124"&gt;&lt;a href="#fn:124" class="footnote-ref" role="doc-noteref"&gt;124&lt;/a&gt;&lt;/sup&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;For reasonable Ollama traffic (you + maybe a few others chatting, no massive batching):&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;You typically &lt;strong&gt;stay well under&lt;/strong&gt; free‑plan limits.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h3 id="3-workers-ai-vs-tunnel-for-comparison"&gt;3. Workers AI vs Tunnel (for comparison)&lt;/h3&gt;
&lt;p&gt;If you ever mix in &lt;strong&gt;Cloudflare Workers AI&lt;/strong&gt; (Llama‑family models via Workers):&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Workers AI&lt;/strong&gt; has a &lt;strong&gt;free‑tier credit&lt;/strong&gt; (e.g., a few hundred‑thousand tokens per month); you pay only after you exceed that.&lt;sup id="fnref:127"&gt;&lt;a href="#fn:127" class="footnote-ref" role="doc-noteref"&gt;127&lt;/a&gt;&lt;/sup&gt;&lt;sup id="fnref:128"&gt;&lt;a href="#fn:128" class="footnote-ref" role="doc-noteref"&gt;128&lt;/a&gt;&lt;/sup&gt;&lt;sup id="fnref1:122"&gt;&lt;a href="#fn:122" class="footnote-ref" role="doc-noteref"&gt;122&lt;/a&gt;&lt;/sup&gt;&lt;/li&gt;
&lt;li&gt;This is &lt;strong&gt;separate&lt;/strong&gt; from Tunnel; you can run Tunnel‑based Ollama for free while Workers AI has its own usage cap.&lt;sup id="fnref1:126"&gt;&lt;a href="#fn:126" class="footnote-ref" role="doc-noteref"&gt;126&lt;/a&gt;&lt;/sup&gt;&lt;sup id="fnref2:122"&gt;&lt;a href="#fn:122" class="footnote-ref" role="doc-noteref"&gt;122&lt;/a&gt;&lt;/sup&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h3 id="4-practical-ollama--cloudflare-tunnel-limit"&gt;4. Practical “Ollama + Cloudflare Tunnel” limit&lt;/h3&gt;
&lt;p&gt;For your Ollama setup:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Tunnel uptime&lt;/strong&gt;: effectively “unlimited” as long as &lt;code&gt;cloudflared&lt;/code&gt; runs on your PC/server and your ISP doesn’t block long‑lived TCP connections.&lt;sup id="fnref3:123"&gt;&lt;a href="#fn:123" class="footnote-ref" role="doc-noteref"&gt;123&lt;/a&gt;&lt;/sup&gt;&lt;sup id="fnref1:125"&gt;&lt;a href="#fn:125" class="footnote-ref" role="doc-noteref"&gt;125&lt;/a&gt;&lt;/sup&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Bandwidth&lt;/strong&gt;:
&lt;ul&gt;
&lt;li&gt;Free tier is generous; you will notice &lt;strong&gt;no hard limit&lt;/strong&gt; for typical coding‑chat usage (you’re moving small JSON payloads, not huge video streams).&lt;sup id="fnref2:126"&gt;&lt;a href="#fn:126" class="footnote-ref" role="doc-noteref"&gt;126&lt;/a&gt;&lt;/sup&gt;&lt;sup id="fnref4:124"&gt;&lt;a href="#fn:124" class="footnote-ref" role="doc-noteref"&gt;124&lt;/a&gt;&lt;/sup&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;CPU/server side&lt;/strong&gt;:
&lt;ul&gt;
&lt;li&gt;The only “limit” is on &lt;strong&gt;your own Ollama‑hosting machine&lt;/strong&gt; (CPU, RAM, VRAM), not on Cloudflare.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;In other words:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;For &lt;strong&gt;one‑person Ollama + mobile access via Cloudflare Tunnel on the free plan&lt;/strong&gt;, you can treat it as “virtually unlimited” unless you suddenly start serving thousands of users per day.&lt;sup id="fnref4:123"&gt;&lt;a href="#fn:123" class="footnote-ref" role="doc-noteref"&gt;123&lt;/a&gt;&lt;/sup&gt;&lt;sup id="fnref5:124"&gt;&lt;a href="#fn:124" class="footnote-ref" role="doc-noteref"&gt;124&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;If you tell me:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;how many users you expect (just you, your team, or public),
I can tell you whether you should stay on the &lt;strong&gt;Free Plan&lt;/strong&gt; or if you’ll realistically hit limits and need a higher tier.&lt;/li&gt;
&lt;/ul&gt;
&lt;div align="center"&gt;⁂&lt;/div&gt;
&lt;hr&gt;
&lt;h1 id="can-run-ollama-coding-model-in-phone"&gt;Can run ollama coding model in phone&lt;/h1&gt;
&lt;p&gt;Yes, you can &lt;strong&gt;run Ollama‑style coding models on your phone&lt;/strong&gt;, but there are &lt;strong&gt;two main ways&lt;/strong&gt;:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Run Ollama directly on Android&lt;/strong&gt; (via Termux / Linux layer).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Run Ollama on a server (PC/VPS) and talk to it from a mobile Ollama client&lt;/strong&gt;.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Below is a practical breakdown for coding‑use.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id="1-run-ollama-coding-models-directly-on-android-phone"&gt;1. Run Ollama coding models directly on Android (phone)&lt;/h3&gt;
&lt;p&gt;If your phone has a &lt;strong&gt;modern chip&lt;/strong&gt; (e.g., Snapdragon 8 series, Exynos 2400, etc.) and &lt;strong&gt;8–12 GB+ RAM&lt;/strong&gt;, you can run small‑to‑medium coding‑oriented models locally.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;How it’s done&lt;/strong&gt;:
&lt;ul&gt;
&lt;li&gt;Install &lt;strong&gt;Termux&lt;/strong&gt; (Linux environment on Android, usually from F‑Droid or GitHub, not Play Store).&lt;sup id="fnref:129"&gt;&lt;a href="#fn:129" class="footnote-ref" role="doc-noteref"&gt;129&lt;/a&gt;&lt;/sup&gt;&lt;sup id="fnref:130"&gt;&lt;a href="#fn:130" class="footnote-ref" role="doc-noteref"&gt;130&lt;/a&gt;&lt;/sup&gt;&lt;/li&gt;
&lt;li&gt;In Termux, install Ollama:&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;pkg install ollama
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;pre&gt;&lt;code&gt;- Pull a coding‑friendly model:
&lt;/code&gt;&lt;/pre&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;ollama pull codellama:7b
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;ollama run codellama:7b
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;You can also try &lt;code&gt;qwen:7b&lt;/code&gt;, &lt;code&gt;gemma2:7b&lt;/code&gt;, or &lt;code&gt;phi‑3:mini&lt;/code&gt; for lighter coding‑style models.&lt;sup id="fnref:131"&gt;&lt;a href="#fn:131" class="footnote-ref" role="doc-noteref"&gt;131&lt;/a&gt;&lt;/sup&gt;&lt;sup id="fnref:132"&gt;&lt;a href="#fn:132" class="footnote-ref" role="doc-noteref"&gt;132&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Performance&lt;/strong&gt;:
&lt;ul&gt;
&lt;li&gt;7 B models run &lt;strong&gt;usable but slow&lt;/strong&gt; on most phones; expect ~1–3 tokens/sec on not‑top‑end devices.&lt;sup id="fnref1:132"&gt;&lt;a href="#fn:132" class="footnote-ref" role="doc-noteref"&gt;132&lt;/a&gt;&lt;/sup&gt;&lt;sup id="fnref1:131"&gt;&lt;a href="#fn:131" class="footnote-ref" role="doc-noteref"&gt;131&lt;/a&gt;&lt;/sup&gt;&lt;/li&gt;
&lt;li&gt;Good for:
&lt;ul&gt;
&lt;li&gt;Small code fixes,&lt;/li&gt;
&lt;li&gt;Small refactors,&lt;/li&gt;
&lt;li&gt;Inline‑style help, not large‑file‑wide rewrites.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Tutorials&lt;/strong&gt;:
&lt;ul&gt;
&lt;li&gt;Several guides show this setup step‑by‑step for Android (e.g., “Run Llama‑family models on Android with Termux + Ollama”).&lt;sup id="fnref:133"&gt;&lt;a href="#fn:133" class="footnote-ref" role="doc-noteref"&gt;133&lt;/a&gt;&lt;/sup&gt;&lt;sup id="fnref2:131"&gt;&lt;a href="#fn:131" class="footnote-ref" role="doc-noteref"&gt;131&lt;/a&gt;&lt;/sup&gt;&lt;sup id="fnref2:132"&gt;&lt;a href="#fn:132" class="footnote-ref" role="doc-noteref"&gt;132&lt;/a&gt;&lt;/sup&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h3 id="2-use-a-mobile-ollama-client-plus-external-server"&gt;2. Use a mobile Ollama client plus external server&lt;/h3&gt;
&lt;p&gt;If running Ollama &lt;em&gt;on&lt;/em&gt; the phone is too heavy or battery‑draining, you can:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Host Ollama on your PC, home server, or VPS&lt;/strong&gt;, then&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Use a mobile Ollama‑client app&lt;/strong&gt; to chat with it.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="popular-android-apps"&gt;Popular Android apps&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Ollama AI Chat&lt;/strong&gt; (Google Play, requires Android 13+)
&lt;ul&gt;
&lt;li&gt;Connects to your Ollama server URL (e.g., &lt;code&gt;http://your‑laptop‑ip:11434&lt;/code&gt; or a tunnel URL).&lt;sup id="fnref:134"&gt;&lt;a href="#fn:134" class="footnote-ref" role="doc-noteref"&gt;134&lt;/a&gt;&lt;/sup&gt;&lt;/li&gt;
&lt;li&gt;Supports models like Llama, Mistral, CodeLlama, etc.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;MyOllama&lt;/strong&gt; (open‑source client, iOS/Android)
&lt;ul&gt;
&lt;li&gt;Connects to your Ollama‑hosted server; privacy‑oriented, no telemetry.&lt;sup id="fnref:135"&gt;&lt;a href="#fn:135" class="footnote-ref" role="doc-noteref"&gt;135&lt;/a&gt;&lt;/sup&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Custom / community Ollama‑for‑Android&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;GitHub apps like &lt;code&gt;ollama‑app‑for‑Android&lt;/code&gt; let you talk to your Ollama server from phone, even with image‑input models.&lt;sup id="fnref:136"&gt;&lt;a href="#fn:136" class="footnote-ref" role="doc-noteref"&gt;136&lt;/a&gt;&lt;/sup&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h3 id="3-practical-codingonphone-recommendation-for-you"&gt;3. Practical “coding‑on‑phone” recommendation for you&lt;/h3&gt;
&lt;p&gt;Given you already run Ollama on your office/home PC:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Best balance&lt;/strong&gt;:
&lt;ul&gt;
&lt;li&gt;Keep &lt;strong&gt;Ollama on PC or home server&lt;/strong&gt; (run &lt;code&gt;codellama:13b&lt;/code&gt;, &lt;code&gt;qwen:7b&lt;/code&gt;, &lt;code&gt;mistral:7b&lt;/code&gt; there).&lt;/li&gt;
&lt;li&gt;Use &lt;strong&gt;Cloudflare Tunnel / Pinggy&lt;/strong&gt; to expose it securely (e.g., &lt;code&gt;https://ollama.yourdomain.com&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;On your phone, install &lt;strong&gt;Ollama AI Chat&lt;/strong&gt; or &lt;strong&gt;MyOllama&lt;/strong&gt; and point it at that URL.&lt;sup id="fnref:137"&gt;&lt;a href="#fn:137" class="footnote-ref" role="doc-noteref"&gt;137&lt;/a&gt;&lt;/sup&gt;&lt;sup id="fnref1:135"&gt;&lt;a href="#fn:135" class="footnote-ref" role="doc-noteref"&gt;135&lt;/a&gt;&lt;/sup&gt;&lt;sup id="fnref1:134"&gt;&lt;a href="#fn:134" class="footnote-ref" role="doc-noteref"&gt;134&lt;/a&gt;&lt;/sup&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Only run Ollama on the phone&lt;/strong&gt; if:
&lt;ul&gt;
&lt;li&gt;You want &lt;strong&gt;offline‑only coding help&lt;/strong&gt; (e.g., on a train or rural area).&lt;/li&gt;
&lt;li&gt;You’re okay with slower 7‑B coding models and higher battery use.&lt;sup id="fnref3:131"&gt;&lt;a href="#fn:131" class="footnote-ref" role="doc-noteref"&gt;131&lt;/a&gt;&lt;/sup&gt;&lt;sup id="fnref3:132"&gt;&lt;a href="#fn:132" class="footnote-ref" role="doc-noteref"&gt;132&lt;/a&gt;&lt;/sup&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;p&gt;If you tell your &lt;strong&gt;phone model / RAM&lt;/strong&gt; and whether you prefer &lt;strong&gt;“offline on phone”&lt;/strong&gt; or &lt;strong&gt;“server + client”&lt;/strong&gt;, I can pick you one exact model (&lt;code&gt;codellama:x&lt;/code&gt;, &lt;code&gt;qwen:x&lt;/code&gt;, etc.) plus a tailored command + app setup for your stack.
&lt;span style="display:none"&gt;&lt;sup id="fnref:138"&gt;&lt;a href="#fn:138" class="footnote-ref" role="doc-noteref"&gt;138&lt;/a&gt;&lt;/sup&gt;&lt;sup id="fnref:139"&gt;&lt;a href="#fn:139" class="footnote-ref" role="doc-noteref"&gt;139&lt;/a&gt;&lt;/sup&gt;&lt;/span&gt;&lt;/p&gt;
&lt;div align="center"&gt;⁂&lt;/div&gt;
&lt;div class="footnotes" role="doc-endnotes"&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id="fn:1"&gt;
&lt;p&gt;&lt;a href="https://www.inexture.ai/blog/best-ai-model-for-coding-developers/" target="_blank" rel="noopener"&gt;https://www.inexture.ai/blog/best-ai-model-for-coding-developers/&lt;/a&gt;&amp;#160;&lt;a href="#fnref:1" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&amp;#160;&lt;a href="#fnref1:1" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&amp;#160;&lt;a href="#fnref2:1" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&amp;#160;&lt;a href="#fnref3:1" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:2"&gt;
&lt;p&gt;&lt;a href="https://www.faros.ai/blog/best-ai-model-for-coding-2026" target="_blank" rel="noopener"&gt;https://www.faros.ai/blog/best-ai-model-for-coding-2026&lt;/a&gt;&amp;#160;&lt;a href="#fnref:2" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&amp;#160;&lt;a href="#fnref1:2" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&amp;#160;&lt;a href="#fnref2:2" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&amp;#160;&lt;a href="#fnref3:2" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&amp;#160;&lt;a href="#fnref4:2" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&amp;#160;&lt;a href="#fnref5:2" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&amp;#160;&lt;a href="#fnref6:2" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&amp;#160;&lt;a href="#fnref7:2" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:3"&gt;
&lt;p&gt;&lt;a href="https://keymakr.com/blog/best-coding-llms-2026-top-ai-models-ranked/" target="_blank" rel="noopener"&gt;https://keymakr.com/blog/best-coding-llms-2026-top-ai-models-ranked/&lt;/a&gt;&amp;#160;&lt;a href="#fnref:3" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&amp;#160;&lt;a href="#fnref1:3" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&amp;#160;&lt;a href="#fnref2:3" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&amp;#160;&lt;a href="#fnref3:3" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&amp;#160;&lt;a href="#fnref4:3" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&amp;#160;&lt;a href="#fnref5:3" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:4"&gt;
&lt;p&gt;&lt;a href="https://codingscape.com/blog/best-llms-for-coding-developer-favorites" target="_blank" rel="noopener"&gt;https://codingscape.com/blog/best-llms-for-coding-developer-favorites&lt;/a&gt;&amp;#160;&lt;a href="#fnref:4" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&amp;#160;&lt;a href="#fnref1:4" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&amp;#160;&lt;a href="#fnref2:4" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&amp;#160;&lt;a href="#fnref3:4" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&amp;#160;&lt;a href="#fnref4:4" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&amp;#160;&lt;a href="#fnref5:4" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:5"&gt;
&lt;p&gt;&lt;a href="https://www.reddit.com/r/LocalLLaMA/comments/1nhx3jp/whats_the_most_costeffective_and_best_ai_model/" target="_blank" rel="noopener"&gt;https://www.reddit.com/r/LocalLLaMA/comments/1nhx3jp/whats_the_most_costeffective_and_best_ai_model/&lt;/a&gt;&amp;#160;&lt;a href="#fnref:5" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:6"&gt;
&lt;p&gt;&lt;a href="https://emergent.sh/learn/best-ai-models-for-coding" target="_blank" rel="noopener"&gt;https://emergent.sh/learn/best-ai-models-for-coding&lt;/a&gt;&amp;#160;&lt;a href="#fnref:6" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:7"&gt;
&lt;p&gt;&lt;a href="https://www.reddit.com/r/GithubCopilot/comments/1nhju40/what_is_the_best_ai_engine_for_programming_in/" target="_blank" rel="noopener"&gt;https://www.reddit.com/r/GithubCopilot/comments/1nhju40/what_is_the_best_ai_engine_for_programming_in/&lt;/a&gt;&amp;#160;&lt;a href="#fnref:7" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:8"&gt;
&lt;p&gt;&lt;a href="https://www.qodo.ai/blog/best-ai-coding-assistant-tools/" target="_blank" rel="noopener"&gt;https://www.qodo.ai/blog/best-ai-coding-assistant-tools/&lt;/a&gt;&amp;#160;&lt;a href="#fnref:8" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:9"&gt;
&lt;p&gt;&lt;a href="https://onyx.app/best-llm-for-coding" target="_blank" rel="noopener"&gt;https://onyx.app/best-llm-for-coding&lt;/a&gt;&amp;#160;&lt;a href="#fnref:9" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:10"&gt;
&lt;p&gt;&lt;a href="https://axify.io/blog/the-best-ai-coding-assistants-a-full-comparison-of-17-tools" target="_blank" rel="noopener"&gt;https://axify.io/blog/the-best-ai-coding-assistants-a-full-comparison-of-17-tools&lt;/a&gt;&amp;#160;&lt;a href="#fnref:10" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:11"&gt;
&lt;p&gt;&lt;a href="https://admix.software/blog/best-free-ai-chatbots" target="_blank" rel="noopener"&gt;https://admix.software/blog/best-free-ai-chatbots&lt;/a&gt;&amp;#160;&lt;a href="#fnref:11" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&amp;#160;&lt;a href="#fnref1:11" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&amp;#160;&lt;a href="#fnref2:11" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&amp;#160;&lt;a href="#fnref3:11" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:12"&gt;
&lt;p&gt;&lt;a href="https://github.com/inmve/free-ai-coding" target="_blank" rel="noopener"&gt;https://github.com/inmve/free-ai-coding&lt;/a&gt;&amp;#160;&lt;a href="#fnref:12" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&amp;#160;&lt;a href="#fnref1:12" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&amp;#160;&lt;a href="#fnref2:12" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&amp;#160;&lt;a href="#fnref3:12" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&amp;#160;&lt;a href="#fnref4:12" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&amp;#160;&lt;a href="#fnref5:12" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:13"&gt;
&lt;p&gt;&lt;a href="https://localaimaster.com/blog/free-local-ai-models" target="_blank" rel="noopener"&gt;https://localaimaster.com/blog/free-local-ai-models&lt;/a&gt;&amp;#160;&lt;a href="#fnref:13" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&amp;#160;&lt;a href="#fnref1:13" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&amp;#160;&lt;a href="#fnref2:13" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&amp;#160;&lt;a href="#fnref3:13" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&amp;#160;&lt;a href="#fnref4:13" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&amp;#160;&lt;a href="#fnref5:13" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&amp;#160;&lt;a href="#fnref6:13" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&amp;#160;&lt;a href="#fnref7:13" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:14"&gt;
&lt;p&gt;&lt;a href="https://www.hakunamatatatech.com/our-resources/blog/local-llm-for-coding" target="_blank" rel="noopener"&gt;https://www.hakunamatatatech.com/our-resources/blog/local-llm-for-coding&lt;/a&gt;&amp;#160;&lt;a href="#fnref:14" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&amp;#160;&lt;a href="#fnref1:14" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&amp;#160;&lt;a href="#fnref2:14" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&amp;#160;&lt;a href="#fnref3:14" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&amp;#160;&lt;a href="#fnref4:14" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:15"&gt;
&lt;p&gt;&lt;a href="https://www.glbgpt.com/hub/gemini-3-pro-free-limit-2025/" target="_blank" rel="noopener"&gt;https://www.glbgpt.com/hub/gemini-3-pro-free-limit-2025/&lt;/a&gt;&amp;#160;&lt;a href="#fnref:15" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&amp;#160;&lt;a href="#fnref1:15" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:16"&gt;
&lt;p&gt;&lt;a href="https://www.cosmicjs.com/blog/best-ai-for-developers-claude-vs-gpt-vs-gemini-technical-comparison-2026" target="_blank" rel="noopener"&gt;https://www.cosmicjs.com/blog/best-ai-for-developers-claude-vs-gpt-vs-gemini-technical-comparison-2026&lt;/a&gt;&amp;#160;&lt;a href="#fnref:16" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&amp;#160;&lt;a href="#fnref1:16" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&amp;#160;&lt;a href="#fnref2:16" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:17"&gt;
&lt;p&gt;&lt;a href="https://aitools2026.com" target="_blank" rel="noopener"&gt;https://aitools2026.com&lt;/a&gt;&amp;#160;&lt;a href="#fnref:17" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&amp;#160;&lt;a href="#fnref1:17" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:18"&gt;
&lt;p&gt;&lt;a href="https://www.reddit.com/r/Anthropic/comments/1mu16mu/claude_pro_usage_limits_got_kicked_out_after/" target="_blank" rel="noopener"&gt;https://www.reddit.com/r/Anthropic/comments/1mu16mu/claude_pro_usage_limits_got_kicked_out_after/&lt;/a&gt;&amp;#160;&lt;a href="#fnref:18" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:19"&gt;
&lt;p&gt;&lt;a href="https://www.reddit.com/r/vibecoding/comments/1q5nua1/models_in_2026_claude_vs_gemini_vs_chatgpt/" target="_blank" rel="noopener"&gt;https://www.reddit.com/r/vibecoding/comments/1q5nua1/models_in_2026_claude_vs_gemini_vs_chatgpt/&lt;/a&gt;&amp;#160;&lt;a href="#fnref:19" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:20"&gt;
&lt;p&gt;&lt;a href="https://www.youtube.com/watch?v=er3ghzidUnM" target="_blank" rel="noopener"&gt;https://www.youtube.com/watch?v=er3ghzidUnM&lt;/a&gt;&amp;#160;&lt;a href="#fnref:20" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:21"&gt;
&lt;p&gt;&lt;a href="https://admix.software/blog/best-free-ai-chatbots" target="_blank" rel="noopener"&gt;https://admix.software/blog/best-free-ai-chatbots&lt;/a&gt;&amp;#160;&lt;a href="#fnref:21" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&amp;#160;&lt;a href="#fnref1:21" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&amp;#160;&lt;a href="#fnref2:21" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:22"&gt;
&lt;p&gt;&lt;a href="https://www.cosmicjs.com/blog/best-ai-for-developers-claude-vs-gpt-vs-gemini-technical-comparison-2026" target="_blank" rel="noopener"&gt;https://www.cosmicjs.com/blog/best-ai-for-developers-claude-vs-gpt-vs-gemini-technical-comparison-2026&lt;/a&gt;&amp;#160;&lt;a href="#fnref:22" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&amp;#160;&lt;a href="#fnref1:22" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&amp;#160;&lt;a href="#fnref2:22" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&amp;#160;&lt;a href="#fnref3:22" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&amp;#160;&lt;a href="#fnref4:22" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&amp;#160;&lt;a href="#fnref5:22" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&amp;#160;&lt;a href="#fnref6:22" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&amp;#160;&lt;a href="#fnref7:22" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&amp;#160;&lt;a href="#fnref8:22" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&amp;#160;&lt;a href="#fnref9:22" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&amp;#160;&lt;a href="#fnref10:22" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&amp;#160;&lt;a href="#fnref11:22" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&amp;#160;&lt;a href="#fnref12:22" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:23"&gt;
&lt;p&gt;&lt;a href="https://github.com/inmve/free-ai-coding" target="_blank" rel="noopener"&gt;https://github.com/inmve/free-ai-coding&lt;/a&gt;&amp;#160;&lt;a href="#fnref:23" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&amp;#160;&lt;a href="#fnref1:23" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&amp;#160;&lt;a href="#fnref2:23" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&amp;#160;&lt;a href="#fnref3:23" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&amp;#160;&lt;a href="#fnref4:23" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&amp;#160;&lt;a href="#fnref5:23" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&amp;#160;&lt;a href="#fnref6:23" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&amp;#160;&lt;a href="#fnref7:23" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:24"&gt;
&lt;p&gt;&lt;a href="https://localaimaster.com/blog/free-local-ai-models" target="_blank" rel="noopener"&gt;https://localaimaster.com/blog/free-local-ai-models&lt;/a&gt;&amp;#160;&lt;a href="#fnref:24" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&amp;#160;&lt;a href="#fnref1:24" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&amp;#160;&lt;a href="#fnref2:24" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:25"&gt;
&lt;p&gt;&lt;a href="https://www.hakunamatatatech.com/our-resources/blog/local-llm-for-coding" target="_blank" rel="noopener"&gt;https://www.hakunamatatatech.com/our-resources/blog/local-llm-for-coding&lt;/a&gt;&amp;#160;&lt;a href="#fnref:25" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&amp;#160;&lt;a href="#fnref1:25" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&amp;#160;&lt;a href="#fnref2:25" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&amp;#160;&lt;a href="#fnref3:25" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&amp;#160;&lt;a href="#fnref4:25" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&amp;#160;&lt;a href="#fnref5:25" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&amp;#160;&lt;a href="#fnref6:25" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:26"&gt;
&lt;p&gt;&lt;a href="https://www.reddit.com/r/Anthropic/comments/1mu16mu/claude_pro_usage_limits_got_kicked_out_after/" target="_blank" rel="noopener"&gt;https://www.reddit.com/r/Anthropic/comments/1mu16mu/claude_pro_usage_limits_got_kicked_out_after/&lt;/a&gt;&amp;#160;&lt;a href="#fnref:26" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&amp;#160;&lt;a href="#fnref1:26" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:27"&gt;
&lt;p&gt;&lt;a href="https://www.glbgpt.com/hub/gemini-3-pro-free-limit-2025/" target="_blank" rel="noopener"&gt;https://www.glbgpt.com/hub/gemini-3-pro-free-limit-2025/&lt;/a&gt;&amp;#160;&lt;a href="#fnref:27" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&amp;#160;&lt;a href="#fnref1:27" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:28"&gt;
&lt;p&gt;&lt;a href="https://docs.ollama.com/cloud" target="_blank" rel="noopener"&gt;https://docs.ollama.com/cloud&lt;/a&gt;&amp;#160;&lt;a href="#fnref:28" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&amp;#160;&lt;a href="#fnref1:28" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:29"&gt;
&lt;p&gt;&lt;a href="https://dev.to/alichherawalla/how-to-use-ollama-from-your-android-phone-in-2026-auto-discovery-zero-setup-35li" target="_blank" rel="noopener"&gt;https://dev.to/alichherawalla/how-to-use-ollama-from-your-android-phone-in-2026-auto-discovery-zero-setup-35li&lt;/a&gt;&amp;#160;&lt;a href="#fnref:29" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&amp;#160;&lt;a href="#fnref1:29" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&amp;#160;&lt;a href="#fnref2:29" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:30"&gt;
&lt;p&gt;&lt;a href="https://dev.to/lightningdev123/access-your-local-ollama-models-from-anywhere-port-11434-made-simple-2a79" target="_blank" rel="noopener"&gt;https://dev.to/lightningdev123/access-your-local-ollama-models-from-anywhere-port-11434-made-simple-2a79&lt;/a&gt;&amp;#160;&lt;a href="#fnref:30" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&amp;#160;&lt;a href="#fnref1:30" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&amp;#160;&lt;a href="#fnref2:30" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&amp;#160;&lt;a href="#fnref3:30" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:31"&gt;
&lt;p&gt;&lt;a href="https://admix.software/blog/best-free-ai-chatbots" target="_blank" rel="noopener"&gt;https://admix.software/blog/best-free-ai-chatbots&lt;/a&gt;&amp;#160;&lt;a href="#fnref:31" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&amp;#160;&lt;a href="#fnref1:31" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&amp;#160;&lt;a href="#fnref2:31" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&amp;#160;&lt;a href="#fnref3:31" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:32"&gt;
&lt;p&gt;&lt;a href="https://github.com/inmve/free-ai-coding" target="_blank" rel="noopener"&gt;https://github.com/inmve/free-ai-coding&lt;/a&gt;&amp;#160;&lt;a href="#fnref:32" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:33"&gt;
&lt;p&gt;&lt;a href="https://www.cosmicjs.com/blog/best-ai-for-developers-claude-vs-gpt-vs-gemini-technical-comparison-2026" target="_blank" rel="noopener"&gt;https://www.cosmicjs.com/blog/best-ai-for-developers-claude-vs-gpt-vs-gemini-technical-comparison-2026&lt;/a&gt;&amp;#160;&lt;a href="#fnref:33" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:34"&gt;
&lt;p&gt;&lt;a href="https://www.glbgpt.com/hub/gemini-3-pro-free-limit-2025/" target="_blank" rel="noopener"&gt;https://www.glbgpt.com/hub/gemini-3-pro-free-limit-2025/&lt;/a&gt;&amp;#160;&lt;a href="#fnref:34" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:35"&gt;
&lt;p&gt;&lt;a href="https://ollama.com" target="_blank" rel="noopener"&gt;https://ollama.com&lt;/a&gt;&amp;#160;&lt;a href="#fnref:35" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:36"&gt;
&lt;p&gt;&lt;a href="https://play.google.com/store/apps/details?id=com.lmsa.app" target="_blank" rel="noopener"&gt;https://play.google.com/store/apps/details?id=com.lmsa.app&lt;/a&gt;&amp;amp;hl=en_US&amp;#160;&lt;a href="#fnref:36" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:37"&gt;
&lt;p&gt;&lt;a href="https://www.reddit.com/r/ollama/comments/1h2allh/a_free_opensource_mobile_client_for_ollama_llms/" target="_blank" rel="noopener"&gt;https://www.reddit.com/r/ollama/comments/1h2allh/a_free_opensource_mobile_client_for_ollama_llms/&lt;/a&gt;&amp;#160;&lt;a href="#fnref:37" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:38"&gt;
&lt;p&gt;&lt;a href="https://ollama.com/blog/new-app" target="_blank" rel="noopener"&gt;https://ollama.com/blog/new-app&lt;/a&gt;&amp;#160;&lt;a href="#fnref:38" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:39"&gt;
&lt;p&gt;&lt;a href="https://www.reddit.com/r/ollama/comments/1mq5pag/ollama_but_for_mobile_with_a_cloud_fallback/" target="_blank" rel="noopener"&gt;https://www.reddit.com/r/ollama/comments/1mq5pag/ollama_but_for_mobile_with_a_cloud_fallback/&lt;/a&gt;&amp;#160;&lt;a href="#fnref:39" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:40"&gt;
&lt;p&gt;&lt;a href="https://github.com/SMuflhi/ollama-app-for-Android-" target="_blank" rel="noopener"&gt;https://github.com/SMuflhi/ollama-app-for-Android-&lt;/a&gt;&amp;#160;&lt;a href="#fnref:40" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:41"&gt;
&lt;p&gt;&lt;a href="https://www.youtube.com/watch?v=GBNSx1OM74w" target="_blank" rel="noopener"&gt;https://www.youtube.com/watch?v=GBNSx1OM74w&lt;/a&gt;&amp;#160;&lt;a href="#fnref:41" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:42"&gt;
&lt;p&gt;&lt;a href="https://www.reddit.com/r/ollama/comments/1kobsv7/web_simple_and_freeollama_ui/" target="_blank" rel="noopener"&gt;https://www.reddit.com/r/ollama/comments/1kobsv7/web_simple_and_freeollama_ui/&lt;/a&gt;&amp;#160;&lt;a href="#fnref:42" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:43"&gt;
&lt;p&gt;&lt;a href="https://www.youtube.com/watch?v=dY6TDNo2chI" target="_blank" rel="noopener"&gt;https://www.youtube.com/watch?v=dY6TDNo2chI&lt;/a&gt;&amp;#160;&lt;a href="#fnref:43" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:44"&gt;
&lt;p&gt;&lt;a href="https://ollama.com" target="_blank" rel="noopener"&gt;https://ollama.com&lt;/a&gt;&amp;#160;&lt;a href="#fnref:44" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:45"&gt;
&lt;p&gt;&lt;a href="https://lobehub.com/blog/5-ollama-web-ui-recommendation" target="_blank" rel="noopener"&gt;https://lobehub.com/blog/5-ollama-web-ui-recommendation&lt;/a&gt;&amp;#160;&lt;a href="#fnref:45" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:46"&gt;
&lt;p&gt;&lt;a href="https://github.com/open-webui/open-webui" target="_blank" rel="noopener"&gt;https://github.com/open-webui/open-webui&lt;/a&gt;&amp;#160;&lt;a href="#fnref:46" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:47"&gt;
&lt;p&gt;&lt;a href="https://www.youtube.com/watch?v=buiqRD4_Owc" target="_blank" rel="noopener"&gt;https://www.youtube.com/watch?v=buiqRD4_Owc&lt;/a&gt;&amp;#160;&lt;a href="#fnref:47" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:48"&gt;
&lt;p&gt;&lt;a href="https://www.reddit.com/r/ollama/comments/1ms8ghv/i_made_a_noinstallneeded_webgui_for_ollama/" target="_blank" rel="noopener"&gt;https://www.reddit.com/r/ollama/comments/1ms8ghv/i_made_a_noinstallneeded_webgui_for_ollama/&lt;/a&gt;&amp;#160;&lt;a href="#fnref:48" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:49"&gt;
&lt;p&gt;&lt;a href="https://towardsdatascience.com/run-claude-code-for-free-with-local-and-cloud-models-from-ollama/" target="_blank" rel="noopener"&gt;https://towardsdatascience.com/run-claude-code-for-free-with-local-and-cloud-models-from-ollama/&lt;/a&gt;&amp;#160;&lt;a href="#fnref:49" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:50"&gt;
&lt;p&gt;&lt;a href="https://itsfoss.com/ollama-web-ui-tools/" target="_blank" rel="noopener"&gt;https://itsfoss.com/ollama-web-ui-tools/&lt;/a&gt;&amp;#160;&lt;a href="#fnref:50" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:51"&gt;
&lt;p&gt;&lt;a href="https://thoughtbot.com/blog/how-to-use-open-source-LLM-model-locally" target="_blank" rel="noopener"&gt;https://thoughtbot.com/blog/how-to-use-open-source-LLM-model-locally&lt;/a&gt;&amp;#160;&lt;a href="#fnref:51" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:52"&gt;
&lt;p&gt;&lt;a href="https://www.reddit.com/r/github/comments/1heov0w/hosting_ollama_in_github_pages/" target="_blank" rel="noopener"&gt;https://www.reddit.com/r/github/comments/1heov0w/hosting_ollama_in_github_pages/&lt;/a&gt;&amp;#160;&lt;a href="#fnref:52" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&amp;#160;&lt;a href="#fnref1:52" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&amp;#160;&lt;a href="#fnref2:52" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:53"&gt;
&lt;p&gt;&lt;a href="https://github.com/BlackTechX011/Ollama-in-GitHub-Codespaces" target="_blank" rel="noopener"&gt;https://github.com/BlackTechX011/Ollama-in-GitHub-Codespaces&lt;/a&gt;&amp;#160;&lt;a href="#fnref:53" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&amp;#160;&lt;a href="#fnref1:53" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&amp;#160;&lt;a href="#fnref2:53" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&amp;#160;&lt;a href="#fnref3:53" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&amp;#160;&lt;a href="#fnref4:53" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&amp;#160;&lt;a href="#fnref5:53" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:54"&gt;
&lt;p&gt;&lt;a href="https://techcommunity.microsoft.com/blog/educatordeveloperblog/try-out-slms-with-ollama-in-github-codespaces/4171837" target="_blank" rel="noopener"&gt;https://techcommunity.microsoft.com/blog/educatordeveloperblog/try-out-slms-with-ollama-in-github-codespaces/4171837&lt;/a&gt;&amp;#160;&lt;a href="#fnref:54" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&amp;#160;&lt;a href="#fnref1:54" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&amp;#160;&lt;a href="#fnref2:54" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&amp;#160;&lt;a href="#fnref3:54" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&amp;#160;&lt;a href="#fnref4:54" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&amp;#160;&lt;a href="#fnref5:54" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&amp;#160;&lt;a href="#fnref6:54" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&amp;#160;&lt;a href="#fnref7:54" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&amp;#160;&lt;a href="#fnref8:54" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:55"&gt;
&lt;p&gt;&lt;a href="https://www.linkedin.com/posts/douglasastarnes_ollama-ai-llm-activity-7307415482544832512-0f96" target="_blank" rel="noopener"&gt;https://www.linkedin.com/posts/douglasastarnes_ollama-ai-llm-activity-7307415482544832512-0f96&lt;/a&gt;&amp;#160;&lt;a href="#fnref:55" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&amp;#160;&lt;a href="#fnref1:55" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&amp;#160;&lt;a href="#fnref2:55" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&amp;#160;&lt;a href="#fnref3:55" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&amp;#160;&lt;a href="#fnref4:55" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:56"&gt;
&lt;p&gt;&lt;a href="https://www.youtube.com/watch?v=Wl9lOcHogMQ" target="_blank" rel="noopener"&gt;https://www.youtube.com/watch?v=Wl9lOcHogMQ&lt;/a&gt;&amp;#160;&lt;a href="#fnref:56" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:57"&gt;
&lt;p&gt;&lt;a href="https://github.com/open-webui/open-webui" target="_blank" rel="noopener"&gt;https://github.com/open-webui/open-webui&lt;/a&gt;&amp;#160;&lt;a href="#fnref:57" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:58"&gt;
&lt;p&gt;&lt;a href="https://github.com/mfoud444/ollamafreeapi" target="_blank" rel="noopener"&gt;https://github.com/mfoud444/ollamafreeapi&lt;/a&gt;&amp;#160;&lt;a href="#fnref:58" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:59"&gt;
&lt;p&gt;&lt;a href="https://github.com/fly-apps/self-host-ollama" target="_blank" rel="noopener"&gt;https://github.com/fly-apps/self-host-ollama&lt;/a&gt;&amp;#160;&lt;a href="#fnref:59" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:60"&gt;
&lt;p&gt;&lt;a href="https://docs.ollama.com/integrations/vscode" target="_blank" rel="noopener"&gt;https://docs.ollama.com/integrations/vscode&lt;/a&gt;&amp;#160;&lt;a href="#fnref:60" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:61"&gt;
&lt;p&gt;&lt;a href="https://github.com/ollama/ollama" target="_blank" rel="noopener"&gt;https://github.com/ollama/ollama&lt;/a&gt;&amp;#160;&lt;a href="#fnref:61" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:62"&gt;
&lt;p&gt;&lt;a href="https://www.youtube.com/watch?v=_hhjh5j4iy4" target="_blank" rel="noopener"&gt;https://www.youtube.com/watch?v=_hhjh5j4iy4&lt;/a&gt;&amp;#160;&lt;a href="#fnref:62" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:63"&gt;
&lt;p&gt;&lt;a href="https://cognio.so/clawdbot/self-hosting" target="_blank" rel="noopener"&gt;https://cognio.so/clawdbot/self-hosting&lt;/a&gt;&amp;#160;&lt;a href="#fnref:63" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&amp;#160;&lt;a href="#fnref1:63" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&amp;#160;&lt;a href="#fnref2:63" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&amp;#160;&lt;a href="#fnref3:63" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:64"&gt;
&lt;p&gt;&lt;a href="https://railway.com/deploy/ollama-or-self-host-open-source-llms" target="_blank" rel="noopener"&gt;https://railway.com/deploy/ollama-or-self-host-open-source-llms&lt;/a&gt;&amp;#160;&lt;a href="#fnref:64" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&amp;#160;&lt;a href="#fnref1:64" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&amp;#160;&lt;a href="#fnref2:64" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&amp;#160;&lt;a href="#fnref3:64" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:65"&gt;
&lt;p&gt;&lt;a href="https://www.koyeb.com/deploy/ollama" target="_blank" rel="noopener"&gt;https://www.koyeb.com/deploy/ollama&lt;/a&gt;&amp;#160;&lt;a href="#fnref:65" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:66"&gt;
&lt;p&gt;&lt;a href="https://www.kamatera.com/applications/ollama/" target="_blank" rel="noopener"&gt;https://www.kamatera.com/applications/ollama/&lt;/a&gt;&amp;#160;&lt;a href="#fnref:66" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:67"&gt;
&lt;p&gt;&lt;a href="https://github.com/BlackTechX011/Ollama-in-GitHub-Codespaces" target="_blank" rel="noopener"&gt;https://github.com/BlackTechX011/Ollama-in-GitHub-Codespaces&lt;/a&gt;&amp;#160;&lt;a href="#fnref:67" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:68"&gt;
&lt;p&gt;&lt;a href="https://techcommunity.microsoft.com/blog/educatordeveloperblog/try-out-slms-with-ollama-in-github-codespaces/4171837" target="_blank" rel="noopener"&gt;https://techcommunity.microsoft.com/blog/educatordeveloperblog/try-out-slms-with-ollama-in-github-codespaces/4171837&lt;/a&gt;&amp;#160;&lt;a href="#fnref:68" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:69"&gt;
&lt;p&gt;&lt;a href="https://github.com/mfoud444/ollamafreeapi" target="_blank" rel="noopener"&gt;https://github.com/mfoud444/ollamafreeapi&lt;/a&gt;&amp;#160;&lt;a href="#fnref:69" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:70"&gt;
&lt;p&gt;&lt;a href="https://towardsdatascience.com/run-claude-code-for-free-with-local-and-cloud-models-from-ollama/" target="_blank" rel="noopener"&gt;https://towardsdatascience.com/run-claude-code-for-free-with-local-and-cloud-models-from-ollama/&lt;/a&gt;&amp;#160;&lt;a href="#fnref:70" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&amp;#160;&lt;a href="#fnref1:70" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:71"&gt;
&lt;p&gt;&lt;a href="https://dev.to/lightningdev123/access-your-local-ollama-models-from-anywhere-port-11434-made-simple-2a79" target="_blank" rel="noopener"&gt;https://dev.to/lightningdev123/access-your-local-ollama-models-from-anywhere-port-11434-made-simple-2a79&lt;/a&gt;&amp;#160;&lt;a href="#fnref:71" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&amp;#160;&lt;a href="#fnref1:71" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:72"&gt;
&lt;p&gt;&lt;a href="https://thoughtbot.com/blog/how-to-use-open-source-LLM-model-locally" target="_blank" rel="noopener"&gt;https://thoughtbot.com/blog/how-to-use-open-source-LLM-model-locally&lt;/a&gt;&amp;#160;&lt;a href="#fnref:72" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:73"&gt;
&lt;p&gt;&lt;a href="https://github.com/open-webui/open-webui" target="_blank" rel="noopener"&gt;https://github.com/open-webui/open-webui&lt;/a&gt;&amp;#160;&lt;a href="#fnref:73" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:74"&gt;
&lt;p&gt;&lt;a href="https://www.reddit.com/r/ollama/comments/1cbt5ur/where_to_host_ollama/" target="_blank" rel="noopener"&gt;https://www.reddit.com/r/ollama/comments/1cbt5ur/where_to_host_ollama/&lt;/a&gt;&amp;#160;&lt;a href="#fnref:74" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:75"&gt;
&lt;p&gt;&lt;a href="https://www.youtube.com/watch?v=SI8q9klAGZI" target="_blank" rel="noopener"&gt;https://www.youtube.com/watch?v=SI8q9klAGZI&lt;/a&gt;&amp;#160;&lt;a href="#fnref:75" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:76"&gt;
&lt;p&gt;&lt;a href="https://elest.io/open-source/ollama" target="_blank" rel="noopener"&gt;https://elest.io/open-source/ollama&lt;/a&gt;&amp;#160;&lt;a href="#fnref:76" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:77"&gt;
&lt;p&gt;&lt;a href="https://www.youtube.com/watch?v=dY6TDNo2chI" target="_blank" rel="noopener"&gt;https://www.youtube.com/watch?v=dY6TDNo2chI&lt;/a&gt;&amp;#160;&lt;a href="#fnref:77" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:78"&gt;
&lt;p&gt;&lt;a href="https://hostkey.com/services/ai-platform/ollama-server/" target="_blank" rel="noopener"&gt;https://hostkey.com/services/ai-platform/ollama-server/&lt;/a&gt;&amp;#160;&lt;a href="#fnref:78" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:79"&gt;
&lt;p&gt;&lt;a href="https://aident.ai/blog/how-to-expose-ollama-service-api-to-network" target="_blank" rel="noopener"&gt;https://aident.ai/blog/how-to-expose-ollama-service-api-to-network&lt;/a&gt;&amp;#160;&lt;a href="#fnref:79" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&amp;#160;&lt;a href="#fnref1:79" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&amp;#160;&lt;a href="#fnref2:79" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&amp;#160;&lt;a href="#fnref3:79" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:80"&gt;
&lt;p&gt;&lt;a href="https://github.com/open-webui/open-webui" target="_blank" rel="noopener"&gt;https://github.com/open-webui/open-webui&lt;/a&gt;&amp;#160;&lt;a href="#fnref:80" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:81"&gt;
&lt;p&gt;&lt;a href="https://dev.to/lightningdev123/access-your-local-ollama-models-from-anywhere-port-11434-made-simple-2a79" target="_blank" rel="noopener"&gt;https://dev.to/lightningdev123/access-your-local-ollama-models-from-anywhere-port-11434-made-simple-2a79&lt;/a&gt;&amp;#160;&lt;a href="#fnref:81" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&amp;#160;&lt;a href="#fnref1:81" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&amp;#160;&lt;a href="#fnref2:81" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:82"&gt;
&lt;p&gt;&lt;a href="https://dev.to/alichherawalla/how-to-use-ollama-from-your-android-phone-in-2026-auto-discovery-zero-setup-35li" target="_blank" rel="noopener"&gt;https://dev.to/alichherawalla/how-to-use-ollama-from-your-android-phone-in-2026-auto-discovery-zero-setup-35li&lt;/a&gt;&amp;#160;&lt;a href="#fnref:82" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&amp;#160;&lt;a href="#fnref1:82" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:83"&gt;
&lt;p&gt;&lt;a href="https://www.reddit.com/r/ollama/comments/1g7zz69/trying_to_connect_to_ollama_api_port_11434_from/" target="_blank" rel="noopener"&gt;https://www.reddit.com/r/ollama/comments/1g7zz69/trying_to_connect_to_ollama_api_port_11434_from/&lt;/a&gt;&amp;#160;&lt;a href="#fnref:83" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:84"&gt;
&lt;p&gt;&lt;a href="https://ericmjl.github.io/blog/2024/2/21/llamabot-with-ollama-on-my-home-virtual-private-network/" target="_blank" rel="noopener"&gt;https://ericmjl.github.io/blog/2024/2/21/llamabot-with-ollama-on-my-home-virtual-private-network/&lt;/a&gt;&amp;#160;&lt;a href="#fnref:84" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&amp;#160;&lt;a href="#fnref1:84" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:85"&gt;
&lt;p&gt;&lt;a href="https://www.reddit.com/r/LocalLLaMA/comments/1n7uocj/psa_make_sure_your_api_ports_arent_exposed_to_the/" target="_blank" rel="noopener"&gt;https://www.reddit.com/r/LocalLLaMA/comments/1n7uocj/psa_make_sure_your_api_ports_arent_exposed_to_the/&lt;/a&gt;&amp;#160;&lt;a href="#fnref:85" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&amp;#160;&lt;a href="#fnref1:85" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:86"&gt;
&lt;p&gt;&lt;a href="https://www.upguard.com/blog/understanding-and-securing-exposed-ollama-instances" target="_blank" rel="noopener"&gt;https://www.upguard.com/blog/understanding-and-securing-exposed-ollama-instances&lt;/a&gt;&amp;#160;&lt;a href="#fnref:86" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&amp;#160;&lt;a href="#fnref1:86" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:87"&gt;
&lt;p&gt;&lt;a href="https://kitemetric.com/blogs/remote-ollama-access-a-comprehensive-guide" target="_blank" rel="noopener"&gt;https://kitemetric.com/blogs/remote-ollama-access-a-comprehensive-guide&lt;/a&gt;&amp;#160;&lt;a href="#fnref:87" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:88"&gt;
&lt;p&gt;&lt;a href="https://www.youtube.com/watch?v=buiqRD4_Owc" target="_blank" rel="noopener"&gt;https://www.youtube.com/watch?v=buiqRD4_Owc&lt;/a&gt;&amp;#160;&lt;a href="#fnref:88" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:89"&gt;
&lt;p&gt;&lt;a href="https://play.google.com/store/apps/details?id=com.lmsa.app" target="_blank" rel="noopener"&gt;https://play.google.com/store/apps/details?id=com.lmsa.app&lt;/a&gt;&amp;amp;hl=en_US&amp;#160;&lt;a href="#fnref:89" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:90"&gt;
&lt;p&gt;&lt;a href="https://www.reddit.com/r/ollama/comments/1j2fygi/accessing_an_llm_across_the_home_network/" target="_blank" rel="noopener"&gt;https://www.reddit.com/r/ollama/comments/1j2fygi/accessing_an_llm_across_the_home_network/&lt;/a&gt;&amp;#160;&lt;a href="#fnref:90" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:91"&gt;
&lt;p&gt;&lt;a href="https://github.com/ollama/ollama/issues/8960" target="_blank" rel="noopener"&gt;https://github.com/ollama/ollama/issues/8960&lt;/a&gt;&amp;#160;&lt;a href="#fnref:91" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:92"&gt;
&lt;p&gt;&lt;a href="https://www.localcan.com/blog/ngrok-vs-cloudflare-tunnel-vs-localcan-speed-test-2025" target="_blank" rel="noopener"&gt;https://www.localcan.com/blog/ngrok-vs-cloudflare-tunnel-vs-localcan-speed-test-2025&lt;/a&gt;&amp;#160;&lt;a href="#fnref:92" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&amp;#160;&lt;a href="#fnref1:92" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&amp;#160;&lt;a href="#fnref2:92" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:93"&gt;
&lt;p&gt;&lt;a href="https://techpoint.africa/guide/best-ngrok-alternatives/" target="_blank" rel="noopener"&gt;https://techpoint.africa/guide/best-ngrok-alternatives/&lt;/a&gt;&amp;#160;&lt;a href="#fnref:93" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&amp;#160;&lt;a href="#fnref1:93" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&amp;#160;&lt;a href="#fnref2:93" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&amp;#160;&lt;a href="#fnref3:93" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&amp;#160;&lt;a href="#fnref4:93" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&amp;#160;&lt;a href="#fnref5:93" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:94"&gt;
&lt;p&gt;&lt;a href="https://portalzine.de/sick-of-ngrok-here-are-the-best-alternatives-in-2025/" target="_blank" rel="noopener"&gt;https://portalzine.de/sick-of-ngrok-here-are-the-best-alternatives-in-2025/&lt;/a&gt;&amp;#160;&lt;a href="#fnref:94" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&amp;#160;&lt;a href="#fnref1:94" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&amp;#160;&lt;a href="#fnref2:94" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&amp;#160;&lt;a href="#fnref3:94" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&amp;#160;&lt;a href="#fnref4:94" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&amp;#160;&lt;a href="#fnref5:94" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&amp;#160;&lt;a href="#fnref6:94" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&amp;#160;&lt;a href="#fnref7:94" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:95"&gt;
&lt;p&gt;&lt;a href="https://pinggy.io/blog/best_ngrok_alternatives/" target="_blank" rel="noopener"&gt;https://pinggy.io/blog/best_ngrok_alternatives/&lt;/a&gt;&amp;#160;&lt;a href="#fnref:95" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&amp;#160;&lt;a href="#fnref1:95" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:96"&gt;
&lt;p&gt;&lt;a href="https://dev.to/lightningdev123/top-10-cloudflare-tunnel-alternatives-in-2026-a-practical-guide-for-developers-2akg" target="_blank" rel="noopener"&gt;https://dev.to/lightningdev123/top-10-cloudflare-tunnel-alternatives-in-2026-a-practical-guide-for-developers-2akg&lt;/a&gt;&amp;#160;&lt;a href="#fnref:96" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&amp;#160;&lt;a href="#fnref1:96" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&amp;#160;&lt;a href="#fnref2:96" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:97"&gt;
&lt;p&gt;&lt;a href="https://pinggy.io/compare/pinggy-vs-ngrok/" target="_blank" rel="noopener"&gt;https://pinggy.io/compare/pinggy-vs-ngrok/&lt;/a&gt;&amp;#160;&lt;a href="#fnref:97" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:98"&gt;
&lt;p&gt;&lt;a href="https://www.reddit.com/r/admincraft/comments/1jqs5e6/looking_for_an_alternative_as_similar_and_good_as/" target="_blank" rel="noopener"&gt;https://www.reddit.com/r/admincraft/comments/1jqs5e6/looking_for_an_alternative_as_similar_and_good_as/&lt;/a&gt;&amp;#160;&lt;a href="#fnref:98" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:99"&gt;
&lt;p&gt;&lt;a href="https://pinggy.io/blog/best_cloudflare_tunnel_alternatives/" target="_blank" rel="noopener"&gt;https://pinggy.io/blog/best_cloudflare_tunnel_alternatives/&lt;/a&gt;&amp;#160;&lt;a href="#fnref:99" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:100"&gt;
&lt;p&gt;&lt;a href="https://dev.to/lightningdev123/the-best-ngrok-alternative-in-2025-meet-pinggy-4pne" target="_blank" rel="noopener"&gt;https://dev.to/lightningdev123/the-best-ngrok-alternative-in-2025-meet-pinggy-4pne&lt;/a&gt;&amp;#160;&lt;a href="#fnref:100" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:101"&gt;
&lt;p&gt;&lt;a href="https://www.salon.com/2026/02/12/best-free-vpns-for-2026-safe-reliable-and-truly-free-options/" target="_blank" rel="noopener"&gt;https://www.salon.com/2026/02/12/best-free-vpns-for-2026-safe-reliable-and-truly-free-options/&lt;/a&gt;&amp;#160;&lt;a href="#fnref:101" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:102"&gt;
&lt;p&gt;&lt;a href="https://www.localcan.com/blog/ngrok-vs-cloudflare-tunnel-vs-localcan-speed-test-2025" target="_blank" rel="noopener"&gt;https://www.localcan.com/blog/ngrok-vs-cloudflare-tunnel-vs-localcan-speed-test-2025&lt;/a&gt;&amp;#160;&lt;a href="#fnref:102" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&amp;#160;&lt;a href="#fnref1:102" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&amp;#160;&lt;a href="#fnref2:102" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&amp;#160;&lt;a href="#fnref3:102" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&amp;#160;&lt;a href="#fnref4:102" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&amp;#160;&lt;a href="#fnref5:102" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&amp;#160;&lt;a href="#fnref6:102" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:103"&gt;
&lt;p&gt;&lt;a href="https://pinggy.io/blog/best_ngrok_alternatives/" target="_blank" rel="noopener"&gt;https://pinggy.io/blog/best_ngrok_alternatives/&lt;/a&gt;&amp;#160;&lt;a href="#fnref:103" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&amp;#160;&lt;a href="#fnref1:103" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&amp;#160;&lt;a href="#fnref2:103" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&amp;#160;&lt;a href="#fnref3:103" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:104"&gt;
&lt;p&gt;&lt;a href="https://techpoint.africa/guide/best-ngrok-alternatives/" target="_blank" rel="noopener"&gt;https://techpoint.africa/guide/best-ngrok-alternatives/&lt;/a&gt;&amp;#160;&lt;a href="#fnref:104" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&amp;#160;&lt;a href="#fnref1:104" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&amp;#160;&lt;a href="#fnref2:104" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:105"&gt;
&lt;p&gt;&lt;a href="https://docs.ollama.com/faq" target="_blank" rel="noopener"&gt;https://docs.ollama.com/faq&lt;/a&gt;&amp;#160;&lt;a href="#fnref:105" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:106"&gt;
&lt;p&gt;&lt;a href="https://kitemetric.com/blogs/remote-ollama-access-a-comprehensive-guide" target="_blank" rel="noopener"&gt;https://kitemetric.com/blogs/remote-ollama-access-a-comprehensive-guide&lt;/a&gt;&amp;#160;&lt;a href="#fnref:106" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:107"&gt;
&lt;p&gt;&lt;a href="https://dev.to/alichherawalla/how-to-use-ollama-from-your-android-phone-in-2026-auto-discovery-zero-setup-35li" target="_blank" rel="noopener"&gt;https://dev.to/alichherawalla/how-to-use-ollama-from-your-android-phone-in-2026-auto-discovery-zero-setup-35li&lt;/a&gt;&amp;#160;&lt;a href="#fnref:107" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:108"&gt;
&lt;p&gt;&lt;a href="https://play.google.com/store/apps/details?id=com.lmsa.app" target="_blank" rel="noopener"&gt;https://play.google.com/store/apps/details?id=com.lmsa.app&lt;/a&gt;&amp;amp;hl=en_US&amp;#160;&lt;a href="#fnref:108" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:109"&gt;
&lt;p&gt;&lt;a href="https://github.com/open-webui/open-webui" target="_blank" rel="noopener"&gt;https://github.com/open-webui/open-webui&lt;/a&gt;&amp;#160;&lt;a href="#fnref:109" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&amp;#160;&lt;a href="#fnref1:109" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:110"&gt;
&lt;p&gt;&lt;a href="https://blog.cloudflare.com/meta-llama-3-available-on-cloudflare-workers-ai/" target="_blank" rel="noopener"&gt;https://blog.cloudflare.com/meta-llama-3-available-on-cloudflare-workers-ai/&lt;/a&gt;&amp;#160;&lt;a href="#fnref:110" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&amp;#160;&lt;a href="#fnref1:110" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&amp;#160;&lt;a href="#fnref2:110" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&amp;#160;&lt;a href="#fnref3:110" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&amp;#160;&lt;a href="#fnref4:110" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&amp;#160;&lt;a href="#fnref5:110" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&amp;#160;&lt;a href="#fnref6:110" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:111"&gt;
&lt;p&gt;&lt;a href="https://developers.cloudflare.com/workers-ai/models/" target="_blank" rel="noopener"&gt;https://developers.cloudflare.com/workers-ai/models/&lt;/a&gt;&amp;#160;&lt;a href="#fnref:111" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&amp;#160;&lt;a href="#fnref1:111" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&amp;#160;&lt;a href="#fnref2:111" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&amp;#160;&lt;a href="#fnref3:111" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&amp;#160;&lt;a href="#fnref4:111" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:112"&gt;
&lt;p&gt;&lt;a href="https://2coffee.dev/en/articles/using-cloudflare-tunnel-to-public-ollama-on-the-internet" target="_blank" rel="noopener"&gt;https://2coffee.dev/en/articles/using-cloudflare-tunnel-to-public-ollama-on-the-internet&lt;/a&gt;&amp;#160;&lt;a href="#fnref:112" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&amp;#160;&lt;a href="#fnref1:112" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&amp;#160;&lt;a href="#fnref2:112" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:113"&gt;
&lt;p&gt;&lt;a href="https://www.cloudflare.com/plans/free/" target="_blank" rel="noopener"&gt;https://www.cloudflare.com/plans/free/&lt;/a&gt;&amp;#160;&lt;a href="#fnref:113" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&amp;#160;&lt;a href="#fnref1:113" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&amp;#160;&lt;a href="#fnref2:113" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:114"&gt;
&lt;p&gt;&lt;a href="https://www.youtube.com/watch?v=2ui2n3bBKck" target="_blank" rel="noopener"&gt;https://www.youtube.com/watch?v=2ui2n3bBKck&lt;/a&gt;&amp;#160;&lt;a href="#fnref:114" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:115"&gt;
&lt;p&gt;&lt;a href="https://www.youtube.com/watch?v=dVsu45cnKrs" target="_blank" rel="noopener"&gt;https://www.youtube.com/watch?v=dVsu45cnKrs&lt;/a&gt;&amp;#160;&lt;a href="#fnref:115" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&amp;#160;&lt;a href="#fnref1:115" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:116"&gt;
&lt;p&gt;&lt;a href="https://dev.to/hadil/top-5-llm-gateways-for-production-in-2026-a-deep-practical-comparison-16p" target="_blank" rel="noopener"&gt;https://dev.to/hadil/top-5-llm-gateways-for-production-in-2026-a-deep-practical-comparison-16p&lt;/a&gt;&amp;#160;&lt;a href="#fnref:116" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:117"&gt;
&lt;p&gt;&lt;a href="https://docs.ollama.com/faq" target="_blank" rel="noopener"&gt;https://docs.ollama.com/faq&lt;/a&gt;&amp;#160;&lt;a href="#fnref:117" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:118"&gt;
&lt;p&gt;&lt;a href="https://kitemetric.com/blogs/remote-ollama-access-a-comprehensive-guide" target="_blank" rel="noopener"&gt;https://kitemetric.com/blogs/remote-ollama-access-a-comprehensive-guide&lt;/a&gt;&amp;#160;&lt;a href="#fnref:118" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:119"&gt;
&lt;p&gt;&lt;a href="https://www.reddit.com/r/ollama/comments/1gvq3nr/how_to_host_ollama_online/" target="_blank" rel="noopener"&gt;https://www.reddit.com/r/ollama/comments/1gvq3nr/how_to_host_ollama_online/&lt;/a&gt;&amp;#160;&lt;a href="#fnref:119" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:120"&gt;
&lt;p&gt;&lt;a href="https://www.youtube.com/watch?v=i8TMhnKDJpI" target="_blank" rel="noopener"&gt;https://www.youtube.com/watch?v=i8TMhnKDJpI&lt;/a&gt;&amp;#160;&lt;a href="#fnref:120" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:121"&gt;
&lt;p&gt;&lt;a href="https://www.truefoundry.com/blog/cloudflare-ai-gateway-pricing" target="_blank" rel="noopener"&gt;https://www.truefoundry.com/blog/cloudflare-ai-gateway-pricing&lt;/a&gt;&amp;#160;&lt;a href="#fnref:121" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:122"&gt;
&lt;p&gt;&lt;a href="https://blog.cloudflare.com/meta-llama-3-available-on-cloudflare-workers-ai/" target="_blank" rel="noopener"&gt;https://blog.cloudflare.com/meta-llama-3-available-on-cloudflare-workers-ai/&lt;/a&gt;&amp;#160;&lt;a href="#fnref:122" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&amp;#160;&lt;a href="#fnref1:122" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&amp;#160;&lt;a href="#fnref2:122" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:123"&gt;
&lt;p&gt;&lt;a href="https://2coffee.dev/en/articles/using-cloudflare-tunnel-to-public-ollama-on-the-internet" target="_blank" rel="noopener"&gt;https://2coffee.dev/en/articles/using-cloudflare-tunnel-to-public-ollama-on-the-internet&lt;/a&gt;&amp;#160;&lt;a href="#fnref:123" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&amp;#160;&lt;a href="#fnref1:123" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&amp;#160;&lt;a href="#fnref2:123" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&amp;#160;&lt;a href="#fnref3:123" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&amp;#160;&lt;a href="#fnref4:123" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:124"&gt;
&lt;p&gt;&lt;a href="https://www.cloudflare.com/plans/free/" target="_blank" rel="noopener"&gt;https://www.cloudflare.com/plans/free/&lt;/a&gt;&amp;#160;&lt;a href="#fnref:124" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&amp;#160;&lt;a href="#fnref1:124" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&amp;#160;&lt;a href="#fnref2:124" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&amp;#160;&lt;a href="#fnref3:124" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&amp;#160;&lt;a href="#fnref4:124" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&amp;#160;&lt;a href="#fnref5:124" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:125"&gt;
&lt;p&gt;&lt;a href="https://www.youtube.com/watch?v=dVsu45cnKrs" target="_blank" rel="noopener"&gt;https://www.youtube.com/watch?v=dVsu45cnKrs&lt;/a&gt;&amp;#160;&lt;a href="#fnref:125" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&amp;#160;&lt;a href="#fnref1:125" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:126"&gt;
&lt;p&gt;&lt;a href="https://dev.to/hadil/top-5-llm-gateways-for-production-in-2026-a-deep-practical-comparison-16p" target="_blank" rel="noopener"&gt;https://dev.to/hadil/top-5-llm-gateways-for-production-in-2026-a-deep-practical-comparison-16p&lt;/a&gt;&amp;#160;&lt;a href="#fnref:126" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&amp;#160;&lt;a href="#fnref1:126" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&amp;#160;&lt;a href="#fnref2:126" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:127"&gt;
&lt;p&gt;&lt;a href="https://developers.cloudflare.com/workers-ai/models/" target="_blank" rel="noopener"&gt;https://developers.cloudflare.com/workers-ai/models/&lt;/a&gt;&amp;#160;&lt;a href="#fnref:127" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:128"&gt;
&lt;p&gt;&lt;a href="https://www.truefoundry.com/blog/cloudflare-ai-gateway-pricing" target="_blank" rel="noopener"&gt;https://www.truefoundry.com/blog/cloudflare-ai-gateway-pricing&lt;/a&gt;&amp;#160;&lt;a href="#fnref:128" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:129"&gt;
&lt;p&gt;&lt;a href="https://www.reddit.com/r/ollama/comments/1qrkbsr/run_ollama_on_your_android/" target="_blank" rel="noopener"&gt;https://www.reddit.com/r/ollama/comments/1qrkbsr/run_ollama_on_your_android/&lt;/a&gt;&amp;#160;&lt;a href="#fnref:129" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:130"&gt;
&lt;p&gt;&lt;a href="https://deepakness.com/blog/ollama-in-android-linux/" target="_blank" rel="noopener"&gt;https://deepakness.com/blog/ollama-in-android-linux/&lt;/a&gt;&amp;#160;&lt;a href="#fnref:130" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:131"&gt;
&lt;p&gt;&lt;a href="https://dev.to/koolkamalkishor/running-llama-32-on-android-a-step-by-step-guide-using-ollama-54ig" target="_blank" rel="noopener"&gt;https://dev.to/koolkamalkishor/running-llama-32-on-android-a-step-by-step-guide-using-ollama-54ig&lt;/a&gt;&amp;#160;&lt;a href="#fnref:131" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&amp;#160;&lt;a href="#fnref1:131" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&amp;#160;&lt;a href="#fnref2:131" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&amp;#160;&lt;a href="#fnref3:131" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:132"&gt;
&lt;p&gt;&lt;a href="https://www.youtube.com/watch?v=utWcC43Vjak" target="_blank" rel="noopener"&gt;https://www.youtube.com/watch?v=utWcC43Vjak&lt;/a&gt;&amp;#160;&lt;a href="#fnref:132" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&amp;#160;&lt;a href="#fnref1:132" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&amp;#160;&lt;a href="#fnref2:132" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&amp;#160;&lt;a href="#fnref3:132" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:133"&gt;
&lt;p&gt;&lt;a href="https://www.youtube.com/watch?v=CdvKIHGU2rk" target="_blank" rel="noopener"&gt;https://www.youtube.com/watch?v=CdvKIHGU2rk&lt;/a&gt;&amp;#160;&lt;a href="#fnref:133" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:134"&gt;
&lt;p&gt;&lt;a href="https://play.google.com/store/apps/details?id=com.charles.ollama.client" target="_blank" rel="noopener"&gt;https://play.google.com/store/apps/details?id=com.charles.ollama.client&lt;/a&gt;&amp;amp;hl=en_US&amp;#160;&lt;a href="#fnref:134" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&amp;#160;&lt;a href="#fnref1:134" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:135"&gt;
&lt;p&gt;&lt;a href="https://www.reddit.com/r/ollama/comments/1h2allh/a_free_opensource_mobile_client_for_ollama_llms/" target="_blank" rel="noopener"&gt;https://www.reddit.com/r/ollama/comments/1h2allh/a_free_opensource_mobile_client_for_ollama_llms/&lt;/a&gt;&amp;#160;&lt;a href="#fnref:135" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&amp;#160;&lt;a href="#fnref1:135" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:136"&gt;
&lt;p&gt;&lt;a href="https://github.com/SMuflhi/ollama-app-for-Android-" target="_blank" rel="noopener"&gt;https://github.com/SMuflhi/ollama-app-for-Android-&lt;/a&gt;&amp;#160;&lt;a href="#fnref:136" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:137"&gt;
&lt;p&gt;&lt;a href="https://2coffee.dev/en/articles/using-cloudflare-tunnel-to-public-ollama-on-the-internet" target="_blank" rel="noopener"&gt;https://2coffee.dev/en/articles/using-cloudflare-tunnel-to-public-ollama-on-the-internet&lt;/a&gt;&amp;#160;&lt;a href="#fnref:137" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:138"&gt;
&lt;p&gt;&lt;a href="https://www.youtube.com/watch?v=Nhv9b6ysZyw" target="_blank" rel="noopener"&gt;https://www.youtube.com/watch?v=Nhv9b6ysZyw&lt;/a&gt;&amp;#160;&lt;a href="#fnref:138" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:139"&gt;
&lt;p&gt;&lt;a href="https://ollama.com" target="_blank" rel="noopener"&gt;https://ollama.com&lt;/a&gt;&amp;#160;&lt;a href="#fnref:139" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;</description></item><item><title>SQL Queries</title><link>https://suman.netlify.app/post/sql-queries/</link><pubDate>Sun, 18 Feb 2024 00:00:00 +0000</pubDate><guid>https://suman.netlify.app/post/sql-queries/</guid><description>&lt;h2 id="sql-basics-cheat-sheet1"&gt;&lt;em&gt;SQL Basics Cheat Sheet&lt;/em&gt; 1&lt;/h2&gt;
&lt;p&gt;
&lt;figure id="figure--sql-basics-cheat-sheet"&gt;
&lt;div class="d-flex justify-content-center"&gt;
&lt;div class="w-100" &gt;&lt;img alt="## SQL Basics Cheat Sheet" srcset="
/post/sql-queries/sql-basics-cheat-sheet-a4-page-1_hu_e32a2510ef84158.webp 400w,
/post/sql-queries/sql-basics-cheat-sheet-a4-page-1_hu_7562cc25a08e64f4.webp 760w,
/post/sql-queries/sql-basics-cheat-sheet-a4-page-1_hu_d266754bc795735.webp 1200w"
src="https://suman.netlify.app/post/sql-queries/sql-basics-cheat-sheet-a4-page-1_hu_e32a2510ef84158.webp"
width="760"
height="537"
loading="lazy" data-zoomable /&gt;&lt;/div&gt;
&lt;/div&gt;&lt;figcaption&gt;
&lt;h2 id="sql-basics-cheat-sheet"&gt;&lt;em&gt;SQL Basics Cheat Sheet&lt;/em&gt;&lt;/h2&gt;
&lt;/figcaption&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h2 id="sql-basics-cheat-sheet-2"&gt;&lt;em&gt;SQL Basics Cheat Sheet&lt;/em&gt;  2&lt;/h2&gt;
&lt;p&gt;
&lt;figure id="figure--sql-basics-cheat-sheet-2"&gt;
&lt;div class="d-flex justify-content-center"&gt;
&lt;div class="w-100" &gt;&lt;img alt="## SQL Basics Cheat Sheet 2" srcset="
/post/sql-queries/sql-basics-cheat-sheet-a4-page-2_hu_8338414958b87ce2.webp 400w,
/post/sql-queries/sql-basics-cheat-sheet-a4-page-2_hu_999925b650bca3c9.webp 760w,
/post/sql-queries/sql-basics-cheat-sheet-a4-page-2_hu_eac8892d445c4fd6.webp 1200w"
src="https://suman.netlify.app/post/sql-queries/sql-basics-cheat-sheet-a4-page-2_hu_8338414958b87ce2.webp"
width="760"
height="537"
loading="lazy" data-zoomable /&gt;&lt;/div&gt;
&lt;/div&gt;&lt;figcaption&gt;
&lt;h2 id="sql-basics-cheat-sheet-2"&gt;&lt;em&gt;SQL Basics Cheat Sheet 2&lt;/em&gt;&lt;/h2&gt;
&lt;/figcaption&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h3 id="creating-and-managing-databases"&gt;Creating and managing databases&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Creates a new database.&lt;/strong&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-sql" data-lang="sql"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;CREATE&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;DATABASE&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;bank&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;Delete/Drop a database and all of its contents&lt;/strong&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-sql" data-lang="sql"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;DROP&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;DATABASE&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;bank&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;Show all databases in your cluster.&lt;/strong&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-sql" data-lang="sql"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;SHOW&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;DATABASES&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;code&gt;IF EXISTS&lt;/code&gt; can be used to prevent errors if we (for example) attempt to delete a database that doesn’t exist.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;IF EXISTS&lt;/code&gt; can also be used with many other SQL statements and combined with other operators.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Examples:&lt;/strong&gt;&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;code&gt;DROP DATABASE IF EXISTS bank;&lt;/code&gt;&lt;/th&gt;
&lt;th&gt;&lt;code&gt;CREATE DATABASE IF NOT EXISTS bank;&lt;/code&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;code&gt;DROP DATABASE … CASCADE&lt;/code&gt; can be used to remove all objects that rely on the database that is being dropped. &lt;code&gt;DROP DATABASE … RESTRICT&lt;/code&gt; can be used to prevent the &lt;code&gt;DROP DATABASE&lt;/code&gt; command from executing unless the database is empty.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Examples:&lt;/strong&gt;&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;code&gt;DROP DATABASE bank CASCADE;&lt;/code&gt;&lt;/th&gt;
&lt;th&gt;&lt;code&gt;DROP DATABASE bank RESTRICT;&lt;/code&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="creating-tables-and-schema"&gt;Creating tables and schema&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Create a new table in the database.&lt;/strong&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-sql" data-lang="sql"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;CREATE&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;TABLE&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;users&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;id&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;UUID&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;PRIMARY&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;KEY&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;city&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;STRING&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;STRING&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;address&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;STRING&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;credit_card&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;STRING&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;dl&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;STRING&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt;&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h4 id="define-a-multi-column-primary-key"&gt;Define a multi-column primary key:&lt;/h4&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-sql" data-lang="sql"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;CREATE&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;TABLE&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;users&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;id&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;UUID&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;city&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;STRING&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;STRING&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;PRIMARY&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;KEY&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;city&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;id&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt;&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h4 id="define-a-foreign-key-referencing-another-table-in-the-database"&gt;Define a foreign key referencing another table in the database:&lt;/h4&gt;
&lt;p&gt;(In this case, referencing a column called &lt;code&gt;city&lt;/code&gt; in table called &lt;code&gt;locations&lt;/code&gt;).&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-sql" data-lang="sql"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;CREATE&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;TABLE&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;users&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;id&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;UUID&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;PRIMARY&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;KEY&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;city&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;STRING&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;REFERENCES&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;locations&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;city&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;STRING&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt;&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h4 id="create-an-index-based-on-a-column"&gt;Create an index based on a column:&lt;/h4&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-sql" data-lang="sql"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;CREATE&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;TABLE&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;users&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;id&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;UUID&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;PRIMARY&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;KEY&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;city&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;STRING&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;STRING&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;INDEX&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt;&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h4 id="disallownullvalues-from-a-column"&gt;Disallow &lt;code&gt;NULL&lt;/code&gt; values from a column:&lt;/h4&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-sql" data-lang="sql"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;CREATE&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;TABLE&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;users&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;id&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;UUID&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;NOT&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;NULL&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;city&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;STRING&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;STRING&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt;&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h4 id="create-a-new-table-using-the-results-of-a-query"&gt;Create a new table using the results of a query:&lt;/h4&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-sql" data-lang="sql"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;CREATE&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;TABLE&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;users_ny&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;user_id&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;city&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt;&lt;/span&gt;&lt;span class="k"&gt;AS&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;SELECT&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;FROM&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;users&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt;&lt;/span&gt;&lt;span class="k"&gt;WHERE&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;city&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;new york&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="managing-sql-tables"&gt;Managing SQL tables&lt;/h3&gt;
&lt;h4 id="alter-table"&gt;ALTER TABLE&lt;/h4&gt;
&lt;p&gt;Apply a schema change to a table.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-sql" data-lang="sql"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;ALTER&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;TABLE&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;bank&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;ADD&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;COLUMN&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;active&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;BOOL&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;code&gt;ALTER TABLE&lt;/code&gt; is used with subcommands such as:&lt;/p&gt;
&lt;h4 id="add-column"&gt;ADD COLUMN&lt;/h4&gt;
&lt;p&gt;Add a column.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-sql" data-lang="sql"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;ALTER&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;TABLE&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;bank&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;ADD&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;COLUMN&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;active&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;BOOL&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h4 id="drop-column"&gt;DROP COLUMN&lt;/h4&gt;
&lt;p&gt;Remove a column.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-sql" data-lang="sql"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;ALTER&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;TABLE&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;bank&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;DROP&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;COLUMN&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;active&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h4 id="alter-column"&gt;ALTER COLUMN&lt;/h4&gt;
&lt;p&gt;Change column constraints, datatypes, etc.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-sql" data-lang="sql"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;ALTER&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;TABLE&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;bank&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;ALTER&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;account_balance&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;TYPE&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nb"&gt;FLOAT&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h4 id="rename-column"&gt;RENAME COLUMN&lt;/h4&gt;
&lt;p&gt;Rename a column.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-sql" data-lang="sql"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;ALTER&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;TABLE&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;bank&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;RENAME&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;COLUMN&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;account_balance&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;TO&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;balance&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h4 id="rename-to"&gt;RENAME TO&lt;/h4&gt;
&lt;p&gt;Rename a table.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-sql" data-lang="sql"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;ALTER&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;TABLE&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;bank&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;RENAME&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;TO&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;users&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h4 id="drop-table"&gt;DROP TABLE&lt;/h4&gt;
&lt;p&gt;Remove a table.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-sql" data-lang="sql"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;DROP&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;TABLE&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;bank&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;code&gt;DROP TABLE … CASCADE&lt;/code&gt; can be used to remove all objects (constraints, views, etc.) that rely on the table being dropped.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;DROP TABLE … RESTRICT&lt;/code&gt; can be used to prevent the DROP TABLE command from executing unless the table is empty.&lt;/p&gt;
&lt;p&gt;Use &lt;code&gt;DROP TABLE&lt;/code&gt; statements with caution!&lt;/p&gt;
&lt;h3 id="inserting-data"&gt;Inserting data&lt;/h3&gt;
&lt;h4 id="insert-into--values"&gt;INSERT INTO … VALUES&lt;/h4&gt;
&lt;p&gt;Insert rows with specified values into a table.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-sql" data-lang="sql"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;INSERT&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;INTO&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;users&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;city&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;VALUES&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;Alice&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;New York&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h4 id="insert-into--select"&gt;INSERT INTO … SELECT&lt;/h4&gt;
&lt;p&gt;Insert rows into a table from the results of a query.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-sql" data-lang="sql"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;INSERT&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;INTO&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;drivers&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;id&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;city&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;address&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;SELECT&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;id&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;city&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;address&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;FROM&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;users&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;WHERE&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;IN&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;Anita Atkinson&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;Devin Jordan&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description></item><item><title>Best practice and lessons learned</title><link>https://suman.netlify.app/post/best-practice-and-lessons-learned/</link><pubDate>Tue, 06 Jun 2023 00:00:00 +0000</pubDate><guid>https://suman.netlify.app/post/best-practice-and-lessons-learned/</guid><description>&lt;p&gt;Leading evaluation thinker Michael Quinn Patton has strong opinions on the terms &amp;lsquo;best practice&amp;rsquo; and &amp;rsquo;lessons learned&amp;rsquo;. In an article from 2001, he argued:&lt;/p&gt;
&lt;p&gt;&lt;em&gt;In the endlessly hyped&lt;/em&gt; knowledge age &lt;em&gt;of the new millennium, evaluators are being asked to generate lessons learned and best practices &amp;hellip; The demand for knowledge acquisition, which demonstrates membership in the elite ranks of learning organizations, has crescendoed into an organizational development and program evaluation mania. But just what is popularly meant by a best by a&lt;/em&gt; best practice*? What does it mean to* learn a lesson*? And what’s evaluation’s role in all this?*&lt;/p&gt;
&lt;p&gt;(emphasis in original. Patton, 2001: &lt;em&gt;E&lt;/em&gt;valuation, knowledge management, best practices, and high quality lessons learned,&lt;br&gt;
in &lt;em&gt;American Journal of Evaluation&lt;/em&gt;, 22:3, pp. 329-336.)&lt;/p&gt;
&lt;p&gt;Patton added that: &amp;lsquo;The emphasis on knowledge generation disseminated in the form of best practices has swept like wildﬁre through all sectors of society&amp;rsquo;, although, as he explained:&lt;/p&gt;
&lt;p&gt;&lt;em&gt;I’ve looked at a lot of lists of &amp;rsquo;lessons learned&amp;rsquo; and &amp;lsquo;best practices&amp;rsquo; and I haven’t found anything that systematically differentiates one from the other in terms of content or empirical support. Those of more modest inclination seem to favor &amp;rsquo;lessons learned&amp;rsquo; which connotes, at least to me, a more personal and local form of insight. Those with more chutzpah (though not necessarily, as far as I can tell, more evidence) prefer the more generalized and harder-hitting (connotatively) assertion of having discovered a &amp;lsquo;best practice.&amp;rsquo; Seldom do such statements identify for whom the practice is best, under what conditions it is best, or what values or assumptions undergird its best-ness. (emphasis added).&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;His last sentence, above, links clearly to this course&amp;rsquo;s cross-cutting themes of equity, participation, and accountability.&lt;/p&gt;</description></item><item><title>Glossary of Key Terms in Evaluation and Results-Based Management</title><link>https://suman.netlify.app/post/glossary-of-key-terms-in-evaluation-and-results-based-management/</link><pubDate>Sun, 04 Jun 2023 00:00:00 +0000</pubDate><guid>https://suman.netlify.app/post/glossary-of-key-terms-in-evaluation-and-results-based-management/</guid><description>&lt;h3 id="1-introduction"&gt;1﻿. Introduction&lt;/h3&gt;
&lt;p&gt;This Glossary provides conceptual clarity to support thoughtful approaches to results-based management, monitoring and evaluation, which in turn support better progress on sustainable development through learning and accountability. This glossary is useful for training and in practical work on sustainable development in the public and private sectors – including during project or policy design, monitoring, programme implementation and management, and various types of evaluation. The focus of the Glossary is on specific terms as used for results monitoring, management, data collection and analysis, and evaluation. We do not define related or general concepts – such as human rights, equity, or development – as these are defined elsewhere and used here in standard, widely accepted ways. Notes define and explain key concepts (and form part of the definitions). Cross-references point the reader to related terms and synonyms. This second edition of the Glossary reflects learnings and context changes over the past 20 years. It incorporates new thinking from the OECD/DAC Results Community, which did not exist at the time of the first edition in 2002. It includes updates to definitions as well as new terms now in common use. Several definitions have been adjusted to reflect their current use by a range of actors in diverse contexts of work on sustainable development, including within communities. This edition also reflects the extensive work undertaken in 2017-2019 by the OECD Development Assistance Committee’s (DAC) Network on Development Evaluation to refine the definitions of the evaluation criteria originally outlined here in 2002. The adapted criteria definitions approved in 2019 are included in this updated edition. This process has been guided by the highest considerations of clarity and conciseness. It was conducted in a spirit of compromise in terms of the willingness of partners not to impose their own specific vocabulary on others. The original Glossary, published in 2002 was the fruit of almost two years of elaboration, based on an initial collection of terms used by development agencies. The selection of terms and their definitions were carefully discussed and analysed, and benefited from inputs from many sources and advice from the academic evaluation community. Likewise, this second edition involved extensive consultation and input from experts and partners across the results and evaluation communities.&lt;/p&gt;
&lt;h3 id="2-terms"&gt;2 Terms&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Accountability&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Accountability is a state of or a process for holding someone responsible to someone else for something. It is the obligation to demonstrate that work has been conducted in compliance with agreed rules and standards, or to report fairly and accurately on results, based on mandates and plans. This may require a careful, even legally defensible, demonstration that the work is consistent with the terms of a contract.&lt;/p&gt;
&lt;p&gt;Note: Accountability may refer to the obligations of parties to act according to clearly defined performance expectations, often with respect to the prudent use of resources. For public sector managers and policy- makers it refers to being accountable to stakeholders such as taxpayers, civil society and communities for what has been done, why and how, including justifying or explaining costs and any negative results. Types of accountability include community accountability, bottom-up accountability, horizontal accountability and top-down accountability.&lt;/p&gt;
&lt;p&gt;For evaluators, it connotes the responsibility to provide accurate, fair and credible reports and assessments.&lt;/p&gt;
&lt;p&gt;Related terms: community accountability, mutual accountability&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;(Community) Accountability&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Holding intervention funders and implementers accountable to the people and community affected by the intervention for the process and results of that intervention.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;(Mutual) Accountability&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Shared responsibility for the intervention implementation and its results. The obligation of two or more partners to demonstrate compliance with mutually agreed rules and standards or to report fairly and accurately on the use of resources and achievement of results for mandated roles or plans. Involves transparent reporting on progress in sustainable development that has been achieved collectively (through contributions from multiple partners) and implications for affected people and other stakeholders.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Activity&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Actions taken or work performed through which inputs, such as funds, technical assistance and other types of resources, are mobilised to produce specific outputs.&lt;/p&gt;
&lt;p&gt;Synonym: intervention Related term: evaluand&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Adaptive management&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;A structured management strategy that involves an ongoing process of working collaboratively and flexibly to learn, make decisions, test assumptions, and adjust actions on the basis of new information, lessons and changes in context.&lt;/p&gt;
&lt;p&gt;Note: Often used to take action under conditions of ongoing uncertainty based on the best available evidence. Involves systematically monitoring and evaluating results and adjusting decisions as more information is learned.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Additionality&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;The characteristic of an intervention, where its (financial or non-financial) inputs, activities or results are considered as additional when compared to what would have happened otherwise. Additional means larger in scale, at a higher quality, taking place more quickly, at a different location, reaching different beneficiaries, or taking place at all.&lt;/p&gt;
&lt;p&gt;Note: In development co-operation many institutions distinguish between financial additionality (in reference to financing provided that would not be supplied by the market), and development additionality (referring to results).&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Administrative data&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Information collected by an intervention for purposes of administration, record keeping and tracking implementation, which can also be used for monitoring and evaluation.
Note: Administrative data typically include financial and operational data at activity level. It is common for basic demographic information to be derived from administrative data. Examples include enrolment records, tax records, insurance claims, feedback forms, and patient records.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Analytical tool&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Method used to process and interpret data collected or collated.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Appraisal&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;An overall assessment of the relevance, feasibility and potential sustainability of an intervention prior to a decision regarding funding or implementation.&lt;/p&gt;
&lt;p&gt;Note: In development agencies, banks, and other financial institutions, the purpose of the appraisal is to enable decision makers to decide whether the activity represents an appropriate use of resources.&lt;/p&gt;
&lt;p&gt;Related term: ex-ante evaluation&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Assumptions&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;A set of (untested) factors and beliefs that form the basis of the intervention logic, and factors or risks, which affect its relevance, progress or success. Assumptions are the conditions necessary for the cause- and-effect relationships between the different levels of results (i.e. to move from activities to outputs, outputs to outcomes, and outcomes to impacts).&lt;/p&gt;
&lt;p&gt;Note: For design, monitoring and evaluation, assumptions can also be understood as hypothesised conditions that affect the validity of the exercise itself, e.g., about the size or characteristics of the population when designing a sampling procedure for a survey.&lt;/p&gt;
&lt;p&gt;Related term: hypotheses&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Attribution&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;The ascription of a causal link between observed (or expected to be observed) changes and a specific intervention.&lt;/p&gt;
&lt;p&gt;Note: Attribution refers to that which is to be credited for the observed changes or results achieved. This definition does not require that changes are produced solely by the intervention being evaluated, rather it represents the extent to which observed effects can be attributed to a specific intervention or to one or more partners, taking account of other interventions, confounding factors (other influences), or external shocks.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Audit&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;An independent, systematic, objective quality assurance assessment designed to document and improve the effectiveness of risk management, control and governance processes.&lt;/p&gt;
&lt;p&gt;Note: A distinction is made between regularity (financial) auditing, which focuses on compliance with applicable statutes and regulations; and performance auditing, which is concerned with relevance, efficiency and effectiveness. Internal auditing provides an assessment of internal controls undertaken by a unit reporting to management while external auditing is conducted by an independent entity.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Baseline (reference value)&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;The conditions existing prior to an intervention or at the beginning of the period, against which changes can be measured, monitored and evaluated.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Baseline study&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;An analysis describing the situation prior to an intervention, against which changes can be assessed or comparisons made.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Benchmark&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;A reference point or standard against which changes, performance or achievements can be assessed.&lt;/p&gt;
&lt;p&gt;Note: A benchmark is established based on recent performance of comparable organisations, or what can be reasonably inferred to have been achieved under a similar set of circumstances.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Beneficiaries (People who benefit)&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;The individuals, groups, or organisations, whether targeted or not, that benefit, directly or indirectly, from the intervention.&lt;/p&gt;
&lt;p&gt;Note: Other terms used, depending on the context, include rights holders, duty bearers, or affected people. It is often useful to refer to “intended” beneficiaries, and one should not assume that all people have equal access to or benefit equally (or at all) from the intervention. In fact evaluations often serve the purpose of investigating the extent to which intended benefits were achieved, for whom and how (including differential benefits across different groups of people).&lt;/p&gt;
&lt;p&gt;Related terms: reach, target group&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Causality&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;The relationship between one event (the cause) and another event (the effect) which is the direct consequence of the first.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Cluster evaluation&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;An evaluation of a set of related activities or interventions, either similar interventions in different locations or a cluster of complementary components of an overall initiative.&lt;/p&gt;
&lt;p&gt;Related terms: thematic evaluation, sector programme evaluation&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Coherence&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;The compatibility of the intervention with other interventions in a country, sector or institution.&lt;/p&gt;
&lt;p&gt;Note: The extent to which other interventions (particularly policies) support or undermine the intervention, and vice versa. Includes internal coherence and external coherence:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Internal coherence&lt;/strong&gt;
The synergies and interlinkages between the intervention and other interventions carried out by the same institution/government, as well as the consistency of the intervention with the relevant international norms and standards to which that institution/government adheres.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;External coherence&lt;/strong&gt;
The consistency of the intervention with other actors’ interventions in the same context. This includes complementarity, harmonisation and co-ordination with others, and the extent to which the intervention is adding value while avoiding duplication of effort.&lt;/p&gt;
&lt;p&gt;Related term: policy coherence for sustainable development&lt;/p&gt;
&lt;p&gt;Policy coherence for sustainable development&lt;/p&gt;
&lt;p&gt;The compatibility of a policy with other policies in a country, sector or institution in terms of supporting sustainable development. The extent to which other policies support or undermine the intervention, and vice versa.&lt;/p&gt;
&lt;p&gt;Related term: coherence&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Commissioner&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;The person or entity responsible for requesting or ordering an evaluation.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Conclusions&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;A summary of the factors leading to the success or failure of the evaluated intervention. Special attention is paid to the intended and unintended effects, results and impacts, and more generally to any other strength or weakness. A conclusion draws on data collection and analyses undertaken, through a transparent chain of arguments.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Context&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;The setting in which an intervention or an evaluation takes place and which is likely to influence performance and results. These include capacities and social, economic, political, environmental, conflict, inclusiveness, cultural, and institutional conditions.&lt;/p&gt;
&lt;p&gt;Contribution – [definition under discussion]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Contribution analysis&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;An approach for determining if – and how – an intervention contributed to an observed result, based on verifying the underlying theory of change.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Control group&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;The sample or group that does not receive the intervention and against which other groups or samples (that do receive the intervention) are compared in order to assess performance and results.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Counterfactual&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;The situation or condition that hypothetically may prevail for individuals, organisations, or groups were there no intervention (the status quo).&lt;/p&gt;
&lt;p&gt;Note: This is used for counterfactual evaluation approaches. It can be estimated by creating a control group, a comparison group or a hypothetical counterfactual.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Country programme evaluation&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Evaluation of one or more institution’s or partner’s portfolio of interventions in a specific country, including the strategy behind them in a specific period of time.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Culture of results and learning; Culture of evaluation&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;The collective formal and informal norms, beliefs and ways of working in an institution that support and encourage staff and partners to actively seek out, learn from and act on credible results information. A culture that supports and encourages people to critically think about the design, implementation and effects of interventions, including relevance, coherence, efficiency, effectiveness, impact and sustainability. This includes understanding causal relationships, testing assumptions and considering evidence generated internally or by external actors on what works or not, why and for whom, and adjusting actions accordingly.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Data collection tool&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Methods used to identify information sources and collect information. Examples include informal and formal surveys, direct and participatory observations, community interviews, focus groups, expert opinions, case studies, and literature search.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Democratic evaluation&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;An approach to evaluation that aims to support a just and democratic society and serve the whole community.&lt;/p&gt;
&lt;p&gt;Note: Democratic evaluation allows people to be informed of what others are doing and sees the evaluator as someone who brokers the process. It generally uses inclusive practices that foster participation and collaboration to understand progress towards a just and democratic society. Also used as a means of ensuring public accountability and transparency.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Developmental evaluation&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;An iterative, embedded approach to evaluation, designed to support learning particularly in complex or uncertain environments. It involves providing real-time, or near real-time, (independent) feedback to intervention staff, thus facilitating ongoing learning and enabling improvements during implementation.&lt;/p&gt;
&lt;p&gt;Related terms: real-time evaluation, adaptive management, ex-ante evaluation&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Economic&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;The conversion of inputs (funds, expertise, natural resources, time, etc.) into outputs, outcomes and impacts in the most cost-effective way possible, as compared to feasible alternatives in the context.&lt;/p&gt;
&lt;p&gt;Related term: efficiency&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Economical&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Absence of waste for a given output. An activity is economical when the costs of the scarce resources used approximate the minimum needed to achieve the planned objectives.&lt;/p&gt;
&lt;p&gt;Related term: efficiency&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Economic evaluation&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;An analysis that quantifies whether the economic benefits of a project (achieved or expected to be achieved) exceed its economic costs. A systematic analysis that assesses the resources used in relation to the results achieved, providing an assessment of cost effectiveness.&lt;/p&gt;
&lt;p&gt;Note: Different types of economic analysis include cost-benefit, value for money, cost-effectiveness and cost-utility.&lt;/p&gt;
&lt;p&gt;Related term: efficiency&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Effects&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Intended or unintended changes due directly or indirectly to an intervention. Related terms: outputs, outcomes, impacts, results&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Effectiveness&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;The extent to which the intervention achieved, or is expected to achieve, its objectives, and its results, including any differential results across groups.&lt;/p&gt;
&lt;p&gt;Note: Analysis of effectiveness involves taking account of the relative importance of the objectives or results.&lt;/p&gt;
&lt;p&gt;Related terms: efficiency, coherence, relevance, impact, sustainability&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Efficiency&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;The extent to which the intervention delivers, or is likely to deliver, results in an economic and timely way.&lt;/p&gt;
&lt;p&gt;Note: “Economic” is the conversion of inputs (funds, expertise, natural resources, time, etc.) into outputs, outcomes and impacts in the most cost-effective way possible, as compared to feasible alternatives in the context. “Timely” delivery is within the intended timeframe, or a timeframe reasonably adjusted to the demands of the evolving context. This may include assessing operational efficiency (how well the intervention was managed).&lt;/p&gt;
&lt;p&gt;Related terms: effectiveness, coherence, relevance, impact, sustainability&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;End line&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;The conditions existing after an intervention or end of the period, against which changes from the baseline can be measured, monitored and evaluated.&lt;/p&gt;
&lt;p&gt;Related term: baseline&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Evaluability&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Extent to which an intervention can be evaluated in a reliable and credible fashion.&lt;/p&gt;
&lt;p&gt;Note: Some approaches to evaluability assessment involve early review of a proposed intervention in order to ascertain whether its objectives are adequately defined and its results are verifiable. In other instances, particularly with complex interventions, high uncertainty or in unstable contexts, evaluability assessment might instead identify a need for an evaluation approach that supports adaptive management (for example, developmental evaluation).&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Evaluand&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;The institution or intervention that is being evaluated; the object of the evaluation.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Evaluation&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;The systematic and objective assessment of a planned, ongoing or completed intervention, its design, implementation and results. The aim is to determine relevance, coherence, effectiveness, efficiency, impact&lt;/p&gt;
&lt;p&gt;and sustainability. Evaluation also refers to the process of determining the worth or significance of an intervention.&lt;/p&gt;
&lt;p&gt;An evaluation should provide information that is credible and useful, enabling the incorporation of lessons learned into decision-making processes.&lt;/p&gt;
&lt;p&gt;Note: Evaluation in some instances involves the definition of appropriate standards and criteria, the examination of performance against those standards, an assessment of actual and expected results and the identification of relevant lessons and recommendations. Though evaluation deals with the assessment of relevance, coherence, effectiveness, efficiency, impact and sustainability, not all evaluations will cover all of these criteria to the same degree or at all.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Evaluation purpose&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;The objectives of the evaluation including why the evaluation is being undertaken at this particular point in time, for whom and how the evaluation will be used for learning and accountability.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Evidence&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Facts or information that support the validity and truth of a conclusion, assumption or assertion.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Evidence-based (policy, practice)&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Reliable and credible evidence determines the design, adaptation and implementation of a policy or practice.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Ex-ante evaluation&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;An evaluation that is performed before the implementation of an intervention. Related terms: appraisal, quality at entry, evaluability&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Ex-durante evaluation&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;An evaluation that is performed during the implementation of an intervention (while it is ongoing).&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Ex-post evaluation&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Evaluation of an intervention after it has been completed.&lt;/p&gt;
&lt;p&gt;Note: An ex-post evaluation may be undertaken directly following or some time after the intervention. The intention is to identify the factors of success or failure, to assess the sustainability of results and impacts, and to draw conclusions that may inform other interventions.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;External evaluation&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;The evaluation of an intervention conducted by entities or individuals outside the funding and implementing organisations.&lt;/p&gt;
&lt;p&gt;Related term: independent evaluation&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Evaluation feedback&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;The transmission of findings generated through the evaluation process to parties for whom it is relevant and useful so as to facilitate learning or accountability. This may involve the collection and dissemination of findings, conclusions, recommendations and lessons from experience to people affected by the intervention, as well as funders, implementers, decision makers and other stakeholders.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Feminist evaluation&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;A value-based approach to evaluation grounded in feminist theory and principles, which emphasises empowerment, social justice and participation, as well as understanding structural barriers that prevent equality, while aiming to contribute to transforming gendered power relationships.&lt;/p&gt;
&lt;p&gt;Related terms: gender analysis, gender-responsive evaluation, human rights-based evaluation, participatory evaluation&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Finding&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;A finding uses evidence from one or more evaluations to allow for a factual statement.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Formative evaluation&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Evaluation intended to improve performance or to inform planning of a subsequent phase, often conducted during the implementation phase of the intervention.&lt;/p&gt;
&lt;p&gt;Note: Formative evaluations may also be conducted for other reasons such as compliance, legal requirements or as part of a larger evaluation initiative.&lt;/p&gt;
&lt;p&gt;Related terms: process evaluation, developmental evaluation&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Gender analysis&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;An examination of gender dynamics, norms, beliefs and practices, including concepts of masculinity, femininity, and other gender identities, and power relationships among people of different genders.&lt;/p&gt;
&lt;p&gt;Note: For planning, monitoring and evaluation, gender analysis can be used to understand the intervention and its context, as well as for analysing the results of the intervention and for making evaluative judgements.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Gender-responsive evaluation&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;An evaluation that assesses changes to gendered power relationships and results from an intervention, determining whether, and how, changes have occurred, and the effects of those changes. The approach to the evaluation ensures that the voices of people of different genders are incorporated throughout the process and in the methods used.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Goal&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;The higher-order objective to which an intervention is intended to contribute. Note: An example is the 2030 Sustainable Development Goals (SDGs).
Related term: objective&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Human rights-based evaluation&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;An evaluation approach that explicitly identifies rights-holders and duty-bearers, and aims to hold duty- bearers to account for the realisation of human rights. The evaluation applies human rights principles to its approach, including through participation of rights-holders in the evaluation process itself, and explores issues of justice, equity and equality with a focus on marginalised and excluded groups.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Hypotheses&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;A set of (testable) ideas, beliefs and explanations about the relationship between an intervention and its effects, in a given context.&lt;/p&gt;
&lt;p&gt;Related terms: assumptions, theory of change, intervention logic&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Impact&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;The extent to which the intervention has generated or is expected to generate significant positive or negative, intended or unintended, higher-level effects.&lt;/p&gt;
&lt;p&gt;Note: Impact addresses the ultimate significance and potentially transformative effects of the intervention. It seeks to identify social, environmental and economic effects of the intervention that are longer term or broader in scope than those already captured under the effectiveness criterion. Beyond the immediate results, impact seeks to capture the indirect, secondary and potential consequences of the intervention. It does so by examining the holistic and enduring changes in systems or norms, and potential effects on people’s well-being, human rights, gender equality, and the environment.&lt;/p&gt;
&lt;p&gt;Related terms: relevance, coherence, effectiveness, efficiency, sustainability&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Impacts&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;The higher-level effects of an intervention’s outcomes. The ultimate effects or longer-term changes resulting from the intervention. Such impacts can include intended and unintended, positive or negative higher-level effects.&lt;/p&gt;
&lt;p&gt;Note: Impacts is used here in the plural in reference to its meaning as a type or level of result, as distinct from the impact criterion. “Impacts” and “results” are sometimes used interchangeably, which creates confusion; impacts should be used to refer to higher-level results.&lt;/p&gt;
&lt;p&gt;Related term: transformative effects&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Impact evaluation&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;An evaluation that assesses the degree to which the intervention meets its higher-level goals and identifies the causal effects of the intervention. Impact evaluations may use experimental, quasi-experimental and non-experimental approaches.&lt;/p&gt;
&lt;p&gt;Note: The term is also sometimes used to refer only to evaluations that use explicit counterfactual analysis to determine the effects (including outputs and outcomes) caused by an intervention.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Impact management&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;A management strategy focusing on performance and achievement of impacts. This management approach provides the framework, tools and guidance for strategic planning, risk management, performance monitoring, evaluation and knowledge management. It serves four complementary purposes: decision- making, learning, accountability and communication.&lt;/p&gt;
&lt;p&gt;Synonym: results-based management&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Independent evaluation&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;An evaluation that is free from undue political influence and organisational pressure, which has full access to information and autonomy to carry out investigations and reports findings and conclusions based on the collected evidence.&lt;/p&gt;
&lt;p&gt;Note: Independence is often supported by having external individuals or institutions carry out the evaluation. Independence can also be supported through funding arrangements, reporting lines and quality assurance processes. The credibility of an evaluation depends in part on how independently it has been carried out, including the extent to which it is free from the potential biases of those responsible for the design and implementation of the intervention.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Indicator&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Quantitative or qualitative factor or variable of interest, related to the intervention and its results, or to the context in which an intervention takes place.&lt;/p&gt;
&lt;p&gt;Note: An indicator is always approximate only (i.e. not an exact measure) and requires interpretation and explanation, even if assessed accurately. Indicators should provide simple, verifiable, and reliable means to track changes and performance.&lt;/p&gt;
&lt;p&gt;Related terms: KPI, performance indicator&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Inputs&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;The financial, human, material (in-kind), and institutional (including technological and information) resources used for the intervention.&lt;/p&gt;
&lt;p&gt;Note: It is important to include not only the resources of a funding or implementing organisation but the totality of resources of all involved organisations, the community and the local environment used for the intervention.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Institutional development impact&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;The extent to which an intervention improves or weakens the ability of a country or region to make more efficient, equitable, and sustainable use of its human, financial, and natural resources, for example through:
(a) better definition, stability, transparency, enforceability and predictability of institutional arrangements, or&lt;/p&gt;
&lt;p&gt;(b) better alignment of the mission and capacity of an organisation with its mandate, which derives from these institutional arrangements. Such impacts can include intended and unintended effects of an action.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Internal evaluation&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Evaluation of an intervention conducted by a unit or individuals internal to the organisation, generally staff of the organisation who report to the management.&lt;/p&gt;
&lt;p&gt;Related term: self-evaluation&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Intervention&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;The intentional activity or effort that is being evaluated (also called the evaluand or object of the monitoring or evaluation).&lt;/p&gt;
&lt;p&gt;Note: Interventions may be international, national, local or through partnerships, and are aimed at supporting sustainable development, climate and humanitarian goals. They include but are not limited to development interventions, humanitarian aid, peacebuilding activities, climate mitigation activities, climate adaptation activities, market-based interventions, private sector engagement, normative work, and non-sovereign operations. Examples of such efforts include strategies, policy advice, technical assistance, financing mechanisms, programmes, institutions, or projects.&lt;/p&gt;
&lt;p&gt;Synonym: evaluand Related term: activity&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Intervention logic&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;The way an intervention is expected to achieve its desired results, including underlying assumptions about the causality and interaction between the intervention, its inputs, activities, outputs, outcomes and impacts, in the context of the intervention.
Related terms: logical framework, theory of change, assumptions&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Intervention purpose&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;The stated (or implied) objectives of the intervention. Related terms: intervention objective, goal&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Joint evaluation&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;An evaluation in which two or more institutions or partners participate.&lt;/p&gt;
&lt;p&gt;Note: There are various degrees of “jointness” depending on the extent to which individual partners are involved in designing the evaluation, co-operate in the evaluation process, merge their evaluation resources and combine their evaluation reporting. Joint evaluations can help overcome attribution problems in assessing the effectiveness of programmes and strategies. They can also be useful for evaluating coherence, looking at the complementarity of efforts supported by different partners, the quality of co-ordination, etc.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Knowledge management&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;The process or approach through which institutions capture, distribute, retain and effectively use knowledge to achieve their goals.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Lessons learnt&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Generalisation or extrapolation of findings and translation of analysis into relevant knowledge that supports decision making, improves performance and promotes the achievement of better results in other settings (beyond the intervention being evaluated). Frequently, lessons highlight strengths or weaknesses in the preparation, design, and implementation of interventions that affect performance and results. A lesson may be positive, neutral or negative.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Limitations&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Any constraints in the process, methodology or data that affect the monitoring or evaluation, including potential implications for validity and reliability. Includes any obstruction of a free and open monitoring and evaluation process that may influence the findings, as well as discrepancies between the planned and actual products or process.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Logical framework (Log frame)&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Management tool used to improve the design of interventions, most often at the project level. It involves identifying strategic elements (inputs, activities, outputs, outcomes, impacts) and their causal relationships, as well as indicators, and the assumptions or risks that may influence success and failure. It facilitates planning, execution, monitoring and evaluation of an intervention.&lt;/p&gt;
&lt;p&gt;Related terms: results-based management, theory of change, intervention logic&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Meta-evaluation&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;The term is used for evaluations designed to synthesise findings from a series of evaluations. It can also be used to denote the assessment of an evaluation to judge its quality or scrutinise the performance of the evaluators.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mid-term evaluation&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Evaluation performed towards the middle of the period of implementation of the intervention. Related terms: formative evaluation, developmental evaluation.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Monitoring&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;A continuing process that involves the systematic collection or collation of data (on specified indicators or other types of information). Provides the management and other stakeholders of an intervention with indications of the extent of implementation progress, achievement of intended results, occurrence of unintended results, use of allocated funds and other important intervention and context-related information.&lt;/p&gt;
&lt;p&gt;Related terms: performance monitoring, performance indicator, indicator&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Objective (Sustainable development objective)&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Intended positive impacts contributing to physical, financial, institutional, social, well-being, environmental, or other benefits to a society, community, or group of people via one or more interventions.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Related term: intervention objective&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Intervention objective&lt;/p&gt;
&lt;p&gt;The overall purpose of an intervention. This includes the intended physical, financial, institutional, social, environmental, or other results that an intervention is expected to achieve or to which it is expected to contribute.&lt;/p&gt;
&lt;p&gt;Related terms: intervention purpose, goal&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Outcomes&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;The short-term and medium-term effects of an intervention’s outputs.&lt;/p&gt;
&lt;p&gt;Note: Outcomes are often changes in the institutional and behavioural capacities for development conditions that occur between the completion of outputs and the achievement of impacts.&lt;/p&gt;
&lt;p&gt;Related terms: results, outputs, impacts, effect.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Outputs&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;The products, capital goods and services that result from an intervention. Outputs may also include changes resulting from the intervention that contribute to the achievement of outcomes. Outputs include changes in knowledge, skills, or abilities produced by the activities.&lt;/p&gt;
&lt;p&gt;Note: Outputs are within the control of the implementing team and attributable to it. Related term: results&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Participatory monitoring and evaluation&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;An evaluation approach in which partners (including target groups) work together and are actively involved in monitoring and evaluation including designing plans, collecting and interpreting data, documenting and using findings, and formulating conclusions and recommendations.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Partner&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;An individual or organisation that collaborates on an intervention to achieve mutually agreed objectives.&lt;/p&gt;
&lt;p&gt;Note: The concept of partnership connotes shared goals, common responsibility for outcomes, distinct accountabilities and reciprocal obligations. Partners may include communities, governments (national regional, local), civil society organisations, non-governmental organisations, universities, professional and&lt;/p&gt;
&lt;p&gt;business associations, private entities, and multi-lateral organisations involved in funding, implementing or overseeing the intervention.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Performance&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;The degree to which an intervention or partner operates according to specific criteria, standards and guidelines, or achieves results in accordance with stated goals or plans.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Performance indicator&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Quantitative or qualitative factor or variable that provides a simple, verifiable, and reliable means to measure the performance of an actor, generally in terms of the process of implementation.&lt;/p&gt;
&lt;p&gt;Related terms: KPI, indicator&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Key Performance Indicator (KPI)&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;A subset of indicators that are considered to be the most important to achieving goals, and used to monitor progress, in an ongoing way.&lt;/p&gt;
&lt;p&gt;Related terms: indicator, performance&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Performance measurement&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;A system for assessing performance of interventions against stated goals. Related terms: performance monitoring, performance indicator, indicator.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Performance monitoring&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;A continuous process of collecting and analysing data to compare how well an intervention is being implemented against expected results.&lt;/p&gt;
&lt;p&gt;Related term: performance measurement&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Performance measurement framework&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;The performance measurement framework is a results-based management tool used to systematically plan the collection of relevant data over the lifetime of the project, in order to assess and demonstrate progress made in achieving expected results. The performance measurement framework is the “skeleton” of the monitoring plan: it documents the major elements of the monitoring system in order to ensure regular collection of actual data on the performance measurement framework indicators. The performance measurement framework contains all of the indicators used to measures progress on the achievement of the project’s results.&lt;/p&gt;
&lt;p&gt;In addition, it specifies who is responsible for collecting data on the indicator, from what source, at what frequency and with what method. It also includes the baseline data and target for each indicator.&lt;/p&gt;
&lt;p&gt;Related term: results framework&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Population&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;The total universe of persons or institutions in the context in which the intervention takes place; all potential targets of the intervention.&lt;/p&gt;
&lt;p&gt;Note: The target group of an intervention is a subset of the population Related terms: target group, people who benefit, stakeholders&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Process evaluation&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;An evaluation of the internal dynamics of implementing organisations, their policy instruments, their service delivery mechanisms, their management practices, and the linkages among these.&lt;/p&gt;
&lt;p&gt;Related term: formative evaluation&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Programme evaluation&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Evaluation of a set of interventions, combined to attain specific global, regional, country, or sector development objectives.&lt;/p&gt;
&lt;p&gt;Note: a development programme is a time-bound intervention involving multiple activities that may cut across sectors, themes and geographic areas.&lt;/p&gt;
&lt;p&gt;Related term: country programme evaluation.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Project evaluation&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Evaluation of an individual intervention designed to achieve specific objectives within specified resources and implementation schedules, often within the framework of a broader programme, examining its relevance, coherence, effectiveness, efficiency, impact and sustainability.&lt;/p&gt;
&lt;p&gt;Note: Cost-benefit analysis is one instrument often used in project evaluation for projects with measurable benefits. When benefits cannot be quantified, cost effectiveness is a suitable approach.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Quality assurance&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Any activity or process that is used to assess and improve the merit or the worth of an intervention or its compliance with given standards and requirements.&lt;/p&gt;
&lt;p&gt;Note: Examples of quality assurance activities include appraisal, results-based management, reviews, and evaluations. Quality assurance may also refer to the assessment of the quality of a portfolio and its overall effectiveness.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Quality at entry&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;The strength of the intervention implementation and results, at the time it is designed or before it starts, in terms of its potential relevance, effectiveness, coherence, efficiency, impact and sustainability.&lt;/p&gt;
&lt;p&gt;Note: Quality at entry may also be a factor of the extent to which the intervention design is evidence- informed, including the involvement of stakeholders in the conceptualisation of the intervention.&lt;/p&gt;
&lt;p&gt;Related terms: evaluability, ex-ante evaluation&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Randomised Control Trial (RCT)&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;A type of evaluation that randomly assigns access to the intervention, in order to control influencing variables and limit bias, generating internally valid estimates of results.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Reach&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;The people affected by an intervention, as a subset of the total population. Related terms: people who benefit, target group, population&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Real-time evaluation (real-time learning)&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;A process that provides immediate (independent) evaluative evidence, insights and feedback to inform decision making, learning and implementation while the intervention is underway.&lt;/p&gt;
&lt;p&gt;Related term: monitoring&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Recommendations&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Proposals aimed at enhancing the relevance, coherence, effectiveness, efficiency, impact or sustainability of the intervention; at redesigning the objectives; or reallocating resources. Recommendations should be based on findings and conclusions.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Relevance&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;The extent to which the intervention objectives and design respond to beneficiaries, global, country, and partner/institution needs, policies, and priorities, and continue to do so if circumstances change.&lt;/p&gt;
&lt;p&gt;Note: “Respond to” means that the objectives and design of the intervention are sensitive to the economic, environmental, equity, social, political economy, and capacity conditions in which it takes place. “Partner/institution” includes government (national, regional, local), civil society organisations, private entities and international bodies involved in funding, implementing and/or overseeing the intervention. Relevance assessment involves looking at differences and trade-offs between different priorities or needs. It requires analysing any changes in the context to assess the extent to which the intervention can be (or has been) adapted to remain relevant.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Reliability&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Consistency or dependability of data and evaluation judgements, with reference to the quality of the instruments, procedures and analyses used to collect and interpret results and evaluation data.&lt;/p&gt;
&lt;p&gt;Note: Evaluation and results information is reliable when repeated observations using similar instruments under similar conditions produce similar results.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Results&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;The outputs, outcomes or impacts (intended or unintended, positive or negative) of an intervention. Related terms: outputs, outcomes, effects, impacts&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Results chain&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;The causal sequence of an intervention that stipulates the different stages leading to the achievement of the desired objectives. In general, the results chain starts with inputs, which then link to activities and outputs, and culminate in outcomes, and impacts. In some cases, reach is included as part of the results chain.&lt;/p&gt;
&lt;p&gt;Related terms: inputs, activities, outputs, outcomes, impact, results framework, theory of change, performance measurement framework&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Results framework&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Explicit articulation (typically, in a graphical or tabular manner) of how a strategy or intervention will achieve the objective(s), including causal relationships and underlying assumptions and risks.&lt;/p&gt;
&lt;p&gt;Note: Generally, includes indicators (with baseline, data source, means of verification, etc. for each) for the full results chain: inputs, activities, outputs, outcomes and impacts. In some instances, results frameworks only describe the desired outputs, outcomes and impacts, leaving flexibility to define the inputs and activities that will lead to these results.&lt;/p&gt;
&lt;p&gt;Related terms: results chain, logical framework, theory of change, intervention logic.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Results information&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Qualitative or quantitative data about the outputs, outcomes or impacts (intended or unintended, positive or negative) of an intervention.&lt;/p&gt;
&lt;p&gt;Related terms: indicator; result, performance indicator&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Results-Based Management (RBM)&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;A management strategy focusing on performance and achievement of outputs, outcomes and impacts. This management approach provides the framework, tools and guidance for strategic planning, risk management, performance monitoring, evaluation and knowledge management. It serves four complementary purposes: decision-making, learning, accountability and communication.&lt;/p&gt;
&lt;p&gt;Note: RBM is often a participatory and team-based management approach designed to improve programme delivery and strengthen management effectiveness, efficiency, learning and accountability.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Review&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;An assessment of the performance of an intervention, periodically or on an ad hoc basis.&lt;/p&gt;
&lt;p&gt;Note: Sometimes the terms “review” and “evaluation” are used as synonyms. However an evaluation is generally a more systematic and comprehensive assessment than a review. Reviews tend to emphasise operational aspects.&lt;/p&gt;
&lt;p&gt;Related term: evaluation&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Risk analysis&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;An analysis or an assessment of factors that affect or are likely to affect the achievement of an intervention’s objectives. A detailed examination of the potential unwanted and negative consequences to human life, health, property, or the environment posed by an intervention; a systematic process to provide information regarding such undesirable consequences; the process of quantification of the probabilities and expected impacts for identified risks.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Rubric&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;A framework that sets out criteria and standards for different levels of performance and describes what performance would look like at each level, as a way of answering evaluative questions. It also includes guidance on how to synthesise evidence to form an overall evaluative conclusion.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Sample&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;A subset of a given population which is chosen in such a way as to allow extrapolation of findings to the population.
Note: Extrapolation can be done statistically for random sampling and analytically for purposeful sampling.
Related terms: counter-factual, population&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Scope of the evaluation&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;The time period, funds, geographical area, target group(s), organisational set-up, implementation arrangements, policy and institutional context, and other dimensions covered by the evaluation.
Note: The scope of the evaluation should be delineated along at least four levels: operational (all or part of the areas of intervention, one or more related policies or interventions), institutional (all or part of the&lt;/p&gt;
&lt;p&gt;authorities), temporal (period taken into account) and geographic (one or more territories or parts of territories, a specific, region, city, place, etc.).&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Sector programme evaluation&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Evaluation of a cluster of interventions within one country or across countries, all of which contribute to the achievement of a specific goal.&lt;/p&gt;
&lt;p&gt;Note: a sector includes development activities commonly grouped together for the purpose of public action such as health, education, agriculture, transport, etc.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Self-evaluation&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;An evaluation of an intervention by those who are responsible for its design and delivery. Related term: internal evaluation&lt;/p&gt;
&lt;p&gt;Social impact evaluation (social impact assessment)&lt;/p&gt;
&lt;p&gt;An evaluation that determines (ex-ante or ex-post) the likely or actual social effects of an intervention. Involves the intended and unintended social consequences, both positive and negative, of interventions and any social change processes affected by the intervention.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Stakeholders&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Agencies, organisations, groups or individuals who have a direct or indirect interest in the intervention or its monitoring and evaluation.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Strategic evaluation&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;An evaluation that examines how priorities are formulated, looking at overall systems and trends affecting performance and results.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Summative evaluation&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;A study conducted at the end of an intervention (or a phase of that intervention) to determine the extent to which anticipated outcomes were produced. Summative evaluation is intended to provide information about the worth or significance of the intervention.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Sustainability&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;The extent to which the net benefits of the intervention continue, or are likely to continue.&lt;/p&gt;
&lt;p&gt;Note: Includes an examination of the financial, economic, social, environmental, and institutional capacities of the systems needed to sustain net benefits over time. Involves analyses of resilience, risks and potential trade-offs. Depending on the timing of the evaluation, this may involve analysing the actual flow of net benefits or estimating the likelihood of net benefits continuing over the medium and long term.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Target&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;An objective, usually quantitative, defined as a value on an established indicator. The target is generally set at the beginning of an intervention and is expected to be achieved by a specific point in time with available resources.
Related term: performance indicator&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Target group&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;The specific individuals, communities or organisations that the intervention is intended to reach.&lt;/p&gt;
&lt;p&gt;Note: Can also be defined as the recipients of the goods and services produced by the intervention, or whose skills or capacities have changed because of the intervention. The target group may or may not be the individuals or organisations that, ultimately, are intended to benefit from the intervention.&lt;/p&gt;
&lt;p&gt;Related term: reach&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Terms of reference&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Written document presenting the purpose and scope of the evaluation, the methods to be used, the standard against which performance is to be assessed or analyses are to be conducted, the resources and time allocated, and reporting requirements.&lt;/p&gt;
&lt;p&gt;Note: Two alternative expressions sometimes used are “scope of work” and “evaluation mandate”.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Thematic evaluation&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Evaluation of a selection of interventions, all of which address a specific sustainable development priority or topic, that cuts across countries, regions, and sectors.&lt;/p&gt;
&lt;p&gt;Note: Often thematic evaluations will examine a strategic approach or priority topic across a variety of interventions. An example would be evaluating the extent to which the rights of people with disabilities were advanced across a portfolio of interventions in education, health and employment.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Theory of change&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;The way the intervention is expected to achieve or achieves change. It represents how people understand change to occur in a given context, including explicit (or implicit) assumptions about the causal links between inputs, activities and results. Often also includes evidence and risks for these elements of the results chain.&lt;/p&gt;
&lt;p&gt;Related terms: intervention logic, logical framework, results chain, assumptions&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Transformative effects&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Holistic and enduring changes in systems or norms. Related term: impacts&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Triangulation&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;The use of three or more theories, sources or types of information, or types of analysis to verify and substantiate an assessment.&lt;/p&gt;
&lt;p&gt;Note: Seeks to overcome the bias that comes from single informants, single methods, single observers or single theory studies by combining multiple data sources, methods, analyses or theories, monitoring and evaluation.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Validity&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;The extent to which an evaluation is logically and factually sound. Also used to describe the quality of data collection strategies and instruments to accurately measure what they purport to measure.&lt;/p&gt;
&lt;p&gt;-&amp;mdash;&amp;mdash;&amp;mdash;&amp;mdash;&amp;mdash;&amp;ndash; END &amp;mdash;&amp;mdash;&amp;mdash;&amp;mdash;&amp;mdash;&amp;mdash;&amp;mdash;&amp;mdash;&amp;ndash;&lt;/p&gt;</description></item><item><title>AI Prompt Engineering</title><link>https://suman.netlify.app/post/ai_prompt_engineering/</link><pubDate>Wed, 10 May 2023 00:00:00 +0000</pubDate><guid>https://suman.netlify.app/post/ai_prompt_engineering/</guid><description>&lt;h3 id="1-start-with-an-instruction"&gt;1. &lt;a href="https://platform.openai.com/docs/quickstart/start-with-an-instruction" target="_blank" rel="noopener"&gt;Start with an instruction&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Try making your instruction more specific. e.g: Suggest one name for a black horse.&lt;/p&gt;
&lt;h3 id="2-add-some-examples"&gt;2. &lt;a href="https://platform.openai.com/docs/quickstart/add-some-examples" target="_blank" rel="noopener"&gt;Add some examples&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;It’s helpful to both show and tell the model what you want. Adding examples to your prompt can help communicate patterns or nuances. Try submitting this prompt which includes a couple examples.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Suggest three names for an animal that is a superhero.
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Animal: Cat
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Names: Captain Sharpclaw, Agent Fluffball, The Incredible Feline
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Animal: Dog
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Names: Ruff the Protector, Wonder Canine, Sir Barks-a-Lot
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Animal: Horse
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Names:
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Nice! Adding examples of the output we’d expect for a given input helped the model provide the types of names we were looking for.&lt;/p&gt;
&lt;h3 id="3-adjust-your-settings"&gt;3. Adjust your settings&lt;/h3&gt;
&lt;p&gt;Prompt design isn’t the only tool you have at your disposal. You can also control completions by adjusting your settings. One of the most important settings is called temperature.&lt;/p&gt;
&lt;p&gt;You may have noticed that if you submitted the same prompt multiple times in the examples above, the model would always return identical or very similar completions. This is because your temperature was set to 0.&lt;/p&gt;
&lt;p&gt;Try re-submitting the same prompt a few times with temperature set to 1.&lt;/p&gt;</description></item></channel></rss>