No more manual version bumping. Integrate with your CI/CD pipeline using a simple cURL. Manage versions across all your applications from one dashboard. Start easy, scale effortlessly.
Make sure you understand what you are using, what changes have been made, what code is included. Save hours, days and weeks debugging version-related issues..
$ curl -X POST \
-H "Content-Type: application/json" \
-H "X-Api-Token: YOUR_TOKEN" \
-d '{"incrementType":"patch"}' \
"https://i.versions.se/api/version/increment/YOUR_ID"$ curl -X POST \
-H "Content-Type: application/json" -H "X-Api-Token: YOUR_TOKEN" \
-d '{"incrementType":"patch"}' "https://i.versions.se/api/version/increment/YOUR_ID"{ "version": "1.0.0.1", "previousVersion": "1.0.0.0", "systemId": "550e8400-e29b-41d4-a716-446655440000", "systemName": "MyApplication", "incrementType": "patch" }
A complete versioning stack: attach release binaries, connect GitHub for AI-written release notes, and share public release pages — plus an analytics overlay for React and Vue applications.
One cURL to bump your version. Works with any CI/CD platform - Azure DevOps, GitHub Actions, GitLab, Jenkins, and more.
Install @versions/analytics, import one component, and render a live version dialog that displays realtime versioning information.
Overlay visibility follows auth state: it appears only with an active session and is removed after logout or when auth refresh becomes invalid.
Invite organization members with different roles. Control who can view, edit, or manage your systems.
Manage versions for all your applications, libraries, and components from one central dashboard.
Support for major, minor, and build increments. Choose 1, 2, or 3 version segments to match your release strategy.
Attach a single build artifact per version - ZIP, TAR, TAR.GZ, or DMG - uploaded straight from your pipeline and downloadable from the dashboard or a public link.
Connect a repository once. Every increment can carry a commit hash, and the delta since your last release gets an AI-written, editable summary - automatically, off the critical path.
Publish a version to a shareable link showing your organization's branding, the binary download, and the release notes - no login required for whoever you send it to.
Import the React component and mount it once in your app shell or layout.
1pnpm add @v.ersions/analytics23import { VersionsAnalyticsReact } from '@v.ersions/analytics/react'45export function AppLayout() {6 return (7 <>8 <main>{/* app content */}</main>9 <VersionsAnalyticsReact10 applicationId="a5c7fae6-00cf-4da6-ae7c-33f474f89e8e"11 environment="preview"12 />13 </>14 )15}Import the Vue component and register it in your root app component.
1pnpm add @v.ersions/analytics23<script setup>4import { VersionsAnalyticsVue } from '@v.ersions/analytics/vue'5</script>67<template>8 <main><!-- app content --></main>9 <VersionsAnalyticsVue10 application-id="a5c7fae6-00cf-4da6-ae7c-33f474f89e8e"11 environment="preview"12 />13</template>This makes version identification exact. Instead of guessing from the latest release, your app ships its own versions.json file so anyone can see which build is actually running in the browser right now, across dev, staging, and production.
Practical benefit: faster debugging, fewer release mistakes, and clearer communication between developers, QA, and support when reporting issues.
1{2 "releaseVersion": "",3 "buildId": "",4 "commit": "",5 "builtAtUtc": ""6}1- name: Compute deterministic identity2 run: |3 echo "COMMIT_SHA=${GITHUB_SHA}" >> $GITHUB_ENV4 echo "BUILD_ID=${GITHUB_SHA::7}-${GITHUB_RUN_NUMBER}" >> $GITHUB_ENV56- name: Increment version and capture releaseVersion7 run: |8 RELEASE_VERSION=$(curl -sfL -X POST \9 -H "Content-Type: application/json" \10 -H "X-Api-Token: ${{ secrets.VERSIONS_TOKEN }}" \11 -d '{"incrementType":"patch"}' \12 "https://i.versions.se/api/version/increment/${{ secrets.VERSIONS_APP_ID }}" \13 | jq -r '.version')14 echo "RELEASE_VERSION=$RELEASE_VERSION" >> $GITHUB_ENV1516- name: Stamp public/versions.json17 run: |18 cat > public/versions.json <<EOF19 {20 "releaseVersion": "${RELEASE_VERSION}",21 "buildId": "${BUILD_ID}",22 "commit": "${COMMIT_SHA}",23 "builtAtUtc": "$(date -u +%Y-%m-%dT%H:%M:%SZ)"24 }25 EOFConnect a System to its GitHub repository once, with a Personal Access Token that's encrypted at rest and never shown again. From then on, pass a commit hash along with your increment call, and Versions figures out what actually changed since your last release.
The commit range is fetched from GitHub and summarized into a concise, non-technical release note - entirely in the background, so your pipeline's increment call stays fast regardless of GitHub or AI latency. Not a straight-line history between the two commits (a hotfix out of order, a different branch)? Versions simply skips it and leaves the notes for you to write - no garbage summary, no error.
You always get the final word: edit the generated text before publishing, and a binary is no longer required to publish at all - ship release notes alone, a binary alone, or both. Publishing opens a public, shareable release page with your organization's branding, the binary download, and the release notes - no login required for whoever you send it to.
1$ curl -X POST \2 -H "Content-Type: application/json" -H "X-Api-Token: YOUR_TOKEN" \3 -d '{"incrementType":"patch","commitHash":"'"$(git rev-parse HEAD)"'"}' \4 "https://i.versions.se/api/version/increment/YOUR_ID"1{2 "version": "1.4.0",3 "commitHash": "a1b2c3d",4 "releaseNotes": {5 "text": "Fixed a login timeout bug and sped up the dashboard.",6 "generatedAt": "2026-09-16T12:03:41Z",7 "model": "grok-4-latest"8 }9}