# Payload blog solution docs

- [Payload access control when your app already has auth](https://agenticboilerplate.com/cookbook/blog-payload/access-control-matching-your-auth-battery): Two user tables is the right answer. Map your app's roles onto Payload's rules instead of merging the tables, and never leave an access block undeclared.
- [Payload uploads vanish after a deploy: move media to an object store](https://agenticboilerplate.com/cookbook/blog-payload/media-on-an-object-store): staticDir writes to a filesystem that disappears on serverless. Add a storage adapter, keep the database rows, and migrate the files you already have.
- [Payload migrations on Vercel without a broken deploy](https://agenticboilerplate.com/cookbook/blog-payload/migrations-on-vercel): Vercel runs your build, not your migrations. Run them in the build command, forward-only, and split the schema deploy from the code that needs it.
- [Running Payload inside the same Next.js app](https://agenticboilerplate.com/cookbook/blog-payload/payload-inside-the-same-next-app): The admin panel is a route group, not a second service. Route groups, withPayload, the import map and why your blog pages must not fetch their own API.
- [Letting Payload share your Postgres without wrecking your migrations](https://agenticboilerplate.com/cookbook/blog-payload/sharing-postgres-with-your-app-tables): Two migration tools in one database will fight over table names and drop each other's tables. A separate schema keeps them apart for one config line.

---

Agentic Boilerplate: A Next.js repo your agent already knows. $99 once. Lifetime access and updates.

- Site map for agents: https://agenticboilerplate.com/llms.txt
- Public API: https://agenticboilerplate.com/openapi.json
- Contact: agenticstudio@gmail.com
