Changelog
What changed in crowne, newest first.
sdk @ 0.4.0
This release changes how crowne/server finds the visitor address outside Cloudflare Workers.
- Outside Workers, the package no longer reads
X-Forwarded-For, because visitors can set it to change their own id. Use the newipoption to give the address from a source you trust. If you do not set it, the visits count as anonymous and the package shows one warning. - The country now comes only from
request.cf. The package no longer reads thecf-ipcountryheader.
sdk @ 0.3.0
This release ships the npm package as built JavaScript.
crownenow ships built JavaScript and type declarations, so you can install it outside of Bun. TypeScript now finds the types forcrowne/browserandcrowne/server.
Dark theme and passkey names
This release makes dark the default theme and lets you rename passkeys.
- The site and the app are now dark unless you choose light, or choose the system setting on a light system. The iOS launch screens are dark too.
- You can now rename each passkey on the account page. When you remove a passkey, your browser's password manager also forgets it.
Proxy and page view fixes
This release improves the proxy and counts more page views.
proxy()now forwards the browser's events unchanged and sends the visitor in a newCrowne-Visitorheader. Any proxy can use this header with anevents:writekey. Proxied events now drop bots and check the site's domains, as browser events do.- Before, all proxied traffic for a site shared one limit of 600 requests a minute. Now each visitor gets 6,000 a minute, and each key gets at most 10,000 a minute.
- Add
data-manualto the script tag to stop automatic page views. Then send page views yourself withwindow.crowne.pageview(). - Page views from client routers that use the Navigation API now count. Before, these pages were lost.
Pull to refresh
This release lets you reload the installed app with a pull.
- In the installed app, pull down at the top of a site page or the Sites page to reload it. If you release the pull early, nothing happens.
Proxy without site id
This release makes proxy setups simpler and lets you install the app.
- Behind a first-party proxy, you can now leave out the site id. Use
crowne({ endpoint: "/api/event" })or a script tag with onlydata-endpoint. The proxy adds the site id, so filter lists find it harder to match the requests. - You can now install the app on your phone or computer as a standalone web app. On iPhone and iPad, it opens with a light or dark splash screen.
API fix and copyable codes
This release fixes the REST API in production and makes email codes easy to copy.
- Calls to
api.crowne.io/v1got a 404 error, so the Stats API,POST /v1/signup, and site changes did not work. They work again. - When you copy the code from a sign-in, confirm, reset, or invite email, you now get only the digits, with no spaces, tabs, or line breaks.
Custom dashboards and agent sign-up
This release adds custom dashboards and lets agents sign up without an account.
- You can make custom dashboards beside the Overview. Build each widget with a live preview, then drag, resize, copy, or remove it. Shared links and public sites show these dashboards read-only.
- An agent can call
POST /v1/signupwith an email and a domain to get a site and a key. The person then claims the site from the emailed link.curl crowne.ioshows how. - Key scopes have new names:
ingestis nowevents:writeandstatsis nowsites:read. Your existing keys were changed for you. A newsites:writescope lets a key set up sites, goals, funnels, and shared links. - A trial now ends after 30 days or 100,000 events, and each person gets one. Past the events, the dashboard locks until you pick a plan; no events are lost. A site's first goal now becomes its dashboard goal.
REST API reference docs
This release adds a full reference for the REST API.
- The Stats API page is now the REST API page. It shows how to send events over plain HTTP from any language, with no package, and gives the event fields, error codes, and rate limits.