Skip to content

docs(readme): start the demos with npx @antelopejs/core - #753

Merged
Upd4ting merged 5 commits into
mainfrom
docs/npx-core-demos
Nov 4, 2026
Merged

Upd4ting merged 5 commits into
mainfrom
docs/npx-core-demos

Conversation

@Upd4ting

@Upd4ting Upd4ting commented Nov 4, 2026 •

Copy link
Copy Markdown
Member

Why

A newcomer with nothing installed should create an AntelopeJS project with one copy-pasteable npx @antelopejs/core command, named by a short template slug. The DMS first-run text should match today's onboarding, where the backend prints a setup token. The demo quick start also listed steps that the template no longer needs.

What changed

  • The READMEs, the quickstart and the AdonisJS page use npx @antelopejs/core project init <dir> --template <slug> (dms-demo, dms-connect-demo, dms-starter, dms-adonis) in place of git clone.
  • The demo quick start drops pnpm install, the .env file and ajs project modules install. It keeps pnpm dev and pnpm frontend:dev.
  • First-run text says to open the onboarding address with the token that the backend prints, then create the administrator account. A separate commit drops the "EU-hosted" claim from the playground welcome page.

Scope

  • Covers the root and package READMEs, the getting-started docs and the dms-project skill.
  • The AdonisJS page keeps cp .env.example .env and node ace generate:key, because AdonisJS needs APP_KEY and the shared secrets.
  • The ajs project modules add lines for existing projects stay as they are.

Blast Radius

Docs and one playground string only. Merge after the core release that ships template slugs, and after the interfaces PR that adds the dms-connect-demo template. Before that, --template dms-demo does not match core 1.19.0.

The Docker prerequisites no longer list pnpm. This works only with the core release that ships AntelopeJS/antelopejs#381 and the interfaces PR AntelopeJS/interfaces#14 ("install": false on this template). Merge after both.

Verification

  • npx -y @antelopejs/core project init my-app --template "DMS Demo" --yes (core 1.19.0), then pnpm dev and pnpm frontend:dev with no .env. The backend installed the modules and logged [DMS] No owner exists yet. To create it, open http://localhost:3201/onboarding?token=…. That address opened the wizard with no token field. The administrator was created and /home loaded the Helio demo. Ports were moved to 5210, 3201 and 27217 to share the machine with other runs.
  • npx -y @antelopejs/core project init my-project --template "DMS Starter" --yes, then docker compose up. The dms service logged the same line, the wizard created the administrator and /home loaded.
  • pnpm run checks passed (8 of 8).

