Skip to content

Add per-framework "How to deploy X to AWS" quickstarts - #32

Merged
flybayer merged 34 commits into
mainfrom
devin/1786042621-deploy-guides
Aug 7, 2026
Merged

Add per-framework "How to deploy X to AWS" quickstarts#32
flybayer merged 34 commits into
mainfrom
devin/1786042621-deploy-guides

Conversation

@devin-ai-integration

@devin-ai-integration devin-ai-integration Bot commented Aug 6, 2026

Copy link
Copy Markdown
Contributor

Summary

Adds a Deploy to AWS tab with 27 per-framework quickstarts under /deploy/aws/<framework>. This is a prerequisite for the Flightcontrol→Ravion rebrand of external docs, and a standalone SEO play.

~15 external framework doc sites (Astro, Redwood, Docusaurus, Vite, Solid, Nuxt/Nitro, Next.js, Gatsby, Backstage, Hasura, Vike, Nixpacks, Langflow, Cedar) carry a "Deploy to AWS with Flightcontrol" guide whose CTA links into flightcontrol.dev/docs/reference/examples/<framework>. Since flightcontrol.dev will not redirect to Ravion, we can't send upstream rebrand PRs until equivalent pages exist here — and today Ravion docs have no framework guides at all. These are the landing pages those PRs will point at, plus a wider set to seed guides in frameworks where we have no presence.

Slugs are provider-scoped (/deploy/aws/nextjs, overview at /deploy/aws) so GCP and others slot in as siblings without moving these pages. There is no /deploy index. Titles use the SEO form How to deploy <X> to AWS; sidebarTitle is the bare framework name.

Two archetypes:

  • Static (rvn-aws-static → S3 + CloudFront): Angular, Astro, Docusaurus, Gatsby, React, Solid, SvelteKit, Vike, Vite, Vue
  • Server (rvn-aws-network + rvn-ecs-cluster + rvn-ecs-web → ECS Fargate behind an ALB): Backstage, Bun, Django, FastAPI, Flask, Hasura, Hono, Laravel, NestJS, Next.js, Node/Express, Nuxt, Rails, RedwoodJS, Remix, Strapi, TanStack Start — those needing a database also provision rvn-rds

Next.js, Astro, and SvelteKit each cover both modes on one page (SSR primary, static secondary) rather than splitting the keyword across two URLs.

Every page follows the same shape: short intro → prerequisites → agent prompt → ## Configure the deployment. Framework-specific detail (bind address, port, health path, build mode) lives in the config section rather than the intro.

Build modes

Build/start commands, output directories, ports, and health paths were checked against each framework's current docs rather than written from memory, and build_source reflects what Railpack actually detects:

  • railpack — 25 pages, including Rails (Ruby provider: Gemfile + config/application.rb, asset precompile, Bootsnap, jemalloc, native DB deps), Django, Flask, FastAPI, and Bun. These previously shipped hand-written Dockerfiles, which were wrong — Railpack handles all of them. Pages note the detection preconditions that bite: Flask only gets a production start command if gunicorn is a dependency, FastAPI needs uvicorn and assumes main:app, Django's default start runs migrate on every boot (races across tasks).
  • dockerfile — Backstage only. It genuinely needs one, and specifically the multi-stage Dockerfile from Backstage's deployment docs; the packages/backend/Dockerfile that create-app scaffolds is the host-build variant and won't work unmodified, since it expects yarn tsc && yarn build:backend to have run before docker build.
  • image_registry — Hasura only, on the official hasura/graphql-engine image, since it's a prebuilt product rather than something built from your repo.

Ravion injects PORT from container_port, so Railpack's ${PORT:-8000} defaults resolve correctly without declaring PORT as a runtime variable.

Config minimalism

Every ravion.yaml carries only inputs whose value differs from the module definition default, so the examples stay minimal and nothing implies a knob the reader needs to think about. Note that required: true in a module definition does not mean the value must be supplied — most of the ECS health-check and stickiness inputs are required-with-default — so requiredness wasn't used as a reason to keep a field. The exceptions are deliberate: build_source (tells you at a glance whether Railpack or a Dockerfile builds the app), and aws_region / aws_account_id (values the reader must consciously replace). health_check_path and container_port appear only where the framework's real value differs from / and 80.

Agent prompts

