tiennm99
49103efd4f
feat(referral): add Kimi referral links
2026-07-17 16:54:27 +07:00
tiennm99
169ce31b30
feat(codex): migrate newsletter workflows to skills
2026-07-14 09:16:44 +07:00
tiennm99
ef7164d053
docs(newsletter): add newsletter 125
2026-07-13 22:03:18 +07:00
tiennm99
ed296b0340
feat(newsletter): add newsletter 124
2026-07-12 18:43:03 +07:00
tiennm99
3900e9ba61
feat(newsletter): add newsletter 123
2026-07-11 18:36:19 +07:00
tiennm99
4290592847
fix(newsletter): preserve source-language image labels
2026-07-11 18:36:03 +07:00
tiennm99
310f1ecadd
feat(newsletter): add Newsletter #122
2026-07-10 15:51:25 +07:00
tiennm99
8cb340a364
fix(skills): keep user communication in English
2026-07-10 11:34:59 +07:00
tiennm99
ba45118e1a
docs(newsletter): add newsletter 121
2026-07-09 18:19:44 +07:00
tiennm99
b97ff25e4e
fix(skills): prefer newsletter terminology
2026-07-09 11:04:08 +07:00
tiennm99
16a6aee020
docs(newsletter): add newsletter 120
2026-07-09 11:03:44 +07:00
tiennm99
6f6a051a0d
docs(newsletter): add backlog newsletter tags
2026-07-08 09:22:18 +07:00
tiennm99
bd61e1e68a
docs(newsletter): add newsletter 119
2026-07-08 00:21:02 +07:00
tiennm99
12b1500cf8
docs(newsletter): add newsletter 118
2026-07-07 00:06:08 +07:00
tiennm99
c6b6633a5e
docs(newsletter): add newsletter 117
2026-07-05 22:18:14 +07:00
tiennm99
06b9cb583f
docs(newsletter): add newsletter 116
2026-07-05 21:59:20 +07:00
tiennm99
90f4ac90fc
feat(newsletter): add newsletter 115
2026-07-04 22:17:11 +07:00
tiennm99
4ad92e5cff
feat(newsletter): add newsletter 114
2026-07-04 18:01:32 +07:00
tiennm99
e92f4682df
fix(newsletter): preserve source article titles
2026-07-04 18:01:32 +07:00
github-actions[bot]
fde9e0ccec
chore(projects): refresh projects list
2026-06-30 01:56:55 +07:00
tiennm99
b7947e9341
feat(referral): add Aiven managed data platform referral
2026-06-28 09:38:25 +07:00
tiennm99
48629a10c7
docs(newsletter): add newsletter 113
2026-06-24 18:14:21 +07:00
tiennm99
2f5d49cfac
feat: publish Newsletter #112
2026-06-24 10:38:46 +07:00
github-actions[bot]
ab0aed2d26
chore(projects): refresh projects list
2026-06-24 02:00:40 +07:00
github-actions[bot]
7b4f169c0b
chore(projects): refresh projects list
2026-06-23 02:59:11 +07:00
github-actions[bot]
c1d014382a
chore(projects): refresh projects list
2026-06-22 01:13:38 +07:00
github-actions[bot]
b2070ab961
chore(projects): refresh projects list
2026-06-20 01:27:02 +07:00
github-actions[bot]
8eb38d4352
chore(projects): refresh projects list
2026-06-14 01:02:06 +07:00
github-actions[bot]
cabcdd7040
chore(projects): refresh projects list
2026-06-13 01:57:44 +07:00
tiennm99
57057a73b5
feat: publish Newsletter #111
2026-06-11 21:23:03 +07:00
tiennm99
4c035836c4
feat: publish Newsletter #110
2026-06-07 15:39:25 +07:00
tiennm99
6e0cfbb25a
feat(post): add newsletter #109 — IDE history, debugging, containers, AI coding, vector indexing
2026-06-06 06:21:13 +07:00
tiennm99
db6908101c
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
ee42ef56de
fix(referral): simplify MiniMax description, remove personal reward amount
2026-06-04 17:59:10 +07:00
tiennm99
ea9d4de17a
feat(referral): update MiniMax description — 5 voucher, Jul 1 deadline, add minimax.png
2026-06-04 17:56:54 +07:00
tiennm99
b3168fc2f1
feat(post): add newsletter #108 — AI coding, mental models, developer productivity
2026-06-04 17:50:18 +07:00
tiennm99
73e34a61ad
fix(referral): add missing mimo.png image
2026-06-04 17:39:13 +07:00
tiennm99
54e230f2cc
feat(referral): add thank-you note
2026-06-04 17:27:25 +07:00
tiennm99
e961c449c4
feat(referral): add Xiaomi MiMo Open Platform referral
2026-06-04 17:20:59 +07:00
tiennm99
c5599d4e34
feat(referral): add Alibaba Cloud referral program
2026-06-04 17:19:58 +07:00
tiennm99
dd61a076b1
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
ee88718b1c
feat(post): add post on rotating AI coding tools to maximize subscription value
2026-06-04 09:43:32 +07:00
tiennm99
4f6afb224d
feat(referral): mark friend's claude pass as out of stock
2026-06-03 09:52:05 +07:00
tiennm99
8f4e1928d8
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
1dea951355
feat(referral): prioritize opencode go referral
2026-06-01 16:44:47 +07:00
tiennm99
a542128395
feat(referral): add opencode go referral
2026-06-01 16:36:47 +07:00
tiennm99
fe06f547de
feat(newsletter): add Newsletter #107 with articles and bonus images
2026-05-30 21:22:06 +07:00
tiennm99
d262159742
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
eada44d407
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
5f78b3e2be
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