tiennm99
9191d09fdb
feat(referral): add Kimi referral links
2026-07-17 16:54:27 +07:00
tiennm99
bf011b1e8b
feat(codex): migrate newsletter workflows to skills
2026-07-14 09:16:44 +07:00
tiennm99
0a859e5797
docs(newsletter): add newsletter 125
2026-07-13 22:03:18 +07:00
tiennm99
ae42c3a447
feat(newsletter): add newsletter 124
2026-07-12 18:43:03 +07:00
tiennm99
c4461d9f39
feat(newsletter): add newsletter 123
2026-07-11 18:36:19 +07:00
tiennm99
32de9ef5f6
fix(newsletter): preserve source-language image labels
2026-07-11 18:36:03 +07:00
tiennm99
50d706b0ce
feat(newsletter): add Newsletter #122
2026-07-10 15:51:25 +07:00
tiennm99
40dc3fa41b
fix(skills): keep user communication in English
2026-07-10 11:34:59 +07:00
tiennm99
782465b3d7
docs(newsletter): add newsletter 121
2026-07-09 18:19:44 +07:00
tiennm99
4d64d9a00c
fix(skills): prefer newsletter terminology
2026-07-09 11:04:08 +07:00
tiennm99
dff46a64dc
docs(newsletter): add newsletter 120
2026-07-09 11:03:44 +07:00
tiennm99
46403f8473
docs(newsletter): add backlog newsletter tags
2026-07-08 09:22:18 +07:00
tiennm99
5c61ee7e3a
docs(newsletter): add newsletter 119
2026-07-08 00:21:02 +07:00
tiennm99
95f7a2b535
docs(newsletter): add newsletter 118
2026-07-07 00:06:08 +07:00
tiennm99
e4128c94ee
docs(newsletter): add newsletter 117
2026-07-05 22:18:14 +07:00
tiennm99
521f1d99b6
docs(newsletter): add newsletter 116
2026-07-05 21:59:20 +07:00
tiennm99
3ec22345bf
feat(newsletter): add newsletter 115
2026-07-04 22:17:11 +07:00
tiennm99
bd9f99ace4
feat(newsletter): add newsletter 114
2026-07-04 18:01:32 +07:00
tiennm99
115e32dd7f
fix(newsletter): preserve source article titles
2026-07-04 18:01:32 +07:00
github-actions[bot]
6cf9f752a7
chore(projects): refresh projects list
2026-06-30 01:56:55 +07:00
tiennm99
34270df368
feat(referral): add Aiven managed data platform referral
2026-06-28 09:38:25 +07:00
tiennm99
beb6ecb318
docs(newsletter): add newsletter 113
2026-06-24 18:14:21 +07:00
tiennm99
16493b61a1
feat: publish Newsletter #112
2026-06-24 10:38:46 +07:00
github-actions[bot]
c88471a7b5
chore(projects): refresh projects list
2026-06-24 02:00:40 +07:00
github-actions[bot]
ecd471ee56
chore(projects): refresh projects list
2026-06-23 02:59:11 +07:00
github-actions[bot]
36cb1a2d20
chore(projects): refresh projects list
2026-06-22 01:13:38 +07:00
github-actions[bot]
3750f0ca08
chore(projects): refresh projects list
2026-06-20 01:27:02 +07:00
github-actions[bot]
83000751dd
chore(projects): refresh projects list
2026-06-14 01:02:06 +07:00
github-actions[bot]
394bdea3a9
chore(projects): refresh projects list
2026-06-13 01:57:44 +07:00
tiennm99
e19b766445
feat: publish Newsletter #111
2026-06-11 21:23:03 +07:00
tiennm99
ff93d9b46b
feat: publish Newsletter #110
2026-06-07 15:39:25 +07:00
tiennm99
4a4a559a01
feat(post): add newsletter #109 — IDE history, debugging, containers, AI coding, vector indexing
2026-06-06 06:21:13 +07:00
tiennm99
4352b738c5
refactor(referral): reorder AI coding platform providers
...
- Move Z.ai and MiniMax to the top of the section
- Place Xiaomi MiMo directly above ModelArk
2026-06-05 09:38:14 +07:00
tiennm99
fafa5742a0
fix(referral): simplify MiniMax description, remove personal reward amount
2026-06-04 17:59:10 +07:00
tiennm99
ec5a0927e8
feat(referral): update MiniMax description — 5 voucher, Jul 1 deadline, add minimax.png
2026-06-04 17:56:54 +07:00
tiennm99
beab0eeed4
feat(post): add newsletter #108 — AI coding, mental models, developer productivity
2026-06-04 17:50:18 +07:00
tiennm99
ce0248b0cd
fix(referral): add missing mimo.png image
2026-06-04 17:39:13 +07:00
tiennm99
e55c531bd5
feat(referral): add thank-you note
2026-06-04 17:27:25 +07:00
tiennm99
e7064e3f5d
feat(referral): add Xiaomi MiMo Open Platform referral
2026-06-04 17:20:59 +07:00
tiennm99
77f36d2382
feat(referral): add Alibaba Cloud referral program
2026-06-04 17:19:58 +07:00
tiennm99
8edbfefc33
feat(post): add Gemini CLI / Antigravity as 4th AI coding tool
...
- Add Gemini CLI and Antigravity to the list of tools used
- Add dedicated section with deprecation timeline (June 18 cutoff)
- Update tags with Gemini CLI and Antigravity
2026-06-04 15:13:56 +07:00
tiennm99
aba16d5ef0
feat(post): add post on rotating AI coding tools to maximize subscription value
2026-06-04 09:43:32 +07:00
tiennm99
6822fdea98
feat(referral): mark friend's claude pass as out of stock
2026-06-03 09:52:05 +07:00
tiennm99
6fd652b84a
feat(tooling): run blog from Claude Code, OpenCode & Codex on shared engine
...
Extract newsletter scripts to a neutral scripts/newsletter/ engine and add
side-by-side support for all three AI coding tools off one source of truth.
- Move 9 scripts + substack config from .claude/skills/**/scripts to
scripts/newsletter/ (history preserved); fix PROJECT_ROOT depth and
cross-require/config paths; repoint all SKILL.md invocations
- Add canonical AGENTS.md; reduce CLAUDE.md to an @AGENTS.md import
- Add opencode.json (permissions, no MCP); skills auto-discovered in place
- Add codex/prompts/*.md (6 prompts) + copy installers (install.sh/.ps1)
- Add docs/multi-tool-usage.md (setup, per-tool invocation, teardown) + README pointer
2026-06-02 14:07:22 +07:00
tiennm99
681a356833
feat(referral): prioritize opencode go referral
2026-06-01 16:44:47 +07:00
tiennm99
684989b1ff
feat(referral): add opencode go referral
2026-06-01 16:36:47 +07:00
tiennm99
f58defbc7c
feat(newsletter): add Newsletter #107 with articles and bonus images
2026-05-30 21:22:06 +07:00
tiennm99
52e68c3841
refactor(skills): fix dedup edge cases and modularize mt-* scripts
...
- fix checkDuplicate false-negative on Substack cover images (uuid with no size suffix)
- stop cleanUrl from corrupting the query string on unparseable input
- extract shared fetchWithTimeout into url-utils (consistent timer cleanup)
- split find-substack-post html/rss helpers into html-text-utils
- scan content/post for duplicates, matching the other scripts
- correct doc drift in mt-add-image/mt-add-url and drop plan-phase code comment
2026-05-30 20:31:50 +07:00
tiennm99
83ced8a575
refactor(skills): share Substack image helpers and harden URL dedup/routing
...
- extract isSubstackImage/substackImageUuid into shared url-utils
- route Substack images by host (handles f_auto/.avif/extensionless CDN URLs)
- replace grep-based duplicate check with boundary-aware pure-JS scan
- share one fetch budget across publications in deep sitemap crawl
- expand file-extension classification (avif/heic/mkv/pptx/etc.)
2026-05-30 20:13:27 +07:00
tiennm99
bbd1125702
feat(mt-add-image): confirm image label from source post candidates
...
ByteByteGo images carry no caption/alt and image order cannot be mapped to
titles automatically (sponsor and video items interleave). Extract the source
post's TOC topic titles as candidates and let the user pick the matching label
(caption is used directly when a publication provides one; typing is always
available). Validated against newsletters 101-106: the correct title appears
in the candidate set for all 8 images.
2026-05-30 17:23:10 +07:00