Skip to content

Add sample work showcase, technical brief, and pricing/contact nav rename#26

Merged
pedropaulovc merged 3 commits into
mainfrom
add-sample-work-and-pricing-nav
May 28, 2026
Merged

Add sample work showcase, technical brief, and pricing/contact nav rename#26
pedropaulovc merged 3 commits into
mainfrom
add-sample-work-and-pricing-nav

Conversation

@pedropaulovc

Copy link
Copy Markdown
Contributor

Publishes the first sample deliverable and the structure to grow the collection over time.

What's in here

  • Sample registry (src/lib/samples.ts) — single source the homepage and /work both read from. Adding a sample is one entry.
  • /work showcase — published samples grouped by engagement type; types with no samples yet are hidden.
  • First briefAdvanced Dataverse & Dynamics 365 Security Model, with article images and TechArticle JSON-LD.
  • Pricing cards — a "samples published" CTA chip appears on cards that have one.
  • Nav/footer rename — Services → Pricing, Work → Samples, Briefing → Contact, with anchors realigned (#services#pricing, #briefing#contact, #founder#about).
  • Pricing copy — dropped the "$2,500 if publishable" line everywhere.
  • Turnstile in dev — briefing form now uses Cloudflare's always-pass dummy keys when import.meta.env.DEV, so the widget renders and verifies on localhost. Production keys untouched.

Verification

  • npm run build clean.
  • Briefing form Turnstile renders and auto-passes on localhost; console errors 15 → 0.

🤖 Generated with Claude Code

Publish the first sample deliverable (Advanced Dataverse & Dynamics 365
Security Model technical brief) and the infrastructure to grow the
collection over time.

- Add src/lib/samples.ts as the single registry the homepage and /work
  both read from; adding a sample is one entry.
- Add the /work showcase, grouping published samples by engagement type
  and hiding types with no samples yet.
- Add the brief page with article images and TechArticle JSON-LD.
- Surface a "samples published" CTA chip on matching pricing cards.
- Rename nav/footer: Services -> Pricing, Work -> Samples,
  Briefing -> Contact, and align the anchor fragments
  (#services -> #pricing, #briefing -> #contact, #founder -> #about).
- Drop the "$2,500 if publishable" pricing line everywhere.
- Use Cloudflare's always-pass Turnstile dummy keys in dev so the
  briefing form widget renders and verifies on localhost; production
  keys are untouched.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Copilot AI review requested due to automatic review settings May 28, 2026 21:05
@pedropaulovc
pedropaulovc enabled auto-merge May 28, 2026 21:05
@cloudflare-workers-and-pages

cloudflare-workers-and-pages Bot commented May 28, 2026

Copy link
Copy Markdown

Deploying with  Cloudflare Workers  Cloudflare Workers

The latest updates on your project. Learn more about integrating Git with Workers.

Status Name Latest Commit Preview URL Updated (UTC)
✅ Deployment successful!
View logs
decipher-ms eafa55d Commit Preview URL

Branch Preview URL
May 28 2026, 09:21 PM

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Pull request overview

Adds a public sample-work showcase backed by a shared sample registry, publishes the first technical brief, and updates navigation/anchors/copy around pricing, samples, and contact.

Changes:

  • Adds /work, src/lib/samples.ts, and the first /briefs/... sample deliverable.
  • Updates homepage pricing cards to link to published samples.
  • Renames nav/footer anchors and enables Turnstile dummy keys in dev.

Reviewed changes

Copilot reviewed 11 out of 18 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
src/pages/work.astro Adds sample showcase page grouped by engagement type.
src/lib/samples.ts Adds sample registry and engagement/sample helpers.
src/pages/briefs/advanced-dataverse-and-dynamics-365-security-model.astro Adds first published technical brief.
src/pages/index.astro Updates pricing anchors/copy and adds sample CTA chips.
src/components/Nav.astro Renames nav links and adds Samples navigation.
src/components/Footer.astro Renames footer links and anchors.
src/components/BriefingForm.astro Uses Turnstile dummy site key in dev.
src/lib/server/briefing.ts Uses Turnstile dummy secret in dev.
src/pages/about.astro Updates contact anchor target.
src/pages/privacy.astro Updates contact anchor targets.
src/pages/legal.astro Updates contact anchor target.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread src/lib/samples.ts Outdated
Comment thread src/pages/work.astro
@pedropaulovc
pedropaulovc disabled auto-merge May 28, 2026 21:11
- Extract the four engagement-tier keys into src/lib/engagements.ts as a
  single source of truth. samples.ts, the client briefing form, and the
  server validation now import ENGAGEMENT_KEYS / EngagementKey instead of
  each redeclaring the tuple, so a renamed or added tier can't drift
  between the homepage links and the form/API validation.
- Add /work and the first brief URL to public/sitemap.xml, and list both
  pages in public/llms.txt, so the new public pages are discoverable.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@pedropaulovc
pedropaulovc enabled auto-merge May 28, 2026 21:14
Replace the hand-maintained public/sitemap.xml and public/llms.txt with
prerendered endpoints driven by src/lib/pages.ts. Static pages are listed
once; sample pages are derived from the samples registry, so publishing a
new brief updates both the sitemap and the LLM index automatically with no
manual edits.

The @astrojs/sitemap integration isn't a fit here: under output: "server"
with no prerendered routes it only emits static/prerendered pages, so it
would generate an empty sitemap for our on-demand routes. These endpoints
set prerender = true, so they're emitted as static /sitemap.xml and
/llms.txt at build and served by the platform (bypassing the worker), just
like the files they replace. robots.txt still points at /sitemap.xml.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Copilot AI review requested due to automatic review settings May 28, 2026 21:21

@pedropaulovc pedropaulovc left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

lgtm

@pedropaulovc
pedropaulovc merged commit 0bd6997 into main May 28, 2026
2 of 3 checks passed

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Copilot encountered an error and was unable to review this pull request. You can try again by re-requesting a review.

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.

2 participants