Deploy Site
JayFarei/opentraces
Land every site-related fix on main, deploy opentraces.ai to Vercel production, and verify it works across all pages (desktop + mobile) and the email-capture flow, fixing and re-deploying until green.
gh, vercel, supabase, render CLI and deployment platform setup
$ npx skills add alinaqi/maggy --skill project-tooling -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install alinaqi/maggy project-tooling --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/alinaqi/maggy.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/project-tooling .claude/skills/project-tooling && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "project-tooling" agent skill from https://github.com/alinaqi/maggy/tree/main/skills/project-tooling into .claude/skills/project-tooling/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "project-tooling", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/alinaqi/maggy/tree/main/skills/project-toolingType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add alinaqi/maggy --skill project-tooling -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install alinaqi/maggy project-tooling --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/alinaqi/maggy.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/project-tooling .agents/skills/project-tooling && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "project-tooling" agent skill from https://github.com/alinaqi/maggy/tree/main/skills/project-tooling into .agents/skills/project-tooling/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "project-tooling", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add alinaqi/maggy --skill project-tooling -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install alinaqi/maggy project-tooling --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/alinaqi/maggy.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/project-tooling .cursor/skills/project-tooling && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "project-tooling" agent skill from https://github.com/alinaqi/maggy/tree/main/skills/project-tooling into .cursor/skills/project-tooling/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "project-tooling", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/alinaqi/maggy.git --path skills/project-tooling--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add alinaqi/maggy --skill project-tooling -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install alinaqi/maggy project-tooling --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/alinaqi/maggy.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/project-tooling .gemini/skills/project-tooling && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "project-tooling" agent skill from https://github.com/alinaqi/maggy/tree/main/skills/project-tooling into .gemini/skills/project-tooling/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "project-tooling", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install alinaqi/maggy project-toolingInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add alinaqi/maggy --skill project-tooling -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/alinaqi/maggy.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/project-tooling .github/skills/project-tooling && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "project-tooling" agent skill from https://github.com/alinaqi/maggy/tree/main/skills/project-tooling into .github/skills/project-tooling/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "project-tooling", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add alinaqi/maggy --skill project-tooling -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install alinaqi/maggy project-tooling --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/alinaqi/maggy.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/project-tooling .opencode/skills/project-tooling && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "project-tooling" agent skill from https://github.com/alinaqi/maggy/tree/main/skills/project-tooling into .opencode/skills/project-tooling/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "project-tooling", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
project-toolinggh, vercel, supabase, render CLI and deployment platform setup
Project Tooling is an agent skill from alinaqi/maggy. gh, vercel, supabase, render CLI and deployment platform setup
Its SKILL.md is about 2.5k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in DevOps & Cloud, covering Deployment. It works with Vercel, Supabase, Git and Python. The repository describes itself as: What started as an opinionated Claude Code setup kit is now an autonomous AI engineering command center. The licence is MIT.
4 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 72a456e. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
supabasevercelghcurlgitFrom the folder's file list and the shell code blocks in SKILL.md.
Hosts in commands or code, which the agent is likely to contact:
api.render.comgithub.comdashboard.render.comFrom URLs in SKILL.md, links to its own repository left out.
Names these keys or tokens, usually read from environment variables:
RENDER_API_KEYSUPABASE_ACCESS_TOKENSUPABASE_DB_PASSWORDANTHROPIC_API_KEYVERCEL_TOKENFrom names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Project Tooling loads about 2.5k tokens when it runs. Until then it costs about 20 tokens; SKILL.md has 297 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check noted patterns worth knowing about, such as sudo or a known installer.
# Pull env vars to local .envvercel env pull .env.localecho "RENDER_API_KEY=<your-key>" >> .envAutomated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from alinaqi/maggy at commit 72a456e, republished under its MIT licence (© alinaqi). 297 words, ~2,485 tokens.
.claude/skills/project-tooling/SKILL.md (or your agent's skills folder).Standard CLI tools for project infrastructure management.
Before starting any project, verify these tools are installed and authenticated:
# Verify installation
gh --version
# Verify authentication
gh auth status
# If not authenticated:
gh auth login# Verify installation
vercel --version
# Verify authentication
vercel whoami
# If not authenticated:
vercel login# Verify installation
supabase --version
# Verify authentication (check if linked to a project or logged in)
supabase projects list
# If not authenticated:
supabase login# Verify installation
render --version
# If using Render API instead:
# Ensure RENDER_API_KEY is set in environmentRun this at project initialization to verify all tools:
#!/bin/bash
# scripts/verify-tooling.sh
set -e
echo "Verifying project tooling..."
# GitHub CLI
if command -v gh &> /dev/null; then
if gh auth status &> /dev/null; then
echo "✓ GitHub CLI authenticated"
else
echo "✗ GitHub CLI not authenticated. Run: gh auth login"
exit 1
fi
else
echo "✗ GitHub CLI not installed. Run: brew install gh"
exit 1
fi
# Vercel CLI
if command -v vercel &> /dev/null; then
if vercel whoami &> /dev/null; then
echo "✓ Vercel CLI authenticated"
else
echo "✗ Vercel CLI not authenticated. Run: vercel login"
exit 1
fi
else
echo "✗ Vercel CLI not installed. Run: npm i -g vercel"
exit 1
fi
# Supabase CLI
if command -v supabase &> /dev/null; then
if supabase projects list &> /dev/null; then
echo "✓ Supabase CLI authenticated"
else
echo "✗ Supabase CLI not authenticated. Run: supabase login"
exit 1
fi
else
echo "✗ Supabase CLI not installed. Run: brew install supabase/tap/supabase"
exit 1
fi
echo ""
echo "All tools verified!"# Create and push in one command
gh repo create <repo-name> --private --source=. --remote=origin --push
# Or public:
gh repo create <repo-name> --public --source=. --remote=origin --push# If repo exists on GitHub but not linked locally
gh repo clone <owner>/<repo>
# Or add remote to existing local project
git remote add origin https://github.com/<owner>/<repo>.git
git push -u origin main# Enable branch protection on main
gh api repos/{owner}/{repo}/branches/main/protection -X PUT \
-F required_status_checks='{"strict":true,"contexts":["quality"]}' \
-F enforce_admins=false \
-F required_pull_request_reviews='{"required_approving_review_count":1}'
# Set default branch
gh repo edit --default-branch main# Link current directory to Vercel project
vercel link
# Or create new project
vercel# Add environment variable
vercel env add ANTHROPIC_API_KEY production
# Pull env vars to local .env
vercel env pull .env.local# Deploy to preview
vercel
# Deploy to production
vercel --prod# Create project (interactive)
supabase projects create <project-name> --org-id <org-id>
# Link local to remote
supabase link --project-ref <project-ref># Start local Supabase
supabase start
# Stop local Supabase
supabase stop
# Reset database (apply all migrations fresh)
supabase db reset# Create new migration
supabase migration new <migration-name>
# Apply migrations to remote
supabase db push
# Pull remote schema to local
supabase db pull# Generate TypeScript types from schema
supabase gen types typescript --local > src/types/database.ts
# Or from remote
supabase gen types typescript --project-id <ref> > src/types/database.ts# Set API key
export RENDER_API_KEY=<your-api-key># List services
curl -H "Authorization: Bearer $RENDER_API_KEY" \
https://api.render.com/v1/services
# Trigger deploy
curl -X POST -H "Authorization: Bearer $RENDER_API_KEY" \
https://api.render.com/v1/services/<service-id>/deploys
# Get deploy status
curl -H "Authorization: Bearer $RENDER_API_KEY" \
https://api.render.com/v1/services/<service-id>/deploys/<deploy-id>Add these scripts for common operations:
{
"scripts": {
"verify-tools": "./scripts/verify-tooling.sh",
"deploy:preview": "vercel",
"deploy:prod": "vercel --prod",
"db:start": "supabase start",
"db:stop": "supabase stop",
"db:reset": "supabase db reset",
"db:migrate": "supabase db push",
"db:types": "supabase gen types typescript --local > src/types/database.ts"
}
}# .github/workflows/deploy.yml
name: Deploy
on:
push:
branches: [main]
pull_request:
branches: [main]
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Deploy to Vercel
uses: amondnet/vercel-action@v25
with:
vercel-token: ${{ secrets.VERCEL_TOKEN }}
vercel-org-id: ${{ secrets.VERCEL_ORG_ID }}
vercel-project-id: ${{ secrets.VERCEL_PROJECT_ID }}
vercel-args: ${{ github.ref == 'refs/heads/main' && '--prod' || '' }}# .github/workflows/migrate.yml
name: Migrate Database
on:
push:
branches: [main]
paths:
- 'supabase/migrations/**'
jobs:
migrate:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Setup Supabase CLI
uses: supabase/setup-cli@v1
with:
version: latest
- name: Push migrations
run: supabase db push
env:
SUPABASE_ACCESS_TOKEN: ${{ secrets.SUPABASE_ACCESS_TOKEN }}
SUPABASE_DB_PASSWORD: ${{ secrets.SUPABASE_DB_PASSWORD }}REQUIRED: When initializing a project, always create todos for deployment platform connection based on the stack.
| Stack | Default Platform | Action Required |
|---|---|---|
| Next.js / Node.js | Vercel | Connect Git repo to Vercel |
| Python (FastAPI, Flask) | Render | Connect Git repo to Render, get API key |
| Static sites | Vercel or Cloudflare Pages | Connect Git repo |
When Vercel is the deployment platform, create this todo:
TODO: Connect Git repository to Vercel for automatic deploymentsSteps:
# Option 1: Via CLI
vercel link
vercel git connect
# Option 2: Via Dashboard (recommended for first setup)
# 1. Go to vercel.com/new
# 2. Import Git repository
# 3. Configure project settings
# 4. DeployAfter connecting:
main → Production deployWhen Render is the deployment platform for Python projects:
Step 1: Ask user for Render API key
Before proceeding, please provide your Render API key.
Get it from: https://dashboard.render.com/u/settings/api-keys
Store it securely - we'll add it to your environment.Step 2: Create todos
TODO: Get Render API key from user
TODO: Connect Git repository to Render
TODO: Configure Render service (web service or background worker)
TODO: Set environment variables on RenderStep 3: Connect via Dashboard (recommended)
# 1. Go to dashboard.render.com/create
# 2. Select "Web Service" for APIs, "Background Worker" for async
# 3. Connect your GitHub/GitLab repository
# 4. Configure:
# - Name: <project-name>
# - Runtime: Python 3
# - Build Command: pip install -r requirements.txt
# - Start Command: uvicorn main:app --host 0.0.0.0 --port $PORTStep 4: Store API key for CI/CD
# Add to GitHub secrets for CI/CD
gh secret set RENDER_API_KEY
# Or add to local env
echo "RENDER_API_KEY=<your-key>" >> .envStep 5: Configure render.yaml (optional - Infrastructure as Code)
# render.yaml
services:
- type: web
name: <project-name>-api
runtime: python
buildCommand: pip install -r requirements.txt
startCommand: uvicorn main:app --host 0.0.0.0 --port $PORT
envVars:
- key: PYTHON_VERSION
value: "3.11"
- key: DATABASE_URL
fromDatabase:
name: <project-name>-db
property: connectionString
databases:
- name: <project-name>-db
plan: freeAdd to project todos when setting up deployment:
## Deployment Setup
- [ ] Create Git repository (gh repo create)
- [ ] Choose deployment platform (Vercel/Render/other)
- [ ] Connect Git to deployment platform
- [ ] Configure environment variables
- [ ] Set up CI/CD workflow
- [ ] Verify preview deployments work
- [ ] Configure production domain© alinaqi, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in skills/project-tooling of alinaqi/maggy.
Open the folder on GitHubat commit 72a456e
Project Tooling next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Project Tooling this skillalinaqi/maggy | 707 | — | ~2.5k | Automated safety check: Notes | MIT | |
| Deploy SiteJayFarei/opentraces | 100 | — | ~4.3k | Automated safety check: Pass | Custom licence | |
| Deploy To Tempsgotempsh/temps | 831 | — | ~1.3k | Automated safety check: Notes | Apache-2.0 | |
| Memstack Deployment Railway Deploycwinvestments/memstack | 423 | — | ~2.1k | Automated safety check: Pass | Proprietary | |
| Vercel CI Integrationjeremylongshore/tons-of-skills-marketplace | 2.8k | — | ~1.9k | Automated safety check: Pass | MIT | |
| Vercel Deploy Integrationjeremylongshore/tons-of-skills-marketplace | 2.8k | — | ~1.7k | Automated safety check: Pass | MIT |
JayFarei/opentraces
Land every site-related fix on main, deploy opentraces.ai to Vercel production, and verify it works across all pages (desktop + mobile) and the email-capture flow, fixing and re-deploying until green.
gotempsh/temps
Deploy applications to the Temps platform with automatic framework detection, Dockerfile generation, and container orchestration.
cwinvestments/memstack
A skill your agent uses when the user says 'deploy to Railway', 'Railway setup', 'railway-deploy', or needs to deploy a Node.js, Python, or Docker application to Railway with environment variables…
jeremylongshore/tons-of-skills-marketplace
Configure Vercel CI/CD with GitHub Actions, preview deployments, and automated testing.
jeremylongshore/tons-of-skills-marketplace
Deploy and manage Vercel production deployments with promotion, rollback, and multi-region strategies.
ericrisco/rsc-harness
A skill your agent uses when taking an app from source to live: choosing the deploy target from requirements (Hetzner+Coolify vs Vercel vs a third), then wiring container → CI → registry → host with…
alinaqi/maggy
AI Engine Optimization - semantic triples, page templates, content clusters for AI citations
alinaqi/maggy
Claude Code Agent Teams - default team-based development with strict TDD pipeline enforcement
alinaqi/maggy
Latest AI models reference - Claude, OpenAI, Gemini, Eleven Labs, Replicate
alinaqi/maggy
Android Java development with MVVM, ViewBinding, and Espresso testing
alinaqi/maggy
Android Kotlin development with Coroutines, Jetpack Compose, Hilt, and MockK testing
alinaqi/maggy
AI-driven testing agent that auto-discovers, generates, executes, evaluates, and fixes tests for any project type
Categories
gh, vercel, supabase, render CLI and deployment platform setup. Project Tooling is an agent skill from alinaqi/maggy.
Project Tooling fits situations like: tasks that involve Deployment.
Run `npx skills add alinaqi/maggy --skill project-tooling -a claude-code`. Or copy the skill folder (skills/project-tooling in alinaqi/maggy) into .claude/skills/project-tooling in your project. Claude Code loads it when a task matches its description.
Run `npx skills add alinaqi/maggy --skill project-tooling -a codex`. Or copy the skill folder (skills/project-tooling in alinaqi/maggy) into .agents/skills/project-tooling in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add alinaqi/maggy --skill project-tooling -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/project-tooling, .gemini/skills/project-tooling, .github/skills/project-tooling and .opencode/skills/project-tooling in your project.
Going by SKILL.md and its folder, Project Tooling needs the command-line tools its instructions call (supabase, vercel, gh, curl and git) and credentials named RENDER_API_KEY, SUPABASE_ACCESS_TOKEN, SUPABASE_DB_PASSWORD and ANTHROPIC_API_KEY. Our summary lists: Python 3; Node.js; A credential in RENDER_API_KEY; A credential in ANTHROPIC_API_KEY.
SKILL.md names 3 domains. In commands or code: api.render.com, github.com and dashboard.render.com; the agent is likely to contact these when it follows the instructions. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found notes only (mentions a .env file), nothing it rates as a warning. It is not a guarantee. Review the folder before installing.
Project Tooling is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.5k tokens (SKILL.md is roughly 9.9k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Project Tooling: Deploy Site (JayFarei/opentraces, 100 stars), Deploy To Temps (gotempsh/temps, 831 stars), Memstack Deployment Railway Deploy (cwinvestments/memstack, 423 stars) and Vercel CI Integration (jeremylongshore/tons-of-skills-marketplace, 2.8k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
alinaqi (a GitHub user) maintains it in alinaqi/maggy, which has 707 GitHub stars. The repository holds 71 skills in this directory. The repository was last updated on September 24, 2026.
Source: alinaqi/maggy on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.