agentsclimarketplace

Astro db

Skill fusengine/agents/plugins/astro-expert/skills/astro-db

Astro DB — defineDb, defineTable, column types, CRUD with db.select/insert/update/delete, db/config.ts, db/seed.ts, Turso for production, type-safety, integration with Astro Actions. Use for any database operation in an Astro project.From its SKILL.md

Install
npx -y skills add fusengine/agents --skill astro-db

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

3 things to look at

  • reads credentialsReads from 2 credential sources: `ASTRO_DB_REMOTE_URL` and 1 more.
  • 22 stars22 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
  • runs commandsInstructs the agent to run 2 commands, including `astro db push` and 1 more.

SKILL.md

4.0 KB, 856 tokens by cl100k_base, as published. Nobody here has run it

Astro DB

Type-safe SQL database built into Astro, powered by libSQL/Turso. Use for structured data without external backend services.

⚠️ Deprecation notice: @astrojs/db is deprecated and no longer actively maintained (still published on npm, currently v0.21.3 — it has not been removed from Astro 7). For new projects, prefer Drizzle, Kysely, or a direct libSQL client instead. Existing projects can keep using it, but should plan a migration.

Agent Workflow (MANDATORY)

Before ANY implementation, use TeamCreate to spawn 3 agents:

  1. fuse-ai-pilot:explore-codebase - Check existing db/config.ts, tables, and Actions
  2. fuse-ai-pilot:research-expert - Verify Astro DB API via Context7/Exa
  3. mcp__context7__query-docs - Check Astro 6 DB docs for column types and CRUD

After implementation, run fuse-ai-pilot:sniper for validation.


Overview

When to Use

  • Storing structured data (comments, users, posts, forms)
  • Building full-stack Astro apps without external DB setup
  • Combining with Astro Actions for type-safe form handling
  • Deploying to production with Turso (libSQL cloud)
  • Seeding development data for local testing

Architecture

db/
├── config.ts   # Schema definition (defineDb, defineTable)
└── seed.ts     # Development data seeding

Core Concepts

Schema Definition

Define tables in db/config.ts using defineDb and defineTable. Export tables for use in pages and actions. Column types: column.text(), column.number(), column.boolean(), column.date(), column.json().

CRUD Operations

Import db and table from astro:db. All operations are async and type-safe based on your schema definition.

Turso for Production

Set ASTRO_DB_REMOTE_URL and ASTRO_DB_APP_TOKEN environment variables. Run astro db push to sync schema to Turso. Use astro db execute to run seed scripts against remote DB.

Actions Integration

Combine with astro:actions for end-to-end type safety: Zod input validation → DB operation → typed response.


Reference Guide

Concepts

TopicReferenceWhen to Consult
Schema Definitionschema-definition.mdTable structure, column types
CRUD Operationscrud-operations.mdselect, insert, update, delete
Seed Dataseed-data.mddb/seed.ts, remote seeding
Turso Productionturso-production.mdDeployment, env vars, push
Actions Integrationactions-integration.mdType-safe form → DB flow

Templates

TemplateWhen to Use
db-config.mdComplete db/config.ts + seed.ts
crud-example.mdFull CRUD with Actions

Best Practices

  1. Export tables from config.ts - Import in pages and actions
  2. Use Actions for mutations - Type-safe with Zod validation
  3. .returning() after insert - Get back inserted rows
  4. Push before deploy - Run astro db push in CI/CD
  5. Turso free tier - 500 databases, generous for production
  6. New projects: consider Drizzle/Kysely/libSQL instead - @astrojs/db is deprecated and unmaintained; still usable for existing projects, but not recommended as a starting point

What ships with it: 7 files

14.7 KB alongside SKILL.md

Keep looking

Skills are one crate of 325,949. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.