Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
44 changes: 21 additions & 23 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -29,30 +29,27 @@ across database drivers, storage drivers, and deployment targets.
Interactive:

```bash
bun create holo-js my-app
npm create holo-js@latest my-app
```

Non-interactive:

```bash
bun create holo-js my-app \
npm create holo-js@latest my-app -- \
--framework next \
--database sqlite \
--package-manager bun \
--package-manager npm \
--storage-default-disk public
```

Equivalent create-package entrypoints:

```bash
npm create holo-js@latest my-app
bunx create-holo-js my-app
pnpm create holo-js@latest my-app
yarn create holo-js my-app
npx create-holo-js my-app
```

Do not use `bunx create holo-js`.
`bunx` treats `create` as the package name in that form, so it installs and runs the npm package named `create`
instead of resolving `create-holo-js`.

That scaffold writes the framework glue once. After that, the user-facing setup surface is:

- `config/*.ts`
Expand Down Expand Up @@ -89,15 +86,21 @@ my-app/

## Core commands

Use your package manager's run command for framework lifecycle:

```bash
bun install
bun run dev
bun run build
bunx holo prepare
bunx holo config:cache
bunx holo config:clear
bunx holo migrate
bunx holo seed
npm run dev
npm run build
```

Use your package manager's exec wrapper for direct Holo-JS CLI commands:

```bash
npx holo prepare
npx holo config:cache
npx holo config:clear
npx holo migrate
npx holo seed
```

`holo dev` and `holo build` run discovery before handing control to the selected framework.
Expand All @@ -111,12 +114,7 @@ const app = await holo.getApp()

The framework route wrapper stays native, but Holo-JS access stays consistent.

Inside a project, use:

- `bun run dev` / `bun run build` for framework lifecycle commands
- `bunx holo ...` for direct Holo-JS CLI commands such as `make:model`, `migrate`, and `seed`

Equivalent direct CLI forms are `npx holo ...`, `pnpm dlx holo ...`, and `yarn dlx holo ...`.
Equivalent exec forms: `npx holo ...`, `pnpm dlx holo ...`, `yarn dlx holo ...`, `bunx holo ...`.

## Flexible runtime

Expand Down
10 changes: 5 additions & 5 deletions apps/docs/docs/auth/email-verification.md
Original file line number Diff line number Diff line change
Expand Up @@ -173,11 +173,11 @@ To enable email verification delivery through notifications or mail:

```bash
# For full notifications + mail integration (recommended)
bunx holo install notifications
bunx holo install mail
npx holo install notifications
npx holo install mail

# For mail-only delivery
bunx holo install mail
npx holo install mail
```

## Protecting Application Routes
Expand Down Expand Up @@ -274,8 +274,8 @@ notifications or mail for auth-managed verification emails.
Install notifications or mail into an existing project with:

```bash
bunx holo install notifications
bunx holo install mail
npx holo install notifications
npx holo install mail
```

## Runtime Delivery Hook Configuration
Expand Down
12 changes: 6 additions & 6 deletions apps/docs/docs/auth/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -51,12 +51,12 @@ authentication.
Install only the packages you need:

```bash
bunx holo install auth
bunx holo install auth --social --provider google
bunx holo install auth --social --provider github
bunx holo install auth --social --provider google,github
bunx holo install auth --workos
bunx holo install auth --clerk
npx holo install auth
npx holo install auth --social --provider google
npx holo install auth --social --provider github
npx holo install auth --social --provider google,github
npx holo install auth --workos
npx holo install auth --clerk
```

When `auth` is installed, `session` is installed with it automatically because session-backed auth depends on it.
Expand Down
30 changes: 15 additions & 15 deletions apps/docs/docs/auth/social-login.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,9 +25,9 @@ Social login uses one shared runtime package plus one package per provider. Inst
actually uses.

```bash
bunx holo install auth --social --provider google
bunx holo install auth --social --provider github
bunx holo install auth --social --provider google,github
npx holo install auth --social --provider google
npx holo install auth --social --provider github
npx holo install auth --social --provider google,github
```

Supported first-party providers:
Expand All @@ -48,12 +48,12 @@ provider package installed by the CLI.

| Provider | Install Command | Config Key | Package | Default Scopes |
| --- | --- | --- | --- | --- |
| Google | `bunx holo install auth --social --provider google` | `google` | `@holo-js/auth-social-google` | `openid email profile` |
| GitHub | `bunx holo install auth --social --provider github` | `github` | `@holo-js/auth-social-github` | `read:user user:email` |
| Discord | `bunx holo install auth --social --provider discord` | `discord` | `@holo-js/auth-social-discord` | `identify email` |
| Facebook | `bunx holo install auth --social --provider facebook` | `facebook` | `@holo-js/auth-social-facebook` | `email public_profile` |
| Apple | `bunx holo install auth --social --provider apple` | `apple` | `@holo-js/auth-social-apple` | `name email` |
| LinkedIn | `bunx holo install auth --social --provider linkedin` | `linkedin` | `@holo-js/auth-social-linkedin` | `openid profile email` |
| Google | `npx holo install auth --social --provider google` | `google` | `@holo-js/auth-social-google` | `openid email profile` |
| GitHub | `npx holo install auth --social --provider github` | `github` | `@holo-js/auth-social-github` | `read:user user:email` |
| Discord | `npx holo install auth --social --provider discord` | `discord` | `@holo-js/auth-social-discord` | `identify email` |
| Facebook | `npx holo install auth --social --provider facebook` | `facebook` | `@holo-js/auth-social-facebook` | `email public_profile` |
| Apple | `npx holo install auth --social --provider apple` | `apple` | `@holo-js/auth-social-apple` | `name email` |
| LinkedIn | `npx holo install auth --social --provider linkedin` | `linkedin` | `@holo-js/auth-social-linkedin` | `openid profile email` |

