# AppStore2031

An independent, AI-assisted research project that imagines and explains the
software marketplaces, executable services and digital products people may
rely on by 31 July 2031.

The project has three linked outputs:

1. A familiar marketplace experience showing a research-derived Top 10 in
   every forecast category, including categories and listable units that do
   not exist today.
2. A public evidence trail explaining the sources, assumptions, scenarios,
   uncertainty, criticism, and revisions behind every result.
3. An installed `app-store-forecast-refresh` skill for producing later,
   immutable forecast snapshots.

This repository is being rebuilt through a second approved Gauntlet Loop. The
active operational record is in `GAUNTLET.md`; the first run is preserved at
`docs/archive/GAUNTLET-CONTINUITY-DRAFT.md`.

## Status

The first local edition has been **withdrawn and superseded before
publication**. Its method produced a careful continuity forecast whose central
products were often achievable between 2026 and 2028, rather than a
sufficiently future-native view of 2031. Its 23 categories, 230 listings and
ranks are no longer shown as the active forecast.

The failed draft remains preserved for audit. The replacement local candidate
has now been generated from six cross-impact future worlds, 60 changed actors,
74 recurring needs, six provisional marketplace categories and 72 sealed
concepts. A bounded final synthesis selected 60 fictional Top 10 listings and
documented the two exclusions in every category. Every selected fictional name
also passed a dated exact-name web screen; that screen is explicitly not legal
or trademark clearance. The complete postmortem is in
`docs/FORECAST_POSTMORTEM_V1.md` and the final synthesis method and
limitations are in `docs/FINAL_SYNTHESIS_AND_LIMITS.md`.

The repository and installed `app-store-forecast-refresh` skill now use the
future-world-first method and the bounded final synthesis actually used by this
edition. It creates a new dated edition and does not copy today's categories,
apps or ranks forward.

The active edition remains a working educational forecast rather than a frozen
claim about 2031. Its authorised public home is `appstore2031.com`.

## Local development

Install dependencies, then start the Cloudflare Worker development server:

```bash
npm install
npm run dev
```

Wrangler builds the site, serves it at `http://localhost:8791`, and rebuilds
when the source, public assets, versioned data or HTML entry point changes.
The project requires Node 22 or newer for Wrangler. If your shell is still on
Node 20 but Node 22 is installed through nvm, the project launcher selects that
compatible runtime automatically, so `npm run dev` remains the only command you
need. The included `.nvmrc` is still available if you prefer to run `nvm use`.
`npm run serve` remains available as a lightweight server for an already-built
`dist` directory, but `npm run dev` is the normal development route.

`npm run validate:data` validates every edition with the validator for its
recorded method. Use `npm run validate:edition -- <edition-id>` to check one
edition. `npm run validate:v1:archive` checks only the withdrawn v1 archive's
historical file structure; it does not restore that catalogue or its ranks as
a valid forecast. `npm test` runs the active future-native and product tests;
`npm run test:v1:archive` runs the preserved continuity-draft regression suite
separately.

The production build is allowlisted. It includes the compact validated v2
storefront projection, public v2 method/evidence library and a bounded v1
withdrawal record. It does not publish internal workflow packets, failed agent
runs, raw audit machinery or the withdrawn 230-listing inventory.

The same build creates stable, crawlable research pages for the forecast, six
categories, 60 fictional listings, six possible worlds, the method, the source
register, every public research record, the current edition and the correction
history. These pages contain visible text without requiring JavaScript, unique
canonical metadata, truthful `CreativeWork`/`Dataset` structured data,
suggested citations, a sitemap, `robots.txt` and `llms.txt`. Fictional listings
are deliberately not marked up as real products, software, ratings or reviews.
The app-store-style interface links each listing panel to its permanent
research page.

Canonical URLs default to `https://appstore2031.com`. A different host can be
tested without changing source files:

```bash
APPSTORE2031_SITE_URL=https://example.test npm run build
```

The old snapshot, closing and freeze commands are explicitly named
`snapshot:v1:archive`, `prepare:seal:v1:archive` and `freeze:v1:archive` and
refuse a `future-native-v2` manifest before writing. They are retained only to
explain the withdrawn edition's historical lifecycle; they are not the release
path for this rebuild.

## Worker deployment

Validate the complete deployment without publishing anything:

```bash
npm run deploy:dry-run
```

Deploy the validated static application to the `appstore2031` Cloudflare
Worker:

```bash
npm run deploy
```

The real deployment command runs data validation, type checking and all tests
before Wrangler builds and uploads the site. The committed Custom Domain route
attaches the Worker to `appstore2031.com`; changing or adding another public
hostname remains a separate, explicit release action.

## Non-affiliation

AppStore2031 is an independent educational futures project. It is not an
app marketplace and is not affiliated with or endorsed by Apple Inc. All
forecast listings, providers, rankings and reviews are fictional.
