https://github.com/stone-foundation/stone-js-starters
Official Stone.js starter templates used by the Stone CLI to scaffold basic, standard, and full-featured apps for microservices and React. Designed to accelerate development across the Continuum Architecture.
https://github.com/stone-foundation/stone-js-starters
aws-lambda context-aware continuum-architecture csr javascript microservice official-stonejs scaffold spa ssr stonejs typescript
Last synced: 7 months ago
JSON representation
Official Stone.js starter templates used by the Stone CLI to scaffold basic, standard, and full-featured apps for microservices and React. Designed to accelerate development across the Continuum Architecture.
- Host: GitHub
- URL: https://github.com/stone-foundation/stone-js-starters
- Owner: stone-foundation
- License: mit
- Created: 2024-05-18T04:14:55.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2025-06-21T04:21:17.000Z (9 months ago)
- Last Synced: 2025-07-13T05:18:55.902Z (9 months ago)
- Topics: aws-lambda, context-aware, continuum-architecture, csr, javascript, microservice, official-stonejs, scaffold, spa, ssr, stonejs, typescript
- Language: TypeScript
- Homepage: https://stonejs.dev
- Size: 10.5 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Stone.js - Starters
[](https://opensource.org/licenses/MIT)
[](https://stonejs.dev)
[](https://github.com/stone-foundation/stone-js-cli)
This repository contains official **starter templates** for Stone.js applications.
---
## Overview
It is used internally by the Stone CLI to generate scaffolded projects for both **microservices** and **frontend React apps**, with three predefined levels of complexity: **basic**, **standard**, and **full**.
## Available Starters
Each starter reflects a different level of complexity and domain (microservice or React), with both declarative and imperative styles available. You can pick the one that matches your architecture preferences and scale needs.
### Microservice Starters
| Name | Description |
| ------------------------------ | ------------------------------------------------------------------ |
| `basic-service-declarative` | Minimal Stone.js microservice using class and decorators |
| `basic-service-imperative` | Minimal functional microservice with handler and blueprint |
| `standard-service-declarative` | Adds routing, DI, and hooks with a clean declarative structure |
| `standard-service-imperative` | Functional routing setup with middleware and service container |
| `full-service-declarative` | Production-grade setup: lifecycle hooks, DI, error handling, tests |
| `full-service-imperative` | Complete functional microservice with config, tests, and events |
### React App Starters
| Name | Description |
| ---------------------------- | ------------------------------------------------------------------------ |
| `basic-react-declarative` | Minimal React + Stone.js (SPA/SSR-ready) using class-based API |
| `basic-react-imperative` | Minimal React app using functional API and manual config |
| `standard-react-declarative` | Adds layout, routing, and lifecycle via decorators |
| `standard-react-imperative` | Function-based setup with routing, layout system, and render control |
| `full-react-declarative` | Enterprise-ready app with head config, hydration, and complete structure |
| `full-react-imperative` | Full functional React app with SSR, hooks, tests, and platform config |
You can combine complexity level (`basic`, `standard`, `full`), domain (`react`, `service`), and style (`declarative`, `imperative`) to find the right starter, for example: `standard-react-imperative`.
## How It's Used
These starters are **not meant to be installed manually**.
Instead, the `@stone-js/cli` automatically pulls from this repository during:
```bash
npm create @stone-js
````
or
```bash
stone init
```
The CLI fetches the appropriate template based on user choices and sets up a ready-to-run project in seconds.
## Starter Structure
Each starter is a self-contained folder containing:
* `app/`, `asset/`, `public/`, `tests/` depending on the type
* Minimal `stone.config.mjs` or framework config
* Preset integration (e.g. adapters, blueprint, lifecycle)
* Preconfigured TypeScript + Vitest (for standard/full)
* Working example of event handler or route
## Maintaining the Starters
To update or add a new starter:
1. Fork or clone this repository.
2. Add or modify the corresponding folder (e.g., `react-full`, `micro-basic`).
3. Keep external dependencies minimal.
4. Test the template using the CLI locally.
5. Submit a PR following the [Contributing Guide](./CONTRIBUTING.md).
> The Stone CLI will always fetch the latest `main` branch when scaffolding.
## Why Three Levels?
Stone.js follows a **progressive complexity** approach.
These templates help developers grow their app without needing to eject or reconfigure from scratch.
* **Basic**: Hello world in 10 seconds.
* **Standard**: Real-world app features with good defaults.
* **Full**: Production-grade architecture with opinions.
## Learn More
This package is part of the Stone.js ecosystem, a modern JavaScript framework built around the Continuum Architecture.
Explore the full documentation: [https://stonejs.dev](https://stonejs.dev)
## Contributing
See [Contributing Guide](https://github.com/stone-foundation/stone-js-starters/blob/main/CONTRIBUTING.md)