[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6EGNPG8CSWDM579PTC57RE7":3,"skill-same:01M6EGNPG8CSWDM579PTC57RE7":55},{"skillNo":4,"name":5,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":15,"categories":16,"keywords":27,"publishedAt":28,"linkOnly":29,"markdownContent":30,"markdownBody":30,"frontMatter":31,"refName":32,"commitSha":33,"skillDirectory":34,"forksCount":35,"repositoryHtmlUrl":36,"repositoryHomepageUrl":37,"ownerHtmlUrl":38,"ownerBlogUrl":6,"ownerDescription":39,"updatedAt":40,"install":41,"resources":54},"01M6EGNPG8CSWDM579PTC57RE7","xano",null,"ComeOnOliver\u002Fskillshub","ComeOnOliver","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F43215937?v=4","01M6E5JNFECJAAVFE0W7SMWWD2","Haoran Shu","01M6E5JNNDQS7AJZDYFQ8TPZCK",67,"MIT","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002FTerminalSkills\u002Fskills\u002Fxano\u002FSKILL.md",[17,22],{"categoryNo":18,"categoryName":19,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000010","后端与接口","SCENARIO","使用场景",{"categoryNo":23,"categoryName":24,"taxonomyType":25,"taxonomyTypeDesc":26},"01JBSEEDCAT000000000000030","开发工程师","PROFESSION","适用职业",[5],"2026-11-10 10:12:30",false,"# Xano — No-Code Backend Builder\n\n\n## Overview\n\n\nXano, the no-code\u002Flow-code backend platform for building APIs, databases, and authentication without writing server code. Helps developers and non-technical builders create production-ready REST APIs with visual function stacks, manage data models, and integrate with frontend frameworks.\n\n\n## Instructions\n\n### Database Schema\n\n```markdown\n## Data Modeling in Xano\nCreate tables visually in the Xano dashboard:\n\n### Users Table\n| Field        | Type      | Properties                    |\n|-------------|-----------|-------------------------------|\n| id          | integer   | Primary key, auto-increment   |\n| email       | text      | Unique, indexed               |\n| name        | text      | Required                      |\n| password    | password  | Hashed automatically          |\n| plan        | enum      | free, pro, enterprise         |\n| avatar_url  | text      | Nullable                      |\n| metadata    | json      | Flexible key-value data       |\n| created_at  | timestamp | Auto-set on create            |\n\n### Posts Table\n| Field        | Type       | Properties                   |\n|-------------|------------|------------------------------|\n| id          | integer    | Primary key                  |\n| user_id     | integer    | Foreign key → Users          |\n| title       | text       | Required, max 200 chars      |\n| content     | text       | Required                     |\n| published   | boolean    | Default: false               |\n| tags        | list[text] | Array of strings             |\n| created_at  | timestamp  | Auto-set on create           |\n\nXano auto-generates CRUD endpoints for each table.\n```\n\n### API Endpoints (Function Stacks)\n\n```markdown\n## Visual API Builder\nXano uses \"Function Stacks\" — visual, step-by-step API logic:\n\n### POST \u002Fapi\u002Fposts — Create a Post\n1. **Precondition**: Verify authentication (JWT token valid)\n2. **Input**: title (text, required), content (text, required), tags (list)\n3. **Create Variable**: `user_id` from auth token\n4. **Conditional**: Check user plan\n   - If plan == \"free\" AND post_count >= 5 → Return error \"Free plan limited to 5 posts\"\n5. **Database Query**: Add record to `posts` table\n   - title: input.title\n   - content: input.content\n   - tags: input.tags\n   - user_id: user_id\n   - published: false\n6. **Return**: { id, title, created_at }\n\n### GET \u002Fapi\u002Fposts — List Published Posts\n1. **Input**: page (int, default 1), per_page (int, default 20)\n2. **Database Query**: Query `posts` table\n   - Filter: published = true\n   - Sort: created_at DESC\n   - Pagination: page, per_page\n   - Join: users (for author info)\n3. **Return**: { items: [...], total, page, pages }\n```\n\n### Authentication\n\n```typescript\n\u002F\u002F Xano provides built-in auth endpoints:\n\n\u002F\u002F Sign up: POST \u002Fauth\u002Fsignup\nconst signUp = async (email: string, password: string, name: string) => {\n  const response = await fetch(\"https:\u002F\u002Fyour-instance.xano.io\u002Fapi:auth\u002Fauth\u002Fsignup\", {\n    method: \"POST\",\n    headers: { \"Content-Type\": \"application\u002Fjson\" },\n    body: JSON.stringify({ email, password, name }),\n  });\n  const { authToken } = await response.json();\n  return authToken;   \u002F\u002F JWT token\n};\n\n\u002F\u002F Login: POST \u002Fauth\u002Flogin\nconst login = async (email: string, password: string) => {\n  const response = await fetch(\"https:\u002F\u002Fyour-instance.xano.io\u002Fapi:auth\u002Fauth\u002Flogin\", {\n    method: \"POST\",\n    headers: { \"Content-Type\": \"application\u002Fjson\" },\n    body: JSON.stringify({ email, password }),\n  });\n  const { authToken } = await response.json();\n  return authToken;\n};\n\n\u002F\u002F Authenticated request\nconst getPosts = async (token: string) => {\n  const response = await fetch(\"https:\u002F\u002Fyour-instance.xano.io\u002Fapi:main\u002Fposts\", {\n    headers: { Authorization: `Bearer ${token}` },\n  });\n  return response.json();\n};\n\n\u002F\u002F Get current user: GET \u002Fauth\u002Fme\nconst getMe = async (token: string) => {\n  const response = await fetch(\"https:\u002F\u002Fyour-instance.xano.io\u002Fapi:auth\u002Fauth\u002Fme\", {\n    headers: { Authorization: `Bearer ${token}` },\n  });\n  return response.json();\n};\n```\n\n### External API Integration\n\n```markdown\n## Calling External APIs from Function Stacks\n\n### Example: Process payment via Stripe\n1. **External API Request**: POST https:\u002F\u002Fapi.stripe.com\u002Fv1\u002Fcharges\n   - Headers: Authorization: Bearer sk_live_xxx\n   - Body:\n     - amount: input.amount * 100\n     - currency: \"usd\"\n     - source: input.payment_token\n2. **Conditional**: Check response status\n   - If status != 200 → Return error with Stripe message\n3. **Database Query**: Update order status to \"paid\"\n4. **External API Request**: POST to webhook (notify fulfillment)\n5. **Return**: { success: true, charge_id }\n\n### Example: Send email via Resend\n1. **External API Request**: POST https:\u002F\u002Fapi.resend.com\u002Femails\n   - Headers: Authorization: Bearer re_xxx\n   - Body:\n     - from: \"app@myapp.com\"\n     - to: user.email\n     - subject: \"Order Confirmed\"\n     - html: template with order details\n```\n\n### Webhooks and Scheduled Tasks\n\n```markdown\n## Webhooks (incoming)\nXano can receive webhooks from external services:\n- Stripe payment events → Update order status\n- GitHub push events → Trigger build\n- Custom webhooks → Process any incoming data\n\n## Scheduled Tasks (Cron)\nRun function stacks on a schedule:\n- Every hour: Sync data from external API\n- Daily at midnight: Generate reports\n- Weekly: Send digest emails\n```\n\n\n## Examples\n\n\n### Example 1: Adding Xano to a new project\n\n**User request:**\n\n```\nI'm building a SaaS app with Next.js. Integrate Xano for the database schema functionality.\n```\n\nThe agent installs the Xano SDK, configures the connection (API keys, environment variables), creates the initial integration code with proper error handling, and writes a working example that demonstrates the database schema feature end-to-end.\n\n### Example 2: Building advanced configuration with Xano\n\n**User request:**\n\n```\nI need to implement advanced configuration in my app. Show me how to do it with Xano.\n```\n\nThe agent reads the project structure, identifies the right integration points, implements the advanced configuration feature using Xano's API, handles edge cases (authentication, error states, loading), and adds tests to verify the integration works correctly.\n\n\n## Guidelines\n\n1. **Start with the data model** — Design your tables and relationships first; Xano generates CRUD endpoints automatically\n2. **Use function stacks for logic** — Keep business logic in Xano's visual builder; don't put it in the frontend\n3. **Authentication built-in** — Use Xano's auth system (JWT-based); don't build your own\n4. **Pagination on all list endpoints** — Always add page\u002Fper_page inputs; unbounded queries kill performance\n5. **Validate inputs** — Add input validation (required, type, min\u002Fmax) on every endpoint\n6. **Use addons for complex queries** — Xano supports raw SQL for complex aggregations and joins beyond the visual builder\n7. **API groups for organization** — Group related endpoints (auth, posts, payments) into separate API groups\n8. **Rate limiting** — Enable rate limiting on public endpoints to prevent abuse\n",{},"main","def8531e65114c0fca8fb8551c1871ee0eed705c","skills\u002FTerminalSkills\u002Fskills\u002Fxano",24,"https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub","https:\u002F\u002Fskillshub.wtf","https:\u002F\u002Fgithub.com\u002FComeOnOliver","AI & Blockchain Engineer\r\n","2026-06-24 22:07:19",{"source":7,"skillName":5,"commands":42,"prompt":52,"zipAvailable":53},[43,46,49],{"tool":44,"command":45},"npx","npx skills add ComeOnOliver\u002Fskillshub --skill xano",{"tool":47,"command":48},"bunx","bunx skills add ComeOnOliver\u002Fskillshub --skill xano",{"tool":50,"command":51},"pnpm","pnpm dlx skills add ComeOnOliver\u002Fskillshub --skill xano","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002FTerminalSkills\u002Fskills\u002Fxano\u002FSKILL.md",true,[],[56,68,78,87,93,100],{"skillNo":57,"name":58,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":59,"categories":60,"keywords":64,"publishedAt":28},"01M6FKJN13GMG4KY57J3QD8GY5","model-hierarchy-skill","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzscole\u002Fmodel-hierarchy-skill\u002Fmodel-hierarchy-skill\u002FSKILL.md",[61],{"categoryNo":62,"categoryName":63,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000023","Skill与智能体开发",[65,66,67],"model","model hierarchy","model hierarchy skill",{"skillNo":69,"name":70,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":71,"categories":72,"keywords":74,"publishedAt":28},"01M6FKJJJ6GCAMR4PPPRD12M5X","zoom-mcp","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fzoom-mcp\u002FSKILL.md",[73],{"categoryNo":62,"categoryName":63,"taxonomyType":20,"taxonomyTypeDesc":21},[75,76,77],"MCP","zoom","zoom mcp",{"skillNo":79,"name":80,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":81,"categories":82,"keywords":83,"publishedAt":28},"01M6FKJE3KYT3KPEZMEEHYKA6K","zoom-apps-sdk","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fzoom-apps-sdk\u002FSKILL.md",[],[84,85,86,76],"sdk","zoom apps sdk","apps",{"skillNo":88,"name":89,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":90,"categories":91,"keywords":92,"publishedAt":28},"01M6FKJ9EDH9Q5VWDF8HAJRSP0","windows","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fwindows\u002FSKILL.md",[],[89],{"skillNo":94,"name":95,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":96,"categories":97,"keywords":99,"publishedAt":28},"01M6FKJ666BEEFC3AE9GJ72Q93","whiteboard","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fwhiteboard\u002FSKILL.md",[98],{"categoryNo":62,"categoryName":63,"taxonomyType":20,"taxonomyTypeDesc":21},[95],{"skillNo":101,"name":102,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":103,"categories":104,"keywords":105,"publishedAt":28},"01M6FKJ21WFCDGTJQ2Q91T9DVW","websockets","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fwebsockets\u002FSKILL.md",[],[102]]