Skip to main content

App Overview

Sample Appnest app

A frontend and backend app built on the Appnest stack: you implement business logic and UI; the framework and engine handle dev routing, HTTP wiring, React setup, and bundling for local development and pack.

  • Backend — See App Backend (app-backend/server.js, manifest registration, $fetch, $db, etc.).
  • Frontend — See App Frontend (React root, Twigs, calling the backend, { statusCode, body } vs SDK helpers).

At a high level every app root has three pillars:

  1. app-frontend/ — UI users see (plus optional app-install-frontend/).
  2. app-backend/ — Server code the platform invokes; exports must match manifest.json.
  3. manifest.json — Declares locations, functions, events, installation_parameters, OAuth, and whitelisted_domains.

For the development engine (proxy, CLI, zip), see Overview and Commands.


Project structure

PathRequired?Role
app-backend/Yesserver.js — backend entry; exports drive API + events.
app-frontend/YesMain React (or template) UI; built dist for pack.
app-install-frontend/OptionalSeparate install / onboarding UI.
manifest.jsonYes for packagingPlatform contract (see Configuration below).
.envRecommendedPorts, pack paths, CLIENT_SCRIPT_URL, …

Edit app-* trees and root config only—not appnest-* engine packages.


Configuration

TopicDocument
Manifest schema, examples, installation_parameters, OAuth tablesManifest
Product UI locations (full_page_app, …)Product Location

Appnest Functions (summary)

Platform-backed helpers: backend modules inside app-backend, and frontend helpers to call named server functions.

Overview: Appnest Functions

SurfaceDoc
Backend modules ($fetch, $db, $file, $schedule, $next, …)App Backend (table + links to each topic)
Frontend invoke (appBackendInvoke, global client, …)App Frontend & Frontend Functions

Day-to-day commands

From the app root (next to manifest.json):

appnest-development-engine app init       # scaffold
appnest-development-engine app start # proxy + backend + frontends
appnest-development-engine app validate # lint + manifest
appnest-development-engine app pack # build + zip
  • validate — Backend + frontend lint and manifest.json checks.
  • pack — Usually app-frontend, app-backend, optional app-install-frontend, manifest.json, .env, plus optional PACK_FOLDER_PATHS / PACK_FILE_PATHS.
  • Treat .env as sensitive.

Cross-cutting reminders

  • process.cwd() is the project root; the engine uses ORIGINAL_CWD for child processes (see engine docs).
  • Keep manifest, server.js exports, and docs aligned when renaming or adding functions.

Full documentation (this developer site)

TopicDocument
Backend entry, SDK modules, rulesApp Backend
Frontend entry, Twigs, invoke patterns, UXApp Frontend
Manifest & locationsManifest, Product Location
Appnest Functions concept + deep linksAppnest Functions overview
Engine & CLIDevelopment Engine overview, Commands
Twigs component library (external)twigs.surveysparrow.com