Replace template clones with npx @antelopejs/core project init and template slugs, drop the .env and manual install steps from the demo quick start, and point first-run text at the onboarding address with the setup token that the backend prints.
@Upd4ting
Upd4ting merged commit 3aeb233 into main Nov 4, 2026
14 checks passed
@Upd4ting
Upd4ting deleted the docs/npx-core-demos branch November 4, 2026 12:59
Upd4ting added a commit that referenced this pull request Nov 4, 2026
* docs(readme): rewrite the README as a landing page (#554)

* docs(readme): rewrite the README as a landing page

Lead with the pitch, a hero recording, a one-command start, features, limits, and how the project earns money. Developer and contributing sections follow unchanged, except renamed headings.

* docs(readme): claim PostgreSQL Connect only and state the review limits

* docs(readme): add launch media

* docs(readme): use the v2 Meet media and name three databases

Replace docs/media with the v2 GIFs, the 72 s Meet video and its poster. Restore the four original badges. Name PostgreSQL, MongoDB or RethinkDB and drop the lines saying two of them fail.

* docs(readme): remove the limits section

* docs(readme): update launch media

Re-render the Meet video and the roles GIF with the chapter label Databases instead of Limits.

* docs(readme): use one Discord invite

* docs(readme): point the sample and own-database paths to the templates

The sample-database path clones template-dms-connect-demo and names the Compose profiles that choose MongoDB or RethinkDB. The own-database path starts from template-dms.

* docs(readme): switch to the new Discord invite

* chore(package): update the npm description and keywords (#580)

* fix(chart): draw the one point per group a series data source answers (#586)

* test(chart): a bare chart fed one point per group draws them

* fix(chart): draw the one point per group a series data source answers

* chore(package): restore realtime in the npm description (#588)

* feat(dms): support a read-only public demo (#581)

* feat(table-view): count batches over bounded GET requests

* feat(frontend): present read-only refusals once without hiding failure

* feat(auth): prefill login from public demo configuration

* refactor(frontend): rely on dms-frontend 0.9.2 for raw fetch hooks

dms-frontend 0.9.2 makes `.raw()` inherit the defaults and hooks of a created fetch. useAuthFetch no longer passes its hooks to every call itself; it only adds the read-only refusal to its existing response-error hook.

* chore(release): @antelopejs/interface-dms v0.10.1

* chore(deps): require @antelopejs/interface-dms 0.10.1 (#590)

The GET count batch route of #581 ships in interface-dms 0.10.1.

* chore(release): @antelopejs/dms v0.12.1

* docs(readme): restore the realtime updates line and the live preview wording (#589)

* fix(chart): draw only the fetched series that carry their points (#587)

* test(chart): a route answering a shape the chart does not read leaves the page whole

* fix(chart): draw only the fetched series that carry their points

* docs(readme): remove the How AntelopeJS makes money section (#592)

* fix(store): remove the archived CI/CD module from the catalog (#609)

@antelopejs-private/dms-cicd is archived and no longer published, so the
module store must not offer it.

* fix(tenants): resume the default tenant's provisioning after start (#613)

* test(tenants): cover interrupted default tenant provisioning

* fix(tenants): resume the default tenant's provisioning after start (#350)

Add optional Tenant.provisioningPending to persist unfinished default tenant provisioning. Rows without the marker remain provisioned. Clear it only after provisioning resolves, and retain the row and log the original error on failure.

Run pending provisioning on ModulesStarted, outside start(), and wait for active work during stop(). Require interface-core 0.2.6 for that lifecycle event.

* fix(dms-ui): hydrate keyboard hints with the platform the server rendered (#442)

On a first visit without the dms-keyboard-platform cookie, a component created while the page hydrates draws the platform the server rendered until it mounts, so Mac visitors no longer get Ctrl/⌘ hydration mismatches.

* fix(dms-ui): print Nuxt UI key hints for the dashboard's keyboard platform (#541)

A dms-ui plugin provides the dashboard's keyboard platform to Nuxt UI key hints, so <UKbd value="meta|ctrl|alt"> prints the key in the server HTML instead of a blank, and the UI toolkit docs describe the per-platform glyphs.

* fix(playground): declare the playground's frontend, so dev and production include it (#441)

Declare the dms playground's dmsFrontend so ajs dms dev, build and start serve its pages, components and public webhook again, guard every package that ships frontend-vue/ with check:frontend-declarations in CI, ignore .dms-frontend, and document the dmsFrontend contract.

* fix(frontend): unify API error presentation (#614)

* test(frontend): specify unified API error presentation

* fix(frontend): unify API error presentation

Route core request failures through the shared presenter and resolver. Keep
Response-scoped toast claims separate from inline resolution and preserve
caller fallbacks, field placement, retry, and cleanup.

Export the local invariant and bounded migration script for module callers.

* chore(release): @antelopejs/interface-dms v0.10.2

* chore(deps): require @antelopejs/interface-dms 0.10.2 (#632)

The pending tenant provisioning field of #613 ships in interface-dms 0.10.2.

* chore(release): @antelopejs/dms v0.13.0

* fix(frontend): run the API error CLIs when pnpm links the package (#634)

* test(frontend): run the API error CLIs through a symlinked install path

* fix(frontend): run the API error CLIs when pnpm links the package

Node resolves import.meta.url to the real file while process.argv[1] keeps the
symlinked node_modules path, so both CLIs skipped their work and exited 0.

* chore(release): @antelopejs/dms v0.13.1

* refactor(frontend)!: remove API error migration helpers (#638)

BREAKING CHANGE: remove useApiError and the API error presenter codemod export. Capture useApiErrorPresenter during setup instead.

* chore(release): @antelopejs/dms v0.14.0

* feat(dms-ui): state the data state of each data block on its root element (#585)

Chart, ChartCard, KpiCard, TopListCard and TableView now carry
data-dms-block-state (loading, ok, empty, error), data-dms-block-type and,
when a page places them, data-dms-block (the layout path). An overlay or a
test harness reads what a block shows without parsing its markup.

* fix(table-view): currency on prices, settled counters, no add without a new route (#611)

* feat(data-types): add a currency option to PriceType

* fix(table-view): stop drawing the counters' skeleton once their request has failed

* fix(table-view): offer no add action on a controller with no new route

* fix(interface-dms): name a bucketed series' periods for a person, 202608 as Aug 2026 (#617)

* fix(interface-dms): name a bucketed series' periods for a person, 202608 as Aug 2026

* feat(interface-dms): name a week bucket by its Monday, as Week of Aug 3

* test(dms): merge locale trees with the shared object guard

* fix(chart): thin the category x-axis labels of a long series so they never overlap (#626)

* chore(release): @antelopejs/interface-dms v0.10.3

* chore(release): @antelopejs/dms v0.15.0

* docs(github): send questions and ideas to Discord (#672)

* fix(auth): upgrade an outdated password hash on sign-in (#691)

A successful sign-in writes the password again when isHashOutdated reports an
older hash. The write applies only while the row holds the tested hash, and a
failed write does not fail the sign-in.

Password tests run on the thread pool, and a right password is checked against
the throttle again after its test.

* fix(dashboard): name the brand logo for screen readers (#652)

* fix(onboarding): require a setup token to register the first owner (#654)

A fresh instance was claimable by its first visitor: POST /api/onboarding/register
only checked that no user existed. The call now needs the instance's setup token,
from DMS_SETUP_TOKEN or generated at first start and kept in the database so every
replica accepts it. The wizard reads it from ?token=, removes it from the URL and
asks for it when absent. Registering spends the token with one delete, so two
concurrent valid registrations create one owner.

Fixes #624

* fix(tenants): elect one replica to provision the default tenant through a renewed lease (#657)

* test(tenants): cover two replicas provisioning the default tenant

* fix(tenants): elect one replica to provision the default tenant through a renewed lease

* docs(tenants): state who runs the provisioning hook and derive the test's hold

* docs(tenants): say a stalled provisioning holder can be taken over

* perf(page): send anonymous visitors only the public pages of the site layout (#675)

* perf(page): send anonymous visitors only the public pages of the site layout

* test(page): find the private page through the owner, not the anonymous layout

* fix(layout): count the sidebar's installed modules like the Modules page (#666)

* test(layout): the sidebar badge counts the installed modules the Modules page lists

* fix(layout): count the sidebar's installed modules like the Modules page

The badge counted the module roots of the site layout tree, so an installed
module that registers no pages, such as the Builder, was left out while the
Modules page listed it. Both now read the list from useInstalledModules.

* test(layout): the sidebar badge renders without the store listing on the server

* fix(layout): read the sidebar's module count in the browser, not in the server render

* test(layout): the sidebar badge shows no count until the store listing is read

* fix(layout): show the sidebar count only once the store listing is read

* chore(release): @antelopejs/interface-dms v0.10.4

* chore(deps): require @antelopejs/interface-dms 0.10.4 (#734)

* chore(release): @antelopejs/dms v0.15.1

* docs(readme): start the demos with npx @antelopejs/core (#753)

* docs(readme): start the demos with npx @antelopejs/core

Replace template clones with npx @antelopejs/core project init and template slugs, drop the .env and manual install steps from the demo quick start, and point first-run text at the onboarding address with the setup token that the backend prints.

* docs(playground): drop the EU hosting claim for AntelopeJS Cloud

* docs: list Git as a prerequisite of project init

* docs(readme): list pnpm for the Docker demos

* docs(readme): drop pnpm from the Docker prerequisites

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Alessandro Aloisio <25800420+alessaloisio@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant