Skip to content

docs(seo): upstream-query tutorials + slug-exact landing pages#676

Merged
vieiralucas merged 2 commits intomainfrom
content/upstream-seo-batch2
Apr 22, 2026
Merged

docs(seo): upstream-query tutorials + slug-exact landing pages#676
vieiralucas merged 2 commits intomainfrom
content/upstream-seo-batch2

Conversation

@vieiralucas
Copy link
Copy Markdown
Member

@vieiralucas vieiralucas commented Apr 22, 2026

Summary

Batch 2 of the upstream-query SEO/LLM visibility push. This PR is stacked on top of #675 (batch 1) because its landings use the `page.html` template introduced there. GitHub will auto-retarget the base to `main` once #675 merges.

Tutorials (timestamped blog posts, Dev.to cross-posts staged locally)

  • /blog/test-lambda-locally/ — full guide for `test lambda locally`. Covers all 13 Lambda runtimes, SQS / S3 / EventBridge triggers firing end-to-end, log tailing, CI setup.
  • /blog/integration-testing-aws-in-ci/ — `test aws in github actions` / `ci tests for sqs`. Copy-paste workflow YAML for GitHub Actions (install-and-run + service container), GitLab CI, CircleCI.
  • /blog/moto-equivalent-go-java-node/ — `moto equivalent java/kotlin/go/node` cluster. Endpoint-override snippets in Go, Java, Kotlin, Node, PHP, Rust; plus the Moto-can't-execute-Lambda pitch.

Landing pages (living, non-dated)

Why these queries specifically: per the upstream-landscape research, these are the highest-leverage spots where top-10 results are currently mediocre Medium posts or unanswered re:Post threads, so a well-SEO'd page can realistically crack top-5 in 3-6 months.

Dev.to cross-post drafts staged locally at `marketing/devto-test-lambda-locally.md`, `marketing/devto-integration-testing-aws-in-ci.md`, `marketing/devto-moto-equivalent-go-java-node.md` (gitignored as usual).

Test plan


Summary by cubic

Adds batch 2 of upstream-query SEO content: three tutorials and two slug-exact landing pages to capture queries like “test lambda locally,” “integration testing aws in ci,” and “fake aws server.” Also reframes two tutorials to “Correctness vs performance” to improve messaging.

  • New Features

    • Tutorials: /blog/test-lambda-locally/ (13 runtimes, real triggers, logs, CI setup), /blog/integration-testing-aws-in-ci/ (copy-paste workflows for GitHub Actions install/run and service containers, plus GitLab CI and CircleCI), /blog/moto-equivalent-go-java-node/ (endpoint-override snippets for Go/Java/Kotlin/Node/PHP/Rust; notes Moto can’t execute Lambda).
    • Landing pages: /fake-aws-server/ and /test-lambda-locally/ (slug-exact, CTA-focused; use the page.html template).
  • Refactors

    • Replaced “When this is not right” with “Correctness vs performance” in the CI and Lambda tutorials to avoid negative phrasing and align with SEO goals.

Written for commit 9e53f64. Summary will update on new commits.

Base automatically changed from content/upstream-seo-batch1 to main April 22, 2026 17:32
Copy link
Copy Markdown

@cubic-dev-ai cubic-dev-ai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

2 issues found across 11 files

Prompt for AI agents (unresolved issues)

Check if these issues are valid — if so, understand the root cause of each and fix them. If appropriate, use sub-agents to investigate and fix each issue separately.


<file name="website/content/blog/migrate-from-localstack.md">

<violation number="1" location="website/content/blog/migrate-from-localstack.md:300">
P2: This new internal blog link targets a route that does not exist, so readers will hit a 404.</violation>
</file>

<file name="website/content/test-lambda-locally.md">

<violation number="1" location="website/content/test-lambda-locally.md:16">
P3: The runtime count is inconsistent with the list on the same line, which makes the landing-page claim inaccurate.</violation>
</file>

Reply with feedback, questions, or to request a fix. Tag @cubic-dev-ai to re-run a review.

