# Jorge Castro Developer Docs > Publish content from Jorge Castro to any tech stack ## Docs - [Introduction](https://jorgecastro.ai/docs/introduction.md): Publish content from Jorge Castro to any website, on any tech stack - [Quickstart](https://jorgecastro.ai/docs/quickstart.md): From zero to your first published post in about 30 minutes - [Authentication](https://jorgecastro.ai/docs/authentication.md): API key and HMAC request signatures - [Capabilities](https://jorgecastro.ai/docs/capabilities.md): Declare what you support: Castro adapts its UI to match - [Blog posts](https://jorgecastro.ai/docs/guides/blog-posts.md): The publish, update and delete lifecycle - [Products](https://jorgecastro.ai/docs/guides/products.md): Product page publishing and updates - [Categories](https://jorgecastro.ai/docs/guides/categories.md): Blog categories and product categories - [Authors](https://jorgecastro.ai/docs/guides/authors.md): Author management for the blog editor - [SEO updates](https://jorgecastro.ai/docs/guides/seo.md): Metadata-only pushes that don't touch the content - [Page sync](https://jorgecastro.ai/docs/guides/page-sync.md): Let Castro recognise which entity each page on your site actually is - [Test your implementation](https://jorgecastro.ai/docs/testing.md): Prove your endpoints are correct before a single real post depends on them - [Responses & errors](https://jorgecastro.ai/docs/errors.md): What to return, and what Castro does with it - [Troubleshooting](https://jorgecastro.ai/docs/troubleshooting.md): The failures that actually happen, and how to fix each one - [Launch checklist](https://jorgecastro.ai/docs/checklist.md): Everything to confirm before you point Castro at production - [Node.js](https://jorgecastro.ai/docs/examples/node.md): Express receiver with signature verification - [Laravel](https://jorgecastro.ai/docs/examples/laravel.md): Middleware, routes and a partial-update controller - [PHP](https://jorgecastro.ai/docs/examples/php.md): Plain-PHP receiver (framework-free) with signature verification - [Python](https://jorgecastro.ai/docs/examples/python.md): FastAPI receiver with signature verification - [Verify the connection](https://jorgecastro.ai/docs/api-reference/handshake/verify-the-connection.md): Called once when the user connects (or re-verifies) their website in Castro. Prove you hold the API key by returning `challenge_response = HMAC-SHA256(challenge, api_key)` as lowercase hex, and declare which optional endpoints you implemented. - [Create a blog post (required)](https://jorgecastro.ai/docs/api-reference/blog-posts/create-a-blog-post-required.md): Called when the user publishes a blog post. Store it in your system and return an `id` — any string up to 191 characters. Castro stores it verbatim and sends it back on every later update or delete. - [Update a blog post (required)](https://jorgecastro.ai/docs/api-reference/blog-posts/update-a-blog-post-required.md): **Partial update — apply only the fields present in the body.** - [Delete a blog post](https://jorgecastro.ai/docs/api-reference/blog-posts/delete-a-blog-post.md): Optional — capability `posts.delete`. - [List blog categories](https://jorgecastro.ai/docs/api-reference/blog-categories/list-blog-categories.md) - [Create a blog category](https://jorgecastro.ai/docs/api-reference/blog-categories/create-a-blog-category.md) - [Update a blog category](https://jorgecastro.ai/docs/api-reference/blog-categories/update-a-blog-category.md) - [Delete a blog category](https://jorgecastro.ai/docs/api-reference/blog-categories/delete-a-blog-category.md) - [List authors](https://jorgecastro.ai/docs/api-reference/authors/list-authors.md) - [Create an author](https://jorgecastro.ai/docs/api-reference/authors/create-an-author.md) - [Get an author](https://jorgecastro.ai/docs/api-reference/authors/get-an-author.md) - [Update an author](https://jorgecastro.ai/docs/api-reference/authors/update-an-author.md) - [Delete an author](https://jorgecastro.ai/docs/api-reference/authors/delete-an-author.md) - [List products](https://jorgecastro.ai/docs/api-reference/products/list-products.md): Used to resolve a product id from its slug during bulk updates. - [Create a product](https://jorgecastro.ai/docs/api-reference/products/create-a-product.md) - [Update a product](https://jorgecastro.ai/docs/api-reference/products/update-a-product.md): **Partial update** — content-only pushes send just `description`. - [Delete a product](https://jorgecastro.ai/docs/api-reference/products/delete-a-product.md) - [List product categories](https://jorgecastro.ai/docs/api-reference/product-categories/list-product-categories.md) - [Create a product category](https://jorgecastro.ai/docs/api-reference/product-categories/create-a-product-category.md) - [Update a product category](https://jorgecastro.ai/docs/api-reference/product-categories/update-a-product-category.md): **Partial update.** - [Delete a product category](https://jorgecastro.ai/docs/api-reference/product-categories/delete-a-product-category.md) - [Update SEO metadata only](https://jorgecastro.ai/docs/api-reference/seo/update-seo-metadata-only.md): Update ONLY the SEO block of an entity — nothing else changes. The target is identified by `id` (the id you returned at create time), `url` (the live page URL) or `slug`; resolve whichever you receive. - [List published pages](https://jorgecastro.ai/docs/api-reference/pages/list-published-pages.md): Lets Castro resolve which entity a crawled URL belongs to (bulk updates match by slug). Return every publicly reachable page you want Castro to be able to update. - [Connect (or re-verify) a custom website](https://jorgecastro.ai/docs/api-reference/connection/connect-or-re-verify-a-custom-website.md): Runs the challenge handshake against your base URL and stores the connection. Normally triggered from the Castro UI (Settings → Integration → Custom Website), but you can call it directly. Re-running it against the same site refreshes your declared capabilities. - [Connection status](https://jorgecastro.ai/docs/api-reference/monitoring/connection-status.md) - [Delivery logs](https://jorgecastro.ai/docs/api-reference/monitoring/delivery-logs.md): Every publish/update/delete Castro sent to your site, with payloads and results. ## OpenAPI Specs - [management](https://jorgecastro.ai/docs/openapi/management.yaml) - [contract](https://jorgecastro.ai/docs/openapi/contract.yaml) This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.