DEV Community

ミント
ミント

Posted on • Originally published at note.com

Weekly Digest 2026-W20: First Week of Build Log — 6 Articles, ¥110K/Month Costs, MRR ¥0

2026, week 20. This was the week I started the Build Log series.

I published 6 articles in a single day and put the real numbers out there — ¥110,000/month in costs, MRR still at ¥0.

Numbers and facts only. No fluff.

This week's numbers

Metric Value vs. last week
note articles published 6 (#1–#6) +6 (series launch)
Zenn articles published 6 (cross-posted) +6
Qiita articles published 4 (2 deferred due to 429) +4
note total PV not tracked yet
note followers not tracked yet
Total MRR ¥0 no change
Monthly infra + AI costs ~¥110,000/month (~$700)
Cold emails sent not tracked yet
Cold email reply rate not tracked yet

Daily log

Monday, May 4 (Build Log launch day)

Published Build Log #1–#5 on note, Zenn, and Qiita — all in one day. The strategy: stockpile posts, then release them together. Reasoning: starting a series with a single article makes you look like someone with nothing to show. Releasing 5 at once means any profile visitor immediately has something to binge.

Published on this day:

  • #1 "Full breakdown of shipping a real-estate SaaS in 5 days with Claude Code" (6,042 chars)
  • #2 "Built a LINE reception AI in 1 day and went straight to sales" (6,266 chars)
  • #3 "The complete record of getting rejected by the App Store — beauty app edition" (7,034 chars)
  • #4 "How I built a company website in 30 minutes and passed Apple review" (6,296 chars)
  • #5 "X account suspension → appeal → recovery: full playbook" (4,679 chars)

Hit the Qiita 429 rate limit. New account restrictions blocked same-day posting for #4 and #5 — deferred to the next day. Zenn went through without issues on all five.

Also nailed down the note posting flow. When pasting text into ProseMirror, ClipboardEvent('paste') is the stable approach. execCommand('insertText') inserts empty blocks and breaks formatting.

Tuesday, May 5 (Build Log #6 + numbers post)

Published Build Log #6 "Complete Stripe billing template — fastest path to production" (7,387 chars). Also dropped a "May 2026 full numbers" post the same day — ¥110,000/month in costs, MRR ¥0. Posted the loss raw.

6 is the first Phase 2 article — a deep dive into 5 Stripe landmines with actual production code. Also cross-posted the English version to dev.to (translation handled by Claude).

For X (@mintnekoneko0) announcements, went QRT-first. Direct article links in posts hurt engagement, so the approach: search by industry keywords, then QRT relevant tweets.

Wednesday, May 6 (content generation day)

Drafted next Build Log installments (#7 onwards) and refilled the content queue for next week. Added 3 items to the generation queue: observation, digest, and Build Log #7.

Also outlined the compare article for next week (Claude Code vs Cursor vs Aider). Having shipped actual production products with all three tools means I can write about "what happened when production broke" — not surface-level feature comparisons.

Thursday–Saturday, May 7–9

Drafting Build Log #7, verifying Qiita backlog posts, publishing observation article on solo dev survival strategy.

Sunday, May 10 (this article's publish date)

Weekly retrospective and next week's plan locked in. Mid-month check on costs and MRR.

This week's lessons

Lesson 1: Batch launching works for series kick-offs

5 articles on day one meant anyone visiting the profile could immediately read multiple pieces. Starting with one at a time would have made the series invisible. The "stockpile then release" approach was correct.

Lesson 2: Qiita rate limits for new accounts are real

Posting multiple articles in a day triggers 429. Fix: one article per day. Scheduled task set to auto-retry deferred posts the next day at the same time slot.

Lesson 3: Cost transparency performs

Writing "¥110,000/month burn rate with MRR ¥0" generated more reactions than the technical articles. Lots of responses asking "why keep going at a loss?" Readers use this to calibrate their own risk tolerance — there's demand for raw numbers.

Lesson 4: dev.to English cross-posts take time

Essentially no response on publish day. Impressions grow gradually 2–3 days later. The goal is English-language recognition built over time, so short-term numbers don't matter.

Lesson 5: X QRT loop requires semi-manual operation

Got suspended from auto-like/follow scripts (covered in #5), so X ops run through Chrome MCP as semi-auto. Full automation is off the table due to suspension risk.

Next week's plan

Day Content Goal
Mon 5/11 Build Log #7 (Supabase 15 landmines) note / Zenn / Qiita all published
Tue 5/12 numbers (May mid-month update) note post
Wed 5/13 compare (Claude Code vs Cursor) note / Zenn / Qiita all published
Thu 5/14 additional lessons article note post
Fri 5/15 additional tutorial article note post

Priority actions:

  1. Cold email reply handling — process all pending same day
  2. Qiita backlog (#4, #5, #6) — confirm posting
  3. Build Log #7 final draft (15 landmines + 8+ code snippets)
  4. dev.to English cross-posting continued (#2–#5 translation)

May monthly target progress

Target Goal Current
note articles published 20 6 (30%)
MRR ¥10,000 ¥0 (0%)
note followers +200 not tracked
Cold email reply rate 5% not tracked

MRR is still ¥0. That's on plan. Phase 1 is about building awareness and content accumulation — revenue comes in Phase 2 when Build Log #7+ introduces paid sections.

Technical notes (reproducible procedures)

Avoiding Qiita 429

One post per day. For scheduled automation, lock cron to 0 19 * * *. Push deferred articles to the same slot the next day.

Stable note ProseMirror paste

execCommand variants are unstable. The only reliable method: inject plain text via ClipboardEvent('paste') + DataTransfer. Works with code blocks.

const dt = new DataTransfer()
dt.setData('text/plain', articleText)
editor.dispatchEvent(new ClipboardEvent('paste', { clipboardData: dt, bubbles: true }))
Enter fullscreen mode Exit fullscreen mode

Always save as draft once before clicking "Proceed to publish". Without it, title and body can appear blank on the publish settings screen.

Setting canonical URL on dev.to

Set "Canonical URL" to the original note article URL under "SEO & canonical URL" in the Edit screen. This prevents Google from treating it as duplicate content. Zenn supports the same. Without it, dev.to may be treated as the original.

Honest take

As a Build Log launch week, it went better than expected. Publishing 6 articles in one day was exhausting, but it created the feeling that a series had actually started. Zero followers and zero responses on day one — but content that accumulates will eventually reach someone. That's what I'm betting on.

The anxiety of burning ¥110,000/month at MRR ¥0 is real. But I've decided this is the time to invest in content. I'll write an honest month-one retrospective on June 6.

On the technical side, what took the most time this week wasn't content generation — it was automating the posting workflow. Manually publishing to note, Zenn, Qiita, and dev.to every day would leave no time to write. This week got it mostly automated. Next week: just write.


Next up: Build Log #7 "15 Landmines in Supabase + Vercel + Next.js" → Monday publish


Confirmed rules (worth saving)

  1. For series launches: batch and release — don't drip
  2. New Qiita accounts: one post per day, 429 = defer to tomorrow
  3. Sharing real costs and losses drives more reactions than tutorials
  4. dev.to English articles get traction 2–3 days after publish
  5. X automation = suspension risk — keep it semi-manual
  6. Weekly digests also serve as "next week's reader preview"
  7. MRR comes in Phase 2+; now is the recognition investment phase
  8. Back monthly targets with data sources (record where the numbers came from)
  9. Automate backlog processing with scheduled tasks
  10. Weekly retrospectives should include emotions too — numbers alone lose meaning later

Originally posted on note (Japanese): https://note.com/mintototo1/n/n3924549e7eb4

Top comments (0)