Problem
The README's Quick Start lists default ports for 7 services up to AWS at 4006, but emulate@0.5.0 actually starts 12 services and shifts AWS to 4007 (Okta lands on 4006).
The mismatch is silent: copy-pasting the AWS endpoint from the README points the AWS SDK at the Okta service, which returns a JSON 404 ({"message":"Not Found","documentation_url":"https://emulate.dev/okta"}). The SDK's XML deserializer then fails on the JSON body, producing a cryptic error that doesn't hint at the misrouted endpoint:
ERROR NAME: Error
ERROR MESSAGE: char '{' is not expected.:1:1
HTTP STATUS: 404
Reproduction
$ npx emulate@0.5.0 start
emulate v0.5.0
vercel http://localhost:4000
github http://localhost:4001
google http://localhost:4002
slack http://localhost:4003
apple http://localhost:4004
microsoft http://localhost:4005
okta http://localhost:4006 # README says AWS here
aws http://localhost:4007 # actual AWS port
resend http://localhost:4008
stripe http://localhost:4009
mongoatlas http://localhost:4010
clerk http://localhost:4011
README on main (lines 11–19) still lists only Vercel through AWS@4006.
Scope
Suggested fixes
Three options, listed in increasing scope:
-
Update the table to list all 12 current services. Minimal change but will need re-updating each time a new service lands.
-
Replace the static table with a generic explanation, e.g.
Each enabled service binds to a port starting from 4000 (configurable with -p) in registration order. Run emulate list or check the startup log for the current mapping.
This stops the README drifting per release.
-
(Optional, separate issue if preferred.) Stabilize the port assignment so aws always resolves to the same port regardless of newly added services — e.g. reserve a contiguous block per service. This protects users who hard-code endpoints.
Happy to send a PR for (1) or (2) once a direction is preferred. (3) feels like a design discussion that belongs in its own issue.
Environment
- emulate: 0.5.0
- Node.js: 24
- OS: macOS 15
Problem
The README's Quick Start lists default ports for 7 services up to AWS at
4006, butemulate@0.5.0actually starts 12 services and shifts AWS to4007(Okta lands on4006).The mismatch is silent: copy-pasting the AWS endpoint from the README points the AWS SDK at the Okta service, which returns a JSON 404 (
{"message":"Not Found","documentation_url":"https://emulate.dev/okta"}). The SDK's XML deserializer then fails on the JSON body, producing a cryptic error that doesn't hint at the misrouted endpoint:Reproduction
README on
main(lines 11–19) still lists only Vercel through AWS@4006.Scope
README.mdQuick Start section (default ports list). The npm-published README is a near-identical copy of this file and refreshes per release, so updating the root copy is enough.Suggested fixes
Three options, listed in increasing scope:
Update the table to list all 12 current services. Minimal change but will need re-updating each time a new service lands.
Replace the static table with a generic explanation, e.g.
This stops the README drifting per release.
(Optional, separate issue if preferred.) Stabilize the port assignment so
awsalways resolves to the same port regardless of newly added services — e.g. reserve a contiguous block per service. This protects users who hard-code endpoints.Happy to send a PR for (1) or (2) once a direction is preferred. (3) feels like a design discussion that belongs in its own issue.
Environment