Specialized: API, Mobile, Desktop

When you want one slice — backend only, Expo mobile, or Wails desktop.

6 mineasy

Three modes for when you want one slice instead of the full triple: API-only, Mobile, and Desktop. Each has its own course in the Learning Paths section.

API-only

Terminal
$grit new my-api --api

Pure Gin + GORM Go backend. No frontend. Auto-served OpenAPI docs at /docs. Ships every battery (auth, jobs, mail, storage, AI, Sentinel + Pulse) — just no UI.

When to use:

  • Backend for a mobile-only product (bring your own iOS / Android client)
  • Backend for a Discord / Slack / Telegram bot
  • Backend for a native desktop app you're building separately
  • Microservice in a larger system (a Grit project consumed by other services)

Mobile (Expo + API)

Terminal
$grit new my-app --mobile

A monorepo with apps/api (Go) and apps/mobile (Expo). Shared types via grit sync. Mobile-friendly auth (refresh tokens in SecureStore), EAS Build configured, push-notification scaffolding.

When to use:

  • Mobile-first product where the web is secondary or absent
  • Field-service apps (drivers, technicians, sales reps)
  • Consumer apps for iOS + Android

Desktop (Wails + GORM)

Terminal
$grit new-desktop my-app

Standalone Wails v2 app — Go bound to React via Wails. Local SQLite (offline-first), local auth, in-app auto-updater, NSIS installers (full + slim), branded MUI. Different command (new-desktop instead of new) because it's structurally different from the rest.

When to use:

  • POS systems / kiosks that need to work offline
  • Field service tools that go to areas with no internet
  • Single-user apps where the data should stay on the user's machine
  • Tools that need access to OS-level features (filesystem, native dialogs)
Adding a slice to triple: flags compose. grit new my-app --triple --desktop gives you the SaaS shape + a Wails desktop client. --triple --mobile adds an Expo app to the triple monorepo. The seventh course ("Multi-Platform") covers exactly this.

Mode at a glance

ModeOutputBest for
--singleOne Go binary + embedded ReactSelf-hosted, indie, MVP
--single --viteOne Go binary + embedded Vite SPAInternal dashboards, fast cold starts
--doubleapps/web + apps/apiPublic product, no admin needed
--tripleweb + admin + apiSaaS (the default recommendation)
--apiapps/api onlyBring-your-own-client backends
--mobileapi + Expo mobileMobile-first products
new-desktopWails app (standalone)Offline-first / native

Quick check

You're building a delivery driver app. The drivers use phones, dispatch staff uses a web admin, and there's an API for both. Which command?

Try it

For each of these ideas, write down the right command in notes.md:

  1. Open-source feature-flag service (one binary, web UI to toggle flags, no admin staff)
  2. Restaurant POS that runs on a tablet without internet
  3. Discord bot that watches GitHub repos for new issues
  4. Fitness tracker with iPhone + Android app

What's next

Final lesson — a decision tree to pick the right kit for any idea without having to memorize the table. After that, the chapter assignment is "match 3 of your own product ideas to the right kits."

Spot a typo? Have an idea?

Help us improve this lesson. One click opens a GitHub issue with the lesson URL pre-filled — suggest clearer wording, report a bug, or request more depth. The course keeps improving thanks to learners like you.

Suggest an improvement on GitHub