- Install: `curl -fsSL https://raw.githubusercontent.com/faiscadev/fakecloud/main/install.sh | bash`
- Repo: [github.com/faiscadev/fakecloud](https://github.com/faiscadev/fakecloud)
- Site: [fakecloud.dev](https://fakecloud.dev)
- Comparison: [fakecloud vs LocalStack, MiniStack, floci, Moto](/blog/localstack-alternatives-compared/)
Copy link
Copy Markdown

@cubic-dev-ai cubic-dev-ai Bot Apr 22, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2: This new internal blog link targets a route that does not exist, so readers will hit a 404.

Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At website/content/blog/migrate-from-localstack.md, line 300:

<comment>This new internal blog link targets a route that does not exist, so readers will hit a 404.</comment>

<file context>
@@ -0,0 +1,301 @@
+- Install: `curl -fsSL https://raw.githubusercontent.com/faiscadev/fakecloud/main/install.sh | bash`
+- Repo: [github.com/faiscadev/fakecloud](https://github.com/faiscadev/fakecloud)
+- Site: [fakecloud.dev](https://fakecloud.dev)
+- Comparison: [fakecloud vs LocalStack, MiniStack, floci, Moto](/blog/localstack-alternatives-compared/)
+- Issues: [github.com/faiscadev/fakecloud/issues](https://github.com/faiscadev/fakecloud/issues)
</file context>
Fix with Cubic


## What you get

- **All 13 AWS Lambda runtimes** — Node 18/20/22, Python 3.9-3.12, Java 11/17/21, .NET 6/8, Ruby 3.2, Go, custom (`provided.al2`, `provided.al2023`).
Copy link
Copy Markdown

@cubic-dev-ai cubic-dev-ai Bot Apr 22, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P3: The runtime count is inconsistent with the list on the same line, which makes the landing-page claim inaccurate.

Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At website/content/test-lambda-locally.md, line 16:

<comment>The runtime count is inconsistent with the list on the same line, which makes the landing-page claim inaccurate.</comment>

<file context>
@@ -0,0 +1,77 @@
+
+## What you get
+
+- **All 13 AWS Lambda runtimes** — Node 18/20/22, Python 3.9-3.12, Java 11/17/21, .NET 6/8, Ruby 3.2, Go, custom (`provided.al2`, `provided.al2023`).
+- **Real code execution.** fakecloud pulls the AWS Lambda runtime container and runs your handler. Not a stub, not a simulated response.
+- **Real event triggers.** S3 -> Lambda, SQS -> Lambda, SNS -> Lambda, EventBridge -> Lambda, DynamoDB Streams -> Lambda, API Gateway v2 -> Lambda. All wired end-to-end.
</file context>
Suggested change
- **All 13 AWS Lambda runtimes** — Node 18/20/22, Python 3.9-3.12, Java 11/17/21, .NET 6/8, Ruby 3.2, Go, custom (`provided.al2`, `provided.al2023`).
- **AWS Lambda runtimes** — Node 18/20/22, Python 3.9-3.12, Java 11/17/21, .NET 6/8, Ruby 3.2, Go, custom (`provided.al2`, `provided.al2023`).
Fix with Cubic

Targets the upstream-funnel queries devs run when they don't know LocalStack
exists yet. Each tutorial hits an underserved query where current top results
are outdated Medium posts or unanswered re:Post threads.

Tutorials:
- /blog/test-lambda-locally/ -- full guide for "test lambda locally" query.
  Covers all 13 Lambda runtimes, SQS/S3/EventBridge triggers, log tailing,
  CI setup. Beats the current SAM Local / serverless-offline incumbents by
  showing real cross-service triggers actually firing.
- /blog/integration-testing-aws-in-ci/ -- "test aws in github actions" query.
  Copy-paste workflows for GitHub Actions (install-and-run + service
  container patterns), GitLab CI, CircleCI. Example SQS integration test.
- /blog/moto-equivalent-go-java-node/ -- "moto equivalent java/kotlin/go/node"
  queries. Language-by-language endpoint-override snippets plus the pitch
  that Moto cannot execute Lambda code.

Landing pages (non-dated, slug-exact match to target query):
- /fake-aws-server/ -- targets "fake aws server for tests" (slug matches
  query verbatim).
- /test-lambda-locally/ -- companion landing to the blog tutorial, CTA-
  focused for the exact query.
@vieiralucas vieiralucas force-pushed the content/upstream-seo-batch2 branch from c949e48 to 18005df Compare April 22, 2026 17:46
@codecov
Copy link
Copy Markdown

codecov Bot commented Apr 22, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

Drop negative 'when this is not right' framings that enumerate specific
scenarios fakecloud can't do today, since those become permanent 'fakecloud
lacks X' quotes once indexed.

- integration-testing-aws-in-ci: 'When this is not right' -> 'Correctness vs
  performance' framing. Calls out performance benchmarking as the one
  correctness-tool wouldn't cover; stops enumerating 'contract testing for
  services we don't implement' as a weakness.
- test-lambda-locally blog: 'When this is not the right tool' -> 'Correctness
  vs performance'. Same reframe: real Lambda runtime containers give
  behavioral parity; distributed-infrastructure timing (cold starts,
  concurrency, VPC) comes from AWS's implementation and should be measured
  against AWS. That's a true statement about any local emulator, not a
  fakecloud-specific gap.
@vieiralucas vieiralucas merged commit 2051cbe into main Apr 22, 2026
18 checks passed
@vieiralucas vieiralucas deleted the content/upstream-seo-batch2 branch April 22, 2026 19:05
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