Simple API for CI/CD pipelines

Version Management Made Simple

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..

terminal
$ 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" }

Versioning Toolbox includes

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.

Simple API

One cURL to bump your version. Works with any CI/CD platform - Azure DevOps, GitHub Actions, GitLab, Jenkins, and more.

Drop-in Analytics Module

Install @versions/analytics, import one component, and render a live version dialog that displays realtime versioning information.

Session-aware Overlay

Overlay visibility follows auth state: it appears only with an active session and is removed after logout or when auth refresh becomes invalid.

Organization Management

Invite organization members with different roles. Control who can view, edit, or manage your systems.

Multiple Systems

Manage versions for all your applications, libraries, and components from one central dashboard.

Semantic Versioning

Support for major, minor, and build increments. Choose 1, 2, or 3 version segments to match your release strategy.

Release Binaries

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.

GitHub-Powered Release Notes

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.

Public Release Pages

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.

React usage

Import the React component and mount it once in your app shell or layout.

tsx
1pnpm add @v.ersions/analytics
2
3import { VersionsAnalyticsReact } from '@v.ersions/analytics/react'
4
5export function AppLayout() {
6 return (
7 <>
8 <main>{/* app content */}</main>
9 <VersionsAnalyticsReact
10 applicationId="a5c7fae6-00cf-4da6-ae7c-33f474f89e8e"
11 environment="preview"
12 />
13 </>
14 )
15}

Vue usage

Import the Vue component and register it in your root app component.

vue
1pnpm add @v.ersions/analytics
2
3<script setup>
4import { VersionsAnalyticsVue } from '@v.ersions/analytics/vue'
5</script>
6
7<template>
8 <main><!-- app content --></main>
9 <VersionsAnalyticsVue
10 application-id="a5c7fae6-00cf-4da6-ae7c-33f474f89e8e"
11 environment="preview"
12 />
13</template>

Deterministic Version Identification

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.

public/versions.json

json
1{
2 "releaseVersion": "",
3 "buildId": "",
4 "commit": "",
5 "builtAtUtc": ""
6}

GitHub Actions - CI stamping (example)

yaml
1- name: Compute deterministic identity
2 run: |
3 echo "COMMIT_SHA=${GITHUB_SHA}" >> $GITHUB_ENV
4 echo "BUILD_ID=${GITHUB_SHA::7}-${GITHUB_RUN_NUMBER}" >> $GITHUB_ENV
5
6- name: Increment version and capture releaseVersion
7 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_ENV
15
16- name: Stamp public/versions.json
17 run: |
18 cat > public/versions.json <<EOF
19 {
20 "releaseVersion": "${RELEASE_VERSION}",
21 "buildId": "${BUILD_ID}",
22 "commit": "${COMMIT_SHA}",
23 "builtAtUtc": "$(date -u +%Y-%m-%dT%H:%M:%SZ)"
24 }
25 EOF
GitHub + AI

From Commit to Public Release Notes

Connect 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.

Increment with a commit hash

bash
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"

Version details, moments later

json
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}

Ready to Simplify Your Versioning?

Join developers who have already streamlined their CI/CD pipelines with versions.se.