Each page carries a <Prompt> block (same component as the CI integration page) so a reader can paste a framework-specific brief into their own coding agent. Step 1 of every prompt is mandatory: read and follow the agent workflow, which is the canonical dry-run-then-apply procedure — the prompts no longer duplicate it. Prompts instruct the agent to ask the user for values it can't determine (AWS account ID, repo slug, project ID, credentials) rather than writing placeholders into a file that ships.

Shared DeployPrerequisites and DeployNextSteps snippets keep the signup/AWS-connect/CLI-apply and next-steps blocks in one place instead of duplicated 27 times.

Known gaps

  • The module schema has no typed wiring from rvn-rds outputs into ECS runtime secrets, so the database-backed guides list the required variables and direct the reader to populate a Secrets Manager secret from the RDS outputs. Worth closing in the modules repo.
  • Examples pass a project givenId to ravion project config apply. This previously required a proj_... KSUID; givenId resolution shipped in flightcontrolhq/flightcontrol#6849 (merged).
  • Deliberately skipped for now, since their current build/start conventions weren't verified: Payload, Medusa, Directus, Go, Spring Boot, .NET, Phoenix, Streamlit, and the self-hosted app set (Ghost, Metabase, n8n, Keycloak, Grafana).

Verification

vale ., pnpm run validate, mint broken-links, and pnpm run check:og-images all pass; page structure is checked mechanically across all 27 pages. Laravel and Next.js spot-checked in the Mintlify preview. CI green.

Link to Devin session: https://app.devin.ai/sessions/88a6ae44508044419ec9bef59a73b9a6
Requested by: @flybayer

devin-ai-integration Bot and others added 2 commits August 6, 2026 19:01
Co-Authored-By: brandon <brandon@flightcontrol.dev>
Co-Authored-By: brandon <brandon@flightcontrol.dev>
@flybayer flybayer self-assigned this Aug 6, 2026
@devin-ai-integration

Copy link
Copy Markdown
Contributor Author

🤖 Devin AI Engineer

I'll be helping with this pull request! Here's what you should know:

✅ I will automatically:

  • Address comments on this PR. Add '(aside)' to your comment to have me ignore it.
  • Look at CI failures and help fix them

Note: I can only respond to comments from users who have write access to this repository.

⚙️ Control Options:

  • Disable automatic comment, CI, and merge conflict monitoring

@mintlify

mintlify Bot commented Aug 6, 2026

Copy link
Copy Markdown
Contributor

Preview deployment for your docs. Learn more about Mintlify Previews.

Project Status Preview Updated (UTC)
Ravion 🟢 Ready View Preview Aug 6, 2026, 7:04 PM

Co-Authored-By: brandon <brandon@flightcontrol.dev>
Co-Authored-By: brandon <brandon@flightcontrol.dev>
Co-Authored-By: brandon <brandon@flightcontrol.dev>
Co-Authored-By: brandon <brandon@flightcontrol.dev>
Co-Authored-By: brandon <brandon@flightcontrol.dev>
Co-Authored-By: brandon <brandon@flightcontrol.dev>
Co-Authored-By: brandon <brandon@flightcontrol.dev>
Co-Authored-By: brandon <brandon@flightcontrol.dev>
Co-Authored-By: brandon <brandon@flightcontrol.dev>
Co-Authored-By: brandon <brandon@flightcontrol.dev>
Co-Authored-By: brandon <brandon@flightcontrol.dev>
Co-Authored-By: brandon <brandon@flightcontrol.dev>
Co-Authored-By: brandon <brandon@flightcontrol.dev>
Co-Authored-By: brandon <brandon@flightcontrol.dev>
Co-Authored-By: brandon <brandon@flightcontrol.dev>
Co-Authored-By: brandon <brandon@flightcontrol.dev>
Co-Authored-By: brandon <brandon@flightcontrol.dev>
devin-ai-integration Bot and others added 2 commits August 6, 2026 22:38
Co-Authored-By: brandon <brandon@flightcontrol.dev>
Co-Authored-By: brandon <brandon@flightcontrol.dev>
Co-Authored-By: brandon <brandon@flightcontrol.dev>
Co-Authored-By: brandon <brandon@flightcontrol.dev>
Co-Authored-By: brandon <brandon@flightcontrol.dev>
flybayer and others added 2 commits August 6, 2026 18:56
@devin-ai-integration devin-ai-integration Bot changed the title Add per-framework "How to Deploy X to AWS" quickstarts Add per-framework "How to deploy X to AWS" quickstarts Aug 6, 2026
@flybayer
flybayer merged commit dc6599c into main Aug 7, 2026
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant