For Developers

Drop in one script tag. Get real data. No GA4 overhead.

GA4 requires a tag manager, a cookie consent implementation, a data stream configuration, and a 48-hour wait before your data shows up. For a side project or something you're actively shipping, that's the wrong tradeoff.

Palace is a single async script tag. No SDK, no config file, no consent banner to implement. The tracking script is under 1.5 KB minified and gzipped. Data appears in real time. For teams that want more, UTM management, campaign tracking, and funnels, Palace scales into a full campaign suite without a tool switch.

<1.5 KB

Minified and gzipped

1

Script tag to install

0

Config files, SDKs, or consent banners

Real-time

No batch processing or pipeline delays

What's actually under the hood

Palace uses fingerprinting-based identification: a daily-rotating anonymous hash derived from IP, user agent, and a handful of other signals. No cookies written, no localStorage touched, nothing that persists across sessions. GDPR and CCPA compliant without configuration. No CMP to integrate, no consent banner to build or maintain.

Custom events fire with a simple JS call or data-* attributes. Properties are freeform key-value pairs. They appear in the dashboard immediately, with no batch processing and no pipeline.

Sign up, get a site ID, add the script tag. First event appears within seconds of page load. No build step, no environment variables for basic usage, no tag manager required. Works in any framework that renders HTML to the client.

Technical specifics

Under 1.5 KB, loads async

Won't show up in your Lighthouse report. No render-blocking behavior, no impact on LCP, CLS, or INP. Works behind a CSP, with the CDN domain as the only allowlist entry required.

Works in any stack

No framework-specific SDK. Loads via a script tag in any HTML: Next.js, Remix, SvelteKit, Astro, plain HTML, whatever. SPA route changes are tracked automatically without configuration.

Multiple domains per account

Add production, staging, and localhost under one account. Useful for verifying events are firing correctly before a deploy without polluting your production data.

Freeform event properties

No schema to define upfront. Pass any key-value pairs to track() and they show up in the dashboard immediately. Filter and segment by any property you've sent.

User journey and funnel tracking

Define funnels from any sequence of pages or events. Visualize where users drop off through your product, useful for diagnosing conversion problems without a separate tool.

No maintenance after install

No version updates to manage, no SDK to keep in sync, no consent banner logic to revisit when privacy laws change. Drop it in once and it keeps working.

What Palace doesn't do

No REST API for querying your data programmatically: data lives in the dashboard, not queryable via endpoint. If you need to pipe analytics data into your own infrastructure, that's outside Palace's current scope.

No session replay or heatmaps. Palace tracks events, page views, referrers, UTM parameters, and user journeys. If you need full session recording, that's a different product category.

No Google Ads attribution integration. If GA4 conversion import is a hard dependency for a client's bidding strategy, you'll need GA4 for that. Palace runs alongside GA4 on the same page without conflict.

Common questions

"How accurate is fingerprinting vs cookies?"

For daily unique visitor counts, fingerprinting with a rotating hash is accurate enough for most use cases, and more complete than cookie-based tracking that systematically undercounts due to consent declines. The tradeoff is intentional: you get complete traffic coverage at the cost of long-term individual tracking, which Palace doesn't attempt.

"Will it affect my Core Web Vitals?"

No. The script is under 1.5 KB, loads async, and has no render-blocking behavior. It won't move your LCP, CLS, or INP scores.

"Does it work with SPAs?"

Yes. Client-side navigation is tracked automatically in React, Vue, Svelte, and other SPA frameworks. Page views fire on route changes without any additional configuration.

"Can I self-host it?"

Not currently. Palace is a hosted service: the script loads from Palace's CDN and data is stored on Palace's infrastructure. If data sovereignty is a hard requirement, that's worth knowing upfront.

How developers typically find Palace

Usually through a thread, where someone asks for a GA4 alternative that doesn't require a consent banner and doesn't add 50 KB to the bundle. The install takes five minutes and the data shows up immediately, which is about the right ratio for deciding whether something is worth keeping.

It tends to become the default on new projects not because it's feature-rich, but because it's the one that still works six months later without requiring any maintenance.

Start tracking today.

Set up takes minutes. Your first 100k events are free.

Simple, usage-based pricing from $0.00