---
order: 972
slug: "/docs/v1/help/previous-choose-your-path"
title: "Previous Choose your path reference"
section: "Help and notes"
description: "Preserved detailed reference from the earlier choose-your-path page, including its unique explanations and examples."
audience: "all"
level: "beginner"
last_updated: "2026-10-17"
version: "v1"
related: ["/docs/v1/start/quickstart","/docs/v1/start/glossary"]
draft: false
layout: "reference"
---
Choose where your application must enforce access before choosing a language or credential.

## What you will learn
- Which process should activate and validate a [license](/docs/v1/start/glossary#license).
- Which starter guide matches your application.
- Where secret management credentials are allowed.

## Prerequisites
- Read the [introduction](/docs/v1/start/introduction).
- Know whether the protected operation runs on your server or the [customer](/docs/v1/start/glossary#customer)'s machine.

## Choose by application
| Your application | Enforcement location | Begin here |
| --- | --- | --- |
| Desktop app | Application process; Electron main process for JavaScript | [Desktop architecture](/docs/v1/start/use-cases#desktop-application) and [quickstart](/docs/v1/start/quickstart) |
| SaaS backend | Your authenticated server, before protected actions | [SaaS architecture](/docs/v1/start/use-cases#saas-backend) and [PHP setup](/docs/v1/start/quickstart#php-setup) |
| CLI or [developer](/docs/v1/start/glossary#developer) tool | Tool process with protected local state; server checks for online resources | [CLI architecture](/docs/v1/start/use-cases#cli-or-developer-tool) and [Python setup](/docs/v1/start/quickstart#python-setup) |
| Plugin or extension | Plugin process for local [features](/docs/v1/start/glossary#feature); your backend for valuable online operations | [Plugin architecture](/docs/v1/start/use-cases#plugin-or-extension) and [authentication](/docs/v1/start/authentication) |

## Choose by language
- Python 3.9+: [Python quickstart](/docs/v1/start/quickstart#python-setup).
- Node.js 18+ or Electron main process: [JavaScript quickstart](/docs/v1/start/quickstart#javascript-setup).
- PHP 8.2+ with cURL and Sodium: [PHP quickstart](/docs/v1/start/quickstart#php-setup).
- C# with .NET 7+ source compatibility: [C# quickstart](/docs/v1/start/quickstart#csharp-setup).
- Another language: start with the [cURL transport check](/docs/v1/start/quickstart#curl-setup) and the [activation flow](/docs/v1/start/activation-validation-deactivation). A transport check is not a complete signed/offline client.

## Choose by responsibility
If you develop the application, implement signed validation and feature gating. If you operate the sales backend, use a scoped [developer API key](/docs/v1/start/glossary#developer-api-key) for license management after confirmed purchases. If you support customers, use the dashboard to inspect a license and its [devices](/docs/v1/start/glossary#device) instead of asking for passwords.
A browser-only feature check does not protect your SaaS backend. A customer-controlled plugin host is not your trusted management server.

## Expected result
You have one starting guide and know where [activation tokens](/docs/v1/start/glossary#activation-token), installation state and developer API keys belong.

## Common mistakes
- Running the JavaScript SDK in browser code: use Node or Electron main, or your authenticated backend.
- Using an environment switch to migrate a license: [Sandbox](/docs/v1/start/glossary#sandbox) and [Live](/docs/v1/start/glossary#live) records are separate.
- Assuming every listed REST language has a maintained SDK: four [official SDKs](/docs/v1/start/glossary#official-sdk) exist; other languages need a conforming client.

## Security notes
Check the [known SDK limitations](/docs/v1/integration-notes) before choosing a production architecture. Runtime minimums describe source compatibility, not ongoing security support from the runtime vendor.

## Troubleshooting
| Symptom | Cause | Fix |
| --- | --- | --- |
| Your app has both desktop and SaaS features | Enforcement occurs in two places | Gate local actions locally and authenticate/authorize online actions on your backend |
| Your language has no official SDK | REST support is distinct from an SDK | Implement HTTPS/JSON plus signed semantic checks; do not copy only transport code |
| The application must never connect | Online-first activation does not fit | Confirm requirements with support before purchase |

## Next steps
Run the [quickstart](/docs/v1/start/quickstart) and review [use cases](/docs/v1/start/use-cases).

## Related
- [Core concepts](/docs/v1/start/core-concepts)
- [Environments](/docs/v1/start/environments)
- [Go live checklist](/docs/v1/start/go-live-checklist)
