{
  "id": 6590268,
  "title": "Starting a Jeston Application with One Valuable Route",
  "url": "https://urgent.news/2026/09/10/starting-a-jeston-application-with-one-valuable-route",
  "topic": "tech",
  "section": "Tech",
  "published": "2026-09-10T13:35:18.000Z",
  "source": {
    "name": "Dev.to",
    "slug": "dev-to",
    "url": "https://dev.to/kvant-swatg/starting-a-jeston-application-with-one-valuable-route-h2"
  },
  "original_language": "en",
  "account": "Creating a Jeston application begins with a minimal, functional slice, focusing on just one route and its response. To initiate, ensure Node.js 20 or later is installed, then generate a new project using `npx jeston create my-app`. Navigate to the project folder with `cd my-app` and install dependencies via `npm install`. Start the development server with `npm run dev`.\n\nFor a SaaS-focused application, use the `--template saas` option: `npx jeston create my-saas --template saas`. This starter includes React Server-Side Rendering (SSR), hydration, an API health check route, a signed-session inspection route, TypeScript strict mode, security limits, and extension points for database, cache, jobs, and storage adapters.\n\nRouting options in Jeston include the conventional `pages/` structure and file-based routes such as `page.tsx` for page routes, `route.ts` for HTTP handlers, `layout.tsx` for persistent layouts, `loading.tsx` for loading boundaries, `error.tsx` for render boundaries, `not-found.tsx` for custom 404 pages, and `forbidden.tsx` and `unauthorized.tsx` for typed authorization errors. Route groups, like `marketing`, help organize files without altering the public URL. Layouts build upon the application root, moving outward to reach the specific route.\n\nAdding an API contract is crucial for validation and persistence of incoming data. Utilize a typed `ApiHandler` from `@kvantjs/jeston` to validate and process request bodies. The runtime automatically handles JSON body formatting, returning a 400 status for malformed JSON and a 413 status when the configured body size limit is exceeded. HTTP methods like OPTIONS can specify allowed methods, while HEAD requests use an explicit handler or the GET handler without a body.\n\nExpand the application's functionality only after the initial route proves its value. Incorporate necessary features like a SQL adapter, sessions, authorization, rate limiting, caching, jobs, storage, or observability. This approach ensures architectural decisions align with actual product requirements rather than speculative scalability needs. Jeston's documentation emphasizes the progression through three key questions: identifying the smallest valuable request, maintaining portability, and establishing a proven path to success. These guidelines help prevent premature infrastructure development and minimize potential production gaps. For more details, consult the source material at github.com/kvantjs/jeston.",
  "summary": "A useful framework should help you reach a working slice quickly without forcing you to decide every production detail on day one. Jeston's recommended path starts with the smallest valuable request: one route and one response. Create the application Jeston requires Node.js 20 or newer. Create and run a project with: npx jeston create my-app cd my-app npm install npm run dev For a SaaS-oriented…",
  "key_points": [
    "Begin with minimal route-focused app",
    "Use --template saas for SaaS apps",
    "Add API contract for data validation"
  ],
  "editors_take": null,
  "illustration": null,
  "coverage": {
    "outlets": 1,
    "also_reported_by": []
  },
  "ai_generated": true,
  "disclaimer": "Summaries, key points and the editor’s take are written by software from other outlets’ reporting and may contain errors — always check the linked original."
}