Universal Platform & Multi-Language Integrations
Install ParityEdge across any modern website builder, CMS, static HTML site, JavaScript framework, or backend server runtime (Python, Go, PHP, Node) in under two minutes.
1. No-Code & CMS Platforms
Paste your single-line ParityEdge embed script into the custom code settings of your favorite website builder:
WebflowHead / Footer Code
Go to Project Settings → Custom Code → Head Code. Paste the script and tag any price text with data-parity-base="49" in the designer.
FramerGeneral Custom Code
Go to Site Settings → General → Custom Code → Head. Paste the script and publish your site.
Shopifytheme.liquid
Go to Online Store → Themes → Edit Code → theme.liquid. Paste the script right before the closing </head> tag.
WordPress / WooCommerceHeader Scripts
Add the script using any header code plugin or inside your child theme's header.php file.
<script
src="https://cdn.jsdelivr.net/npm/parityedge@1.0.0/dist/parity.global.js"
data-project-id="prj_live_YOUR_PROJECT_ID"
data-position="bottom-pill"
data-theme="dark"
async>
</script>2. Modern Frontend & Jamstack Frameworks
React & Vite Headless SDK
Package: parityedge
import { useParityEdge, ParityBanner } from 'parityedge/react';
export function PricingPage() {
const { data } = useParityEdge({
projectId: 'prj_live_sample_key',
});
return (
<div>
<ParityBanner projectId="prj_live_sample_key" theme="dark" position="bottom-pill" />
<h2>Pro Plan — $49 USD</h2>
{data?.eligible && <p>{data.discountPercentage}% off with code {data.couponCode}</p>}
</div>
);
}Next.js 14/15 App Router
Package: parityedge
// app/pricing/page.tsx
import { ParityBanner } from 'parityedge/react';
export default function PricingPage() {
return (
<main>
<ParityBanner projectId="prj_live_sample_key" theme="dark" position="bottom-pill" />
<h1>Global Pricing Plans</h1>
</main>
);
}Next.js Pages Router (Next 12–14)
SSR: getServerSideProps • 0 CLS
export const getServerSideProps: GetServerSideProps = async (context) => {
const ip = context.req.headers['x-forwarded-for'] || context.req.socket.remoteAddress;
const res = await fetch(`https://parityedge-edge-api.g-saichakri.workers.dev/v1/resolve?projectId=YOUR_KEY`, {
headers: { 'x-forwarded-for': Array.isArray(ip) ? ip[0] : ip || '' }
});
return { props: { parity: await res.json() } };
};Angular (v14–18+)
Guide →// Angular Signals
readonly parity = toSignal(
this.parityService.resolve(
'prj_live_YOUR_KEY'
)
);Vue 3 / Nuxt 3
<script setup>
const parity = ref(null);
onMounted(async () => {
const res = await fetch('https://parityedge-edge-api.g-saichakri.workers.dev/v1/resolve?projectId=YOUR_KEY');
parity.value = await res.json();
});
</script>Svelte 5 / SvelteKit
<script>
let parity = $state(null);
onMount(async () => {
const res = await fetch('https://parityedge-edge-api.g-saichakri.workers.dev/v1/resolve?projectId=YOUR_KEY');
parity = await res.json();
});
</script>Astro
---
// Server Island SSR
const res = await fetch('https://parityedge-edge-api.g-saichakri.workers.dev/v1/resolve?projectId=YOUR_KEY');
const parity = await res.json();
---3. Mobile Applications (iOS & Android)
Localize in-app purchases and subscription screens across native mobile devices:
React Native / Expo
useEffect(() => {
fetch('https://parityedge-edge-api.g-saichakri.workers.dev/v1/resolve?projectId=YOUR_KEY')
.then((r) => r.json())
.then(setParity);
}, []);Flutter (Dart)
final res = await http.get(
Uri.parse('https://parityedge-edge-api.g-saichakri.workers.dev/v1/resolve?projectId=YOUR_KEY')
);
final parity = json.decode(res.body);4. Backend Server Runtimes & Microservices
Evaluate parity pricing server-side in your backend API gateways before rendering templates or generating checkout sessions:
Python (FastAPI / Django)httpx
import httpx
async def get_pricing(visitor_ip: str):
async with httpx.AsyncClient() as client:
r = await client.get(
"https://parityedge-edge-api.g-saichakri.workers.dev/v1/resolve",
params={"projectId": "prj_live_YOUR_KEY"},
headers={"x-forwarded-for": visitor_ip}
)
return r.json()Go (Golang / Gin)net/http
req, _ := http.NewRequest("GET", "https://parityedge-edge-api.g-saichakri.workers.dev/v1/resolve?projectId=YOUR_KEY", nil)
req.Header.Set("x-forwarded-for", clientIP)
resp, err := http.DefaultClient.Do(req)PHP / LaravelHttp::withHeaders
$parity = Http::withHeaders([
'x-forwarded-for' => request()->ip(),
])->get('https://parityedge-edge-api.g-saichakri.workers.dev/v1/resolve', [
'projectId' => 'prj_live_YOUR_KEY',
])->json();Node.js / Expressfetch API
const res = await fetch('https://parityedge-edge-api.g-saichakri.workers.dev/v1/resolve?projectId=YOUR_KEY', {
headers: { 'x-forwarded-for': req.ip }
});
const parity = await res.json();Ruby on RailsNet::HTTP
uri = URI("https://parityedge-edge-api.g-saichakri.workers.dev/v1/resolve?projectId=YOUR_KEY")
req = Net::HTTP::Get.new(uri)
req['x-forwarded-for'] = request.remote_ip
res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }Spring Boot (Java)WebClient
WebClient.create().get()
.uri("https://parityedge-edge-api.g-saichakri.workers.dev/v1/resolve?projectId={id}", id)
.header("x-forwarded-for", clientIp)
.retrieve()
.bodyToMono(String.class);4. Automatic Payment Links Promo Code Injection
ParityEdge automatically observes and mutates checkout links on your page without requiring any custom code:
Next: Analytics & Privacy Telemetry
Understand your conversion velocity, CTR metrics, and zero-PII privacy guarantee.