Local-first deep link collections, versioned in your Git repository
RYNO stores every deep link request, path parameter, query string and environment as a flat JSON file in a .ryno/ folder at the root of your mobile repository. Secrets stay in local files on your Mac that Git ignores, so a commit never carries a token.
Why everything lives in one folder, as flat JSON files
Review deep links with your code
A new route ships with its request file. Reviewers see the exact URL and parameters in the diff.
No account or server for one developer
Open the repository in RYNO and start. Nothing leaves your Mac.
.ryno/ — example layout.ryno/
├── collections/
│ ├── checkout/
│ │ ├── add-to-cart.json
│ │ └── apply-promo.json
│ └── onboarding/
│ └── welcome.json
├── environments/
│ ├── staging.env.json
│ └── staging.env.local.json # secrets, ignored by Git
├── flows/
│ └── checkout-happy-path.json
├── screenshots/ # ignored by Git
└── .gitignoreParameters, variables and environments
add-to-cart.json — example{
"name": "Add to cart",
"protocol": "https",
"host": "shop.example.com",
"path": "/cart/:productId",
"queryParams": [
{
"key": "ref",
"value": "{{campaign}}",
"enabled": true
},
{
"key": "qty",
"value": "2",
"enabled": true
}
],
"pathParams": [
{
"name": "productId",
"value": "42"
}
]
}- Switch between staging, QA and production in one click
- Path parameters like
:productIdand query parameters you can turn on or off - Variables such as
{{campaign}}resolved per environment - Secrets in
*.env.local.json, excluded from every commit - Links escaped for you before they reach the device
Start from what you already have
Import a CSV
Turn a spreadsheet of links into requests. RYNO shows a line-by-line summary of what it imported.
CSV import in the docsClone a repository
Clone a Git repository that already has a
Clone in the docs.ryno/folder and run its links right away.Share through Git
Commit
.ryno/and push it: your team gets the same collections on their next pull.
Where deep links usually live, and where they belong
| Proprietary cloud storage | Wiki or shared notes | .ryno/ in your Git repository | |
|---|---|---|---|
| Reviewed with your code | No | No | Yes, in the same review |
| Works offline | Depends on the vendor | Read only | Yes |
| Secrets protected | Stored by the vendor | Often pasted in clear text | Local files, never committed |
| Leaving the tool | Export, if allowed | Copy and paste | Files stay in your repository |
| Cost for one developer | Often a paid seat | Free | Free |
Questions about the project folder
Where does RYNO store deep link collections?
RYNO stores each request as a JSON file under .ryno/collections/ in your repository. Environments live in .ryno/environments/ and flows in .ryno/flows/. Nothing is stored on a RYNO server for individual use.
How does RYNO keep secrets out of Git?
RYNO reads secrets from *.env.local.json files and creates a .gitignore in .ryno/ that excludes them. Shared environments go in *.env.json, which you commit.
What happens if a .ryno/ file is broken?
.ryno/ file is broken?RYNO skips a file it cannot read and keeps loading the rest of the workspace, so one bad merge never blocks the whole team.
Put your deep links where your code lives
.ryno/ is created for you. To get started, contact the team.