[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"technologies":3,"\u002Fservices\u002Fweb-development\u002Fnuxt-development":167,"service-parent:\u002Fservices\u002Fweb-development\u002Fnuxt-development":451,"service-children:\u002Fservices\u002Fweb-development\u002Fnuxt-development":753,"glossary":754},[4,10,15,21,26,32,38,43,48,53,58,63,68,73,77,82,87,92,97,103,108,113,118,123,128,133,138,143,147,152,157,162],{"title":5,"description":6,"slug":7,"category":8,"icon":9},"Android","Every app we ship reaches Android — platform APIs, background execution, permissions, and the store requirements that come with them.","android","framework","logos:android-icon",{"title":11,"description":12,"slug":13,"category":8,"icon":14},"Angular","The front-end framework we work in when a product is already Angular — a batteries-included structure that suits large, long-lived apps.","angular","logos:angular-icon",{"title":16,"description":17,"slug":18,"category":19,"icon":20},"Dart","The language every Flutter app we ship is written in — sound null safety, real pattern matching, and a compiler that targets native and the web.","dart","language","logos:dart",{"title":22,"description":23,"slug":24,"category":8,"icon":25},"Django","The Python framework we use when a product needs an admin, auth and a real data model on day one rather than a hand-rolled service.","django","logos:django-icon",{"title":27,"description":28,"slug":29,"category":30,"icon":31},"Docker","Every service we build ships as a container, so what runs on a laptop, in CI and in production is one artefact rather than three of them.","docker","infrastructure","logos:docker-icon",{"title":33,"description":34,"slug":35,"category":36,"icon":37},"Fastlane","The release automation behind our mobile work — signing, builds and store uploads run from CI instead of from one engineer's laptop on release day.","fastlane","tools","logos:fastlane",{"title":39,"description":40,"slug":41,"category":8,"icon":42},"Flutter","Our primary mobile stack since 2018 — one Dart codebase shipping to iOS, Android, web and desktop without a separate team per platform.","flutter","logos:flutter",{"title":44,"description":45,"slug":46,"category":36,"icon":47},"Git","Every project we touch lives in Git — reviewed pull requests, CI on every branch, and a history that still makes sense months later.","git","logos:git-icon",{"title":49,"description":50,"slug":51,"category":19,"icon":52},"Go","Our backend language for real-time APIs and services under load — small binaries, fast builds, and concurrency that stays readable.","go","logos:gopher",{"title":54,"description":55,"slug":56,"category":30,"icon":57},"Google Cloud","The cloud our production workloads run on — managed Kubernetes, storage and networking, without hand-built servers nobody wants to maintain.","gcp","logos:google-cloud",{"title":59,"description":60,"slug":61,"category":36,"icon":62},"Gradle","The build system every Android release goes through — product flavours, signing configs, and the dependency wiring under a Flutter app.","gradle","logos:gradle",{"title":64,"description":65,"slug":66,"category":30,"icon":67},"Helm","How we package a Kubernetes deployment — service, config, secrets and ingress as one versioned unit that can be promoted and rolled back.","helm","logos:helm",{"title":69,"description":70,"slug":71,"category":19,"icon":72},"Kotlin","What we reach for when a Flutter app needs real Android underneath it — platform channels, background work, and native SDK integrations.","kotlin","logos:kotlin-icon",{"title":74,"description":75,"slug":76,"category":8,"icon":72},"Kotlin Multiplatform","Sharing business logic across iOS and Android while each platform keeps its own native UI — the alternative when Flutter is not the right fit.","kmp",{"title":78,"description":79,"slug":80,"category":30,"icon":81},"Kubernetes","How we run services in production — Helm-packaged deployments, rollouts that can be rolled back, and scaling that does not need a person at 3am.","kubernetes","logos:kubernetes",{"title":83,"description":84,"slug":85,"category":30,"icon":86},"NATS","Lightweight messaging between services — publish\u002Fsubscribe and request\u002Freply without the operational weight of a full broker cluster.","nats","logos:nats-icon",{"title":88,"description":89,"slug":90,"category":8,"icon":91},"Nuxt","Vue with server rendering, routing and SEO handled — how we build marketing sites and web apps that must be fast and indexable on first load.","nuxt","logos:nuxt-icon",{"title":93,"description":94,"slug":95,"category":19,"icon":96},"PHP","Where we work with an existing PHP backend — extending it, integrating with it, and building the mobile and web clients it has to serve.","php","logos:php",{"title":98,"description":99,"slug":100,"category":101,"icon":102},"PostgreSQL","Our default database — the one we reach for unless a product gives us a specific reason not to, from schema design through to index tuning.","postgres","database","logos:postgresql",{"title":104,"description":105,"slug":106,"category":19,"icon":107},"Python","Our language for backends, data work and AI integrations — including the Python bindings we ship for our own Rust tooling.","python","logos:python",{"title":109,"description":110,"slug":111,"category":8,"icon":112},"React","The front-end library we work in when a product is already React — components, hooks, and the ecosystem that has grown around them.","react","logos:react",{"title":114,"description":115,"slug":116,"category":101,"icon":117},"Redis","Where we put data that has to be fast and can be rebuilt — caches, sessions, rate limits, and the queues behind a product's slow paths.","redis","logos:redis",{"title":119,"description":120,"slug":121,"category":19,"icon":122},"Ruby","The language our mobile release automation is written in — Fastlane lanes, custom actions, and the CI glue that ships builds to the stores.","ruby","logos:ruby",{"title":124,"description":125,"slug":126,"category":19,"icon":127},"Rust","Where we go when performance and correctness both matter — document rendering, CLI tooling, and services that have to stay fast and predictable.","rust","simple-icons:rust",{"title":129,"description":130,"slug":131,"category":101,"icon":132},"SQLite","The database that ships inside the app — local caches, offline-first storage, and anything that still has to work with no network.","sqlite","logos:sqlite",{"title":134,"description":135,"slug":136,"category":8,"icon":137},"Strapi","A headless CMS we reach for when editors need to own the content — a real admin and a clean API, without building either from scratch.","strapi","logos:strapi-icon",{"title":139,"description":140,"slug":141,"category":19,"icon":142},"Swift","What we reach for when a Flutter app needs real iOS underneath it — platform channels, native SDK integrations, widgets and App Clips.","swift","logos:swift",{"title":144,"description":145,"slug":146,"category":8,"icon":142},"SwiftUI","Apple's UI framework, where we build the native surfaces a Flutter app cannot own — widgets, App Clips, extensions and system integrations.","swiftui",{"title":148,"description":149,"slug":150,"category":8,"icon":151},"Tailwind CSS","How we style every front end we build — utility classes and design tokens instead of a stylesheet that only ever grows and is never deleted.","tailwind","logos:tailwindcss-icon",{"title":153,"description":154,"slug":155,"category":19,"icon":156},"TypeScript","The default for everything we write for the browser and for Node services — types that catch integration bugs before they reach a review.","typescript","logos:typescript-icon",{"title":158,"description":159,"slug":160,"category":8,"icon":161},"Vue","Our front-end framework for admin panels, merchant dashboards and product web apps that have to stay maintainable for years, not sprints.","vue","logos:vue",{"title":163,"description":164,"slug":165,"category":36,"icon":166},"Whisper","OpenAI's open-source speech recognition model — the transcription engine behind voice input, running as both a backend service and on-device in the app.","whisper","simple-icons:openai",{"id":168,"title":169,"body":170,"description":415,"extension":416,"footerCta":417,"headingCta":431,"image":435,"meta":439,"metaDescription":440,"metaTitle":441,"navigation":442,"ogDescription":443,"parent":444,"path":445,"seo":446,"slug":447,"stem":448,"updated":449,"__hash__":450},"services_en\u002Fservices\u002Fnuxt-development.md","Nuxt Development",{"type":171,"value":172,"toc":395},"minimark",[173,183,186,191,240,245,248,252,255,259,271,275,278,282,285,289,295,299,302,306,309,313,316,320,326,337,340,344,363,366,370,373,377],[174,175,176,177,182],"p",{},"Nuxt development is building web applications on Nuxt, the full-stack framework that wraps Vue in what a production site needs: ",[178,179,181],"term",{"slug":180},"server-side-rendering","server-side rendering",", file-based routing, server API routes, image optimisation, and a content layer for Markdown-driven pages. A Nuxt site ships real HTML on the first response, so crawlers, link previews, and slow phones get the page instead of a spinner that promises one.",[174,184,185],{},"We are not neutral about this framework, and we do not pretend to be. This site — four locale domains, Markdown content collections, generated sitemaps, structured data on every page — is Nuxt, and we feel the consequences of every architectural choice in our own search traffic before we recommend it to anyone.",[187,188,190],"h3",{"id":189},"the-products-we-build","The products we build",[192,193,194,208,214,224,230],"ul",{},[195,196,197,201,202,207],"li",{},[198,199,200],"strong",{},"Marketing and content sites"," — fast, indexable, and editable in Markdown or a CMS, priced as their own tier on the ",[203,204,206],"a",{"href":205},"\u002Fservices\u002Fweb-development","web development"," page",[195,209,210,213],{},[198,211,212],{},"Content platforms"," — blogs, documentation, multi-language editorial sites where structured data and hreflang do real work",[195,215,216,219,220],{},[198,217,218],{},"Product web apps"," — authenticated, interactive applications where the public pages still have to rank; the back-office variant is covered on ",[203,221,223],{"href":222},"\u002Fservices\u002Fweb-development\u002Fadmin-dashboards","admin panels & dashboards",[195,225,226,229],{},[198,227,228],{},"Migrations onto Nuxt"," — moving a frontend off server templates, WordPress, or a client-rendered SPA without stopping the product",[195,231,232,235,236],{},[198,233,234],{},"The web side of a mobile product"," — where the app is the product and the web is its public face; that pairing has its own page, ",[203,237,239],{"href":238},"\u002Fservices\u002Fweb-development\u002Fcompanion-web-app","companion web apps",[241,242,244],"h2",{"id":243},"who-builds-your-nuxt-app","Who Builds Your Nuxt App",[174,246,247],{},"Both proofs below are live, and you can check either one yourself.",[187,249,251],{"id":250},"this-site-which-you-are-reading-through-nuxt-right-now","This site, which you are reading through Nuxt right now",[174,253,254],{},"nerdy.pro runs on Nuxt 4 with SSR: multi-domain internationalisation across four locales, Nuxt Content driving every service and blog page, generated sitemaps, per-page JSON-LD, and Core Web Vitals we answer for with our own leads. Dogfooding is easy to claim, so we make it verifiable: view the source of this page and the full HTML is there, no JavaScript required.",[187,256,258],{"id":257},"formtastic-a-frontend-moved-onto-nuxt-under-load","Formtastic — a frontend moved onto Nuxt under load",[174,260,261,265,266,270],{},[203,262,264],{"href":263},"\u002Fportfolio\u002Fformtastic","Formtastic's"," interface began as Django templates: quick to start, increasingly expensive to evolve, every UI change coupled to a backend developer. We separated the system: Django stayed as the API, and the entire user interface moved to a Nuxt frontend with SSR and SSG. Screen development sped up, server load dropped, and the public pages gained measurably in SEO and loading speed. The web application is live at app.formtastic.de. The back office of our ",[203,267,269],{"href":268},"\u002Fportfolio\u002Fcashback-loyalty-platform","cashback loyalty platform"," is Nuxt as well, where the framework's server routes and conventions pay for themselves even though SEO never enters the picture.",[241,272,274],{"id":273},"what-nuxt-work-actually-demands","What Nuxt Work Actually Demands",[174,276,277],{},"The framework gives you rendering for free. Production Nuxt is everything around it.",[187,279,281],{"id":280},"rendering-the-right-pages-the-right-way","Rendering the right pages the right way",[174,283,284],{},"SSR, SSG, and client-only rendering are per-route decisions, not a religion. A pricing page wants to be statically generated and cached at the edge; a dashboard behind a login wants no server rendering at all; a content page wants SSR with cache headers tuned to how often it changes. We set these choices explicitly per route, and we engineer out hydration mismatches, the classic Nuxt production bug, rather than patching around them.",[187,286,288],{"id":287},"content-modelling-before-content-entry","Content modelling before content entry",[174,290,291,292,294],{},"The schema decides what a content site can do: what fields a page has, what is validated at build time, what an editor can and cannot break. We model content first, in Nuxt Content with type-safe schemas when developers own the words, or in a headless CMS when editors do. The trade-off between those two is laid out on the ",[203,293,206],{"href":205}," page.",[187,296,298],{"id":297},"the-seo-machinery-most-builds-skip","The SEO machinery most builds skip",[174,300,301],{},"Meta and Open Graph tags rendered server-side, canonical URLs, hreflang across languages and domains, JSON-LD structured data, sitemaps that update themselves. This site emits all of it, page by page, from the same code we deploy for clients. None of it arrives by switching on a plugin.",[187,303,305],{"id":304},"performance-as-a-budget","Performance as a budget",[174,307,308],{},"Core Web Vitals are targets we build to: images sized and lazy-loaded through Nuxt's own pipeline, code split by route, caching set per content type. Server rendering does not make a page fast on its own; it only puts the speed under your control.",[241,310,312],{"id":311},"migrating-to-nuxt-without-stopping-the-product","Migrating to Nuxt Without Stopping the Product",[174,314,315],{},"The Formtastic pattern generalises. The existing backend keeps serving as the API — Django, Rails, Laravel, PHP services, it does not matter — while the interface moves to Nuxt route by route, public pages first, where SSR pays immediately. No big-bang rewrite, no feature freeze, and each migrated route is measurable against its predecessor on speed and search before the next one moves. If your frontend is a client-rendered SPA that never ranks, the same approach applies; only the framework underneath is different.",[241,317,319],{"id":318},"how-we-work","How We Work",[174,321,322,325],{},[198,323,324],{},"Fixed-scope build."," Discovery, content model, build, deployment, including analytics wiring and the search-console handover, so you can measure the SEO results instead of taking our word for them.",[174,327,328,331,332,336],{},[198,329,330],{},"Staff augmentation."," Our engineers join your team's repo and sprints — see ",[203,333,335],{"href":334},"\u002Fservices\u002Fteam-augmentation","team augmentation",".",[174,338,339],{},"Either way, we send a scoped quote within two business days of understanding the requirements.",[241,341,343],{"id":342},"what-nuxt-development-costs","What Nuxt Development Costs",[174,345,346,347,349,350,355,356,359,360,336],{},"Nuxt work is priced from the ",[203,348,206],{"href":205}," page's published tiers: a marketing or content site at ",[351,352],"service-price",{"format":353,"service":354},"full","web-development\u002Flanding",", an authenticated web app at ",[351,357],{"format":353,"service":358},"web-development\u002Fapp",", and an editor-owned content platform on a headless CMS at ",[351,361],{"format":353,"service":362},"web-development\u002Fheadless-cms",[174,364,365],{},"These are the same published tiers as the pillar's pricing table; the same keys render both, so the two cannot drift. A migration prices like the tier it lands in: moving a marketing site onto Nuxt is landing-tier work, moving an authenticated product frontend is web-app-tier work, with the existing API intact either way.",[241,367,369],{"id":368},"frequently-asked-questions","Frequently Asked Questions",[174,371,372],{},"Common questions from teams considering Nuxt for a build or a migration.",[374,375],"questions",{":items":376},"[{\"title\":\"What is Nuxt and why would we choose it?\",\"text\":\"Nuxt is a full-stack web framework built on Vue that handles server-side rendering, routing, server API routes, and image optimisation out of the box. The practical reason to choose it: your pages arrive as real HTML, so search engines and link previews read them without executing JavaScript. That is the single biggest framework-level lever for organic search. We run our own site on it, so the recommendation comes from operating the framework, not from a comparison chart.\"},{\"title\":\"Nuxt or Next.js?\",\"text\":\"They are honest equivalents: Nuxt is to Vue what Next.js is to React, and both handle server rendering, routing, and full-stack conventions well. The deciding factor is almost never the framework: it is which ecosystem your team can hire for and maintain. Ours is Vue, we run our own business on Nuxt, and that operational depth is what we sell. If your team is deep in React and hiring against it, Next.js is the right call and we will say so.\"},{\"title\":\"Can you migrate our existing site to Nuxt without a rewrite?\",\"text\":\"Yes, and that is the Formtastic pattern. Your existing backend stays as the API while the interface moves to Nuxt route by route, public pages first where server-side rendering pays immediately. No feature freeze, no big-bang cutover, and each migrated route is measured against its predecessor on speed and search before the next moves. The same discipline applies whether you are leaving server templates, WordPress, or a client-rendered single-page app.\"},{\"title\":\"Will moving to Nuxt actually improve our SEO?\",\"text\":\"If your current frontend renders in the browser or couples every page to slow server templates, usually yes, and measurably. Server-side rendering puts content, meta tags, and structured data into the first HTML response, which is the most impactful framework-level decision for organic search. Formtastic's public pages gained in both SEO and loading speed after the move. What Nuxt cannot do is compensate for thin content. If your problem is the words rather than the rendering, we will tell you.\"},{\"title\":\"How much does a Nuxt project cost?\",\"text\":\"A fast marketing or content site typically runs 5,000 to 12,000 US dollars over two to four weeks, an authenticated web app 15,000 to 40,000 over one to three months, and an editor-owned content platform on a headless CMS 20,000 to 50,000. These are the published tiers on our web development page, not a starting position for a sales call. A migration prices like the tier it lands in, since the existing API stays.\"},{\"title\":\"When would you advise against Nuxt?\",\"text\":\"For a purely internal tool behind a login, where nothing needs indexing, a plain Vue single-page app is simpler to reason about and cheaper to run, and our own technology notes say exactly that. Also when your team is committed to React, where Next.js keeps you hiring from your own ecosystem. Nuxt earns its complexity when pages must be found, shared, or fast on first load; when none of those apply, we will recommend the simpler thing.\"}]",[174,378,379,380,383,384,387,388,391,392,394],{},"Read the ",[203,381,382],{"href":263},"Formtastic migration"," case study, see why we reach for ",[203,385,88],{"href":386},"\u002Ftechnologies\u002Fnuxt"," over plain ",[203,389,158],{"href":390},"\u002Ftechnologies\u002Fvue"," when SEO matters, or start from the ",[203,393,206],{"href":205}," pillar.",{"title":396,"searchDepth":397,"depth":397,"links":398},"",2,[399,401,405,411,412,413,414],{"id":189,"depth":400,"text":190},3,{"id":243,"depth":397,"text":244,"children":402},[403,404],{"id":250,"depth":400,"text":251},{"id":257,"depth":400,"text":258},{"id":273,"depth":397,"text":274,"children":406},[407,408,409,410],{"id":280,"depth":400,"text":281},{"id":287,"depth":400,"text":288},{"id":297,"depth":400,"text":298},{"id":304,"depth":400,"text":305},{"id":311,"depth":397,"text":312},{"id":318,"depth":397,"text":319},{"id":342,"depth":397,"text":343},{"id":368,"depth":397,"text":369},"Marketing sites, content platforms, and migrations onto server-side rendering — from a team that runs its own business on Nuxt and has moved client frontends onto it under load","md",{"heading":418,"text":419,"buttons":420},"Considering Nuxt for Your Next Build, or Your Current One?","Whether you are starting fresh or dragging a template-rendered frontend into the present, we will tell you honestly whether Nuxt fits and what the migration actually involves.",[421,427],{"to":422,"label":423,"leadingIcon":424,"color":425,"variant":426},"\u002Fcontact?intent=web-development","Book a Consultation","lucide:message-circle","neutral","outline",{"to":263,"label":428,"color":429,"variant":430},"See the Formtastic migration","primary","solid",[432,433],{"to":422,"label":423,"leadingIcon":424,"color":429,"variant":430},{"to":263,"label":434,"color":425,"variant":426},"See Our Work",{"url":436,"alt":437,"text":438},"\u002Fservices\u002Fnuxt-development.webp","Nuxt development services","The framework this site runs on",{},"Nuxt development services: server-rendered sites, content platforms, and migrations from templates or SPAs — by a team that runs its own site on Nuxt.","Nuxt Development Services — SSR Sites & Web Apps",true,"Nuxt sites that load fast and rank — built by a team that runs its own business on the framework and has migrated client frontends onto it.","web-development","\u002Fservices\u002Fweb-development\u002Fnuxt-development",{"title":169,"description":415},"nuxt-development","services\u002Fnuxt-development","2026-09-05","-FS6T5muSrzxZH30BT8AiA4JlxE9FihWR7jfCJe5yTg",{"id":452,"title":453,"body":454,"description":725,"extension":416,"footerCta":726,"headingCta":736,"image":742,"meta":745,"metaDescription":746,"metaTitle":747,"navigation":442,"ogDescription":748,"parent":749,"path":205,"seo":750,"slug":444,"stem":751,"updated":449,"__hash__":752},"services_en\u002Fservices\u002Fweb-development.md","Web Development",{"type":171,"value":455,"toc":712},[456,460,463,480,484,488,491,495,498,502,505,509,519,523,536,541,554,558,561,605,609,612,618,624,634,664,668,671,675,682,684,687,709],[241,457,459],{"id":458},"modern-web-development-with-nuxt-and-ssr","Modern Web Development with Nuxt and SSR",[174,461,462],{},"We build fast, search-friendly web applications on a modern, server-rendered stack. Not a page-builder, not a bloated single-page app that ships a blank screen to Google — real applications that render on the server, load quickly on a phone, and rank.",[174,464,465,466,469,470,472,473,476,477,479],{},"How sure are we about this stack? ",[198,467,468],{},"This very site is built on it"," — Nuxt 4, ",[178,471,181],{"slug":180},", Tailwind CSS, and Nuxt Content. We didn't pick these tools for a sales page; we run our own business on them. We've also shipped them for clients, including ",[203,474,475],{"href":263},"Formtastic",", a form-building platform built on Nuxt, and the ",[203,478,269],{"href":268},", whose Nuxt admin back office launches branded apps on top of PHP services.",[481,482],"statistics-grid",{":items":483},"[{\"icon\": \"lucide:search\", \"value\": \"SSR\", \"label\": \"Indexable by Default\", \"description\": \"Server-rendered HTML crawlers can read without running JavaScript\"}, {\"icon\": \"lucide:gauge\", \"value\": \"90+\", \"label\": \"Lighthouse Targets\", \"description\": \"We build to Core Web Vitals, not against them\"}, {\"icon\": \"lucide:smartphone\", \"value\": \"Mobile-First\", \"label\": \"Responsive Everywhere\", \"description\": \"Designed for phones first, scaled up to desktop\"}, {\"icon\": \"lucide:code\", \"value\": \"Type-Safe\", \"label\": \"TypeScript End to End\", \"description\": \"From the API layer to the component props\"}]",[241,485,487],{"id":486},"our-stack-and-why-nuxt-ssr","Our Stack — and Why Nuxt + SSR",[174,489,490],{},"The framework choice is the difference between a site Google can read instantly and one it struggles to render. Here is what we build on and why.",[187,492,494],{"id":493},"server-side-rendering-for-seo","Server-Side Rendering for SEO",[174,496,497],{},"A traditional single-page app ships an empty HTML shell and asks the browser to build the page with JavaScript. Crawlers, link previews, and slow devices all suffer for it. Nuxt renders the full HTML on the server, so the content is present on the very first response — meta tags, headings, structured data, and copy all there before a single line of client JavaScript runs. This is the single biggest on-page SEO lever a framework can give you, and it's the default, not an add-on.",[187,499,501],{"id":500},"tailwind-for-fast-consistent-ui","Tailwind for Fast, Consistent UI",[174,503,504],{},"We style with Tailwind CSS — utility-first, no wandering global stylesheets, no dead CSS shipped to users. It keeps the design system consistent across every page, makes responsive breakpoints explicit, and ships only the classes you actually use. The result is a UI that's quick to build, easy to maintain, and small to download.",[187,506,508],{"id":507},"nuxt-content-for-content-driven-sites","Nuxt Content for Content-Driven Sites",[174,510,511,512,518],{},"For marketing sites, documentation, and blogs, ",[203,513,517],{"href":514,"rel":515},"https:\u002F\u002Fcontent.nuxt.com",[516],"nofollow","Nuxt Content"," turns Markdown into fully rendered, server-side pages with type-safe schemas — exactly how this site's blog and service pages work. Editors write Markdown; the site stays fast and indexable; developers keep version control over everything. No database required.",[187,520,522],{"id":521},"strapi-when-you-need-a-headless-cms","Strapi When You Need a Headless CMS",[174,524,525,526,530,531,535],{},"When non-technical editors need to own the content — products, listings, campaigns — we wire up ",[203,527,134],{"href":528,"rel":529},"https:\u002F\u002Fstrapi.io",[516],", an open-source ",[178,532,534],{"slug":533},"headless-cms","headless CMS",". Your team gets a friendly admin panel; the Nuxt frontend consumes a clean API and renders it server-side. You get editorial freedom without giving up performance or SEO, and you own the data and the hosting.",[537,538],"features",{":items":539,":title":540},"[{\"label\": \"Mobile-Compatible Pages\", \"description\": \"Mobile-first, responsive layouts that work on every screen from phone to widescreen — tested, not assumed\"}, {\"label\": \"Authentication Done Properly\", \"description\": \"Sessions, OAuth, and JWT with real server-side authorization checks — not a login screen with an open back door\"}, {\"label\": \"Secure Cookies & Consent\", \"description\": \"httpOnly, secure, SameSite cookies for sessions, plus GDPR-compliant consent handling for analytics and tracking\"}, {\"label\": \"SEO Built In\", \"description\": \"Server-rendered meta tags, Open Graph, canonical and hreflang links, and JSON-LD structured data on every page\"}, {\"label\": \"Performance & Core Web Vitals\", \"description\": \"Image optimization, code splitting, and caching tuned to pass Core Web Vitals on real devices\"}, {\"label\": \"Headless CMS Integration\", \"description\": \"Nuxt Content or Strapi so your team can publish without touching code\"}]","What We Get Right",[542,543,546],"info-box",{":leading-icon":544,":title":545},"lucide:shield-check","Security is part of the build",[174,547,548,549,553],{},"Authentication, cookies, and data handling are where most web apps quietly leak. We build them right from the start — and if you've inherited an app you're unsure about, our ",[203,550,552],{"href":551},"\u002Fservices\u002Fai-code-audit","AI-generated code audit"," reviews authentication, session security, and data exposure before they become an incident.",[241,555,557],{"id":556},"what-we-build","What We Build",[174,559,560],{},"Four kinds of web work come up again and again in our engagements, and each now has its own page with the proof behind it:",[192,562,563,573,584,592],{},[195,564,565,570,571,336],{},[198,566,567],{},[203,568,569],{"href":222},"Admin panels & dashboards"," — the back offices behind products: role-based access, forms that drive real machinery, tables that stay usable at scale. Anchored by the admin UI that launches branded apps for our ",[203,572,269],{"href":268},[195,574,575,580,581,583],{},[198,576,577],{},[203,578,579],{"href":445},"Nuxt development"," — marketing sites, content platforms, and migrations onto server-side rendering, like ",[203,582,264],{"href":263}," move from Django templates to Nuxt. This site is the standing demo.",[195,585,586,591],{},[198,587,588],{},[203,589,590],{"href":238},"Companion web apps"," — the browser surface of a product that lives primarily in a mobile app, sharing one API and one backend with it.",[195,593,594,600,601,336],{},[198,595,596],{},[203,597,599],{"href":598},"\u002Fservices\u002Fweb-development\u002Fembeddable-widgets","Embeddable widgets & scripts"," — JavaScript that runs inside pages you don't control, built dependency-free and defensive, like the collector behind our ",[203,602,604],{"href":603},"\u002Fportfolio\u002Frealtime-bot-detection-platform","bot-detection platform",[241,606,608],{"id":607},"flutter-for-the-web-pros-and-cons","Flutter for the Web — Pros and Cons",[174,610,611],{},"Flutter can compile to the web, and clients with a Flutter mobile app often ask whether they should reuse it for their website too. The honest answer: sometimes — but rarely for public, content-driven web. Here's the trade-off.",[613,614],"features-table",{":heading":615,":rows":616,":top-left-label":617},"[{\"label\": \"Nuxt + SSR\", \"hightlightLabel\": \"Public Web\"}, {\"label\": \"Flutter Web\"}, {\"label\": \"Traditional SPA\"}]","[{\"label\": \"SEO \u002F Indexability\",\"cells\": [{\"text\": \"Excellent (SSR)\", \"color\": \"success\", \"icon\": \"lucide:check-circle\" },{ \"text\": \"Poor (canvas render)\", \"color\": \"error\", \"icon\": \"lucide:x\" },{ \"text\": \"Weak (empty shell)\", \"color\": \"warning\", \"icon\": \"lucide:minus\" }]}, {\"label\": \"Initial Load Size\",\"cells\": [{\"text\": \"Small\", \"color\": \"success\", \"icon\": \"lucide:check-circle\" },{ \"text\": \"Heavy (large bundle)\", \"color\": \"error\", \"icon\": \"lucide:x\" },{ \"text\": \"Medium\", \"color\": \"warning\", \"icon\": \"lucide:minus\" }]}, {\"label\": \"Code Shared with Mobile\",\"cells\": [{\"text\": \"None\", \"color\": \"warning\", \"icon\": \"lucide:minus\" },{ \"text\": \"Near 100%\", \"color\": \"success\", \"icon\": \"lucide:check-circle\" },{ \"text\": \"Some (React Native)\", \"color\": \"warning\", \"icon\": \"lucide:minus\" }]}, {\"label\": \"App-Like \u002F Complex UI\",\"cells\": [{\"text\": \"Good\", \"color\": \"success\", \"icon\": \"lucide:check-circle\" },{ \"text\": \"Excellent\", \"color\": \"success\", \"icon\": \"lucide:check-circle\" },{ \"text\": \"Good\", \"color\": \"success\", \"icon\": \"lucide:check-circle\" }]}, {\"label\": \"Content \u002F Marketing Sites\",\"cells\": [{\"text\": \"Ideal\", \"color\": \"success\", \"icon\": \"lucide:check-circle\" },{ \"text\": \"Poor Fit\", \"color\": \"error\", \"icon\": \"lucide:x\" },{ \"text\": \"Workable\", \"color\": \"warning\", \"icon\": \"lucide:minus\" }]}, {\"label\": \"Accessibility\",\"cells\": [{\"text\": \"Native HTML\", \"color\": \"success\", \"icon\": \"lucide:check-circle\" },{ \"text\": \"Improving, Limited\", \"color\": \"warning\", \"icon\": \"lucide:minus\" },{ \"text\": \"Native HTML\", \"color\": \"success\", \"icon\": \"lucide:check-circle\" }]}, {\"label\": \"Best For\",\"cells\": [{\"text\": \"Sites & Web Apps\", \"color\": \"success\"},{ \"text\": \"Internal \u002F App-Like Tools\", \"color\": \"warning\"},{ \"text\": \"Dashboards\", \"color\": \"warning\"}]}]","Aspect",[174,619,620,623],{},[198,621,622],{},"Where Flutter web shines:"," an app-like product where you already have a Flutter mobile codebase and want one team shipping everywhere — internal dashboards, logged-in tools, highly interactive or canvas-driven UIs behind a login wall, where SEO doesn't matter and users expect an app, not a page.",[174,625,626,629,630,633],{},[198,627,628],{},"Where it hurts:"," anything that needs to be found on Google. Flutter web renders to a canvas, which crawlers struggle to read, ships a heavy initial bundle, and fights the browser on accessibility and ",[178,631,632],{"slug":632},"deep-linking",". For marketing sites, blogs, e-commerce, and landing pages, that's disqualifying.",[542,635,636],{},[174,637,638,641,642,645,646,649,650,654,655,659,660,336],{},[198,639,640],{},"Bottom line:"," Use ",[198,643,644],{},"Nuxt + SSR"," for anything public or SEO-driven — marketing sites, content, e-commerce, SaaS marketing surfaces. Use ",[198,647,648],{},"Flutter web"," when you're extending a Flutter mobile app into an app-like web tool where reach through search isn't the goal. We build both and will tell you honestly which one your project needs. If mobile is also on the table, see our ",[203,651,653],{"href":652},"\u002Fservices\u002Fflutter-app-development","Flutter app development"," service and the trade-offs in ",[203,656,658],{"href":657},"\u002Fblog\u002Fflutter-vs-react-native-2026","Flutter vs React Native in 2026"," and ",[203,661,663],{"href":662},"\u002Fblog\u002Fflutter-vs-native-2026","Flutter vs Native",[241,665,667],{"id":666},"web-development-pricing","Web Development Pricing",[174,669,670],{},"Transparent ranges based on scope and complexity",[672,673],"pricing-table",{":items":674},"[{\"title\": \"Marketing \u002F Landing Site\", \"subtitle\": \"Fast, SEO-ready, content-driven\", \"price\": \"web-development\u002Flanding\", \"terms\": \"2-4 weeks\", \"lines\": [\"Nuxt + SSR for full indexability\", \"Responsive, mobile-first design\", \"SEO meta, Open Graph & structured data\", \"Nuxt Content or Markdown CMS\", \"Contact forms & analytics\", \"Core Web Vitals tuned\", \"Deployment & domain setup\"], \"callToAction\": {\"to\": \"\u002Fcontact?intent=web-development\", \"label\": \"Get Started\"}},{\"highlight\": \"Popular\",\"title\": \"Web App\", \"subtitle\": \"Authenticated, interactive product\", \"price\": \"web-development\u002Fapp\", \"terms\": \"1-3 months\", \"lines\": [\"Everything in Marketing Site\", \"User authentication (OAuth \u002F JWT)\", \"Secure sessions & cookie handling\", \"REST or GraphQL API integration\", \"Role-based access control\", \"Database design & integration\", \"Admin dashboard\"], \"callToAction\": {\"to\": \"\u002Fcontact?intent=web-development\", \"label\": \"Get Started\"}},{\"title\": \"Headless CMS Platform\", \"subtitle\": \"Editor-owned content at scale\", \"price\": \"web-development\u002Fheadless-cms\", \"terms\": \"2-4 months\", \"lines\": [\"Strapi or Nuxt Content backend\", \"Custom editorial admin panel\", \"Multi-language content support\", \"Server-rendered, indexable pages\", \"Media & asset management\", \"Preview & publishing workflow\", \"API-first architecture\"], \"callToAction\": {\"to\": \"\u002Fcontact?intent=web-development\", \"label\": \"Get Started\"}},{\"title\": \"SaaS \u002F E-commerce\", \"subtitle\": \"Complex, scalable web product\", \"price\": \"web-development\u002Fsaas\", \"terms\": \"4+ months\", \"lines\": [\"All platforms & integrations\", \"Payments & subscriptions\", \"Multi-tenant architecture\", \"Advanced security & compliance\", \"Scalable backend infrastructure\", \"Monitoring & observability\", \"Dedicated support\"], \"callToAction\": {\"to\": \"\u002Fcontact?intent=web-development\", \"label\": \"Get Started\"}}]",[542,676,679],{":leading-icon":677,":title":678},"lucide:dollar-sign","Custom Pricing Available",[174,680,681],{},"Every project is unique. These ranges are approximate and based on typical scope. We'll provide a detailed quote after understanding your requirements, integrations, and timeline. Contact us for a free consultation and an accurate estimate.",[241,683,369],{"id":368},[174,685,686],{},"Common questions about our web development services",[374,688,690],{":items":689},"[{\"title\":\"Why do you build with Nuxt instead of WordPress or a website builder?\",\"text\":\"Nuxt gives you server-side rendering, which means search engines and link previews see fully built HTML on the first request rather than an empty shell. You get the speed and indexability of a static site with the power of a real application, full version control over the code, and no plugin bloat or security surface of a typical WordPress install. For content-heavy sites we pair Nuxt with a headless CMS so editors still get a friendly admin panel.\"},{\"title\":\"Does server-side rendering actually improve SEO?\",\"text\":\"Yes, significantly. With SSR the page content, meta tags, Open Graph data, and structured data are present in the HTML the server sends, so crawlers can read them without executing JavaScript. Single-page apps that render entirely in the browser are slower to index and can be missed entirely by some crawlers and social link previews. SSR is the most impactful framework-level decision you can make for organic search.\"},{\"title\":\"Can you build my web app with Flutter for the web?\",\"text\":\"We can, and for the right project it is a great fit. Flutter web works well for app-like products and internal tools behind a login, especially when you already have a Flutter mobile app and want to share one codebase. It is a poor fit for anything that needs to rank on Google, because it renders to a canvas that crawlers struggle to read and ships a heavy initial bundle. For public, content, or e-commerce sites we recommend Nuxt with server-side rendering instead.\"},{\"title\":\"How do you handle authentication and user data securely?\",\"text\":\"We implement real server-side authorization, not just a login screen. Sessions use httpOnly, secure, SameSite cookies so tokens cannot be stolen by client-side scripts, and we support OAuth and JWT flows with role-based access control. Cookie consent is handled to meet GDPR. If you have an existing app, our AI code audit service reviews authentication, session handling, and data exposure as a dedicated check.\"},{\"title\":\"Should I use Nuxt Content or Strapi for my content?\",\"text\":\"It depends on who edits the content. Nuxt Content is ideal when developers or technical writers manage content in Markdown under version control, like a blog or documentation, with no database needed. Strapi is the right choice when non-technical editors need a friendly admin panel to manage products, listings, or campaigns. Both render server-side through the Nuxt frontend, so either way the site stays fast and indexable. We help you pick based on your team.\"},{\"title\":\"How much does a web development project cost?\",\"slot\":\"cost\",\"text\":\"A fast marketing or content site typically runs 5,000 to 12,000 US dollars, an authenticated web app 15,000 to 40,000, a headless CMS platform 20,000 to 50,000, and a complex SaaS or e-commerce product upward of 50,000. The final number depends on the number of features, integrations, and the design scope. We provide a fixed quote after a free consultation.\"}]",[691,692,693],"template",{"v-slot:cost_body":396},[174,694,695,696,698,699,701,702,704,705,708],{},"A fast marketing or content site typically runs ",[351,697],{"format":353,"service":354},", an authenticated web app ",[351,700],{"format":353,"service":358},", a headless CMS platform ",[351,703],{"format":353,"service":362},", and a complex SaaS or e-commerce product ",[351,706],{"format":353,"service":707},"web-development\u002Fsaas",". The final number depends on the number of features, integrations, and the design scope. We provide a fixed quote after a free consultation.",[174,710,711],{},"::",{"title":396,"searchDepth":397,"depth":397,"links":713},[714,715,721,722,723,724],{"id":458,"depth":397,"text":459},{"id":486,"depth":397,"text":487,"children":716},[717,718,719,720],{"id":493,"depth":400,"text":494},{"id":500,"depth":400,"text":501},{"id":507,"depth":400,"text":508},{"id":521,"depth":400,"text":522},{"id":556,"depth":397,"text":557},{"id":607,"depth":397,"text":608},{"id":666,"depth":397,"text":667},{"id":368,"depth":397,"text":369},"Fast, SEO-Ready Web Apps Built on Nuxt, SSR, and Tailwind",{"heading":727,"text":728,"buttons":729},"Ready to Build a Web App That Ranks and Performs?","Let's turn your idea into a fast, SEO-ready web application your users and search engines both love.",[730,733],{"to":731,"label":732,"leadingIcon":424,"color":425,"variant":426},"\u002Fcontact","Start Your Project",{"to":734,"label":735,"color":429,"variant":430},"\u002Fportfolio","View our work",[737,739],{"to":731,"label":738,"leadingIcon":424,"color":429,"variant":430},"Get a Free Consultation",{"to":740,"label":741,"color":425,"variant":426},"#web-development-pricing","View Pricing",{"url":743,"alt":453,"text":744},"\u002Fservices\u002Fweb-development.webp","Built on the Stack This Site Runs On",{},"Web development on Nuxt, SSR, and Tailwind: fast, SEO-ready, mobile-first web apps with authentication, headless CMS, and Strapi. Free consultation.","Web Development Services — Nuxt, SSR & SEO","Web apps on Nuxt and SSR that load fast and rank — authentication, a headless CMS, and a mobile-first build that does not fight the browser.",null,{"title":453,"description":725},"services\u002Fweb-development","PGjV1VFd_62ov1NTy0ip1mvYByZIYAZe5AyL-eT3cEk",[],[755,770,782,797,811,825,841,853,867,880,894,907,923,936,953,966,977,987,998,1010,1021,1036,1045,1058,1071,1078,1089,1101,1112,1127,1139,1152,1164,1176,1188,1200,1211,1222,1233,1244,1256,1266,1277,1290,1301,1310,1323,1335,1345,1356,1370,1379,1390],{"slug":756,"term":757,"definition":758,"category":759,"aliases":760,"links":762,"related":766,"readMore":-1,"target":768,"hasArticle":769},"aosp","AOSP","The Android Open Source Project — Android without the Google layer on top, which anyone may fork. Point-of-sale terminals, kiosks and in-car systems run on forks of it, and working at that level exposes parts of the OS an app developer never sees.","platform",[761],"Android Open Source Project",[763],{"kind":764,"url":765},"website","https:\u002F\u002Fsource.android.com\u002F",[767],"host-card-emulation","\u002Fglossary#aosp",false,{"slug":771,"term":772,"definition":773,"category":759,"aliases":774,"links":775,"related":779,"readMore":-1,"target":781,"hasArticle":769},"app-clips","App Clips","An Apple feature that runs a small slice of an iOS app — under 15 MB — without installing the whole thing. Invoked from a QR code, an NFC tag or a link, for when the first thing a user does should not require a store visit.",[],[776],{"kind":777,"url":778},"documentation","https:\u002F\u002Fdeveloper.apple.com\u002Fapp-clips\u002F",[632,780],"install-referrer","\u002Fglossary#app-clips",{"slug":783,"term":784,"definition":785,"category":759,"aliases":786,"links":787,"related":793,"readMore":-1,"target":796,"hasArticle":769},"bigquery","BigQuery","Google Cloud's analytics warehouse. You point SQL at billions of rows and it scans them in seconds, on storage held separately from the machines doing the querying — which is what keeps reporting and exploration off the database that is serving live traffic.",[],[788,790],{"kind":764,"url":789},"https:\u002F\u002Fcloud.google.com\u002Fbigquery",{"kind":791,"url":792},"wikipedia","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FBigQuery",[794,795],"object-storage","elasticsearch","\u002Fglossary#bigquery",{"slug":798,"term":799,"definition":800,"category":801,"aliases":802,"links":806,"related":809,"readMore":-1,"target":810,"hasArticle":769},"ci-cd","CI\u002FCD","Automation that builds, tests and ships every change without anyone running commands by hand. On mobile it is what turns a release into a button press instead of an afternoon of someone else being unavailable.","practice",[803,804,805],"CI","continuous integration","continuous delivery",[807],{"kind":791,"url":808},"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FCI\u002FCD",[],"\u002Fglossary#ci-cd",{"slug":812,"term":813,"definition":814,"category":815,"aliases":816,"links":818,"related":821,"readMore":-1,"target":824,"hasArticle":769},"crud","CRUD","Create, read, update, delete — the four operations behind almost every form and admin screen. Shorthand for the routine data-management half of an app, as opposed to the parts carrying real domain logic.","architecture",[817],"Create, Read, Update, Delete",[819],{"kind":791,"url":820},"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FCreate,_read,_update_and_delete",[822,823],"rest","graphql","\u002Fglossary#crud",{"slug":826,"term":827,"definition":828,"category":815,"aliases":829,"links":834,"related":837,"readMore":-1,"target":840,"hasArticle":769},"container-registry","Container registry","A hosted store for container images, addressed by name and tag — Docker Hub, GitHub Container Registry, or a cloud provider's own. Pushing a build there turns 'works on my machine' into an image anyone can pull and run unchanged.",[830,831,832,833],"image registry","Docker registry","GHCR","ghcr.io",[835],{"kind":777,"url":836},"https:\u002F\u002Fdocs.github.com\u002Fen\u002Fpackages\u002Fworking-with-a-github-packages-registry\u002Fworking-with-the-container-registry",[838,839],"dev-container","multi-arch-image","\u002Fglossary#container-registry",{"slug":632,"term":842,"definition":843,"category":759,"aliases":844,"links":848,"related":851,"readMore":852,"target":852,"hasArticle":442},"Deep linking","A link that opens a specific screen inside an installed app instead of its home screen or a web page. Deferred deep linking survives an install, so a tap that leads through the app store still lands on the right screen.",[845,846,847],"deferred deep linking","universal links","Android App Links",[849],{"kind":791,"url":850},"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FMobile_deep_linking",[771,780],"\u002Fglossary\u002Fdeep-linking",{"slug":838,"term":854,"definition":855,"category":801,"aliases":856,"links":860,"related":865,"readMore":-1,"target":866,"hasArticle":769},"Dev Container","A development environment described once in devcontainer.json — the OS, tools, and runtime versions a project needs — and opened identically inside a container by every contributor's editor, instead of a setup guide everyone interprets differently.",[857,858,859],"devcontainer.json","Dev Containers","VS Code Dev Containers",[861,863],{"kind":764,"url":862},"https:\u002F\u002Fcontainers.dev\u002F",{"kind":777,"url":864},"https:\u002F\u002Fcode.visualstudio.com\u002Fdocs\u002Fdevcontainers\u002Fcontainers",[826],"\u002Fglossary#dev-container",{"slug":795,"term":868,"definition":869,"category":759,"aliases":870,"links":873,"related":878,"readMore":-1,"target":879,"hasArticle":769},"Elasticsearch","A search and analytics engine that indexes records so they can be filtered and searched interactively instead of scanned. What you reach for when the question is \"show me these particular sessions, narrowed six ways\" rather than \"sum this column\".",[871,872],"Elastic","ELK",[874,876],{"kind":764,"url":875},"https:\u002F\u002Fwww.elastic.co\u002Felasticsearch",{"kind":791,"url":877},"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FElasticsearch",[783],"\u002Fglossary#elasticsearch",{"slug":881,"term":882,"definition":883,"category":815,"aliases":884,"links":887,"related":890,"readMore":-1,"target":893,"hasArticle":769},"end-to-end-encryption","End-to-end encryption","Encryption applied on the sending device and undone only on the receiving one, so the service carrying the message cannot read it — not under subpoena, not after a breach. It protects the content and never the metadata.",[885,886],"E2EE","end-to-end encrypted",[888],{"kind":791,"url":889},"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FEnd-to-end_encryption",[891,892],"tls","jwt","\u002Fglossary#end-to-end-encryption",{"slug":895,"term":896,"definition":897,"category":815,"aliases":898,"links":901,"related":902,"readMore":-1,"target":906,"hasArticle":769},"fan-out","Fan-out","Reading an upstream source once and delivering each update to every client subscribed to it. The naive version writes to subscribers in a loop and stalls the moment one socket is slow; a real one buffers per client and drops whoever cannot keep up.",[899,900],"fanout","broadcast",[],[903,904,905],"websocket","pub-sub","server-sent-events","\u002Fglossary#fan-out",{"slug":908,"term":909,"definition":910,"category":801,"aliases":911,"links":915,"related":918,"readMore":-1,"target":922,"hasArticle":769},"feature-flags","Feature flags","Switches that turn functionality on or off from configuration rather than from a release. They let one binary behave differently per brand, market or user, and let a risky feature be shut off without shipping a new build through review.",[912,913,914],"feature flag","feature toggle","feature gating",[916],{"kind":791,"url":917},"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FFeature_toggle",[919,920,921],"staged-rollout","white-label","multi-tenancy","\u002Fglossary#feature-flags",{"slug":924,"term":925,"definition":926,"category":815,"aliases":927,"links":931,"related":934,"readMore":-1,"target":935,"hasArticle":769},"floating-point","Floating point","The IEEE 754 binary format behind double and float. It cannot hold 0.1 exactly, so 0.1 + 0.2 is 0.30000000000000004 — invisible in graphics and fatal in money, which belongs in integer minor units or a decimal type instead.",[928,929,930],"IEEE 754","double","floating-point arithmetic",[932],{"kind":791,"url":933},"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FIEEE_754",[],"\u002Fglossary#floating-point",{"slug":937,"term":938,"definition":939,"category":801,"aliases":940,"links":943,"related":948,"readMore":-1,"target":952,"hasArticle":769},"gdpr","GDPR","The EU regulation covering personal data of people in the EU: a lawful basis for collecting it, real consent for tracking, and rights to see and delete it. It follows your users, not your servers, so it applies wherever the company is registered.",[941,942],"General Data Protection Regulation","data protection",[944,946],{"kind":764,"url":945},"https:\u002F\u002Fgdpr.eu\u002F",{"kind":791,"url":947},"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FGeneral_Data_Protection_Regulation",[949,950,951],"pci-dss","soc-2","hipaa","\u002Fglossary#gdpr",{"slug":954,"term":955,"definition":956,"category":801,"aliases":957,"links":961,"related":964,"readMore":-1,"target":965,"hasArticle":769},"golden-test","Golden test","A test that renders a widget and compares the result pixel for pixel against a stored reference image. In Flutter it is the cheapest way to answer whether a redesign broke the empty state at 320pt, in dark mode, at 200% text scale.",[958,959,960],"golden tests","screenshot test","snapshot test",[962],{"kind":777,"url":963},"https:\u002F\u002Fapi.flutter.dev\u002Fflutter\u002Fflutter_test\u002FmatchesGoldenFile.html",[798],"\u002Fglossary#golden-test",{"slug":823,"term":967,"definition":968,"category":815,"aliases":969,"links":970,"related":975,"readMore":-1,"target":976,"hasArticle":769},"GraphQL","A query language for APIs where the client names exactly the fields it wants and gets one response shaped to match. It removes the over-fetching REST endpoints drift into, and adds a failure mode of its own: an unbounded query that walks the whole data model.",[],[971,973],{"kind":764,"url":972},"https:\u002F\u002Fgraphql.org\u002F",{"kind":791,"url":974},"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FGraphQL",[822],"\u002Fglossary#graphql",{"slug":951,"term":978,"definition":979,"category":801,"aliases":980,"links":982,"related":985,"readMore":-1,"target":986,"hasArticle":769},"HIPAA","The US law governing protected health information — how it may be stored, transmitted, logged and disclosed. Like PCI-DSS it is an architectural constraint chosen at the start, not a policy document added before launch.",[981],"Health Insurance Portability and Accountability Act",[983],{"kind":791,"url":984},"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FHealth_Insurance_Portability_and_Accountability_Act",[949,937,950],"\u002Fglossary#hipaa",{"slug":533,"term":988,"definition":989,"category":815,"aliases":990,"links":993,"related":996,"readMore":-1,"target":997,"hasArticle":769},"Headless CMS","A content system with an editor and an API but no front end of its own. Editors publish in one place, and the site or app renders that content itself — so the presentation layer is yours rather than the CMS vendor's.",[991,992],"headless content management system","content API",[994],{"kind":791,"url":995},"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FHeadless_content_management_system",[180,822],"\u002Fglossary#headless-cms",{"slug":767,"term":999,"definition":1000,"category":759,"aliases":1001,"links":1005,"related":1008,"readMore":-1,"target":1009,"hasArticle":769},"Host Card Emulation","Letting an Android phone act as a contactless card over NFC in software, with no hardware secure element. It is how a wallet app pays at a terminal: the phone speaks the same EMV contactless protocol the plastic card would have.",[1002,1003,1004],"HCE","EMV Contactless","contactless payments",[1006],{"kind":777,"url":1007},"https:\u002F\u002Fdeveloper.android.com\u002Fdevelop\u002Fconnectivity\u002Fnfc\u002Fhce",[949,756],"\u002Fglossary#host-card-emulation",{"slug":1011,"term":1012,"definition":1013,"category":759,"aliases":1014,"links":1015,"related":1018,"readMore":-1,"target":1020,"hasArticle":769},"impeller","Impeller","The rendering engine Flutter uses today, default on iOS since 2023 and on Android since 2024. It compiles its shaders ahead of time instead of during the first animation, which removed the shader-compilation jank that was Flutter's most visible production problem.",[],[1016],{"kind":777,"url":1017},"https:\u002F\u002Fdocs.flutter.dev\u002Fperf\u002Fimpeller",[1019],"skia","\u002Fglossary#impeller",{"slug":1022,"term":1023,"definition":1024,"category":1025,"aliases":1026,"links":1030,"related":1033,"readMore":-1,"target":1035,"hasArticle":769},"in-app-purchase","In-app purchase","Selling digital goods or a subscription through the Apple or Google billing that both stores require for digital content and take a commission on. The hard part is never the purchase; it is restoring it on a new device and keeping entitlement state honest.","business",[1027,1028,1029],"IAP","in-app purchases","in-app subscription",[1031],{"kind":777,"url":1032},"https:\u002F\u002Fdeveloper.apple.com\u002Fin-app-purchase\u002F",[1034],"product-market-fit","\u002Fglossary#in-app-purchase",{"slug":780,"term":1037,"definition":1038,"category":759,"aliases":1039,"links":1040,"related":1043,"readMore":-1,"target":1044,"hasArticle":769},"Install Referrer","A Google Play API that hands a freshly installed Android app the campaign parameters from the link that led to the install. The Android half of deferred deep linking, and the dependable way to attribute where a user came from.",[],[1041],{"kind":777,"url":1042},"https:\u002F\u002Fdeveloper.android.com\u002Fgoogle\u002Fplay\u002Finstallreferrer",[632,771],"\u002Fglossary#install-referrer",{"slug":892,"term":1046,"definition":1047,"category":1048,"aliases":1049,"links":1051,"related":1056,"readMore":-1,"target":1057,"hasArticle":769},"JWT","A signed token carrying its own claims, so a server can tell who a request belongs to without looking a session up. Standard for mobile authentication. The signature proves it was not altered; it does not hide what is inside.","protocol",[1050],"JSON Web Token",[1052,1054],{"kind":764,"url":1053},"https:\u002F\u002Fjwt.io\u002F",{"kind":791,"url":1055},"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FJSON_Web_Token",[949],"\u002Fglossary#jwt",{"slug":1059,"term":1060,"definition":1061,"category":801,"aliases":1062,"links":1066,"related":1069,"readMore":-1,"target":1070,"hasArticle":769},"kyc","KYC","Know Your Customer — the identity checks a regulated financial product runs before it lets anyone move money: document capture, liveness, sanctions and anti-money-laundering screening. It shapes onboarding more than any design decision does.",[1063,1064,1065],"Know Your Customer","AML","KYC\u002FAML",[1067],{"kind":791,"url":1068},"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FKnow_your_customer",[949,937],"\u002Fglossary#kyc",{"slug":76,"term":74,"definition":1072,"category":759,"aliases":1073,"links":1075,"related":1076,"readMore":1077,"target":1077,"hasArticle":769},"Sharing business logic written in Kotlin across Android, iOS and the server while each platform keeps its own native UI. The alternative to Flutter when the interface has to be native but the rules behind it do not.",[1074],"KMP",[],[],"\u002Ftechnologies\u002Fkmp",{"slug":1079,"term":1080,"definition":1081,"category":1025,"aliases":1082,"links":1084,"related":1087,"readMore":-1,"target":1088,"hasArticle":769},"mvp","MVP","The smallest version of a product that can go in front of real users and still answer the question you built it to answer. A decision about scope, not about quality — an MVP still has to work.",[1083],"minimum viable product",[1085],{"kind":791,"url":1086},"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FMinimum_viable_product",[920],"\u002Fglossary#mvp",{"slug":839,"term":1090,"definition":1091,"category":815,"aliases":1092,"links":1096,"related":1099,"readMore":-1,"target":1100,"hasArticle":769},"Multi-architecture image","A single image tag that resolves to different binaries per CPU architecture — linux\u002Famd64 and linux\u002Farm64 are the common pair — so the same docker pull works unchanged on Intel\u002FAMD servers and Apple Silicon laptops.",[1093,1094,1095],"multi-arch build","multi-platform image","linux\u002Famd64 + linux\u002Farm64",[1097],{"kind":777,"url":1098},"https:\u002F\u002Fdocs.docker.com\u002Fbuild\u002Fbuilding\u002Fmulti-platform\u002F",[826],"\u002Fglossary#multi-arch-image",{"slug":921,"term":1102,"definition":1103,"category":815,"aliases":1104,"links":1107,"related":1110,"readMore":-1,"target":1111,"hasArticle":769},"Multi-tenancy","One deployment serving many customers, each seeing only its own data, configuration and enabled features because tenant context is resolved per request. It is what makes a fleet of branded apps one product instead of many forks.",[1105,1106],"multi-tenant","tenant",[1108],{"kind":791,"url":1109},"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FMultitenancy",[920,908],"\u002Fglossary#multi-tenancy",{"slug":1113,"term":1114,"definition":1115,"category":1048,"aliases":1116,"links":1120,"related":1125,"readMore":-1,"target":1126,"hasArticle":769},"oauth","OAuth","The standard behind Sign in with Apple, Google and the rest: the user authorises your app at a provider they already trust, and your app receives a token instead of their password. Nobody invents a new credential and you never store one.",[1117,1118,1119],"OAuth 2.0","social login","Sign in with Apple",[1121,1123],{"kind":764,"url":1122},"https:\u002F\u002Foauth.net\u002F2\u002F",{"kind":791,"url":1124},"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FOAuth",[892],"\u002Fglossary#oauth",{"slug":794,"term":1128,"definition":1129,"category":815,"aliases":1130,"links":1134,"related":1137,"readMore":-1,"target":1138,"hasArticle":769},"Object storage","Storage that holds a whole file under a key rather than in a filesystem tree — Amazon S3 and the many services that speak its API. Cheap, effectively unlimited, and the usual home for raw events, backups and media: written once, read rarely, kept forever.",[1131,1132,1133],"S3","S3-compatible storage","blob storage",[1135],{"kind":791,"url":1136},"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FObject_storage",[783],"\u002Fglossary#object-storage",{"slug":949,"term":1140,"definition":1141,"category":801,"aliases":1142,"links":1145,"related":1150,"readMore":-1,"target":1151,"hasArticle":769},"PCI-DSS","The card industry security standard binding anyone who stores, processes or transmits card data. Most apps stay out of its scope on purpose, by handing card entry to a certified payment provider instead.",[1143,1144],"PCI DSS","Payment Card Industry Data Security Standard",[1146,1148],{"kind":764,"url":1147},"https:\u002F\u002Fwww.pcisecuritystandards.org\u002F",{"kind":791,"url":1149},"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FPayment_Card_Industry_Data_Security_Standard",[892],"\u002Fglossary#pci-dss",{"slug":1153,"term":1154,"definition":1155,"category":759,"aliases":1156,"links":1159,"related":1162,"readMore":-1,"target":1163,"hasArticle":769},"platform-channels","Platform channels","The bridge a Flutter app uses to call native iOS and Android code — Keychain and Keystore, biometrics, payment sheets, any SDK without a Dart package. Routine work but real work, and the first place an engineer who never left Dart will stall.",[1157,1158],"platform channel","method channel",[1160],{"kind":777,"url":1161},"https:\u002F\u002Fdocs.flutter.dev\u002Fplatform-integration\u002Fplatform-channels",[76],"\u002Fglossary#platform-channels",{"slug":1165,"term":1166,"definition":1167,"category":1048,"aliases":1168,"links":1171,"related":1174,"readMore":-1,"target":1175,"hasArticle":769},"post-quantum-cryptography","Post-quantum cryptography","Encryption algorithms built to stay secure against a future quantum computer, now standardized by NIST. The migration is urgent ahead of the hardware because traffic captured today can be decrypted once such a machine exists.",[1169,1170],"PQC","post-quantum crypto",[1172],{"kind":791,"url":1173},"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FPost-quantum_cryptography",[891,881],"\u002Fglossary#post-quantum-cryptography",{"slug":1034,"term":1177,"definition":1178,"category":1025,"aliases":1179,"links":1182,"related":1185,"readMore":-1,"target":1187,"hasArticle":769},"Product-market fit","The point at which a product has demonstrably found people who want it — they use it, come back, and pay. Before it, engineering answers a question; after it, engineering answers demand.",[1180,1181],"PMF","product\u002Fmarket fit",[1183],{"kind":791,"url":1184},"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FProduct-market_fit",[1079,1186],"time-to-market","\u002Fglossary#product-market-fit",{"slug":1189,"term":1190,"definition":1191,"category":801,"aliases":1192,"links":1194,"related":1197,"readMore":-1,"target":1199,"hasArticle":769},"prompt-injection","Prompt injection","An attack where text supplied by a user is read by a language model as instructions rather than as data, steering it past its own rules. The LLM-era sibling of SQL injection, and it appears wherever user input is concatenated into a prompt.",[1193],"injection attack",[1195],{"kind":791,"url":1196},"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FPrompt_injection",[1198],"rate-limiting","\u002Fglossary#prompt-injection",{"slug":904,"term":1201,"definition":1202,"category":815,"aliases":1203,"links":1206,"related":1209,"readMore":-1,"target":1210,"hasArticle":769},"Pub\u002FSub","A messaging pattern where a producer publishes an event and any number of consumers read it independently, with a broker in between. The producer never waits for them, which is how a request path stays fast while slower work happens behind it.",[1204,1205],"publish\u002Fsubscribe","Google Cloud Pub\u002FSub",[1207],{"kind":791,"url":1208},"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FPublish%E2%80%93subscribe_pattern",[],"\u002Fglossary#pub-sub",{"slug":822,"term":1212,"definition":1213,"category":815,"aliases":1214,"links":1217,"related":1220,"readMore":-1,"target":1221,"hasArticle":769},"REST","The conventional style for HTTP APIs: a URL names a resource and the HTTP verb says what to do with it. The default way an app talks to a backend, and what most third-party integrations expect to find.",[1215,1216],"REST API","Representational State Transfer",[1218],{"kind":791,"url":1219},"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FREST",[903,905],"\u002Fglossary#rest",{"slug":1198,"term":1223,"definition":1224,"category":801,"aliases":1225,"links":1228,"related":1231,"readMore":-1,"target":1232,"hasArticle":769},"Rate limiting","A cap on how many requests one caller may make in a given window. It is what stops a single enthusiastic user, a scraper or a bot from spending a month of paid API budget in an afternoon, and it has to live on your side of the integration.",[1226,1227],"rate limit","throttling",[1229],{"kind":791,"url":1230},"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FRate_limiting",[1189],"\u002Fglossary#rate-limiting",{"slug":950,"term":1234,"definition":1235,"category":801,"aliases":1236,"links":1239,"related":1242,"readMore":-1,"target":1243,"hasArticle":769},"SOC 2","An external auditor report on how an organisation handles customer data — security, availability, confidentiality — rather than a certificate you buy. Enterprise buyers ask for it, and it constrains architecture long before the audit itself does.",[1237,1238],"SOC2","System and Organization Controls",[1240],{"kind":791,"url":1241},"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FSystem_and_Organization_Controls",[949,937,951],"\u002Fglossary#soc-2",{"slug":1245,"term":1246,"definition":1247,"category":1025,"aliases":1248,"links":1251,"related":1254,"readMore":-1,"target":1255,"hasArticle":769},"saas","SaaS","Software sold as an ongoing subscription to a hosted product rather than as a one-off license the customer installs and runs. The vendor operates the servers, ships updates continuously, and bills per seat or per usage.",[1249,1250],"Software as a Service","software-as-a-service",[1252],{"kind":791,"url":1253},"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FSoftware_as_a_service",[921,920],"\u002Fglossary#saas",{"slug":905,"term":1257,"definition":1258,"category":1048,"aliases":1259,"links":1261,"related":1264,"readMore":-1,"target":1265,"hasArticle":769},"Server-Sent Events","A one-way stream from server to client over an ordinary HTTP connection. Simpler than a WebSocket and enough wherever only the server has something to say — a progress feed, an AI response arriving token by token.",[1260],"SSE",[1262],{"kind":791,"url":1263},"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FServer-sent_events",[903,822],"\u002Fglossary#server-sent-events",{"slug":180,"term":1267,"definition":1268,"category":815,"aliases":1269,"links":1272,"related":1275,"readMore":-1,"target":1276,"hasArticle":769},"Server-side rendering","Building a page as finished HTML on the server, so the first response already carries the content, headings, meta tags and structured data. Crawlers, link previews and slow devices read it without running JavaScript.",[1270,1271],"SSR","server-rendered",[1273],{"kind":791,"url":1274},"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FServer-side_scripting",[533],"\u002Fglossary#server-side-rendering",{"slug":1019,"term":1278,"definition":1279,"category":759,"aliases":1280,"links":1283,"related":1288,"readMore":-1,"target":1289,"hasArticle":769},"Skia","The open-source 2D graphics library from Google that draws Chrome, Android and — until Impeller — every Flutter frame. It renders to PDF as well as to a screen, which is what print-to-PDF in Chrome is doing.",[1281,1282],"Skia Graphics Engine","skia-safe",[1284,1286],{"kind":764,"url":1285},"https:\u002F\u002Fskia.org\u002F",{"kind":791,"url":1287},"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FSkia_Graphics_Engine",[1011],"\u002Fglossary#skia",{"slug":1291,"term":1292,"definition":1293,"category":1025,"aliases":1294,"links":1297,"related":1298,"readMore":-1,"target":1300,"hasArticle":769},"staff-augmentation","Staff augmentation","A hiring model where engineers from an outside partner join your team and work under your management — in your repository, your sprints, your process — instead of delivering a project of their own. You buy capacity; the code and the context stay with you.",[335,1295,1296],"dedicated developers","outstaffing",[],[1299,1186],"total-cost-of-ownership","\u002Fglossary#staff-augmentation",{"slug":919,"term":1302,"definition":1303,"category":801,"aliases":1304,"links":1307,"related":1308,"readMore":-1,"target":1309,"hasArticle":769},"Staged rollout","Releasing a build to a small percentage of users first and widening only once the crash-free rate holds. A bad build caught at ten percent is a bad afternoon; the same build at a hundred percent is a bad week.",[1305,1306],"phased release","canary release",[],[908,798],"\u002Fglossary#staged-rollout",{"slug":1311,"term":1312,"definition":1313,"category":815,"aliases":1314,"links":1318,"related":1321,"readMore":-1,"target":1322,"hasArticle":769},"state-management","State management","How an app decides where a value lives, who is allowed to change it, and which parts of the screen redraw when it does. In Flutter the choice between Riverpod, BLoC and Provider is among the first architectural decisions and the hardest to revisit.",[1315,1316,1317],"state management","BLoC","Riverpod",[1319],{"kind":777,"url":1320},"https:\u002F\u002Fdocs.flutter.dev\u002Fdata-and-backend\u002Fstate-mgmt\u002Foptions",[954],"\u002Fglossary#state-management",{"slug":891,"term":1324,"definition":1325,"category":1048,"aliases":1326,"links":1330,"related":1333,"readMore":-1,"target":1334,"hasArticle":769},"TLS","The encryption layer underneath HTTPS. It proves the server is who its certificate says, agrees a fresh key for the session, and encrypts everything after that — so the network in between sees ciphertext it cannot quietly alter.",[1327,1328,1329],"SSL","HTTPS","Transport Layer Security",[1331],{"kind":791,"url":1332},"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FTransport_Layer_Security",[881,892],"\u002Fglossary#tls",{"slug":1186,"term":1336,"definition":1337,"category":1025,"aliases":1338,"links":1340,"related":1343,"readMore":-1,"target":1344,"hasArticle":769},"Time to market","How long it takes to get a product from decision to real users. Most stack and scope arguments are really arguments about this number, because every week saved is a week of revenue, feedback and competitive position.",[1339,1186],"TTM",[1341],{"kind":791,"url":1342},"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FTime_to_market",[1079,1299],"\u002Fglossary#time-to-market",{"slug":1299,"term":1346,"definition":1347,"category":1025,"aliases":1348,"links":1351,"related":1354,"readMore":-1,"target":1355,"hasArticle":769},"Total cost of ownership","What a product costs across its whole life rather than to build once: maintenance, upgrades, annual OS and store migrations, and the second team you staff to keep two codebases in step. Usually larger than the build quote, and almost never inside it.",[1349,1350],"TCO","cost of ownership",[1352],{"kind":791,"url":1353},"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FTotal_cost_of_ownership",[1186],"\u002Fglossary#total-cost-of-ownership",{"slug":1357,"term":1358,"definition":1359,"category":1048,"aliases":1360,"links":1362,"related":1367,"readMore":-1,"target":1369,"hasArticle":769},"webrtc","WebRTC","The browser and mobile standard for sending audio, video and data directly between two devices, with servers involved only in introducing them to each other. It is what an in-app video call is built on when it is not a rented SDK.",[1361],"Web Real-Time Communication",[1363,1365],{"kind":764,"url":1364},"https:\u002F\u002Fwebrtc.org\u002F",{"kind":791,"url":1366},"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FWebRTC",[1368,903],"xmpp","\u002Fglossary#webrtc",{"slug":903,"term":1371,"definition":1372,"category":1048,"aliases":1373,"links":1374,"related":1377,"readMore":-1,"target":1378,"hasArticle":769},"WebSocket","A protocol that holds one connection open between client and server so either side can send at any moment, instead of the client asking over and over. What live prices, chat and presence indicators run on.",[],[1375],{"kind":791,"url":1376},"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FWebSocket",[905,822],"\u002Fglossary#websocket",{"slug":920,"term":1380,"definition":1381,"category":1025,"aliases":1382,"links":1385,"related":1388,"readMore":1389,"target":1389,"hasArticle":442},"White-label","One product shipped under many brands. A white-label mobile platform builds each client a store-ready app with its own name, design and content from a single shared codebase, instead of forking the project per customer.",[1383,1384],"white label","multi-tenant app",[1386],{"kind":791,"url":1387},"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FWhite-label_product",[1079],"\u002Fglossary\u002Fwhite-label",{"slug":1368,"term":1391,"definition":1392,"category":1048,"aliases":1393,"links":1396,"related":1401,"readMore":-1,"target":1402,"hasArticle":769},"XMPP","An open, federated messaging protocol, and the long-standing alternative to writing a chat backend or renting one. It extends to presence, typing indicators and file transfer, and it is old enough that every platform has a mature client library.",[1394,1395],"Jabber","Extensible Messaging and Presence Protocol",[1397,1399],{"kind":764,"url":1398},"https:\u002F\u002Fxmpp.org\u002F",{"kind":791,"url":1400},"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FXMPP",[1357,903],"\u002Fglossary#xmpp"]