Those default scopes come from the first-party provider packages. Override them only when your application needs a
different upstream permission set.
Expand Down Expand Up @@ -202,7 +202,7 @@ different services.
Install:

```bash
bunx holo install auth --social --provider google
npx holo install auth --social --provider google
```

Config:
Expand All @@ -225,7 +225,7 @@ Use Google when you want OpenID Connect style profile data with `openid`, `email
Install:

```bash
bunx holo install auth --social --provider github
npx holo install auth --social --provider github
```

Config:
Expand All @@ -249,7 +249,7 @@ user by email.
Install:

```bash
bunx holo install auth --social --provider discord
npx holo install auth --social --provider discord
```

Config:
Expand All @@ -273,7 +273,7 @@ address.
Install:

```bash
bunx holo install auth --social --provider facebook
npx holo install auth --social --provider facebook
```

Config:
Expand All @@ -296,7 +296,7 @@ Facebook uses Graph API profile fields. Keep `email` when your app needs local a
Install:

```bash
bunx holo install auth --social --provider apple
npx holo install auth --social --provider apple
```

Config:
Expand All @@ -320,7 +320,7 @@ through the same Holo `callback('apple', request)` flow.
Install:

```bash
bunx holo install auth --social --provider linkedin
npx holo install auth --social --provider linkedin
```

Config:
Expand Down
2 changes: 1 addition & 1 deletion apps/docs/docs/authorization/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ Authorization is Holo's package for deciding what an authenticated or explicit a
Install it when your application needs policy checks, ability checks, or typed authorization decisions:

```bash
bunx holo install authorization
npx holo install authorization
```

The package is optional and can be used without `@holo-js/auth`. When auth is installed, Holo wires the current
Expand Down
2 changes: 1 addition & 1 deletion apps/docs/docs/cache/config-and-drivers.md
Original file line number Diff line number Diff line change
Expand Up @@ -138,7 +138,7 @@ Database install requirements:

- `@holo-js/cache`
- `@holo-js/cache-db`
- `bunx holo cache:table`
- `npx holo cache:table`

The cache driver reuses a named DB connection from `config/database.ts`. It does not duplicate database
credentials inside `config/cache.ts`.
Expand Down
34 changes: 17 additions & 17 deletions apps/docs/docs/cache/setup-and-cli.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
Scaffold cache during project creation:

```bash
bun create holo-js my-app --package cache
npm create holo-js@latest my-app -- --package cache
```

That adds `@holo-js/cache`, writes `config/cache.ts`, and adds `CACHE_PREFIX` to `.env` files.
Expand All @@ -15,15 +15,15 @@ That adds `@holo-js/cache`, writes `config/cache.ts`, and adds `CACHE_PREFIX` to
Install cache into an existing app:

```bash
bunx holo install cache
npx holo install cache
```

Pick an explicit driver when needed:

```bash
bunx holo install cache --driver file
bunx holo install cache --driver redis
bunx holo install cache --driver database
npx holo install cache --driver file
npx holo install cache --driver redis
npx holo install cache --driver database
```

`file` is the default install target and the default runtime driver.
Expand All @@ -50,34 +50,34 @@ Install output by driver:
Clear the default cache store:

```bash
bunx holo cache:clear
npx holo cache:clear
```

Clear a named cache store:

```bash
bunx holo cache:clear --driver redis
npx holo cache:clear --driver redis
```

Forget one key from the default cache store:

```bash
bunx holo cache:forget dashboard.stats
npx holo cache:forget dashboard.stats
```

Forget one key from a named cache store:

```bash
bunx holo cache:forget dashboard.stats --driver redis
npx holo cache:forget dashboard.stats --driver redis
```

## Database cache tables

If your cache driver is `database`, generate the migration and then migrate normally:

```bash
bunx holo cache:table
bunx holo migrate
npx holo cache:table
npx holo migrate
```

`cache:table` creates a normal app migration under `server/db/migrations`. Holo-JS does not hide cache
Expand All @@ -88,24 +88,24 @@ tables inside a package.
### File cache

```bash
bunx holo install cache --driver file
npx holo install cache --driver file
```

### Redis cache

```bash
bunx holo install cache --driver redis
npx holo install cache --driver redis
```

Use `bunx holo cache:clear --driver redis` later when you need to clear existing Redis cache state during migration or
Use `npx holo cache:clear --driver redis` later when you need to clear existing Redis cache state during migration or
troubleshooting.

### Database cache

```bash
bunx holo install cache --driver database
bunx holo cache:table
bunx holo migrate
npx holo install cache --driver database
npx holo cache:table
npx holo migrate
```

## Continue
Expand Down
Loading