Skip to content

Commit 17f5c68

Browse files
committed
Point signup CTA at /profile (was /signup, 404'd)
Marketing-site signup moved to flashalpha.com/profile. The old flashalpha.com/signup URL has 404'd since at least 2026-05-27 when Phase 0.5 Task 8 first detected it via the link-liveness test. Changes: - cookbook_tools/cta_template.py: _SIGNUP_URL points to /profile - notebooks/tier-a-hooks/01-gex-dashboard.{py,ipynb}: top CTA cell updated - tests/cookbook_tools/test_cta_template.py: assertion updated - tests/cookbook_tools/test_cta_template_properties.py: Hypothesis prop updated - tests/cookbook_tools/test_new_recipe.py: scaffolder smoke test updated - tests/test_links_alive.py: removed the xfail marker — test now passes Verified GET https://flashalpha.com/profile?utm_*=... -> 200 OK with all UTM params preserved on the rendered page. Test suite: 89 passed, 2 skipped, 0 xfailed (was 88/2/1).
1 parent bd74e39 commit 17f5c68

7 files changed

Lines changed: 6 additions & 14 deletions

File tree

cookbook_tools/cta_template.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
}
1414

1515
_SIGNUP_URL = (
16-
"https://flashalpha.com/signup"
16+
"https://flashalpha.com/profile"
1717
"?utm_source=github-cookbook&utm_medium=notebook&utm_campaign={slug}"
1818
)
1919
_PRICING_URL = (

notebooks/tier-a-hooks/01-gex-dashboard.ipynb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@
5050
"# Build a GEX Dashboard in 30 Lines\n",
5151
"\n",
5252
"> 🔑 Get a free FlashAlpha API key (5 req/day, no card):\n",
53-
"> https://flashalpha.com/signup?utm_source=github-cookbook&utm_medium=notebook&utm_campaign=01-gex-dashboard\n",
53+
"> https://flashalpha.com/profile?utm_source=github-cookbook&utm_medium=notebook&utm_campaign=01-gex-dashboard\n",
5454
">\n",
5555
"> Tier required: **Free** · [![Open in Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/FlashAlpha-lab/flashalpha-examples/blob/main/notebooks/tier-a-hooks/01-gex-dashboard.ipynb)"
5656
]

notebooks/tier-a-hooks/01-gex-dashboard.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
# # Build a GEX Dashboard in 30 Lines
2121
#
2222
# > 🔑 Get a free FlashAlpha API key (5 req/day, no card):
23-
# > https://flashalpha.com/signup?utm_source=github-cookbook&utm_medium=notebook&utm_campaign=01-gex-dashboard
23+
# > https://flashalpha.com/profile?utm_source=github-cookbook&utm_medium=notebook&utm_campaign=01-gex-dashboard
2424
# >
2525
# > Tier required: **Free** · [![Open in Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/FlashAlpha-lab/flashalpha-examples/blob/main/notebooks/tier-a-hooks/01-gex-dashboard.ipynb)
2626

tests/cookbook_tools/test_cta_template.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ def test_top_cell_contains_signup_url_with_utm():
3030
md = render_top_cell(_fm(), tier_dir="tier-a-hooks")
3131
assert "# Build a GEX Dashboard in 30 Lines" in md
3232
assert (
33-
"https://flashalpha.com/signup?utm_source=github-cookbook"
33+
"https://flashalpha.com/profile?utm_source=github-cookbook"
3434
"&utm_medium=notebook&utm_campaign=01-gex-dashboard"
3535
in md
3636
)

tests/cookbook_tools/test_cta_template_properties.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ def test_top_cell_always_contains_signup_url_with_correct_utm(
4747
):
4848
md = render_top_cell(fm, tier_dir=tier_dir)
4949
assert f"utm_campaign={fm.slug}" in md
50-
assert "flashalpha.com/signup" in md
50+
assert "flashalpha.com/profile" in md
5151
assert f"notebooks/{tier_dir}/{fm.slug}.ipynb" in md
5252

5353

tests/cookbook_tools/test_new_recipe.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ def test_scaffolded_notebook_has_top_and_bottom_cta_with_correct_utm(
7171
nb = load_notebook(tmp_path / "notebooks" / "tier-a-hooks" / "demo-99-test.ipynb")
7272
urls = extract_markdown_urls(nb)
7373
assert any("utm_campaign=demo-99-test" in u for u in urls)
74-
assert any("flashalpha.com/signup" in u for u in urls)
74+
assert any("flashalpha.com/profile" in u for u in urls)
7575
assert any("flashalpha.com/pricing" in u for u in urls)
7676
assert any("flashalpha.com/discord" in u for u in urls)
7777

tests/test_links_alive.py

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -56,14 +56,6 @@ def _check_url(url: str, cache: dict[str, dict]) -> tuple[int, str]:
5656
return r.status_code, "network"
5757

5858

59-
# flashalpha.com/signup returns 404 as of 2026-05-27; all other CTAs pass.
60-
# The URL is correct per Phase 0 spec — the marketing site's /signup route is
61-
# temporarily broken. Mark xfail so CI surfaces it as an expected failure
62-
# rather than blocking the build. Remove once the route is restored.
63-
@pytest.mark.xfail(
64-
reason="flashalpha.com/signup returns 404 (marketing site route broken as of 2026-05-27); URL is correct per spec",
65-
strict=False,
66-
)
6759
def test_all_recipe_cta_urls_respond_2xx(recipe_path: pathlib.Path):
6860
nb = load_notebook(recipe_path)
6961
urls = extract_markdown_urls(nb)

0 commit comments

Comments
 (0)