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 with analytics overlay integration for both 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.

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

Ready to Simplify Your Versioning?

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