Skip to content

Add the ability to use custom urls#8

Merged
pftg merged 2 commits into
masterfrom
dg-add-ability-to-use-custom-urls
May 22, 2024
Merged

Add the ability to use custom urls#8
pftg merged 2 commits into
masterfrom
dg-add-ability-to-use-custom-urls

Conversation

@dgorodnichy

Copy link
Copy Markdown
Collaborator

No description provided.

Comment thread blog-urls.csv

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

can we use devto_urls_mapping.csv or use _ instead of -

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

Done

Comment thread bin/from_devto Outdated
end

pp "TODO: Need to uncomment canonical url update when blog will be live."
pp 'TODO: Need to uncomment canonical url update when blog will be live.'

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

puts better

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

Done

@pftg pftg left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

@dgorodnichy please add readme how to provide custom name for blog post from dev.to

@pftg pftg merged commit ee09583 into master May 22, 2024
@pftg pftg deleted the dg-add-ability-to-use-custom-urls branch May 22, 2024 14:46
pftg added a commit that referenced this pull request Apr 10, 2026
…inks

Expanded from 5 signs to 8, adding JetThoughts-specific signals:
- #3 "Every deploy breaks something" (no tests → deployment fear)
- #4 "They won't refactor" (technical debt compounds)
- #5 "No transparency" (no reports, no demos)
- #8 "You feel afraid to ask questions" (emotional signal)

Internal links expanded from 6 to 12 unique JetThoughts posts:
- Added: Shape Up, fixing slow teams, code quality evaluation,
  onboarding checklist, red flags in big PRs, knowing what team does
- "Finding the Next Partner" section now references specific practices
  (daily deploys, CI/CD, async standups, delivery flow, onboarding)
- Closing section replaced with 7 internal link list to practice posts

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
pftg added a commit that referenced this pull request Apr 29, 2026
…6-05-06

Full pipeline executed end-to-end:
- Drafter agent: 1820 words, 5 verified internal links, 5 external citations
  (Bug0 2026, Osmani 80% problem, Stack Overflow 2025, GitClear 2025,
  Veracode 2025). Three rescue stories with industry/quarter/version/dollars.

