Skip to content
This repository was archived by the owner on Mar 17, 2026. It is now read-only.
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions docs/.vale/styles/config/vocabularies/Suga/accept.txt
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,8 @@ Planetscale
liquibase
allowlisting
cdktf
Presigned
presigned

# Defaults from mintlify
Mintlify
Expand Down
65 changes: 45 additions & 20 deletions docs/docs.json
Original file line number Diff line number Diff line change
Expand Up @@ -14,9 +14,9 @@
},
"favicon": "/favicon.svg",
"navigation": {
"anchors": [
"tabs": [
{
"anchor": "Documentation",
"tab": "Docs",
"icon": "book-open",
"groups": [
{
Expand All @@ -37,27 +37,52 @@
]
},
{
"anchor": "CLI Reference",
"icon": "terminal",
"tab": "CLI",
"icon": "square-terminal",
"pages": [
"cli/introduction",
"cli/access-token",
"cli/build",
"cli/completion",
"cli/config",
"cli/dev",
"cli/edit",
"cli/generate",
"cli/init",
"cli/login",
"cli/logout",
"cli/new",
"cli/team",
"cli/templates",
"cli/version"
]
},
{
"tab": "SDKs",
"icon": "code",
"groups": [
{
"group": "Commands",
"group": "SDKs",
"pages": ["sdks"]
},
{
"group": "Reference",
"pages": [
"cli/introduction",
"cli/access-token",
"cli/build",
"cli/completion",
"cli/config",
"cli/dev",
"cli/edit",
"cli/generate",
"cli/init",
"cli/login",
"cli/logout",
"cli/new",
"cli/team",
"cli/templates",
"cli/version"
{
"group": "Python",
"icon": "python",
"pages": ["sdks/python", "sdks/python/storage"]
},
{
"group": "Node.js",
"icon": "node-js",
"pages": ["sdks/node", "sdks/node/storage"]
},
{
"group": "Go",
"icon": "golang",
"pages": ["sdks/go", "sdks/go/storage"]
}
Comment on lines +72 to +85

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Verification agent

🧩 Analysis chain

Double-check icon keys for language groups.

Mintlify icon keys can be strict; please verify “node-js” and “golang” are valid.


🌐 Web query:

What are the valid icon names for Mintlify docs.json groups/tabs, specifically for Python, Node.js, and Go?

💡 Result:

Short answer

  • Mintlify accepts any named Font Awesome or Lucide icon (or a URL / local SVG). [1][2]

Recommended icon names

  • Python: "python" (Font Awesome brand). [3]
  • Node.js: "node" or "node-js" (Font Awesome brands; both are available). [4][5]
  • Go: there is no official Go / golang brand icon in Font Awesome; use a custom SVG or an external URL (Mintlify supports SVG/URL icons). [1][2]

Sources

  1. Mintlify — Icons / docs.json icon options. [Mintlify docs]. [1]
  2. Mintlify — Navigation (groups/tabs accept icon names from Font Awesome or Lucide). [1]
  3. Font Awesome — python brand icon. [3]
  4. Font Awesome — node brand icon. [4]
  5. Font Awesome — node-js brand icon. [5]

Use a custom SVG or URL for the Go icon. Font Awesome provides “python” and “node-js” out of the box, but there’s no official “golang” icon—update the Go group in docs/docs.json to reference a custom SVG or external URL.

🤖 Prompt for AI Agents
In docs/docs.json around lines 72 to 85, the "Go" group uses an invalid Font
Awesome icon name "golang"; replace that value with a reference to a custom SVG
or external URL (for example a relative path under the docs static assets like
"static/icons/go.svg" or a full CDN URL), ensure the referenced SVG file exists
in the repo (add it to docs/static/icons/) and update any build/config that
copies static docs assets so the icon will be served correctly.

]
}
]
Expand Down
48 changes: 48 additions & 0 deletions docs/sdks.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
---
title: "Introduction"
description: "Language-specific SDK documentation for Suga"
---

Suga automatically generates type-safe SDKs from your `suga.yaml` configuration. Define your infrastructure resources and access permissions once, then get pre-configured clients with only the methods your application needs.

## Available Languages

<CardGroup cols={3}>
<Card title="Python" icon="python" href="/sdks/python" />
<Card title="Node.js" icon="node-js" href="/sdks/node" />
<Card title="Go" icon="golang" href="/sdks/go" />
</CardGroup>

## How It Works

1. **Define resources and permissions** using the Suga editor:

```bash
suga edit
```

Or manually in your `suga.yaml`:

```yaml
buckets:
images:
access:
app:
- read
- write
```

2. **Generate your SDK** with access already configured:

```bash
suga generate --python --python-out ./client
```

3. **Use pre-configured resources**:
```python
client = SugaClient()
client.images.read("file.txt")
client.images.write("file.txt")
```

Your SDK automatically handles authentication, permissions, and environment differences. The same code works locally with `suga dev` and when deployed to the cloud.
51 changes: 51 additions & 0 deletions docs/sdks/go.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
---
title: "Overview"
description: "Go SDK for Suga infrastructure resources"
---

## Generate SDK

Generate the Go client based on your `suga.yaml`:

```yaml title="suga.yaml"
buckets:
image:
access:
app:
- read
- write
```

```bash
suga generate --go --go-out ./suga --go-package-name suga
```

For all available options, see the [`suga generate`](/cli/generate) command documentation.

## Import

```go
import "example/suga"
```

## Usage

```go
// Initialize client
client, err := suga.NewClient()
if err != nil {
log.Fatal(err)
}

// Access your resources (names from your suga.yaml)
err = client.Image.Write("file.txt", []byte("data"))
content, err := client.Image.Read("file.txt")
```

## Available Resources

<CardGroup cols={2}>
<Card title="Storage" icon="database" href="/sdks/go/storage">
Object storage operations - read, write, delete, list files
</Card>
</CardGroup>
Loading