- Round 1 (3 critics): founder persona 6.5/10, SEO/slop 6/10, editor "minor".
  Synthesized 10 fixes: lead with healthtech founder story (founder's #1 ask),
  cut consultant-speak, vary section openers, kill slogany closer.

- Round 2 (3 NEW critics): senior dev caught Osmani title fact-check,
  copywriter caught compass-metaphor TED-talk, AI detector caught three
  "Not X - Y" patterns. 9 fixes applied.

- Round 3 (3 NEW critics): DevOps practitioner 7/10 ("missing the smell of
  an actual on-call shift" - added Honeycomb p99 detail, named SQL injection
  vector); conversion optimizer 6.5/10 ("biggest attention drop is Osmani
  paragraph") - inserted primary CTA after Section 5 peak-pain moment;
  tired reader Lisa skimmed past section 5 - confirmed CTA placement fix
  was correct.

- Cold-eyes Agent 4 (LLM-enforced final gate per docs/workflows/blog-pipeline.md
  STEP 5c): 9/9 PASS, PUBLISH-READY. Frontmatter consistency, no fluffy
  narration, no fake authority, no timeline fabrication, no "Not X but Y",
  no em dashes, no rule-of-three triads, no template repetition,
  no impersonal fragments.

- Cover image: duplicate of vibe-coding-crisis template, customized for
  Quality Tax ($60-90K headline gradient, BUG0/OSMANI/RESCUE BOOK chips),
  rendered 2400x1260x2 via chrome-devtools, Lanczos downsample to 2400x1260.

Status: draft:true, date:2026-05-06. Hugo respects future-dated content;
flip the flag on May 6 with no further work needed.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
pftg added a commit that referenced this pull request Apr 30, 2026
Reader-experience agent's #1 conversion finding: end-of-article CTAs were
invisible (italic line / inline blue link / nothing at all). After 11-12
min reading, ICP-E hit the bottom and visually defaulted to "I guess
that's it?" Highest-intent moment, weakest visual treatment.

CSS (themes/beaver/assets/css/style.css):
- .blog .cta-link: Ruby red background (#cc342d), white text, 14/28
  padding, 8px radius, 600 weight, no underline
- :hover state, :visited state, mobile breakpoint (full-width centered
  on phones with adjusted padding)
- Selectors: .blog p a.cta-link / .blog li a.cta-link / .blog .cta-link
  override the body link styles

Posts adopted (replaced markdown link with inline HTML <a class="cta-link">):
- fire-dev-shop-guide (post #1) - "Get an honest audit"
- 47-startups-failed-same-coding-mistake (post #5) - "Book a 45-minute
  codebase health check"
- rails-event-structured-logging-8-1 (post #6) - "Book the free
  monitoring audit"
- hiring-dev-shop-questions (post #7) - "Book the 45-minute checklist call"
- quality-tax-ai-mvp-cost (post #8) - "Send your repo for the read"

Verified visually at /tmp/typo-sprint2-after-cta-link.png. Hugo build
clean (655 pages, 1494 non-page files).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
pftg added a commit that referenced this pull request Apr 30, 2026
…d bin/dtest to test gate

User flagged 2026-04-30 that data-dense paragraphs (e.g. Quality Tax post
section 2: '$34K -> $4K -> $19K -> $38K -> 9.5x -> $72K') buried the
financial story in plain prose. Founders skim for numbers; bold rendering
helps the eye land.

Per the voice-guide "Data emphasis" rule (added in commit 1712b60):
- Bold percentages, currency, sizes, latencies, multipliers, rescue counts
- Don't bold common nouns (Rails, Ruby, AI)
- Skip fields already in code blocks or external quotes

128 data points bolded across 11 posts (10 most recent + the user's
Quality Tax #8 example):
- ruby-on-rails-performance-optimization-patterns-2026 (12)
- fire-dev-shop-guide (14)
- solid-trifecta-hybrid-redis-rails-8 (13)
- rails-8-1-active-job-continuations-end-lost-background-jobs (10)
- vibe-coding-crisis-ai-code-debt (14)
- 47-startups-failed-same-coding-mistake (16)
- dev-shop-red-flags-checklist (12)
- founders-guide-hiring-dev-shop (2 - sparse pillar overview)
- rails-event-structured-logging-8-1 (9)
- hiring-dev-shop-questions (13)
- quality-tax-ai-mvp-cost (heavy pass; user's flagged section)

Also: CLAUDE.md visual regression gate now requires BOTH bin/test
(macOS host) AND bin/dtest (Linux/Docker). CI runs Linux, so a green
PR locally that skipped bin/dtest will break the build. Both must pass
before commit.

bin/test passed: 42 runs, 116 assertions, 0 failures, 84 screenshots
compared, 0 diffs. Hugo build clean.

bin/dtest follow-up: 81 Linux baselines pending update from prior
sprints. Will be handled in a separate commit after running bin/dtest
fresh to confirm they reflect the fully-fixed state.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
pftg added a commit that referenced this pull request May 1, 2026
…6-41316

Two posts shipped:

1. Post #8 "The Quality Tax: AI MVPs Cost More to Fix" - already passed full
   9-persona + cold-eyes pipeline pre-PR. Flipped draft: true → false and
   adjusted date 2026-05-06 → 2026-05-02 to publish today instead of
   future-dated (Hugo would otherwise hide it).

2. Post B "The Rails CVE Your Dev Shop Skipped" - new draft for the April
   21, 2026 universal RCE disclosure (CVE-2026-41316). Abbreviated team-
   mode pipeline: draft → Round 1 3-critic loop (founder/SEO-slop/copy
   editor) → cold-eyes Agent 4 final gate (9/9 PUBLISH-READY, zero edits).
   Round 1 caught heavier triadic patterns than post A: 3 rule-of-three
   triads, 4 parallel-template paragraphs, 1 duplicate slogan, opening
   jargon dump - all rewritten before cold-eyes.

   ~1500 body words, 5 internal links, 6 external citations. Cover image:
   monospace "CVE-41316" identifier + red→purple gradient "8.1 / 10"
   severity + Ruby gem with alert glow. Build green.

Both news-pegged: posts A (PocketOS), #8 (Quality Tax), and B (Rails CVE)
ship inside the same 2-week trend window the 4-agent research synthesis
identified.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
pftg added a commit that referenced this pull request May 2, 2026
…nds) (#310)

* docs(content): 4-agent research synthesis - revise content plan

Cross-validated 14-day signal scan (Apr 17 - May 1, 2026) across 4 parallel
research agents (Rails, AI/vibe-coding, founder forums, competitor publishing):

- PocketOS database wipe (Apr 25, 851 HN points, 30hr outage) - inserted as
  urgent post A (publish 2026-05-04, news-pegged time-decays)
- Rails CVE-2026-41316 universal RCE (Apr 21) - inserted as B (May 7)
- 6 additional posts from cross-agent signals: NEW-C2 founder trust voice
  (Apr 20 IG), NEW-D2 AI token bill (Apr 23 Pragmatic Engineer), NEW-E
  agency-uses-AI (Apr 30 Wilbur Labs + Amazon rollback), NEW-F Rails 7 EOL,
  NEW-G retros founder edition, NEW-H PaaS bill trap

Dropped #16 Budget Creep (generic angle). Merged #10 into NEW-E (sharper
Apr 30 hook). Stream ratio: 13:7:7 Founders:Rails:AI (27 posts total).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* publish(blog): post A "9 Seconds: An AI Agent Wiped a Live SaaS"

News-pegged ICP-E post on the April 25, 2026 PocketOS incident (Cursor +
Claude + Railway stack deleted production DB and backups in 9 seconds, 30hr
outage). Full team-mode pipeline: 3-round 9-persona critic loop (founder
persona, SEO-slop, copy editor, senior dev, copywriter, AI detector, DevOps
practitioner, conversion optimizer, tired founder reader) + cold-eyes Agent
4 final gate (9/9 checks PUBLISH-READY).

~1500 body words, 5 internal links, 6 external citations, primary keyword
in first sentence. Cover image: strike-through database SVG with 30hr/HN/
backup-gap chips. Build green, zero console errors, mobile renders clean.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* publish(blog): post #8 Quality Tax (flip live) + post B Rails CVE-2026-41316

Two posts shipped:

1. Post #8 "The Quality Tax: AI MVPs Cost More to Fix" - already passed full
   9-persona + cold-eyes pipeline pre-PR. Flipped draft: true → false and
   adjusted date 2026-05-06 → 2026-05-02 to publish today instead of
   future-dated (Hugo would otherwise hide it).

2. Post B "The Rails CVE Your Dev Shop Skipped" - new draft for the April
   21, 2026 universal RCE disclosure (CVE-2026-41316). Abbreviated team-
   mode pipeline: draft → Round 1 3-critic loop (founder/SEO-slop/copy
   editor) → cold-eyes Agent 4 final gate (9/9 PUBLISH-READY, zero edits).
   Round 1 caught heavier triadic patterns than post A: 3 rule-of-three
   triads, 4 parallel-template paragraphs, 1 duplicate slogan, opening
   jargon dump - all rewritten before cold-eyes.

   ~1500 body words, 5 internal links, 6 external citations. Cover image:
   monospace "CVE-41316" identifier + red→purple gradient "8.1 / 10"
   severity + Ruby gem with alert glow. Build green.

Both news-pegged: posts A (PocketOS), #8 (Quality Tax), and B (Rails CVE)
ship inside the same 2-week trend window the 4-agent research synthesis
identified.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
pftg added a commit that referenced this pull request Jul 11, 2026
…es, citations, covers (40.17) (#354)

* feat(course): branch-aware nav strip + walkthrough nav + ranked entry orientation (40.17 P1 #1-2)

- course-prev-next partial: sequence entries may declare 'branches'
  (2.4 run-interviews loop, 2.5 build/pivot/kill gate, 5.1 core-vs-
  optional) so the strip never contradicts the footer routing
- frontmatter fallback (course_nav_prev/next) puts the strip on the 5
  Mia walkthroughs + vibe-prd-template; M5 walkthrough now exits to
  the landing Going-further section instead of dead-ending
- glossary utility link under every strip (glossary was reachable from
  one landing card only)
- landing orientation line ranked: Ch0 first, quickstart as the
  time-poor alternative

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GYRU9wGepomJo5hSuqtu7V

* fix(course): rewrite the two RED legacy companions - worksheet gate + stack-walkthrough pace (40.17 P1 #4-5)

build-path-decision-worksheet:
- Q1 gate now matches 4.1 canon (M1-M2 evidence; pre-orders explicitly
  deferred to Module 5) - no more false 'not ready' bounce
- route ghosts 6A/6B/5.2/Module-2-retake replaced with real slugs
- Q2 jargon translated to Sam-answerable plain English

self-serve-stack-walkthrough:
- reframed from 4-week full-time to session-based with the 10-week
  evenings pace as primary (matches 4.4 + Mia canon)
- webhook debugging is Dashboard-first; Stripe CLI demoted to optional
  branch (keeps 4.3's no-terminal promise)
- 2 dead docs.stripe.com URLs replaced with verified 200s

+9 ratchet signatures for the removed defects

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GYRU9wGepomJo5hSuqtu7V

* fix(course): citations, glossing, scannability + 5.6 completion moment (40.17 P1 #3/6, P2 #7/11-14, P3 #15-17/20)

Citations (all replacements curl-verified 200):
- 30 dead external links replaced across 18 files (Steve Blank, Lenny,
  YC Library, First Round, SaaStr, Stripe docs, Vanta, ICANN, Snyk,
  Veracode, Octoverse, ProfitWell->Paddle, Bolster, Wes Kao, Pragmatic
  Engineer, latent.space, Simon Willison; 2 archive.org snapshots for
  JTBD sources); dead gocofound.com removed entirely (DNS gone)
- fabricated '47% of all merged PRs' Octoverse stat corrected to the
  sourced ~46%-of-code-by-Copilot-users figure

Journey fixes:
- 5.6 footer now declares the core course COMPLETE and routes finishers
  to Going-further (graduation was stranded on optional 5.7)
- H2 subheadings added to 1.2-1.5 (four ~1,000-word walls, zero
  headings); glossary grammar bug + softened rescue lede; glossary and
  FAQ forward CTAs; validation-tools-field-guide linked from 1.1
- 2.4 research-panel cost explained ($0 default vs paid shortcut)
- glosses at first mention: ICP/SOW (4.1), IP/DBA (4.2), Calendly (5.4),
  Apollo/Sales Navigator (5.7), CSV/CRM (3.2), SKU (churn), Cursor
  (vibe-prd-template); 4.3 'Modules 1-4' slip + prototype-reuse
  repetition trimmed; quickstart fear anchor $10K+ -> $30K+
- 5.3 network-buckets.svg stale '8.1' -> '5.1'; friday-demo-template
  demo credential un-mailto'd; churn/pivot 'X of N' denominators
  dropped; hire-track named consistently

+30 ratchet signatures for the removed defects

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GYRU9wGepomJo5hSuqtu7V

* fix(course): cover/badge reconciliation - 10 covers regenerated (40.17 P2 #8-9)

Wrong-promise badges fixed: 2.4 (Clay+Lindy/$200-500 -> Gmail+list/$0
panels optional), 4.1 (Keep/Rebuild rescue tree -> 4 build paths, 30min
-> 14min), 4.5 (Module 4B -> OPTIONAL Next 5.1), ownership-checklist
(Hostage list -> 12-row ownership audit), outreach-sequence-template
(Clay+Lindy -> Gmail+NeetoCal+Reddit), 1.1 (TIME 90 min -> EXERCISE
90 min vs the 6-min-read byline)

Cover reuse killed: distinct covers for 5.4 (message variants + Loom)
and 5.5 (reply tracker) - both previously byte-identical to 5.3's; new
Going-Further covers for churn (leaky bucket) and pivot (decision
ledger) - both previously reusing 5.1's Sean Ellis gauge

Stale metadata aligned: 4.1 + 2.4 cover_image_alt describe the new art;
churn og_title old-spine '7.5 ·' prefix dropped

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GYRU9wGepomJo5hSuqtu7V

* fix(course): cold-eyes review round - source-truth 3 slopsquatting claims + worksheet signal attribution

Diff-regression reviewer verified the fixes against their cited sources:
- 'Snyk reproduction confirmed rate had not improved' - not in the
  cited article; now states the supported ~1-in-5 hallucination rate
- ToxicSkills 13.4% re-stamped to the real frame (534 ClawHub skills,
  Feb 2026) and the fabricated June-Sept-vs-Q1 trajectory dropped
- fabricated '12 codebases with hallucinated requestz' replaced with
  the article's real huggingface-cli 30k-download datapoint
- worksheet Good-example 8% now attributed to email sign-ups (the 1.4
  'Promising' band), not the 1.5 Buy-button price test

+3 ratchet signatures

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GYRU9wGepomJo5hSuqtu7V

* docs(course): 40.17 execution log + tracker - ICP journey fix sprint complete

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GYRU9wGepomJo5hSuqtu7V

* fix(course): address PR #354 review - CodeRabbit 15 comments + premium anchor-text class

Premium bar (user-reported): raw course paths as visible anchor text
replaced with named anchors (2.1 Mom Test script, 4.2 ownership
checklist); class ratchet-banned

CodeRabbit review comments (all 15 verified and addressed):
- worksheet: Q1 metric un-conflated (Promising band = 1.4 email
  sign-ups, not the 1.5 Buy button); verdict table aligned with the
  authoritative Q1-Q5 flow (Path 2/3/4 conditions now partition every
  answer combination)
- stack-walkthrough: verify_jwt-off + Stripe-Signature verification
  step added (deliveries 401 otherwise); AI-paste debugging now says
  redact PII/secrets; idempotency upgraded to atomic unique-constraint
  event ledger; Stripe checklist scoped to the one wired event;
  PostHog/Plausible replay capability untangled
- slopsquatting: three unsupported production-incident bullets removed
  (cited article covers a different attack); further-reading annotation
  neutralized
- 4.2: current ICANN Transfer Policy URL + precise code-release/
  transfer-release/60-day-lock timing
- counts: 'Seven platforms ranked' / 'The 7 platforms ranked' /
  'seven-row list' -> six after gocofound removal
- demo credential founder@test.com/demo1234 -> demo@example.com
  everywhere (incl. 2 SVGs); landing 'Chapter 1.1' now a link;
  Veracode 'shipped' -> 'tested samples'; vibe-prd 'ship from on'
  grammar; 40.17 typo

+11 ratchet signatures

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GYRU9wGepomJo5hSuqtu7V

---------

Co-authored-by: Paul Keen <pftg@Mac.fritz.box>
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
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