// internal review · gated

Content Strategy — Maple v1

Operator-receipt content plan and 30-day platform calendars for Jack Yen. 7 donut shops, 11 rentals, ~$60K/yr SaaS replaced. Internal review document.


Overview

Jack Yen Content Plan — Maple v1

Date locked: 2026-05-19 Author: Maple (with social media team: Brand Guardian, Instagram Curator, TikTok Strategist, LinkedIn Content Creator, Trend Researcher) Source canvas folder: /Users/jackyen/workspace/jackyen-personal-brand/


How to use this folder

Read in this order:

  1. 01_brand_voice.md — north-star voice spec. Read first. Every post checks against this before shipping.
  2. 02_strategy_overview.md — the positioning thesis, platform allocation, conversion mechanic. The "why."
  3. 03_landing_page_changes.md — what changed on jackyen-personal-brand/index.html and what still needs review.
  4. day_01_origin_post.md — the ship-ready Day 1 post (LinkedIn primary, IG/TikTok adaptations included).
  5. day_15_variance_story.md — the ship-ready Day 15 post (replaces the fake "month 4 crisis" from the old plan).
  6. Platform calendars (read whichever you're shipping first):
    • linkedin_30day.md — 20 fully drafted LinkedIn posts, ready to copy/paste
    • instagram_30day.md — 30-day IG reel + carousel + story cadence
    • tiktok_30day.md — 20-post Mon-Fri TikTok schedule with hooks + scripts
  7. month_2_str_outline.md — Month 2 adds STR ops lane. Outline only, full spec after Month 1 ships.
  8. lead_magnets_and_newsletter.md — the standing-offer model: bi-weekly newsletter + platform-specific lead magnets.
  9. competitor_scan.md — peer/competitor reference for who Jack is vs. who he isn't.

Locked facts (the receipts)

These appear verbatim in any content. Do not modify without explicit approval.

  • 7 donut shops in DFW. Brand: Golden Glaze. GP/LP fund structure, Reg D 506(b). Targeting 10 by year-end.
  • 20+ employees on a kitchen floor at 4am.
  • 11 STR/MTR units across Hawaii, DFW, Tampa. Insurance housing, displaced families, traveling employees. (Month 1: mentioned only in Day 1 LinkedIn origin. Month 2: full lane.)
  • October 2024 — planned his way to a layoff. Walked out with six-figure severance.
  • At time of layoff: 5 STRs already cashflowing + 12 months of savings stacked. Not a leap. A runway.
  • 18 months in as of 2026-05.
  • Built solo in 3 weeks with AI: Discord ops layer, daily reporting, automated investor reports, scheduling.
  • Currently building: inventory management, guest messaging.
  • ~$60K/yr in third-party software replaced so far. Growing.
  • 13 years in tech, 6 companies, six-figure salary.
  • Managed engineers on Slack/Teams for 13 years. New challenge = deskless workforce of 20+ who don't read between shifts.
  • No kids.
  • Based: DFW.

Status — what changed from the prior plan

  • ❌ Killed: 30-day plan from 2026-05-12 that stopped at Day 21 and overused comment X and I'll send Y (14×).
  • ❌ Killed: fake "month 4 almost killed us" angle (replaced with the real variance story).
  • ❌ Killed: any "two kids" reference (Jack has none).
  • ❌ Killed: "50+ employees" (was 20+).
  • ❌ Killed: "Left corporate, built the way out" hero (replaced with operator-receipt headline on the landing page).
  • ✅ Locked: $60K/yr SaaS replaced as the working claim across all platforms.
  • ✅ Locked: bi-weekly newsletter "Receipts from the Back Office" as conversion home.
  • ✅ Locked: standing-offer model (link in bio), no comment-keyword loops.
  • ✅ Locked: Month 1 donut-only. Month 2 adds STR lane.

Open questions for Jack

  1. Pick a domain/subdomain for the newsletter landing page (suggest notes.jackyen.com or receipts.jackyen.com). Or use existing jackyen.com/notes.
  2. Confirm newsletter platform (Substack / Beehiiv / Ghost / ConvertKit). Recommend Beehiiv for SMB-operator audience (better deliverability, no political baggage).
  3. Confirm bio link aggregator (recommend none — direct link to landing page is on-brand).
  4. Confirm posting will happen via native scheduling tools or a buffer/sprout — recommend manual posting Month 1 to feel the rhythm before automating.

Ship sequence

Week 1 priorities:

  1. Ship Day 1 LinkedIn origin post (Wed morning, 7-9am CT)
  2. Adapt to IG carousel (Wed evening) and TikTok (Thu morning)
  3. Set up newsletter landing page (one-page, one form, one promise)
  4. Pre-record 3 TikTok screen-records (batch Sunday)
  5. Update IG/TikTok/LinkedIn bios to final versions from 01_brand_voice.md

Success bar — Month 1:

  • 20 LinkedIn posts shipped, 5 with 5k+ impressions
  • 20 TikTok posts shipped, 1 with 50k+ views, 500 newsletter signups
  • 30 IG posts shipped, 1k follower delta minimum
  • Newsletter issue #1 sent by end of week 2
  • Zero off-voice posts (the brand voice red-flag list catches them)

Don't chase follower count. Chase: number of times an operator DMs you about a specific number you posted.

On-Hand Submit Semantics

On-hand submit semantics

Decision

Change the Golden Ops on-hand page from “submit the whole catalog” to an intentional submit set:

  • edited rows write quantity changes
  • checked clean rows count as verified
  • untouched rows stay untouched

No schema change is needed. The backend gets one optional flag: verifiedOnly.

Core change

Today, InventoryOnHandClient sends every product in every category with its current local quantity, then marks every row locally as submitted. That makes “not changed” indistinguishable from “reviewed and confirmed.”

Target behavior: the client submits only rows with operator intent:

  • dirty rows, because the value changed
  • clean rows where the operator checked “unchanged”

Dirty rule

Derive dirty state from the existing baseline.

const currentQty = localLevels[productId]?.onHandQty ?? 0;
const originalQty = levelsByProduct[productId]?.onHandQty ?? 0;
const isDirty = currentQty !== originalQty;
const unchangedChecked = unchangedProductIds.has(productId);
const included = isDirty || unchangedChecked;

Row matrix

Row state Checkbox Submit behavior
dirty + unchecked disabled, unchecked writes onHandQty, onHandUpdatedAt, and onHandSubmittedAt
dirty + checked attempt disabled; force unchecked when row becomes dirty included as a dirty value write; no verifiedOnly
clean + unchecked enabled, off excluded entirely; no timestamp bump
clean + checked enabled, on verifiedOnly: true; bump onHandSubmittedAt only

Payload

Keep the contract backward-compatible.

submitOnHandCountsAction({
  storeId,
  levels: [
    { productId, onHandQty, verifiedOnly: false },
    { productId, onHandQty, verifiedOnly: true },
  ],
});

verifiedOnly defaults to false, so existing callers keep the current value-write behavior.

Backend

  1. accept { productId, onHandQty, verifiedOnly?: boolean } and cap the array at the existing max.
  2. for dirty rows, keep current semantics: upsert quantity, update onHandUpdatedAt, and stamp onHandSubmittedAt.
  3. for verifiedOnly === true, update onHandSubmittedAt only. do not touch quantity.

Ship order

  1. client: derive dirty state, add unchanged checkbox state, and filter the submit payload.
  2. server: add verifiedOnly validation and timestamp-only verified path.
  3. post-submit: stamp local timestamps only for rows actually submitted, then clear submitted unchanged checks.
  4. empty submit set: skip the action and show a no-changes state.
Strategy

Strategy Overview

Positioning

Jack owns an unowned lane: the software engineer who actually runs a 50-person blue-collar operation and a multi-market STR portfolio, and ships the software stack for both.

The competitive map:

Creator Owns Doesn't have
Codie Sanchez Acquisition / "boring businesses" content SWE chops, the actual build
Nick Huber Service-biz ops Tech background, AI-internal-tool literacy
Pieter Levels Solo SaaS, build-in-public W-2 payroll, deskless workforce
Greg Isenberg AI startup ideas The operator side
Sieva / Beshore Holdco / SMB PE thought Builder side, hands-on
AI dev creators Build-in-public They ship for devs, not for donut shops

Jack sits between all of them. The receipts (7 shops, 11 rentals, $60K/yr SaaS replaced, three weeks to build the stack solo, GP/LP fund) make the lane defensible — none of these creators can credibly claim all of those.


Platform allocation

Each platform has a distinct job. Do not raw cross-post.

Instagram — visual receipts + save engine

  • 40% reels, 33% carousels, 17% feed posts, 10% stories-only days
  • 6 posts/week
  • Lowercase only (brand signal)
  • Carousels are the moat — operator-artifact screenshots
  • Conversion: link in bio → newsletter landing page (no comment-keyword loops)

TikTok — discovery via screen-records

  • 50% screen-record / 30% talking head / 20% VO over b-roll
  • 5x/week Mon-Fri
  • Lowercase only
  • Screen-records of actual dashboards/builds = the differentiator
  • "What I Built This Week" (Sunday/Fri) + "Receipts Monday" + "Manager Voice Memo" (bi-weekly) = three recurring series
  • Conversion: pinned comment + bio link

LinkedIn — peer-operator essays

  • 60% text, 25% doc carousels, 10% video, 5% polls
  • 4-5/week Tue-Thu, 7-9am CT
  • Proper case (LinkedIn audience reads lowercase as careless)
  • Higher signal density, longer reflection
  • Hosts the origin story + the newsletter signup
  • Conversion: link to newsletter, lead magnet in Featured

Voice in one paragraph

Jack sounds like an operator who codes on the side, not a creator performing entrepreneurship. He speaks in numbers, decisions, and what broke this week. Tension comes from specifics (a $4,200 cash variance, a manager who quit Tuesday), not adjectives. He explains software the way he'd explain it to his shop GM: plainly, with the labor cost attached. He never asks for follows, never preaches freedom, never claims AI changed his life — he shows the tool, the time saved, and the line item it replaced.

Full voice spec in 01_brand_voice.md.


Conversion mechanic — standing offer (NOT comment-keyword loops)

The prior plan used comment X and I'll send Y 14× in 21 days. We're killing that.

Replacement:

  • One link in each bio → newsletter landing page
  • Bi-weekly newsletter: "Receipts from the Back Office" (600-900 words, one decision + one number + one mistake per issue)
  • One lead magnet per audience:
    • IG/TikTok: "5 metrics I check every morning across 7 shops" (Notion page)
    • LinkedIn: "The Ex-Tech Operator's Internal Tools Stack" (12-page PDF)
  • No CTAs per post. The standing offer is the conversion. Posts focus on receipts.

Newsletter platform recommendation: Beehiiv. Built for operator/builder audience, no political baggage, clean analytics, referral program is good.


Month 1 = donut-only (this folder)

Donut shop content carries the receipts (7 shops, 20+ employees, GP/LP, $60K SaaS, 3-week build). It's the most differentiated lane and lowest-noise to enter.

STR portfolio gets ONE mention in the Day 1 LinkedIn origin (because the runway story matters) but no dedicated STR posts in Month 1.

Month 2 = STR lane added

See month_2_str_outline.md. Same voice, parallel content track. Different audience overlap.


What we won't do

  • ❌ Chase follower count
  • ❌ Run ads in Month 1
  • ❌ Launch a course, cohort, or paid product
  • ❌ Cross-post raw between platforms
  • ❌ Use generic AI hashtags (#aibuilder #buildinpublic #entrepreneur)
  • ❌ Make claims we can't back with a number
  • ❌ Reply to every "I want to know more" DM with a sales pitch (route to newsletter, that's the gate)

Month 1 success bar

Real KPIs to grade against:

  • Posts shipped: 20 LinkedIn / 20 TikTok / 30 IG (yes, 30 — IG includes feed + stories)
  • Newsletter signups: 500+ (across all sources)
  • One post >50k views (TikTok algorithmically most likely)
  • 3 inbound DMs from real operators asking about a specific number you posted (not "love your content" — the real test)
  • 0 off-voice posts (the red-flag list catches them)
  • 1 reusable original TikTok sound (algorithmic compound asset)

Don't grade on followers. Grade on what gets DM'd between operators.

Brand Voice

Jack Yen — Brand Voice Spec (FINAL)

Purpose: This is the standalone reference any drafter (agent or human) reads before writing a single word for Jack. If a post can't survive this checklist, it doesn't ship.


1. Brand Voice Statement (North Star)

Jack Yen writes like an operator who already did the thing. Not aspirational, not motivational — load-bearing. Every sentence carries weight from real receipts: 7 donut shops in DFW, 11 STR/MTR units across Hawaii/DFW/Tampa, 20+ employees on the kitchen floor at 4am, a six-figure tech career walked away from in October 2024 with severance and 12 months of runway already covered by cashflow. The voice is quiet, specific, and slightly tired — like someone who built the software in 3 weeks because the third-party tools cost $60K/yr and didn't fit. No hustle theatrics, no identity claims, no second-person pep talk. The artifact does the talking. Jack just narrates.


2. The 7 Voice Rules

  1. Specificity floor. Numbers, dates, dollar amounts, unit counts, time windows. "7 shops," "11 units," "3 weeks," "October 2024," "$60K/yr," "4am floor." If a sentence could belong to any operator, rewrite it until it can only belong to Jack.

  2. Operator POV only. Write from inside the business, not above it. "I had 20+ employees on the floor at 4am and no scheduling tool that worked deskless" — not "Here's how to manage frontline teams."

  3. No second-person motivation. No "you should," no "you need to," no "imagine if you." Jack reports what happened to him. Readers extract their own lesson.

  4. Show the replacement (name what was killed and the cost). When mentioning the custom software, always name the third-party tool category it replaced and the dollar figure. "Replaced [tool category] — $X/mo." Generic "I built tools" is a violation.

  5. Tension before payoff. Lead with the constraint, the failure, or the awkward truth. Resolution comes second, smaller, and only if earned. The 18-months-in number is a tension marker, not a victory lap.

  6. No identity claims. Jack does not call himself an "AI builder," "founder," "solopreneur," "indie hacker," "vibe coder," or any label. The artifacts label him. He just describes what he did and what it replaced.

  7. One CTA max, earned only. Most posts have zero CTA. If there is one, it's at the end, one line, and the post above it has already paid for the attention. No "follow for more," no "DM me," no "what do you think?"


3. Cross-Platform Consistency Map

What stays the same everywhere:

  • Specificity floor (numbers always present)
  • Operator POV
  • No identity claims
  • Tension-first structure
  • No motivational second-person

What adapts per platform:

Element Instagram TikTok LinkedIn
Casing lowercase lowercase proper case
Sentence length short, line-broken spoken cadence, punchy longer, paragraphed
Opening hook image-led, caption supports first 1.5 seconds, on-screen text first line is the receipt
Receipts surfaced 1-2 per post 1 per video 2-3 per post
CTA tolerance almost never almost never rare, soft ("comment if you've seen this")
Length cap 3-6 short lines 60-90 sec script 150-300 words

4. Platform Bios — FINAL VERSIONS

Instagram (lowercase, ≤150 chars)

7 donut shops. 11 short-term rentals. left a 13-year tech career in oct 2024. building the ops software the industry forgot. dfw.

(148 chars)

TikTok (lowercase, ≤80 chars)

7 donut shops. 11 rentals. left tech in 2024. built the software myself.

(72 chars)

LinkedIn Headline (proper case, ≤220 chars)

Operator — 7 Donut Shops (Golden Glaze, DFW) + 11 STR/MTR Units (HI/DFW/Tampa) | Left a 13-Year Tech Career in October 2024 | Building Inventory + Guest Messaging Software | 18 Months In

(199 chars)


5. Casing Standard

  • Instagram & TikTok: lowercase by default. Deliberate. Signals operator-not-marketer. The artifacts are loud; the voice is quiet.
  • LinkedIn: proper case. Audience expects business norms. Lowercase on LinkedIn reads as performance, not restraint.
  • Break the rule only when:
    • A specific proper noun requires it (Golden Glaze, DFW, Hawaii, Tampa, Discord)
    • A dollar figure or unit count is the load-bearing word and needs visual emphasis ($60K, 7, 11, 3 weeks)
    • Never break casing for hype. "REAL TALK" or "HUGE NEWS" is an instant kill.

6. Red Flag Phrases — Auto-Rewrite List

If a draft contains any of these, rewrite before shipping:

  1. "I use AI to..." → name what was built, name what it replaced, name the cost
  2. "You should..." / "You need to..." → switch to first-person report
  3. "Imagine if..." → delete; replace with what actually happened
  4. "AI builder" / "vibe coder" / "indie hacker" → delete the label, describe the artifact
  5. "Hustle" / "grind" / "rise and grind" → delete; the 4am floor speaks for itself
  6. "Passive income" → delete; STRs at 11 units are not passive
  7. "Quit my 9-5" → use "left a 13-year tech career in October 2024"
  8. "Building in public" → delete the label, just describe the build
  9. "Game-changer" / "disrupting" / "revolutionary" → delete
  10. "Follow for more" / "DM me" / "link in bio" → delete unless earned
  11. "Anyone can do this" → false and off-voice; delete
  12. "Living the dream" → delete; replace with the specific tradeoff (no kids, DFW, 4am)
  13. "Side hustle" → these are not side hustles; they are the business
  14. "Financial freedom" → delete; use cashflow numbers or runway months instead
  15. "Let that sink in" → delete on sight

7. Earned vs Borrowed Topics Test

Jack rides (earned):

  • Running 7 donut shops with a deskless workforce of 20+
  • The October 2024 layoff math (severance + 5 cashflowing STRs + 12 months savings)
  • Insurance housing and displaced families as STR/MTR customers
  • Building Discord ops, daily reporting, automated investor reports, scheduling solo with AI in 3 weeks
  • Replacing ~$60K/yr in third-party software
  • 13 years managing engineers on Slack/Teams vs. now managing kitchen staff on the floor
  • The current build: inventory management + guest messaging
  • DFW operator life, GP/LP fund mechanics, the 18-months-in honesty

Jack skips (borrowed):

  • General AI commentary, model releases, prompt engineering tips
  • Startup funding news, YC, VC takes
  • Crypto, day trading, dropshipping, Amazon FBA
  • Productivity systems, morning routines, dopamine detox
  • Politics, hot takes on other founders
  • "How to start a business with $0" content
  • Generic real estate investing advice (he runs a specific niche: insurance housing)
  • Anything that requires claiming an identity he hasn't earned in that specific lane

The test: Can Jack point to a receipt from the last 18 months that gives him standing to say this? If no — skip it.


8. Voice Examples — Bad → Better

Example 1

  • Bad: "I use AI to run 7 donut shops from my phone."
  • Better: "I bought 7 donut shops in DFW. The ops software for a deskless 4am workforce didn't exist. Built it in 3 weeks. Replaced ~$60K/yr in third-party tools."

Example 2

  • Bad: "Quit my 9-5 to chase my dreams. You can too!"
  • Better: "October 2024. Took the severance. Walked from 13 years in tech. 5 STRs were already cashflowing. 12 months of runway in the bank. It wasn't brave — the math was done two years earlier."

Example 3

  • Bad: "Building in public as an AI-powered solopreneur."
  • Better: "Currently building inventory management and guest messaging. Solo. The off-the-shelf versions cost more per year than my first STR cashflowed."

Example 4

  • Bad: "Managing employees is hard. Here's what I learned."
  • Better: "13 years managing engineers on Slack. Then 20+ employees on a donut shop floor at 4am, no laptops, no Slack. The hardest part of the transition wasn't the hours. It was that none of the tools I knew existed for this workforce."

Example 5

  • Bad: "Real estate has been a game-changer for my financial freedom journey."
  • Better: "11 STR/MTR units. Hawaii, DFW, Tampa. Most of the bookings are insurance housing — families displaced after a fire, a flood, a contractor who blew a deadline. Not vacation rentals. Not passive."

Example 6

  • Bad: "Excited to share I'm building the next big thing in hospitality tech!"
  • Better: "18 months in. Built the Discord ops console, the daily reporting, the automated investor updates, the scheduling. Now on inventory + guest messaging. Not selling it. Just running my own shops on it."

Example 7

  • Bad: "AI is going to change everything. You need to learn it now."
  • Better: "I'm not an engineer who became an operator. I'm an operator who couldn't find software that fit, so I wrote it. 3 weeks for the first version. The AI part is the cheapest input I have."

Example 8

  • Bad: "Follow my journey as I scale to 8 figures!"
  • Better: "7 donut shops. 11 rentals. 18 months in. DFW. No kids. That's the whole org chart."

Daily checklist before any post ships:

  • At least one receipt (number, date, dollar, unit count)?
  • First-person, no "you should"?
  • No identity label?
  • If software is mentioned — named what it replaced and the cost?
  • Tension before payoff?
  • Casing correct for the platform?
  • Zero red-flag phrases?
  • CTA earned (or absent)?

If any box is unchecked, the post is not ready.

Landing Page Changes

Landing Page Changes — 2026-05-19

File edited: /Users/jackyen/workspace/jackyen-personal-brand/index.html Editor: Maple Approved by: Jack (in Discord, 2026-05-19)


Summary

Six edits applied. Hero is now operator-receipt voice. All "50+ employees" replaced with "20+ employees." All escape-coded language ("way out," "cog in the machine," "slow death," "live 2 days a week / retire at 65") replaced with on-voice receipt language.


Changes

1. Page title (line 7)

Before:

<title>Jack Yen · Left corporate, built the way out</title>

After:

<title>Jack Yen · 7 donut shops, 11 rentals, built the software myself</title>

2. Meta description (line 8)

Before:

"13 years in tech. October 2024 I walked away. 18 months later: 7 donut shops, 11 short-term rentals, custom software I built solo. Following the playbook out."

After:

"13 years in tech. October 2024 I planned my way to a layoff. 18 months later: 7 donut shops, 11 short-term rentals, ~$60k/yr of third-party software replaced with code I wrote. Real numbers. As I go."

3. Hero H1 (lines 785-789)

Before:

"Left corporate. Built the way out."

After:

"7 donut shops. 11 rentals. Built the software myself."

4. Hero lede (line 791)

Before:

"13 years in tech. October 2024 I planned my way to a layoff and walked out with severance. 18 months later: 7 donut shops, 11 short-term rentals, custom software I built solo."

After:

"13 years in tech. October 2024 I planned my way to a layoff and walked out with severance. 18 months later: two physical-asset businesses, 20+ employees on the kitchen floor, custom software replacing the third-party stack — donut shop ops and property management both."

5. Hero aside (lines 803-807)

Before:

Label: // why I left Quote: "We're all just a cog in the machine, doing the same thing everyday so that we can live 2 days a week and finally retire at 65 to enjoy whatever life there is left."

After:

Label: // the receipt Quote: "13 years writing code for someone else's roadmap. Now the code runs my own shops and my own rentals. Different feedback loop. Different stakes."

6. Story section title (line 841)

Before:

"Six figures, stock vesting, slow death."

After:

"Six figures, stock vesting, five years of Sunday night."

7. Story section pull quote (lines 850-853)

Before:

"We're built to live 2 days a week and retire at 65. I decided that wasn't the deal I was signing up for."

After:

"Tech salary every two weeks for 13 years was stable, boring, predictable. Traded it for two physical-asset businesses and the software stack to run them."

8. Donut business stat (line 872)

Before:

"7 shops · 50+ employees · GP/LP fund structure"

After:

"7 shops · 20+ employees · GP/LP fund structure"


Still to do (next round, not in this pass)

  • Audit the playbook descriptions (lines ~989, ~1007) for off-voice language ("planned my way to severance" framing is fine but check the rest)
  • Add newsletter signup form above the playbook bundle (per Trend Researcher recommendation — currently the page leaks intent traffic)
  • Add a weekly build-log section ("what I shipped this week" — single most underused asset on the page)
  • Add an artifact gallery (P&L screenshots redacted, schedule shots, Slack/Discord screenshots) — content piece that doubles as proof
  • Update the "Four income streams" section if STR/MTR positioning shifts in Month 2 content

These are surface-level continuity work, not voice fixes. Schedule after Month 1 ships.

Day 1 — Origin

Day 1 — Origin Post

Ship target: LinkedIn first (Wed 2026-05-20, 7-9am CT). Adapt to IG carousel and TikTok talking-head + screen-record same week.


LinkedIn (primary, proper case, copy/paste ready)

October 2024. 13 years in tech, six different companies, six-figure salary, full golden handcuffs. Every Sunday night I dreaded Monday and told myself it was just a season. I told myself that for five years.

Then I planned my way to a layoff.

Read the room — tech was deep in layoff cycles in 2024 — and let the timing work for me. Walked out with a six-figure severance. By that point I already had 5 short-term rentals cashflowing across Hawaii and DFW, and 12 months of savings stacked. Not a leap. A runway.

18 months in now.

11 STR/MTR units across Hawaii, DFW, and Tampa — more than doubled. Displaced families, traveling employees, insurance housing. Different lane than the Airbnb-bro content.

7 donut shops in DFW. GP/LP fund structure. 20+ employees on a kitchen floor at 4am. Running on custom software I built solo in three weeks with AI — Discord ops layer, daily reporting, automated investor reports, scheduling. Now building inventory management and guest messaging too. Roughly $60K/yr of third-party software replaced so far. Still growing.

Two physical-asset businesses. One operator. One laptop in the back office.

The hardest part wasn't the math. I managed engineers on Slack and Teams for 13 years. I'd never managed a deskless workforce — 20 people on a kitchen floor at 4am who don't read messages between shifts. Different problem. Different tooling. None of the SMB SaaS in this category was built for it.

So I'm building it.

I'm not here to tell you to buy a small business. Most of the "ex-tech buys an SMB" content online is cosplay. The work is unglamorous. Margins are thin. You will spend a Saturday driving between locations because a POS won't sync or a turnover crew is late.

But if you spent a decade building software that someone else owned, and you're wondering whether the operator side is more interesting than the IC side — I'll tell you what I'm learning. With real numbers. As I go.

Following along here. No motivational stuff. Just receipts.

Hashtags (LinkedIn — niche, 3-5 max): #smbtwitter #deskless #verticalsaas #etaforum #searchfund


Instagram (carousel, lowercase, 8 slides)

Slide 1 (title): 13 years in tech → 7 donut shops + 11 rentals. here's the actual math.

Slide 2: october 2024. i planned my way to a layoff. six-figure severance. not a leap. a runway.

Slide 3: the runway i already had: 5 short-term rentals cashflowing. 12 months of savings stacked.

Slide 4: 18 months in: 11 str/mtr units · hawaii, dfw, tampa 7 donut shops · dfw 20+ employees on a kitchen floor at 4am gp/lp fund structure

Slide 5: software i built solo in 3 weeks with ai: discord ops layer daily reporting automated investor reports scheduling

Slide 6: currently building: inventory management guest messaging

Slide 7: ~$60k/yr in third-party software replaced so far. still growing.

Slide 8 (close): @jack.yen receipts only. no motivational stuff.

Caption:

october 2024 i planned my way out of corporate. 18 months later — two physical-asset businesses, 20+ employees on a kitchen floor at 4am, custom software i built solo in three weeks. ~$60k/yr in saas replaced so far.

not a story about quitting your job. a story about what i'm building, with real numbers, as i go.

link in bio if you want the receipts every other week.

Hashtags: #multiunitoperator #smallbatchbakery #donutshop #smbbuilder #internaltools #dfwsmallbusiness #deskless #opsautomation


TikTok (talking head + screen-record, 30 sec, lowercase)

Hook (frame 1, on-screen text): i planned my way to a layoff after 13 years in tech.

Beat 1 (0-7s, talking head): "october 2024. six-figure severance. by then i already had 5 rentals cashflowing and 12 months of savings stacked. not a leap. a runway."

Beat 2 (7-15s, talking head): "18 months later — 7 donut shops, 20+ employees, custom software i built solo in three weeks."

Beat 3 (15-22s, screen-record): [screen cut to actual dashboard / discord ops layer / scheduler output — fast cuts] "discord ops layer. daily reporting. automated investor reports. scheduling. now building inventory management and guest messaging too."

Beat 4 (22-28s, talking head): "about $60k/yr in third-party software replaced so far. and i'm not done."

Close (28-30s, on-screen text): following along here. no motivational stuff.

Caption:

13 years in tech. now i count donut trays at 4am and build the software myself. real numbers in bio.

Hashtags: #smbops #multiunitoperator #internaltools #donutshop #dfwsmallbusiness #buildlog #deskless

Pinned comment:

i write longer once every two weeks — link in bio. operator audience only.


Voice check (passes all)

  • ✅ Real numbers in every paragraph (October 2024, six-figure, 5/12/13/7/20+/3/$60K/18)
  • ✅ No "financial freedom," "no fluff," "follow for the build," "anyone can build"
  • ✅ No second-person motivation
  • ✅ Operator POV throughout
  • ✅ Tension before payoff (Sunday night dread → planned layoff)
  • ✅ Show the replacement (~$60K/yr SaaS)
  • ✅ No identity claims ("I'm an AI builder") — let the artifacts label
  • ✅ One CTA only — "Following along here." Standing offer, not a comment-keyword bait

Ship it.

Day 15 — Variance

Day 15 — The Variance Story

Replaces the "month 4 almost killed us" angle from the prior plan. That story was fictional. This one is real and more interesting — it's the W-2 stability vs. portfolio control tradeoff that no other creator in the lane is articulating.


LinkedIn (primary, ~400 words, proper case)

The hardest adjustment after corporate wasn't the money. It was the variance.

Tech salary: same direct deposit every other Friday for 13 years. You forget how much that conditions you. Mortgage, insurance, daycare-equivalent expenses — all timed off a number that arrived like clockwork.

Now my income is 7 donut shops + GP/LP distributions on a different cadence. Same average. Very different shape.

Some months a shop has a generator go out at 3am and the morning is dead — opening late, half the product short, labor still on payroll. Some months food costs spike on flour or oil for reasons that have nothing to do with my operation. Some months a manager quits on a Tuesday and the next two weeks are a rebuild. Some months everything works and the variance hides.

Cash is fine. The number is fine. The number just moves.

What I underestimated was how much mental overhead the variance costs you until you build the discipline for it. The first six months I'd refresh the dashboard four times a day. Not because anything was wrong. Because the predictability I'd had for 13 years was gone and I hadn't built the replacement.

So I did what I did at work. Built the observability for it.

13-week rolling cash forecast. Anomaly alerts when a shop underperforms its 28-day baseline. Buffer rules I'm not allowed to break (six months of fixed costs sitting separate, untouched). Daily ops summary in Discord at 6am so I'm not surprised by anything when I open my laptop.

Same software discipline I used building products for someone else's roadmap. Different domain.

Once the system was in place the mental overhead disappeared. Not because the variance went away. Because I could see it coming and I'd already decided how to respond.

The W-2 sells you stability. The portfolio sells you control. You don't get both — there is no version of operator life where the cash flow is as smooth as a paycheck and you still own the upside.

The trade is fair. But the work to make the trade survivable isn't the acquisition. It's the operating discipline that comes after.

Which is the part nobody posts about.

Hashtags: #smbtwitter #etaforum #deskless #searchfund #operatormindset


Instagram (carousel, lowercase, 7 slides)

Slide 1 (title): the hardest part of leaving corporate wasn't the money. it was the variance.

Slide 2: tech salary: same direct deposit every other friday. 13 years of that conditions you.

Slide 3: now: 7 shops + investor distributions on a different cadence. same average. very different shape.

Slide 4: some months a generator dies at 3am. some months food costs spike. some months a manager quits tuesday. cash is fine. the number just moves.

Slide 5: what i underestimated: how much mental overhead the variance costs until you build the discipline for it.

Slide 6: what i built: 13-week rolling cash forecast anomaly alerts on shop baselines buffer rules i can't break 6am ops summary

Slide 7 (close): the w-2 sells you stability. the portfolio sells you control. you don't get both.

Caption:

6 months in i was refreshing the dashboard four times a day. not because anything was wrong. because the predictability i had for 13 years was gone and i hadn't built the replacement.

so i built it. same software discipline. different domain.


TikTok (talking head, 35 sec, lowercase)

Hook (frame 1): the hardest part of leaving corporate wasn't the money.

Beat 1 (0-8s, talking head): "it was the variance. tech salary — same direct deposit every other friday for 13 years. you forget how much that conditions you."

Beat 2 (8-18s, screen-record cuts to ops dashboard): "now my income is 7 donut shops plus investor distributions. same average. very different shape."

Beat 3 (18-28s, talking head): "some months a generator dies at 3am. some months food costs spike. cash is fine. the number just moves. and the mental overhead of that costs more than i expected — until i built the observability for it."

Beat 4 (28-33s, screen-record of alerts): "13-week rolling cash forecast. anomaly alerts. buffer rules. same software discipline, different domain."

Close (33-35s, on-screen text): the w-2 sells you stability. the portfolio sells you control. you don't get both.

Caption:

what nobody posts about: the operating discipline that comes after the acquisition. real receipts in bio.


Why this works

  • Originality: no one else in the lane is articulating this. Codie talks acquisition glamour. Nick talks ops. Levels talks SaaS revenue. Nobody talks about the cognitive load of variable income for someone trained on W-2.
  • SWE-credible: the "observability for cash flow" framing only works coming from someone who built observability systems professionally. It's Jack's actual moat.
  • Honest: doesn't sell the dream, doesn't bash corporate, doesn't claim AI solved it. Just names a real tradeoff and shows the engineering response.
  • Compounds: this is the seed for a series — Day 22 could be "the buffer rules I won't break," Day 28 could be "what 13-week rolling cash forecast actually looks like." Whole subsequent posts come out of this one.

Ship it Day 15.

LinkedIn — 30 Day

Jack Yen — LinkedIn 30-Day Content Calendar

"Receipts from the Back Office" Window: Days 1–30 | Primary Lane: Donuts (Golden Glaze) | Voice: Operator, reflective, real numbers


1. Positioning

Channel intent on LinkedIn (vs IG / TikTok):

  • IG / TikTok = short-form proof-of-life, behind-the-scenes texture, audience growth.
  • LinkedIn = the receipts channel. Longer cadence, fewer posts, more reflection, more numbers. The audience here is ex-tech peers, SMB operators, PE / ETA / search fund people, vertical SaaS founders, and the occasional LP. They will scroll past anything that smells like a motivational deck. They will read 400 words if there is one real number in the first line.

Differentiator from the rest of the "ex-tech buys an SMB" feed: Most of that content is either (a) acquisition-stage romance ("here's how I found the deal") or (b) cosplay — Loom tours of a business someone is about to run for the first time. Jack's lane is operator year 2: actually running 7 donut shops with 20+ deskless employees while building the software himself in the back office. Different shape. Less glamorous. More credible.

Format mix (target over 30 days):

  • 60% native long-text posts
  • 25% document carousels (uploaded as PDFs — heavier dwell-time weight than image carousels)
  • 10% native video (under 90 seconds, captioned, vertical-friendly but trimmed for desktop)
  • 5% polls (used surgically — once, around a real operator question)

Cadence:

  • 4–5 posts per week, primary publish window Tuesday–Thursday, 7:00–9:00 AM CT
  • Friday used for lighter reflection / week-in-review type content
  • No weekend posting in Month 1 (saved for repurposing later if a post needs a second life)
  • ~20 posts across the 30-day window

Hashtags: 3–5 niche per post, never generic. #smbtwitter over #business. #searchfund over #entrepreneurship. Often zero hashtags is correct on LinkedIn — used only when the niche is precise enough to matter.


2. Content Pillars

Five pillars carry the calendar. Month 1 leans 80% into Pillar 1 (Donut Operations) with Pillar 4 (Tech-to-Operator) as the through-line. STR/MTR (Pillar 2) is briefly introduced in the Day 1 origin post only — its dedicated lane opens in Month 2.

Pillar 1 — Donut Operations (Golden Glaze) 7 shops, GP/LP fund structure (Reg D 506(b)), 20+ deskless employees, 4am production floors. Unit economics, hiring, turnover, equipment failures, the actual decisions. The unglamorous middle.

Pillar 2 — STR / MTR Portfolio 11 units across Hawaii, DFW, Tampa. Insurance housing, displaced families, traveling employees. Different lane than the Airbnb-bro content. Introduced in Day 1 origin only during Month 1. Full lane opens Month 2.

Pillar 3 — Custom Software (Built Solo with AI) Discord ops layer, daily reporting, automated investor reports, scheduling. Now building inventory management and guest messaging. $60K/yr of third-party SaaS replaced so far. The "vertical SaaS for myself" angle that resonates with the technical half of the audience.

Pillar 4 — Tech-to-Operator Tradeoffs 13 years in tech, 6 companies, six-figure salary, planned layoff, six-figure severance. The honest math on what changes when you swap the W-2 for the portfolio. Variance, identity, decision speed, deskless management. This is the highest-engagement lane.

Pillar 5 — Fund / Capital Structure GP/LP mechanics, investor reporting cadence, why automated reports matter when you're a sub-scale GP. Lighter touch — used to attract LP and search-fund attention without sounding like a pitch.


3. Day-by-Day Calendar

Day 1 — Tuesday, May 19 | Format: Long text | Pillar 4 (origin)

October 2024. 13 years in tech, six different companies, six-figure salary, full golden handcuffs. Every Sunday night I dreaded Monday and told myself it was just a season. I told myself that for five years.

Then I planned my way to a layoff.

Read the room — tech was deep in layoff cycles in 2024 — and let the timing work for me. Walked out with a six-figure severance. By that point I already had 5 short-term rentals cashflowing across Hawaii and DFW, and 12 months of savings stacked. Not a leap. A runway.

18 months in now.

11 STR/MTR units across Hawaii, DFW, and Tampa — more than doubled. Displaced families, traveling employees, insurance housing. Different lane than the Airbnb-bro content.

7 donut shops in DFW. GP/LP fund structure. 20+ employees on a kitchen floor at 4am. Running on custom software I built solo in three weeks with AI — Discord ops layer, daily reporting, automated investor reports, scheduling. Now building inventory management and guest messaging too. Roughly $60K/yr of third-party software replaced so far. Still growing.

Two physical-asset businesses. One operator. One laptop in the back office.

The hardest part wasn't the math. I managed engineers on Slack and Teams for 13 years. I'd never managed a deskless workforce — 20 people on a kitchen floor at 4am who don't read messages between shifts. Different problem. Different tooling. None of the SMB SaaS in this category was built for it.

So I'm building it.

I'm not here to tell you to buy a small business. Most of the "ex-tech buys an SMB" content online is cosplay. The work is unglamorous. Margins are thin. You will spend a Saturday driving between locations because a POS won't sync or a turnover crew is late.

But if you spent a decade building software that someone else owned, and you're wondering whether the operator side is more interesting than the IC side — I'll tell you what I'm learning. With real numbers. As I go.

Following along here. No motivational stuff. Just receipts.

Hashtags: #smbtwitter #searchfund #etaforum


Day 2 — Wednesday, May 20 | Format: Long text | Pillar 1

4:12 AM, three weeks into owning Golden Glaze.

I drove to one of the shops because the opener didn't clock in. Walked in expecting an empty kitchen and instead found three of my employees already mid-production. No one had texted me. They just started.

That was the first time I understood the gap between managing engineers on Slack and running a deskless workforce.

Engineers self-report. They write status updates. They DM when blocked. The whole culture is built around making work visible because the work is invisible.

In a donut kitchen at 4am, the work is the visible part. The status update is the tray of glazed old-fashioneds on the rack. If you want to know what's happening, you go look. Nobody is going to type it for you.

That single shift broke 13 years of mental model.

It's also why almost none of the SMB software I evaluated felt right. It was all designed around the assumption that the operator wants more reporting surface. What I actually wanted was less. I wanted the floor to push exceptions to me, not status. Tell me when something is off. Otherwise, assume the trays are getting made.

Building toward that now.

If you're moving from managing knowledge workers to managing deskless ones, the biggest unlearning is this: don't replace the floor's visibility with a dashboard. Replace it with an exception channel.

Hashtags: #operations #smb #deskless


Day 3 — Friday, May 22 | Format: Document carousel (PDF, 8 slides) | Pillar 3

Title slide: "I replaced $60K/yr of third-party software with 3 weeks of AI-assisted code. Here's the stack."

Slide 2: What I was paying for before (line items, no logos — scheduling platform, ops chat tool, reporting suite, investor portal, SMS broadcast).

Slide 3: The unlock — I'm the only user that matters. Vertical SaaS is built for the median customer. I'm not the median. I can ship for an audience of one.

Slide 4: Layer 1 — Discord as the ops surface. Why a free chat tool beat purpose-built ops software for a deskless team.

Slide 5: Layer 2 — Daily reporting. One job, one Slack-style summary, exception-first.

Slide 6: Layer 3 — Automated investor reports. GP/LP fund structure means quarterly reporting isn't optional. So it's a job that runs itself.

Slide 7: Layer 4 — Scheduling. The piece I expected to be hardest. Was the easiest.

Slide 8: What I'm building next — inventory management + guest messaging. Different problems, same pattern: replace the SaaS bill with the smallest possible internal tool.

Post copy accompanying the carousel:

Most "I replaced my SaaS stack with AI" posts on this site are theoretical. Here is what I actually did.

Three weeks. Solo. ~$60K/yr of contract value replaced.

The full stack in the carousel. I'll do a follow-up on what I would NOT recommend building yourself — the line moves faster than people think.

Hashtags: #verticalsaas #aiengineering #smbtech


Day 4 — Tuesday, May 26 | Format: Long text | Pillar 1

Hiring for a donut shop is a different skill than hiring for a tech team.

In tech, the cost of a bad hire is months. You see it slowly — slipped commits, weak reviews, fading ownership. There's time to course-correct.

On a kitchen floor, the cost of a bad hire is one shift. You see it the next morning at 4am when the fryer wasn't preheated.

That compression has changed how I interview.

I stopped asking about experience. I started asking what someone does between 4 and 6am at their current job. If the answer is detailed and specific, they're a worker. If it's vague, they're a story. The job is too physical and too early for stories.

I also stopped optimizing for the best candidate in the room. I optimize for the candidate who is going to be on the floor in 90 days. Tech taught me to hire for ceiling. Donuts taught me to hire for retention. Different math.

The retention math:

  • A great hire who stays 8 months costs me less than a "perfect" hire who quits in week 6.
  • A 6-month tenure across 20 employees at $14/hr beats a 3-month tenure at any number you can dream up.
  • Training cost is the entire game.

If you've only ever hired knowledge workers, the deskless playbook is genuinely different. Not harder. Different.

Hashtags: #hiring #operations #smb


Day 5 — Wednesday, May 27 | Format: Long text | Pillar 4

The day I signed the donut deal, three different people told me the same thing.

"You're going to miss the salary."

They were half right. I miss the predictability. I don't miss the salary.

Six-figure W-2 sounds like a lot until you actually sit with what it costs. It costs the option to say no on a Sunday night. It costs the right to choose what problem you work on Monday morning. It costs the calendar you don't own.

The portfolio doesn't pay better on a monthly basis. Some months it pays worse. But the swap I made — I traded a fixed price for an option.

The option to walk a shop at 5am and watch how the team works. The option to ship a feature on a Tuesday because I noticed a gap on a Monday. The option to take a Wednesday off and not ask anyone.

The salary was the easy part to replace. The identity around the salary was the hard part. I'd been "Jack at $TechCo" for 13 years. Now I'm just Jack, and the only person grading the work is the P&L.

That's a harder grader. But it's a more honest one.

Hashtags: #careerpivot #operatorlife


Day 6 — Thursday, May 28 | Format: Long text | Pillar 3

The piece of software I was most embarrassed to build is the one that's saved me the most time.

It's a Discord bot.

Not a SaaS app. Not a fancy dashboard. A Discord bot that lives in a server with my managers and runs the entire daily ops loop.

When I tell technical friends this, they wince. "Why Discord?" The answer is unsexy: because my managers were already on their phones, Discord is free, the notification model works for shift workers, and the bot I needed didn't exist as a product.

Here's what it actually does:

  • Receives end-of-shift summaries from each shop manager via a structured prompt.
  • Flags exceptions automatically (variance on waste, no-shows, equipment notes).
  • Pushes me a single morning digest at 6:45 AM with the previous day rolled up by shop.
  • Routes the photos managers send to a Drive folder named by date and shop, so I can audit visually without re-asking.

Cost: free chat tool + my own time. Replaced: ~$1,400/mo of "team ops" SaaS I was demoing. Time to build: a long weekend.

The lesson isn't "build everything yourself." The lesson is: when your team is already living in a free tool, the highest-leverage software is often the bot that meets them where they are. Not the platform that asks them to migrate.

Hashtags: #buildinpublic #opstech


Day 7 — Tuesday, June 2 | Format: Long text | Pillar 1

Week 2 of June, GP-LP quarterly reporting season starts ramping.

I want to talk about something I underestimated when I set up the fund: how much trust is built or lost in the cadence of reports, not the content of them.

GP/LP, Reg D 506(b), seven donut shops in DFW. My LPs are people I know — friends, ex-colleagues, a couple of family members who came in as accredited investors. The amount is meaningful to them. The relationship is meaningful to me.

What I learned in the first cycle: nobody actually reads the report cover to cover. What they remember is whether it showed up on time.

If the report is on time and clear, the assumption is the operation is on time and clear. If the report is late, every line item gets re-read with suspicion.

So I built the automated investor report flow first, before I built anything sexier. Pulls from the books, runs the variance, formats the PDF, queues the email. I press one button on the same day every quarter.

That's the unglamorous truth about being a sub-scale GP. The reporting discipline is the reputation. The reputation is the next raise.

If you're thinking about syndicating into SMB, do this part first. Not last.

Hashtags: #searchfund #smbpe #gpilp


Day 8 — Wednesday, June 3 | Format: Native video (~75s) | Pillar 1

Video setup: Shot inside one of the shops, early morning, ambient prep noise. Vertical 9:16 framed loose enough to use horizontally on LinkedIn. Captions burned in.

Script:

(0:00) "It's 4:47 AM at Shop 3."

(0:05) "There are four people on this floor right now. None of them have read a Slack message today. None of them are going to."

(0:13) "I spent 13 years managing engineers who lived in their inbox. This is a completely different management problem."

(0:22) "The tools you reach for first don't work. Group chats get ignored. Dashboards get ignored. Even text messages get ignored because phones are in lockers during the shift."

(0:35) "What works is a board on the wall. A whiteboard schedule. A printed prep sheet. And one person — the lead — who absorbs everything and reports it after."

(0:48) "I built a Discord bot to capture that one report, structured, every morning. That's the entire ops layer. It cost me nothing and it replaced four pieces of software."

(1:00) "If you're moving from a desk-job team to a deskless one, the unlearning is this: meet your team where their hands are. Not where your laptop is."

(1:12) End card: "More receipts at jackyen.com — link in profile."

Post copy accompanying the video:

A 75-second walkthrough of why the deskless workforce broke my entire management playbook in week one.

Watch with sound — there's prep noise in the background, which is the whole point.

Hashtags: #deskless #operations


Day 9 — Friday, June 5 | Format: Long text | Pillar 4

I had three job offers on the table when I left tech in October 2024. I turned all of them down.

I want to be honest about something I almost never see in the "ex-tech" content: I was not running from a bad job. I was running from a great job that was making me bad at my own life.

The offers were generous. One was a Director title at a name-brand company. One was a startup with real equity. One was a quieter L6 role at a place I respected. On paper, any of them was the right move.

And every Sunday, I'd think about taking one of them, and feel the exact same dread I'd felt for five years.

Here's the test I eventually used. I asked myself: if I take this job, what does my Tuesday at 2pm look like in 18 months?

For every offer, the answer was the same. Standups. Quarterly planning. A roadmap I'd inherit. A review cycle I'd manage. None of it bad. None of it mine.

Then I asked the same question about the donut deal that was on the table. Tuesday at 2pm: probably at the bakery, probably looking at the previous day's waste numbers, probably annoyed at something a vendor did, probably ten feet from the actual product.

The first picture was clean. The second was messy.

I picked the messy one.

18 months later, the Tuesday is messier than I imagined and more interesting than I hoped. I'm not telling you to do this. I'm telling you the Tuesday test is a more honest filter than the comp test.

Hashtags: #careerdecisions #operator


Day 10 — Tuesday, June 9 | Format: Long text | Pillar 1

A vendor tried to upsell me a $48,000/yr inventory system last month.

It would, allegedly, automate counts, integrate with my POS, predict waste, and "unlock data-driven decisions."

I asked the rep three questions:

  1. How many of your customers have under 10 locations?
  2. Of those, how many actively use the predictive features?
  3. What's the median monthly active user count per account?

The answers were, in order: "a few," "honestly, most don't get there," and "usually one or two."

So I'm paying $48K/yr for a tool that one of my managers might open twice a week. No.

I went home and started building the smallest possible internal tool that solves the actual problem. Mobile-first count entry. One screen per shop. Variance flag if today's count doesn't reconcile with yesterday + receiving - sales. That's it.

Three weekends of work. Maybe four.

This is the recurring pattern I keep running into: vertical SaaS in the SMB tier is priced for what it could do, not what the customer actually uses. The 80/20 of most of these tools is genuinely small.

If you're technical and you're running an SMB, you have a structural advantage the median operator doesn't. Use it. Build the 20%.

Hashtags: #verticalsaas #buildvsbuy


Day 11 — Wednesday, June 10 | Format: Document carousel (PDF, 7 slides) | Pillar 1

Title slide: "7 donut shops. One operator. Here's the morning routine."

Slide 2: 5:00 AM — Discord digest is already in my inbox from the overnight bot. Skim the exception flags. Three usually. Today, none.

Slide 3: 5:30 AM — Drive folder check. Yesterday's end-of-shift photos auto-routed by shop. 20 seconds per shop to skim. Visual audit. No questions for managers unless something's off.

Slide 4: 6:00 AM — Inbox. Ten minutes max. Vendor stuff, lease stuff, one LP question.

Slide 5: 6:30 AM — One shop visit, rotating. I'm physically in a different shop each weekday morning. Two shops per week never see me. By design. They run themselves or they don't.

Slide 6: 8:00 AM — Back at the desk. This is the only block where I write code or build. Two hours, uninterrupted. Phone face down.

Slide 7: Closing card: "The whole operation runs because I built the systems that let the morning end at 10am, not 2pm. Following along for more."

Post copy accompanying the carousel:

The version of this post that exists in 95% of LinkedIn "founder routine" content is fake. Here is the real one. With timestamps.

If you're considering operator-life, look at the timestamps and ask yourself if that's the shape of day you actually want. It is not for everyone. It is for me.

Hashtags: #operator #dailyroutine #smb


Day 12 — Thursday, June 11 | Format: Poll | Pillar 4

Poll question: If you left a six-figure tech salary to run a small business, what's the single hardest part of the transition?

Options (LinkedIn allows 4):

  • The variance in income shape
  • Managing a deskless team
  • Losing the "what do you do" identity
  • The lack of a peer cohort

Post copy:

I'll tell you which one I underestimated the most. But I'm curious what the room says first.

For context: I left tech in October 2024 to operate 7 donut shops and 11 STR/MTR units. 18 months in. All four of these have been real. One of them surprised me.

Voting closes Friday. I'll do a follow-up post on the one I picked.

Hashtags: none (polls don't need them).


Day 13 — Friday, June 12 | Format: Long text | Pillar 4 (poll follow-up)

Poll closed yesterday. The vote was close — "deskless management" and "variance in income shape" basically tied. The third was "identity." Almost nobody picked "peer cohort."

The one I personally underestimated the most was the peer cohort.

I want to talk about that one because it's the least discussed in the ex-tech operator pipeline.

In tech, I had a cohort by default. Standups. All-hands. Engineering Slack. Conferences. I'd walk into a coffee shop in any major city and recognize three people. The cohort was the air I breathed and I didn't notice.

In operator-land, the default is silence. My managers are not my peers — they work for me. My LPs are not my peers — they trust me with capital. My vendors are not my peers. My family is supportive but not in this fight.

The first six months, I genuinely didn't notice. I was too busy. By month nine, I noticed.

Here's what I've done about it, in case it's useful:

  • One real recurring call with another GP/operator I trust. Every other Friday. Both sides bring numbers.
  • Two looser group chats with ex-tech-now-operator folks. Lower frequency, higher signal than I expected.
  • LinkedIn, used like this — receipts, not theater — has started to do some of the work too.

If you're considering this jump, the question to ask yourself isn't whether you can handle the work. It's whether you can build the cohort from scratch. That part doesn't come with the deal.

Hashtags: #operator #smbtwitter


Day 14 — Tuesday, June 16 | Format: Long text | Pillar 3

The piece of advice that saved me the most software-build time this year:

Don't build features. Build the absence of meetings.

Every internal tool I've shipped has had the same test: does this remove a recurring conversation?

The Discord ops bot — removed the 7am call with managers. The daily digest job — removed the "how did yesterday go" check-in. The automated investor report — removed the "any update on the quarter?" emails. The scheduling layer — removed the back-and-forth on shift swaps.

I never set out to build software. I set out to delete meetings. Software just turned out to be the cheapest way.

This is also why I don't try to build a real product out of any of it. The moment I'd ship it externally, I'd have to add the features that justify the price tag — admin panels, RBAC, multi-tenancy, support docs. That's a different game. That's the game I just spent 13 years inside of.

The 80/20 of internal tooling is genuinely beautiful. Build for one. Ship in days. Delete the meeting. Move on.

Hashtags: #engineeringleadership #opstech


Day 15 — Wednesday, June 17 | Format: Long-form essay (long text) | Pillar 4

Essay: "The W-2 sells you stability. The portfolio sells you control. You don't get both."

The hardest adjustment after leaving corporate wasn't the money. It was the variance.

For 13 years, tech salary was the same direct deposit every other Friday. The number was big, but more importantly, the number was flat. Same date. Same amount. Same buffer it built into my checking account on a predictable curve. I could plan a year around it without thinking about it.

Now my income is 7 donut shops, plus distributions from the STR/MTR portfolio, plus the occasional GP-side draw from the fund. Same average over a 12-month window. Very different shape.

What I underestimated was how much mental overhead the variance costs until you build the discipline for it.

The first six months, I'd find myself doing math in my head at strange times. Standing in line for coffee, I'd suddenly think about whether a vendor invoice cleared. Mid-conversation at dinner, I'd remember that the LP distribution went out yesterday and the operating account was lower than I liked. The math wasn't hard. The math was unbidden. That's the cost. Not the dollars — the cycles.

The W-2 charges you a premium for stability. People talk about it like the premium is opportunity cost, the spread between your salary and what you could earn running your own thing. That's part of it, but it's not the load-bearing part. The load-bearing part is cognitive. The W-2 outsources your cash forecasting to your employer. The day you leave, you take that job back. Most people are not prepared for how much mental real estate it consumes.

So I built the observability for it. Same way I would have built it for a service at any tech job. A 13-week rolling cash forecast that updates from the books nightly. Anomaly alerts when a category swings beyond its rolling stddev. A buffer rule — operating account never drops below a defined floor, and if it gets within 20% of that floor, the system pings me before I notice. The same software discipline I used to deploy for someone else's product. Now deployed for the only customer that matters.

Once that existed, the cognitive load dropped to almost nothing. Not because the variance went away. Because the variance became someone else's job, and that someone else was a script that didn't need to think about it in line at coffee.

This is the part of the operator transition I wish I'd heard from someone before I made it: the goal isn't to eliminate the variance. The variance is the price of admission for the control. The goal is to build the discipline so the variance stops costing you cycles.

The W-2 sells you stability. The portfolio sells you control. You don't get both. But if you set up the observability right, you don't have to pay for the variance with your attention. You pay for it once, by building the system. Then the system pays for itself, every single day, by giving you back the cycles you used to spend worrying.

If you're considering the jump and the salary number is what's holding you up — the salary is rarely the right thing to optimize against. Optimize against the cognitive load. That's the real number.

Hashtags: #operator #careerpivot #smbfinance


Day 16 — Thursday, June 18 | Format: Long text | Pillar 1

A donut machine broke at 3:42 AM on a Tuesday last month.

The opener texted my GM. The GM texted me. I was awake by 3:55. By 4:10 I'd called the service vendor who's on our list. By 4:30 the vendor had a tech routed. By 5:15 the tech was on-site. By 6:00 we were producing again.

We lost roughly 90 minutes of production at one shop. Maybe $400 of contribution margin.

Now — for any of my software peers reading this — sit with that response time. That is the entire incident response loop. Page → triage → vendor dispatch → fix → resume → post-mortem. In 2 hours and 18 minutes. With one operator on a phone in pajamas.

I tell this story not to brag about the response. I tell it because it is the exact same pattern I ran for 13 years on web infrastructure. Page. Triage. Mitigate. Resolve. Post-mortem. The shape is identical.

What's different is the post-mortem.

In tech, the post-mortem is a doc. People read it. Engineers nod. Action items get filed in Jira. Maybe two of them ship.

In donuts, the post-mortem was me sitting with the GM at 7am, asking why the vendor on the top of our list wasn't the one we called first. Answer: she'd never actually had to call them, and the old GM had a different vendor in his head. So we updated the laminated card next to the manager's office. Done. Closed.

Two hours. One change. No Jira.

There is a version of incident response in SMB that is so much faster than tech precisely because there are fewer people in the loop. That is the whole job.

Hashtags: #incidentresponse #operations


Day 17 — Tuesday, June 23 | Format: Long text | Pillar 1

The single biggest unlock at Golden Glaze in the first 12 months wasn't software. It was a laminated card.

I'm serious.

When I took over the shops, every manager had a different mental model of what to do when something went wrong. Different escalation paths. Different vendors. Different "I'll just handle it myself" reflexes that quietly cost me money.

So I made a card. Single page. Front and back. Plastic-coated.

Front: every common failure mode, ranked by likelihood. Fryer down. POS offline. No-show opener. Refrigeration alarm. Walk-in temp drift. Each with three lines — who to call, what to do in the meantime, when to escalate to me.

Back: the daily close checklist, the deposit drop process, and the cash variance threshold above which the GM gets called.

Cost to produce: ~$60 at the print shop for 14 cards (two per shop). Cost saved in the first six months: I genuinely can't add it up. It's in the hundreds of monthly hours of decision overhead that just stopped happening.

The funny part is, this is the same thing I'd been building as a Confluence doc in tech for a decade. Runbooks. The only difference is plastic instead of HTML, and a wall instead of a wiki.

The runbook itself is the leverage. The format follows the workforce.

Hashtags: #operations #runbooks


Day 18 — Wednesday, June 24 | Format: Document carousel (PDF, 6 slides) | Pillar 5

Title slide: "What a sub-scale GP actually does. 5 honest slides on running a small fund."

Slide 2: The structure — Reg D 506(b), GP/LP, accredited investors only, real-asset SMB (donuts). Why this structure made sense for the size.

Slide 3: What "sub-scale" really means — under the threshold where institutional capital pays attention, over the threshold where you take this seriously. It's a real tier and most content ignores it.

Slide 4: Reporting cadence is the relationship. Quarterly report, automated, on the same day every cycle. The discipline of the date matters more than the prose.

Slide 5: The boring math no one posts — fees, alignment, the carry conversation, why I structured my own GP draw the way I did.

Slide 6: What I would do differently if I started today. Spoiler: build the reporting automation before the first close, not after.

Post copy accompanying the carousel:

The "I run a fund" content on LinkedIn skews to two extremes: institutional PE people, and people pretending to be them. There's a real middle tier — sub-scale GPs running real businesses with friends-and-family-and-accredited capital. That's where I sit.

Here is what that tier actually looks like, with no varnish.

Hashtags: #searchfund #smbpe #regd


Day 19 — Thursday, June 25 | Format: Long text | Pillar 4

A thing I notice about ex-tech operators that I want to name out loud:

Most of us are quietly homesick for the codebase.

It comes out in weird ways. We over-build internal tools. We refactor the chart of accounts. We spend a Saturday "automating" something that could be done with a sticky note. We call this "leverage" but sometimes it's just nostalgia in a hoodie.

I caught myself doing this around month seven. I'd spent a weekend re-architecting the Discord bot to support "future expansion." There was no future expansion. There was one bot, one user, one workflow. I was just lonely for the part of my brain that ran for 13 years.

I cut the refactor. Shipped the bot at the original quality level. Went and walked a shop.

The walk-the-shop muscle is the one that atrophies in ex-tech operators. The build-the-thing muscle is the one we'll over-train on, given the slightest excuse.

If you're early in this transition, here's the test: when you find yourself opening the editor on a Saturday for an "improvement," ask whether a manager would notice the change. If the answer is no, close the editor. Go to a location instead.

The codebase isn't where the leverage is anymore. The floor is.

Hashtags: #operator #engineerleader


Day 20 — Tuesday, June 30 | Format: Long text | Pillar 1

Month-end at Golden Glaze.

Some numbers from the last 30 days, because LinkedIn rewards specificity and because I said this would be a receipts feed:

  • 7 shops, all producing daily, zero closures.
  • One overnight equipment failure, mitigated in under 3 hours.
  • 2 hires, 1 resignation, current floor headcount sitting where I want it.
  • Software: shipped two updates to the daily digest bot, started the inventory module.
  • Investor side: prepared the Q2 report, on track to send the day it's due.
  • STR / MTR side: portfolio held steady at 11 units, occupancy where it should be for this season. (Lane I'll write more about next month.)

What I'm watching going into July:

  • A vendor contract that's coming up for renewal where I think I can negotiate $9K/yr out of the line.
  • A second tier of inventory build, where the variance flag goes from "tells me" to "tells the manager and tells me."
  • A shop where the lead's tenure is now over a year. Promotion conversation is teed up.

The shape of the month is unglamorous. That is the point. The wins are in the variance staying flat and the systems staying boring.

If you're considering this lane, this is what a "good month" looks like from the inside. No fireworks. Just the dials staying where I put them.

Hashtags: #smb #operations #monthlyrecap


4. Newsletter — "Receipts from the Back Office"

Cadence: Bi-weekly, published natively on LinkedIn as a Newsletter (own the subscriber list, decoupled from the feed algorithm). Length: 800–1,200 words per issue. Longer than a post, shorter than an essay. Promise: Real numbers from an operator who builds his own software. No motivational content.

Issue 1 — "How I planned my way to a layoff" The full timeline of the October 2024 exit. The financial setup that made it possible (5 STRs cashflowing, 12 months savings). The honest cost-benefit. What I would not recommend doing the same way. The piece of advice I keep giving ex-tech friends who ask.

Issue 2 — "$60K/yr of SaaS, replaced in three weeks" The full stack breakdown of the internal tools — Discord bot, daily digest, investor reports, scheduling. What each one replaced. What I would NOT recommend building yourself (calendar, payroll, accounting — leave alone). The pattern for deciding build vs buy when you're an audience of one.

Issue 3 — "Managing 20 people on a kitchen floor at 4am" The deskless workforce playbook. Why Slack/Teams instincts fail. The laminated card. The whiteboard culture. The single Discord report that replaced four standups. The hiring filter changes. The retention math.

Issue 4 — "Variance is the price of admission" The expanded essay from the Day 15 post. The cash forecasting system. The buffer rules. The cognitive cost of unbidden math. How to set up the observability so you stop paying for variance with your attention.

Issue 5 — "What a sub-scale GP actually does" The Reg D 506(b) structure, plainly. Quarterly reporting as relationship infrastructure. The honest mechanics — fees, alignment, the carry conversation, the GP draw decision. What I'd structure differently if I started today. (Note: structured carefully — informational, not a solicitation.)


5. Engagement Plan

Daily target: 5 substantive comments on 5 different accounts. Not "great post." Genuine extensions of the original idea, ideally adding one specific number or counterexample from operator life. This is the warm-up before the post-publish window.

Profile types to engage with daily:

  1. Ex-tech operators / SMB acquirers — people 6–24 months into their own buy-out. Mutual signal. Build the peer cohort the Day 13 post named.
  2. Search fund / ETA voices — the established names (operators with 3+ year track records) and the rising voices (people sharing real LOI / diligence content). Comment for visibility-in-the-niche, not for follows.
  3. Vertical SaaS founders in SMB-adjacent categories — restaurant tech, deskless workforce tools, ops platforms. Jack's "I built it myself" lane is interesting to them because it's the customer voice they rarely hear.
  4. LP / family-office voices who post publicly — light-touch engagement on substance, never pitch. Plays a long game for future fund growth.
  5. Ex-tech career-pivot voices — broader resonance audience. People considering the jump are the strongest future newsletter subscribers.

Post-publish engagement protocol:

  • First 60 minutes: respond to every comment, substantively. Reward the early commenters with a real reply, not a thank-you.
  • Hours 1–4: keep checking, keep replying. The algorithm reads continued conversation as quality signal.
  • Day 2 morning: one last sweep of any overnight comments.
  • Never thank generic compliments with another generic thank-you. Either extend the idea or pass.

6. Lead Magnet (LinkedIn-Specific)

Title: "The Ex-Tech Operator's Internal Tools Stack — what I built, what I bought, what I'd skip"

Format: A 12-page PDF, gated by email signup to the Newsletter. Distinct from any IG/TikTok lead magnet, which leans more lifestyle/transition-narrative. The LinkedIn magnet is technical and operator-facing.

Contents:

  1. The 4 internal tools I built in 3 weeks (Discord ops, daily digest, investor reports, scheduling) — what each replaced and what it cost.
  2. The 3 categories I refuse to build myself (accounting, payroll, calendar) and why.
  3. The build-vs-buy decision matrix I actually use.
  4. A copy-pasteable Discord bot starter skeleton for end-of-shift reporting.
  5. The "audience of one" principle — why most SMB SaaS pricing makes building yourself rational.

Why it converts on LinkedIn specifically: the audience here is technical enough to want the artifact, busy enough to value the shortcut, and senior enough that the email-signup friction is non-blocking.

Distribution mechanic: Pinned to the Featured section on the profile. Referenced in the Newsletter welcome flow. Mentioned in carousel CTAs (Day 3, Day 11, Day 18), never in long-text posts (where pitching breaks the voice).


7. Connection Request Strategy

Default rule: Never use the default LinkedIn copy. Every request is personalized, references a specific piece of content, and ends with no ask.

Three templates Jack will rotate:

Template A — Commenter-to-connection (highest conversion):

Saw your comment on the [topic] post — your point about [specific detail] was the part I was hoping someone would push back on. Connecting because I'd like more of your voice in my feed. No ask.

Template B — Operator peer:

18 months into running 7 donut shops and 11 STRs after leaving tech. Saw you're [specific stage / specific business]. Always trying to build the cohort. No pitch, just want to follow your stuff.

Template C — Vertical SaaS founder:

Building internal tools for my own SMB after replacing ~$60K/yr of vertical SaaS. Saw your post on [their product / category]. Curious to follow — I think the "audience of one" operator is a customer profile your category underweights.

Volume: 10–15 personalized requests per week. Quality over throughput. 30%+ acceptance is the floor — anything lower means the personalization is sloppy and needs to be tightened.

Who NOT to send to in Month 1:

  • LPs or potential LPs (no capital conversations during brand-build phase — protect the line)
  • Recruiters (different lane, different signal, dilutes the operator positioning)
  • Generic "founder" accounts with no specific intersection

8. Month 1 Success Criteria

By Day 30, the calendar is considered on-track if:

  • 4+ posts cross 10K impressions (LinkedIn's natural ceiling for a small but quality follower base in this niche).
  • 1+ post crosses 50K impressions. Likely candidates: Day 1 origin, Day 15 essay, Day 18 GP carousel.
  • 30%+ of comments are substantive (more than emoji or "great post").
  • At least 5 inbound DMs from the target profile types (ex-tech operators, vertical SaaS founders, search-fund voices). Recruiter spam doesn't count.
  • Newsletter live by Day 14, Issue 1 published by Day 21, 100+ subscribers by Day 30.
  • Featured section optimized with lead magnet by Day 7.
  • Profile headline rewritten by Day 3 (working draft: "Operating 7 donut shops + 11 STR/MTR units after 13 years in tech. Building the software in the back office. Receipts, not theater.")

If the post that underperforms is Day 1, the voice is too soft — re-cut. If the post that overperforms is Day 15, the calendar is correctly weighted toward the tech-to-operator lane and Month 2 should keep that ratio.


End of 30-day plan. Month 2 opens the STR/MTR lane (Pillar 2), introduces the second carousel cadence, and triggers the first newsletter cross-promotion to IG/TikTok audiences.

Instagram — 30 Day

instagram 30-day content calendar — jack yen / golden glaze

operator pov. donut shop month-1. all lowercase. real numbers. receipts only.


format mix + cadence

format distribution (30 posts):

  • reels: 40% (12 posts) — hooks, builds, time-on-floor moments
  • carousels: 33% (10 posts) — origin, teardowns, build screenshots, p&l snapshots
  • single feed posts: 17% (5 posts) — photo + caption, low-lift
  • story-only days: 10% (3 days) — no grid post, stories carry the day

posting cadence: 1 grid post/day, 6 days/week (sun = stories-only or rest). 30-day plan uses 27 grid posts + 3 stories-only days.

time slots (CT — dfw):

  • primary: 6:15a CT (kitchen floor live, before morning rush ends)
  • secondary: 11:45a CT (lunch scroll)
  • reels-priority: 7:30p CT (evening engagement window)

posting rule: reel or carousel goes primary slot. single posts go secondary. never two posts same day except day 1 launch.


day-by-day calendar

week 1 — the origin + the receipts

day 1 — mon — carousel (origin post, launch)

  • format: 8-slide carousel
  • hook (slide 1): "october 2024. i planned my way to a layoff."
  • caption:

    october 2024. 13 years in tech, six different companies, six-figure salary, full golden handcuffs. every sunday night i dreaded monday and told myself it was just a season. i told myself that for five years.

    then i planned my way to a layoff.

    read the room — tech was deep in layoff cycles in 2024 — and let the timing work for me. walked out with a six-figure severance. by that point i already had cashflowing assets and 12 months of savings stacked. not a leap. a runway.

    18 months in now.

    7 donut shops in dfw. gp/lp fund structure. 20+ employees on a kitchen floor at 4am. custom software i built solo in three weeks with ai — discord ops, daily reporting, automated investor reports, scheduling. now building inventory management and guest messaging too. roughly $60k/yr in third-party software replaced so far. still growing.

    the hardest part wasn't the math. i managed engineers on slack and teams for 13 years. i'd never managed a deskless workforce — 20 people on a kitchen floor at 4am who don't read messages between shifts. different problem. different tooling. none of the smb saas in this category was built for it.

    so i'm building it.

    no motivational stuff. just receipts.

  • visual: slides alternate between phone-shot kitchen floor (4am low light, fryer glow) and screen-grab of the discord ops dashboard. slide 8 = signature shot, hands sleeve-deep in dough rack.
  • hashtags: #smbowner #operatorlife #buildinpublic #dfwbusiness #donutshop #foodservice #smboperator #independentbusiness #franchisefree #kitchenops #deskless #foundermode
  • cta: none. let it breathe.

day 2 — tue — reel (60s)

  • format: vertical reel, 60s
  • hook (text on screen): "4am. 20 people on the floor. zero of them check slack."
  • caption:

    the unsexy operator problem nobody writes about.

    i managed engineers on slack and teams for 13 years. you ping, they answer in a thread, you move on. clean.

    kitchen floor at 4am is a different planet. no laptops. flour-covered hands. headphones in. shift changes mid-conversation. the smb saas built for "communication" assumes everyone has a desk. mine don't.

    spent week one trying group texts. week two trying whatsapp. week three i opened a code editor.

  • visual: handheld walking shot through the kitchen at 4am. fryer, proofing rack, mixer running, employee giving a thumbs up. cut to laptop screen showing first commit.
  • hashtags: #smbops #desklessworkforce #operatorproblems #donutshop #kitchenops #buildinpublic #smbsoftware #foodservice #ownerlife #dfw
  • cta: none

day 3 — wed — carousel (the build, screenshots)

  • format: 6-slide carousel
  • hook (slide 1): "i built the ops stack in 3 weeks. solo. with ai."
  • caption:

    the stack, plainly:

    — discord ops (replaces a shift comms tool) — daily reporting (replaces a bi/dashboard sub) — automated investor reports (replaces a fund admin add-on) — scheduling (replaces a workforce mgmt sub)

    ~$60k/yr in third-party software i don't pay for anymore. building inventory mgmt + guest messaging next.

    three weeks. one operator. ai pair-programming for the parts i'd have hired out a year ago.

  • visual: slide 2-5 are dashboard screen-grabs (blur any pii). slide 6 = the git log showing commit cadence over 21 days.
  • hashtags: #buildinpublic #aicoding #smbsoftware #foundermode #operatorlife #saasreplacement #indiehacker #donutshop #smbops #kitchenops
  • cta: none

day 4 — thu — single feed post

  • format: single photo
  • caption:

    7 shops. one of them opens at 4. one at 4:30. one at 5. the others stagger after.

    the schedule isn't a calendar. it's a system. when one shop's opener doesn't show, the closest assistant manager gets pinged in discord and the bench is already ranked by distance + last-shift-worked.

    i didn't build that to be clever. i built it because i was the one driving across dfw at 3:50am the first time it broke.

  • visual: photo of the dfw map with 7 pins, taken on phone, slightly grainy. timestamp visible.
  • hashtags: #smbops #multiunit #donutshop #dfwbusiness #operatorlife #foodservice #ownerlife #kitchenops #franchisefree #independentbusiness
  • cta: none

day 5 — fri — reel (45s)

  • format: vertical reel, 45s
  • hook (text on screen): "$60k/yr in software i don't pay for. here's the math."
  • caption:

    teardown:

    — shift comms tool: ~$8/user/mo × 20+ = ~$2k/mo — bi dashboard sub: ~$400/mo at our seat count — fund admin reporting add-on: ~$1.1k/mo — workforce/scheduling: ~$6/user/mo × 25 = ~$1.5k/mo

    rough run rate north of $60k/yr. i built it solo in 3 weeks with ai assistance. not because i hate vendors. because none of them fit a 4am kitchen floor + a gp/lp fund + 7 locations.

    off-the-shelf works until your shape stops matching theirs.

  • visual: screen recording walking through each tool's pricing page, then cut to your replacement dashboard for each.
  • hashtags: #saasreplacement #smbsoftware #buildinpublic #aicoding #operatorlife #smbops #foundermode #indiehacker #donutshop #foodservice
  • cta: none

day 6 — sat — single feed post

  • format: single photo
  • caption:

    saturday morning at shop #3. busiest of the week.

    14 dozen out the door in the first 90 minutes. the fryer's been on since 3:30. the manager has been here longer than that.

    a thing you learn running 7 of these: the saturday rush isn't a marketing event. it's an operations event. the marketing was done thursday — the prep sheet, the bench depth, the dough hydration call the night before.

  • visual: customer line out the door, taken from behind the counter. anonymous.
  • hashtags: #donutshop #smbops #saturdaymorning #dfwbusiness #foodservice #operatorlife #kitchenops #independentbusiness #multiunit #ownerlife
  • cta: none

day 7 — sun — stories only

  • no grid post. stories carry the day (see weekly stories cadence below).

week 2 — the build + the variance

day 8 — mon — carousel (teardown)

  • format: 5-slide carousel
  • hook (slide 1): "the ops stack, slide by slide."
  • caption:

    walking through what's running in production at golden glaze right now.

    1/ discord ops — managers post their open + close in a structured thread. images, counts, anomalies. it's a chat ui because that's what the floor will actually use.

    2/ daily reporting — pulls pos + labor + waste into one morning digest. lands in my inbox by 9:30a.

    3/ investor reports — gp/lp fund. lp's get a monthly pdf, auto-generated from the same source of truth as my ops view. one number, two audiences.

    4/ scheduling — bench-aware. takes "who can drive to which shop in <20 min" as a constraint.

    next up on the bench: inventory mgmt + guest messaging.

  • visual: 4 dashboard screenshots + 1 architecture diagram. clean.
  • hashtags: #buildinpublic #aicoding #smbsoftware #operatorlife #foundermode #smbops #indiehacker #saasreplacement #donutshop #multiunit
  • cta: none

day 9 — tue — reel (30s)

  • format: vertical reel, 30s
  • hook (text on screen): "managers don't read between shifts. so i stopped writing."
  • caption:

    the lesson: a deskless workforce doesn't read. they scan.

    rewrote every internal message: subject line is the action. body is the receipt. no preamble. no "hope you're doing well." images over words wherever possible.

    read rate went from "i'll guess" to "the discord shows me."

  • visual: split screen — left = old slack-style message wall of text. right = new structured discord card with photo + 1 line.
  • hashtags: #smbops #desklessworkforce #operatorlife #kitchenops #foodservice #multiunit #internalcomms #buildinpublic #smbsoftware #donutshop
  • cta: none

day 10 — wed — carousel (p&l snapshot)

  • format: 4-slide carousel
  • hook (slide 1): "what a 7-shop p&l actually looks like (rough shape)."
  • caption:

    not exact numbers, real shape:

    — cogs runs ~30-32% on a good month, 34-36% when sugar moves — labor sits ~25-28%, swings with how clean the schedule is — rent + occupancy ~8-12% depending on the shop — everything else (utilities, software, repairs, supplies) lives in the rest

    the variance in cogs alone can eat a manager's bonus pool in a bad month. that's why i built the daily report — i don't want to see this month-end. i want to see it tuesday.

  • visual: clean p&l template, % only, no $ figures. brand colors.
  • hashtags: #smbfinance #operatorlife #donutshop #foodservice #multiunit #unitfinance #smbops #buildinpublic #ownerlife #foundermode
  • cta: none

day 11 — thu — single feed post

  • format: single photo
  • caption:

    the bench.

    running 7 shops means you don't need every position covered today — you need every position covered for every shift for the next 14 days. and you need a rank-ordered list of who steps up if someone calls out at 3am.

    the bench is a database. i used to keep it in my head. then i kept it in a spreadsheet. now it's in the software, sorted by distance to each shop, last shift worked, and whether they've trained on the shop's specific equipment.

    head → spreadsheet → system. that's the path for almost every smb problem.

  • visual: phone photo of whiteboard with old bench list, smudged. caption mentions "the before."
  • hashtags: #smbops #operatorlife #multiunit #scheduling #kitchenops #donutshop #foodservice #buildinpublic #foundermode #ownerlife
  • cta: none

day 12 — fri — reel (60s)

  • format: vertical reel, 60s
  • hook (text on screen): "i built this in 3 weeks. here's what 'with ai' actually means."
  • caption:

    i keep getting asked "did ai build it or did you build it." both. here's how it actually worked.

    — i wrote the spec. ai wrote 70% of the first draft. — i ran it in prod. ai didn't. — when it broke at 4am because a manager uploaded a heic instead of a jpg, ai didn't fix that. i did. — when an lp needed a specific report format for their accountant, ai didn't know that. i did.

    ai compressed 6 months of solo dev into 3 weeks. it didn't replace the operator judgment. it replaced the typing.

  • visual: code editor + terminal split, time-lapse style. occasional cut to kitchen floor.
  • hashtags: #aicoding #buildinpublic #foundermode #indiehacker #smbsoftware #operatorlife #soloflounder #saasreplacement #smbops #donutshop
  • cta: none

day 13 — sat — single feed post

  • format: single photo
  • caption:

    5:47am. the morning rush is already 17 minutes in at shop #5.

    the manager didn't call me. the dashboard didn't ping me. that's the goal. quiet system = good morning.

    the boring software win: most days, nothing happens. that's the whole job.

  • visual: in-shop photo through the pickup window at sunrise.
  • hashtags: #donutshop #operatorlife #smbops #kitchenops #foodservice #ownerlife #multiunit #independentbusiness #dfwbusiness #foundermode
  • cta: none

day 14 — sun — stories only


week 3 — the variance + the hires

day 15 — mon — carousel (variance story)

  • format: 7-slide carousel
  • hook (slide 1): "the hardest part wasn't the money. it was the variance."
  • caption:

    6 months out of corporate.

    the hardest adjustment wasn't the money. it was the variance.

    tech salary: same direct deposit every other friday for 13 years. you forget how much that conditions you.

    now my income is 7 donut shops + investor distributions on a different cadence. same average, very different shape.

    some months a shop has a generator go out at 3am and the morning is dead. some months food costs spike. some months a manager quits tuesday.

    cash is fine. the number is fine. the number just moves.

    what i underestimated was how much mental overhead that costs until you build the discipline for it. so i did what i did at work — built the observability for it. 13-week rolling cash forecast. anomaly alerts when a shop underperforms its 28-day baseline. buffer rules i'm not allowed to break.

    same software discipline. different domain.

    the w-2 sells you stability. the portfolio sells you control. you don't get both.

  • visual: slide 1 = bold text. slides 2-6 = clean charts (rolling forecast, anomaly chart, 28-day baseline overlay). slide 7 = the buffer rules written out.
  • hashtags: #operatorlife #smbfinance #foundermode #cashflow #smbops #buildinpublic #postcorporate #ownerlife #portfoliolife #donutshop
  • cta: none

day 16 — tue — reel (45s)

  • format: vertical reel, 45s
  • hook (text on screen): "i hired 20+ people on a kitchen floor. none of them are 'engineers.'"
  • caption:

    13 years managing engineers. then 18 months managing fryers, openers, closers, baker leads, assistant managers, district leads.

    what changed:

    — feedback loops are physical, not async — onboarding is 1:1 on-the-floor, not docs — the best ic isn't the loudest in standup; they're the one whose station is already mise-en-placed at 3:55a — psychological safety still matters. the words are just different.

    management is the same skill. the surface area is unrecognizable.

  • visual: cuts of the floor, hands working, no faces required. b-roll heavy.
  • hashtags: #peopleops #smbops #foodservice #management #operatorlife #kitchenops #desklessworkforce #multiunit #donutshop #foundermode
  • cta: none

day 17 — wed — carousel (system teardown)

  • format: 5-slide carousel
  • hook (slide 1): "the 4am opening checklist. before software. and after."
  • caption:

    1/ before — paper checklist on the wall. signed at the bottom. lost twice a week. no photos. no timestamps.

    2/ after — same checklist in discord. each item gets a photo. timestamp is automatic. if oven temp is logged outside spec, the assistant manager and i both get a ping.

    3/ what changed in the metrics: missed-item rate dropped to ~near zero (we still find edge cases). morning anomalies surface inside 5 minutes instead of at noon.

    4/ what didn't change: the checklist itself. the discipline was already there. the tool just stopped losing the receipts.

    5/ the lesson — most "process problems" in smb are receipts problems.

  • visual: side-by-side photos. paper checklist → discord card screenshot.
  • hashtags: #smbops #operatorlife #kitchenops #buildinpublic #smbsoftware #foodservice #checklist #process #multiunit #donutshop
  • cta: none

day 18 — thu — single feed post

  • format: single photo
  • caption:

    brought a tray to my old tech office last week.

    the conversation i wasn't expecting: three former coworkers, all senior engineers, asking how the fund structure works. not "how do you make donuts." how does the gp/lp work. how does an lp get paid. what's the carry.

    when w-2 stability gets shaky, the people next to you start running different math.

  • visual: photo of a dozen donuts in an open box on a glass conference table. anonymous setting.
  • hashtags: #operatorlife #portfoliolife #postcorporate #smbowner #foundermode #fundstructure #gplp #regd #buildinpublic #donutshop
  • cta: none

day 19 — fri — reel (30s)

  • format: vertical reel, 30s
  • hook (text on screen): "the saas i replaced (and one i didn't)."
  • caption:

    replaced:

    — shift comms tool — bi dashboard — workforce/scheduling — fund reporting add-on

    kept:

    — pos. not going to rebuild a pos. that's a 5-year company, not a 3-week side project.

    the rule i landed on: build what's specific to your shape. buy what's commodity.

  • visual: stack of saas logos on left (replaced, crossed out). pos logo on right (kept, circled).
  • hashtags: #smbsoftware #saasreplacement #buildinpublic #aicoding #smbops #operatorlife #foundermode #indiehacker #donutshop #foodservice
  • cta: none

day 20 — sat — single feed post

  • format: single photo
  • caption:

    4:11am. the first dough drop of the morning.

    18 months ago i was setting an alarm for 7:30a to take meetings. now my alarm is for 3:15 some days. i don't feel more tired. i feel more accountable.

    the floor is the only place that doesn't lie about what's working.

  • visual: a single shot of dough hitting the bench. flour cloud.
  • hashtags: #kitchenops #donutshop #operatorlife #foodservice #ownerlife #earlymornings #smbops #multiunit #foundermode #dfwbusiness
  • cta: none

day 21 — sun — stories only


week 4 — what i'm building + what's next

day 22 — mon — carousel (what's building now)

  • format: 6-slide carousel
  • hook (slide 1): "what i'm building right now (and why)."
  • caption:

    two things in flight:

    1/ inventory management — current pain: every shop tracks flour, sugar, oil, mix on a clipboard. waste, theft, and order-too-late show up at month-end as a cogs miss. building a per-shop running ledger with par levels and reorder pings tied to a 7-day demand curve.

    2/ guest messaging — current pain: orders by phone, instagram dm, in-person. three channels, zero source of truth. a large catering order can fall through a crack and you only find out when someone calls thursday morning. building one inbox, one queue, owned by the shop with overflow to me.

    not glamorous. exactly the stuff off-the-shelf gets 80% right and 80% isn't good enough at this size.

  • visual: slide 2-3 = inventory mockup. slide 4-5 = messaging mockup. slide 6 = the boring backlog list.
  • hashtags: #buildinpublic #smbsoftware #aicoding #operatorlife #smbops #foundermode #indiehacker #inventorymanagement #donutshop #multiunit
  • cta: none

day 23 — tue — reel (60s)

  • format: vertical reel, 60s
  • hook (text on screen): "why i started with discord instead of building an app."
  • caption:

    every smb tool wants to be an app. push notifications. native install. onboarding flow.

    kitchen floor doesn't want an app. they want the thing they already have open. for our crew that's discord — voice, threads, image upload, mobile, free.

    i used discord as the front-end. the actual logic (anomaly detection, reporting, scheduling) runs in my backend. discord is just the surface.

    three weeks to working software because i didn't waste any of those weeks on a ui nobody would open.

  • visual: phone-in-hand showing the discord channel. then cut to backend dashboard. then back to phone.
  • hashtags: #buildinpublic #smbsoftware #aicoding #discord #operatorlife #indiehacker #smbops #foundermode #internalcomms #donutshop
  • cta: none

day 24 — wed — single feed post

  • format: single photo
  • caption:

    the floor at 5:30a. shop #2, mid-week.

    the team's been here 2 hours. there are two pings in the discord ops channel — one a photo of the case at 5:00 fill, one a "low on chocolate base, restocked from #4."

    the system doesn't replace the team. the team is the system. the software just makes their receipts visible.

  • visual: floor shot, hands working, no faces. warm tones.
  • hashtags: #operatorlife #kitchenops #donutshop #smbops #foodservice #multiunit #peopleops #ownerlife #foundermode #buildinpublic
  • cta: none

day 25 — thu — carousel (lessons)

  • format: 6-slide carousel
  • hook (slide 1): "5 things i had wrong about smb at 4am."
  • caption:

    1/ "good people" doesn't fix bad systems. great people leave bad systems first.

    2/ shift-based ops is not async-tech-team-with-fewer-emojis. it's a different operating model.

    3/ saas pricing assumes a per-seat workforce. our seat count distorts every per-user tool's economics.

    4/ the dashboard isn't for me. it's for the manager. if they can't read it in 8 seconds at 4am, it's useless.

    5/ the moat at this size is operator attention. software just lets one operator's attention reach further.

  • visual: 6 clean slides, brand colors, large text, minimal.
  • hashtags: #smbops #operatorlife #foundermode #buildinpublic #smbsoftware #management #peopleops #multiunit #donutshop #kitchenops
  • cta: none

day 26 — fri — reel (45s)

  • format: vertical reel, 45s
  • hook (text on screen): "the morning report lands at 9:30. here's what's in it."
  • caption:

    what the daily digest tells me at 9:30a, every day, every shop:

    — units sold by category, vs. 28-day baseline — labor % of sales, vs. plan — waste count from yesterday's close — any opening checklist items missed — anomalies flagged automatically

    4 minutes of reading. saves 90 minutes of phone calls. the rest of the morning belongs to whatever the report didn't surface.

  • visual: screen recording of opening the email, scrolling through the digest. blur pii.
  • hashtags: #smbops #operatorlife #buildinpublic #smbsoftware #dashboards #foundermode #aicoding #donutshop #multiunit #kitchenops
  • cta: none

day 27 — sat — single feed post

  • format: single photo
  • caption:

    7 boxes. 7 different shops. saturday delivery for a corporate event.

    the order came in monday. one inbox. one queue. one source of truth. the wrong way to do this is "whichever shop is closest" — the right way is "whichever shop has the right baker for the order size, the right bench coverage for saturday, and the lowest miles to the drop-off."

    that's the software call. the team executes.

  • visual: 7 stacked donut boxes lined up on counter.
  • hashtags: #donutshop #catering #operatorlife #smbops #multiunit #foodservice #dfwbusiness #kitchenops #ownerlife #foundermode
  • cta: none

day 28 — sun — stories only or carousel (your call)

  • format: 4-slide carousel (light)
  • hook (slide 1): "what i don't post about (and why)."
  • caption:

    i don't post:

    — revenue specifics per shop. not because it's secret. because it's lp business and not mine alone to share. — employee faces or names. they didn't sign up for an instagram. — politics. not the audience i'm here for. — motivational stuff. plenty of that already.

    i post what i build, what breaks, and what changes. that's the whole feed.

  • visual: 4 simple text slides, brand colors.
  • hashtags: #buildinpublic #operatorlife #foundermode #smbops #donutshop #honestcontent #ownerlife #multiunit #dfwbusiness #smbowner
  • cta: none

day 29 — mon — reel (60s, month-1 summary)

  • format: vertical reel, 60s
  • hook (text on screen): "30 days on instagram. 30 receipts."
  • caption:

    a month of posts. one feed. one operator. zero motivational stuff.

    what i covered:

    — the layoff i planned. the runway i'd already built. — the kitchen floor at 4am. the deskless workforce that doesn't read between shifts. — the ops stack i built in 3 weeks, solo, with ai. ~$60k/yr in saas replaced. — the variance you don't get warned about when you leave w-2. — what i'm building next: inventory mgmt + guest messaging.

    next month i'll start showing a different lane. for now: thanks for reading the receipts.

  • visual: 1-second cuts from the month — kitchen, dashboard, code editor, kitchen, dashboard. fast.
  • hashtags: #buildinpublic #operatorlife #smbops #foundermode #smbsoftware #aicoding #donutshop #multiunit #kitchenops #dfwbusiness
  • cta: (earned) "the newsletter goes deeper on the build. link in bio."

day 30 — tue — single feed post

  • format: single photo
  • caption:

    18 months in.

    7 shops. 20+ employees on the floor. one operator at a laptop trying to keep up with them.

    month 1 of this feed is in the books. back to the floor tomorrow at 4.

  • visual: closing shot — empty kitchen, lights off, one fryer still glowing.
  • hashtags: #operatorlife #donutshop #smbops #kitchenops #ownerlife #foundermode #dfwbusiness #multiunit #buildinpublic #independentbusiness
  • cta: none

stories weekly cadence

monday — "floor monday"

  • 4-6 frames from the 4-5am opening at one shop. unedited. mostly silent with captions.

tuesday — "the build"

  • 2-3 frames showing what was added to the software this week. screen recording or commit log.

wednesday — "the number"

  • 1 frame with one operating metric for the week (waste %, labor %, units/shop). no $.

thursday — "ask me"

  • question sticker. "ask me one operator question." reply in 4-6 follow-up frames the same evening.

friday — "the receipts"

  • 3-5 frames recapping the week: what shipped, what broke, what we learned.

saturday — "saturday morning"

  • live-ish from the busiest rush. 6-8 frames across the morning.

sunday — "reset"

  • 1-2 frames. the planning board for the upcoming week. low-fi. honest.

stories rule: every story frame either has a number, a screenshot, or a hand on a piece of equipment. no selfies, no motivational text overlays, no thirst.


bio + grid theme + hashtag pools

bio:

jack yen
operator. 7 donut shops in dfw. building the software solo.
ex-tech, 13 yrs. now: gp/lp fund + 20+ on the kitchen floor at 4am.
receipts, not motivation. ↓ newsletter
[link]

grid theme:

  • warm tones: cream, flour-tan, fryer-amber, deep brown, near-black
  • 3-column rhythm: floor shot / dashboard or text / floor shot
  • text slides: cream background, near-black type, single brand accent
  • no faces. hands ok. equipment ok. food ok.
  • consistent crop discipline: 4:5 for feed, 9:16 for reels + stories

hashtag pools (rotate, never repeat exact set day-to-day):

operator / smb pool (anchor 4-5 per post): #smbops #smbowner #operatorlife #foundermode #ownerlife #independentbusiness #multiunit #buildinpublic #smbfinance #smbsoftware

food + donut pool (anchor 2-3 per post): #donutshop #kitchenops #foodservice #dfwbusiness #franchisefree #earlymornings

build + ai pool (anchor 2-3 per post when build content): #aicoding #indiehacker #saasreplacement #soloflounder #internalcomms #dashboards

people + management pool (when people content): #peopleops #desklessworkforce #management #scheduling #internalcomms

never use: generic ai mega-tags (#ai #chatgpt #aitools), generic finance tags (#financialfreedom #passiveincome), generic motivation (#hustle #grindset #entrepreneurmindset).


engagement targets (10-15 profiles weekly)

target one of each weekly, mix of comment + dm:

  1. dfw-area independent food operators (donut, bagel, taqueria, kolache)
  2. multi-unit smb operators (3+ locations, any category)
  3. indie hackers shipping internal tools for non-tech businesses
  4. fund managers running small reg d 506(b) vehicles
  5. ex-tech operators in their first 0-24 months out
  6. workforce mgmt / deskless ops content creators
  7. shop owners posting honest p&l / unit economics content
  8. food media accounts in texas (small, engaged > big)
  9. ai coding builders posting build-in-public threads
  10. accountants / cpas serving smb f&b
  11. commercial real estate operators in dfw (your landlord adjacency)
  12. equipment vendors (mixers, fryers, ovens) for cross-pollination
  13. small fund admin / fintech-for-funds builders
  14. shift-comms saas competitors (engage civilly, you replaced them)
  15. local dfw lifestyle accounts (cross-discovery for the brand)

cadence: 3 thoughtful comments + 1 dm per day. comments leave a number or a receipt, never "great post." dms open with one specific question, never a pitch.


conversion mechanic

standing offer (bio only — never in captions until earned):

the newsletter is the long form. operator notes, build logs, p&l shape. no schedule, no hype. one link in bio.

rule: cta in caption only when the post directly justifies it (day 29 is the only day-1-month qualifier). every other post: no link drop, no "dm me," no "comment X." the offer lives in the bio. the feed is the proof.

newsletter signup goal month 1: 200-400 quality signups from ig. not a hard target — the kpi is operator-shape audience, not volume.

measurement:

  • ig profile → bio click-through rate (target 2-4% on reels, 1-2% on carousels)
  • newsletter signup attribution via utm on bio link
  • track which posts produced the click, not just the like
  • monthly review: cut the bottom 20% of post shapes for month 2

end of plan. month 2 (str/mtr lane) will be a separate calendar — do not bleed it into this one.

TikTok — 30 Day

tiktok 30-day content calendar — month 1 (donut only)

operator: jack yen business: golden glaze donuts — 7 shops, dfw, gp/lp fund, 20+ kitchen staff timezone: ct (dfw) month 1 lane: donut ops + tech-to-trade build. no str/rental content this month.


1. positioning + format

vs instagram: ig reels = polished, recap-style, longer dwell. tiktok = raw, lowercase captions, 4am floor footage, screen-record over voiceover. tiktok-native, then cross-post the winners to reels with a re-cut hook.

format mix (weekly):

  • 50% screen-record — code, dashboards, discord ops, p&l rows
  • 30% talking head — 4am car, office, kitchen back room
  • 20% vo + b-roll — fryer, conveyor, racks, opening shift

cadence: 5x/week, mon–fri (~20 posts/month)

time slots (ct):

  • mon/wed/fri: post at 6:15am ct (catches east coast lunch + west coast wake)
  • tue/thu: post at 7:30pm ct (after-dinner scroll window)
  • reserve a flex 12:30pm ct slot for any reactive/trend post that week

2. day-by-day calendar

week 1 — origin + receipts

day 1 — mon — origin (anchor post)

  • format: talking head + b-roll cutaways
  • hook: "i planned my way to a layoff after 13 years in tech."
  • script: "six-figure severance. 12 months of savings. 18 months later — 7 donut shops, $60k/yr in saas replaced with code i wrote." cut to dashboard b-roll, then 4am kitchen floor. close: "following along here. no motivational stuff."
  • visual: phone-handheld in car (frame 1), screen-record of discord ops channel, kitchen wide at 4am
  • pillar: tech-to-trade
  • audio: original vo, no trending sound (this one earns its own audio)

day 2 — tue — receipts

  • format: screen-record + vo
  • hook: "this is what 7 donut shops on a tuesday looks like."
  • script: scroll daily report — units sold per shop, waste %, labor %. no commentary on what's "good." just the rows.
  • visual: discord daily-report channel scroll, blur any staff names
  • pillar: real numbers
  • audio: low-bpm lofi trending sound

day 3 — wed — build breakdown

  • format: screen-record + talking head intercut
  • hook: "the $60k/yr in software i deleted."
  • script: list 4 tools by category (scheduling, reporting, comms, inventory). show the discord channel + report that replaced each. don't name vendors.
  • visual: side-by-side — old saas dashboard mock vs my discord ops view
  • pillar: build breakdown
  • audio: original

day 4 — thu — manager pov

  • format: talking head (back office)
  • hook: "i managed remote engineers for 13 years. then i hired a fryer."
  • script: difference between slack pings to a senior eng vs a 4am text from a shop lead. deskless workforce = new game. one specific example: shift handoff at 11am.
  • visual: shop floor through doorway behind me
  • pillar: manager pov
  • audio: none, raw room tone

day 5 — fri — manager voice memo (bi-weekly anchor #1)

  • format: vo + b-roll, audio-first
  • hook: "voice memo i sent the team this morning at 4:47am."
  • script: replay an actual (sanitized) voice memo about a tray count discrepancy. then 15 sec on why voice memos beat slack threads with deskless staff.
  • visual: waveform overlay + kitchen b-roll
  • pillar: manager pov
  • audio: original (the voice memo is the audio)

week 2 — the build

day 8 — mon — receipts monday (anchor)

  • format: screen-record
  • hook: "receipts monday. week 1, 7 shops."
  • script: pull last week's auto-generated investor report. scroll the numbers — revenue line, labor %, top-selling sku per shop. don't editorialize.
  • visual: pdf scroll, then discord post timestamp
  • pillar: real numbers
  • audio: trending lofi

day 9 — tue — build breakdown

  • format: screen-record + vo
  • hook: "i built our entire ops stack in 3 weeks. solo."
  • script: list the 4 things — discord ops bot, daily reporting, investor reports, scheduling. 5 sec each. show one screen per item.
  • visual: 4 quick screen-records, one per system
  • pillar: build breakdown
  • audio: original

day 10 — wed — failure log

  • format: talking head
  • hook: "the scheduling tool i built broke on day 2. here's what happened."
  • script: shift swap edge case — two leads claimed the same slot. fix took 40 min. what i didn't think about: deskless staff don't refresh a web page.
  • visual: me at desk, screen behind showing the bug
  • pillar: failure log
  • audio: none

day 11 — thu — tech-to-trade

  • format: vo + b-roll
  • hook: "things nobody at my old tech job had to think about."
  • script: list of 5 — flour delivery showing up at 3am, a fryer thermostat, health inspector walk-in, w-2 vs 1099 line, what "shrink" actually means.
  • visual: shop b-roll matching each item
  • pillar: tech-to-trade
  • audio: trending list-format sound

day 12 — fri — build breakdown (what i built this week — anchor)

  • format: screen-record + talking head bookends
  • hook: "what i shipped this week."
  • script: 2 things from the inventory module — sku-level depletion alert + a waste-entry form a kitchen lead can fill in 10 sec. show both.
  • visual: phone view of the lead-facing form, then desktop view of the alert firing
  • pillar: build breakdown
  • audio: original

week 3 — depth + numbers

day 15 — mon — receipts monday

  • format: screen-record
  • hook: "receipts monday. one shop is dragging the average."
  • script: scroll the 7-shop comparison. point to the lowest performer without naming it. don't explain why yet.
  • visual: comparison table, redact shop names to letters
  • pillar: real numbers
  • audio: trending lofi

day 16 — tue — manager pov

  • format: talking head
  • hook: "i don't do 1:1s with shop leads. here's what i do instead."
  • script: weekly 6-min voice memo exchange. why text-first doesn't work for 4am staff. why zoom is worse.
  • visual: phone on desk, voice memo ui visible
  • pillar: manager pov
  • audio: none

day 17 — wed — build breakdown

  • format: screen-record + vo
  • hook: "the guest messaging tool i'm building right now."
  • script: show wireframe + the one feature i'm stuck on. ask for nothing. just show the work in progress.
  • visual: figma or notion sketch + a code window
  • pillar: build breakdown
  • audio: original

day 18 — thu — failure log

  • format: talking head
  • hook: "i overpaid for software for 6 months before i admitted it."
  • script: name the category, not the vendor. why i kept renewing. what made me finally cancel — the moment a feature i needed wasn't there and i could write it in an afternoon.
  • visual: car or back office
  • pillar: failure log
  • audio: none

day 19 — fri — manager voice memo (anchor #2)

  • format: vo + b-roll
  • hook: "voice memo from a friday close shift."
  • script: real (sanitized) memo about end-of-day cash count process. 10 sec on why this replaced a 4-field form.
  • visual: cash drawer b-roll, waveform overlay
  • pillar: manager pov
  • audio: original

week 4 — compounding + close

day 22 — mon — receipts monday

  • format: screen-record
  • hook: "receipts monday. month-to-date."
  • script: scroll mtd revenue, labor %, top sku across all 7 shops. one line — "the lagging shop from week 3 is up." no celebration.
  • visual: dashboard mtd view
  • pillar: real numbers
  • audio: trending lofi

day 23 — tue — tech-to-trade

  • format: talking head
  • hook: "salary at my old tech job vs what i actually take home now."
  • script: don't say the numbers. say the structure — w-2 + rsus vs gp distributions + a smaller w-2 from the shops. why volatility is real and i planned for it (severance + savings runway, no specifics on str).
  • visual: me at desk
  • pillar: tech-to-trade
  • audio: none

day 24 — wed — build breakdown

  • format: screen-record
  • hook: "the discord channel that replaced our group text."
  • script: walk through the ops channel — pinned daily report, shift handoff thread, vendor channel. 6 sec per section.
  • visual: discord screen-record, blur any names
  • pillar: build breakdown
  • audio: original

day 25 — thu — failure log

  • format: talking head + b-roll
  • hook: "the daily report i built had a bug for 11 days before anyone said anything."
  • script: labor % was rounding wrong. nobody on the floor noticed because the number "looked right." lesson: deskless staff don't audit numbers, they audit feel.
  • visual: me, then a clip of the old vs corrected report
  • pillar: failure log
  • audio: none

day 26 — fri — manager pov

  • format: talking head
  • hook: "20+ people on the floor by 4am. zero of them have a desk."
  • script: what changes when nobody on your team has a laptop. 3 specifics — comms format, training format, error reporting format.
  • visual: back office, kitchen visible
  • pillar: manager pov
  • audio: trending sound (slower, contemplative)

week 5 — month-close (3 posts)

day 29 — mon — receipts monday (month close)

  • format: screen-record
  • hook: "receipts monday. closing out month 1 on here."
  • script: 7-shop comparison, mtd vs prior 30 days. one observation, no narrative.
  • visual: dashboard
  • pillar: real numbers
  • audio: trending lofi

day 30 — tue — month 1 wrap

  • format: talking head + screen-record cutaways
  • hook: "30 days of posting. what i actually shipped at the shops."
  • script: 3 things — inventory alert live, guest messaging prototype, one new daily report field. don't talk about tiktok metrics.
  • visual: short clips of each system
  • pillar: build breakdown
  • audio: original

(day 30 = tuesday; the friday slot of this short week is intentionally skipped to avoid a manager-voice-memo too close to the wrap post. resume cadence day 33 = following monday, which opens month 2.)


3. mini-series anchors

  • receipts monday — every monday 6:15am ct. screen-record of last week's numbers. no narrative.
  • what i built this week — friday of week 2 + (rolling into month 2 every other friday). screen-record only.
  • manager voice memo — bi-weekly friday (days 5, 19). real sanitized voice memo + 10 sec of why it works for deskless.

4. bio + hooks + sound

bio (lowercase):

jack yen. 7 donut shops in dfw, ex-tech. building our ops stack solo. real numbers, no motivational stuff. → link

10 hook patterns (reusable):

  1. "i planned my way to a layoff after 13 years in tech."
  2. "receipts monday. [n] shops, [period]."
  3. "the $60k/yr in software i deleted."
  4. "i managed remote engineers for 13 years. then i hired a fryer."
  5. "voice memo i sent the team this morning at [time]."
  6. "the [system] i built broke on day 2."
  7. "what i shipped this week."
  8. "things nobody at my old tech job had to think about."
  9. "i overpaid for software for 6 months before i admitted it."
  10. "20+ people on the floor by 4am. zero of them have a desk."

sound strategy:

  • origin + manager voice memo + heavy build-breakdown posts → original audio. the voice is the asset.
  • receipts monday + light list posts → low-bpm trending lofi (rotate weekly, pull from the for-you sounds tab tuesday night).
  • never use a trending sound on a failure-log post. silence or room tone hits harder.
  • when an original audio clip from a post gets >5 saves, reuse it as the bed for the next build-breakdown post — builds sonic recognition.

5. pinned comment + bio link funnel

pinned comment template (rotate per post):

  • on real-numbers posts: "full breakdown of how the daily report is built — link in bio."
  • on build-breakdown posts: "the actual discord setup is in the writeup — link in bio."
  • on manager-pov posts: "voice-memo workflow doc is linked in bio if you run a deskless team."

bio link = standing offer (single destination):

  • one landing page. title: "how 7 donut shops run on discord + code i wrote."
  • contents: short writeup of the ops stack, 3 screenshots, email capture (optional, not gated). no upsell, no course, no waitlist.
  • no comment-keyword loops ("comment X for the link"). funnel is: post → pinned comment → bio → page. one path.

6. month 1 success bar

  • 20 posts shipped (5 weeks of mon–fri, minus 1 intentional skip on day 32)
  • median view count by day 30: 3,000+ (low bar — month 1 is signal, not scale)
  • 3 posts >25k views (one of: origin, a receipts monday, a failure log — pick the format that hits)
  • avg view completion: 55%+ on talking-head posts, 65%+ on screen-record posts under 30 sec
  • follower count by day 30: 1,500+ (baseline assumes 0 start)
  • save rate >2% on receipts monday + build-breakdown posts (the keep-for-later signal — more important than likes for this audience)
  • bio link clicks: 200+ over the month (the only off-platform metric that matters m1)
  • zero off-message posts — no str, no motivational close, no second-person "you can do this," no "follow for the build"

month 2 unlocks: str/mtr lane (11 units, hawaii/dfw/tampa), cross-portfolio operator content, fund-side gp/lp angle.

Month 2 — STR Outline

Month 2 — STR Ops Lane (Outline)

Status: outline only. Full spec written after Month 1 ships and we see what's working.

Goal of Month 2: add the STR/MTR portfolio as a parallel content lane without diluting the donut/operator-AI positioning. Two physical-asset businesses, one operator, one software stack — that's the headline.


The lane Jack uniquely owns in STR content

Almost all STR content online is one of three flavors:

  1. Airbnb-bro lifestyle: "I make $10K/mo from this one rental, here's how" (mass-market, off-voice)
  2. PM/Tech operators: vertical SaaS reps, PriceLabs influencers (B2B, no operator skin in game)
  3. Acquisition gurus: house hacks, BRRRR strategy (financing-side content)

Nobody is the multi-market operator who also runs a non-STR business and builds their own PM stack. Jack's actual differentiation:

  • 11 units across 3 markets (HI / DFW / Tampa) — not concentrated
  • Insurance housing + displaced families + traveling employees — not weekend tourists
  • Manages own portfolio + provides PM for other owners
  • Building the PM software stack himself
  • Has operator skin from a different business (the donut shops) to compare against

That's a defensible lane.


Four STR content pillars

Pillar 1 — Replacing the PM stack

  • "What I'm killing this month: PriceLabs / Breezeway / Hostbuddy / etc"
  • "Why I'm keeping Hostfully (for now) and what would make me drop it"
  • "The guest messaging tool I'm building — and what it does that Hospitable can't"
  • "Multi-market data layer — why off-the-shelf BI doesn't work for 3 markets"

Pillar 2 — Insurance housing as a customer segment

  • "What I learned running insurance housing for 18 months"
  • "Unit economics: insurance housing vs. weekend tourist vs. MTR. Real numbers."
  • "Why insurance housing is the most underrated STR segment for stable cashflow"
  • "The operational tax of insurance housing nobody mentions"

Pillar 3 — Multi-market reality

  • "Hawaii vs. DFW vs. Tampa — same playbook, different markets. What works where."
  • "Seasonality math across 3 markets"
  • "Regulatory whiplash: where I'd open the next unit and where I wouldn't"
  • "Hiring cleaners in 3 markets — what scaled, what didn't"

Pillar 4 — Variance & operating discipline (continuation from Day 15)

  • "13-week cash forecast for a multi-market STR portfolio"
  • "The buffer rules I won't break"
  • "Anomaly alerts for individual units"
  • "What 11 units across 3 time zones looks like from one dashboard"

Month 2 weekly rhythm (preliminary)

For each platform (IG / TikTok / LinkedIn):

  • 2 STR-lane posts/week
  • 2 donut-lane posts/week
  • 1 "crossover" post/week (e.g., "two businesses, one operating system" theme)

Cadence stays the same. Voice rules stay the same. Bio language may add one STR reference once we know which lane is converting.


Month 2 lead magnet drop

Working title: "STR Portfolio Dashboard — what I track across 11 units in 3 markets"

  • Asset format: Notion page or PDF
  • Contents: the dashboard view, KPIs, anomaly rules, refresh cadence
  • Gate: newsletter signup (STR-specific list — keep separate from donut/SMB list)
  • Drop timing: Week 5 or 6 (after Day 1 STR pillar post lands)

The STR audience is a different ICP than the SMB-operator/AI-builder audience. Keep newsletter lists separate (two segments inside Beehiiv, not two separate newsletters). One brand, two pillars, segmented opt-ins.


Open questions for Month 2 planning

  1. Should Jack create a separate IG handle for FlexStay Housing or keep one personal brand?

    • Recommendation: keep one. Personal brand carries both businesses. FlexStay Housing gets a separate LinkedIn company page (which already exists in your business doc) but not separate IG/TikTok handles.
  2. Will the inventory management + guest messaging tools be shippable / showable by Month 2?

    • Need from Jack: realistic timeline. If yes, both become content engines (live-build series). If no, push that content to Month 3.
  3. Is there interest in opening up a property management waitlist for other owners?

    • If yes, the STR lane becomes lead gen for that service.
    • If no, it's purely audience-building.
  4. Any markets to keep quiet about for regulatory/competitive reasons?

    • Insurance housing partnerships sometimes have NDA-ish dynamics. Confirm before posting specifics.

What stays unchanged in Month 2

  • Voice rules (no exceptions)
  • Casing (lowercase IG/TikTok, proper case LinkedIn)
  • Standing offer model (no comment-keyword loops)
  • The $60K/yr SaaS replaced claim (grows as inventory mgmt + guest messaging ship)
  • Bi-weekly newsletter cadence
  • Posting cadence per platform

Full Month 2 calendar will be written 5-7 days before Month 2 starts — based on what landed in Month 1 (which formats worked, what the audience responded to, which platforms are converting). Avoid pre-scripting too far ahead.

Lead Magnets + Newsletter

Lead Magnets + Newsletter System

Principle

Standing offer beats comment-keyword loops. One link in each bio → newsletter landing page → bi-weekly digest. No "DM me X" friction.

The reason this works for Jack specifically: his content is operator-receipts. People who care about operator-receipts want more receipts, not a free PDF. The newsletter is the receipts engine.


The newsletter

Title: "Receipts from the Back Office"

Cadence: bi-weekly (every other Wednesday, 6am CT)

Length: 600-900 words per issue

Structure per issue (consistent template):

  1. One decision I made or am making (with the math behind it)
  2. One number from the businesses (specific, real, surprising)
  3. One mistake or thing I got wrong (with what I changed)
  4. What I'm shipping next (build log / 30-second status update)

That's it. No long essays. No "5 tips" content. Just the format.

Platform recommendation: Beehiiv

  • Why: built for operator/SMB audience, no political baggage, referral program works, deliverability is best-in-class right now
  • Alternatives ranked: Ghost (good but more setup), ConvertKit (over-priced for the use case), Substack (audience expectation is essays, doesn't fit the format)

Launch issue (Issue #1) outline:

Decision: Why I'm closing $400/mo on three SaaS subscriptions this month Number: The labor variance that surprised me in shop #4 — and why I caught it Mistake: I built the wrong dashboard for the first 3 weeks Shipping next: Inventory management v0 — building it live this month

First 5 issues planned:

  1. The planned-exit math (severance + STR runway + savings — full math)
  2. Killing $X/mo in SaaS — the build vs. buy decision tree I actually use
  3. The deskless workforce problem — why no SMB SaaS solves it
  4. Variance vs. predictability — the W-2 stability tradeoff (expanded Day 15)
  5. Sub-scale GP/LP mechanics — what a 7-shop fund actually looks like

Newsletter landing page

One page. One form. One promise.

URL recommendation: notes.jackyen.com (subdomain) or jackyen.com/notes

Above the fold:

Receipts from the Back Office

Bi-weekly. One decision. One number. One mistake. From running 7 donut shops and 11 short-term rentals.

[Email field] [Subscribe button]

No spam. No upsells. Built by an operator who codes.

Below the fold (optional):

  • 3 sample issue excerpts
  • The newsletter archive (once 3+ issues exist)
  • Link back to jackyen.com main site

Build effort: 2-3 hours. Do it before Day 1 ships.


Lead magnets (one per audience segment)

The newsletter is the conversion home. Lead magnets are the anchor that gets people to subscribe.

Lead magnet 1 — SMB / operator-AI audience (IG/TikTok primary)

Title: "The 5 metrics I check every morning across 7 shops"

Format: Notion page (publicly viewable, but you have to sign up to access via the standing offer)

Contents:

  • The 5 metrics (with definitions)
  • What threshold triggers an alert
  • How I built each one
  • Screenshot of the actual morning dashboard view

Why it works: operators want to know what other operators measure. Specific. Tactical. Defensible — most creators publish "10 metrics every business owner should track" generic lists. This one is what Jack actually does at 6am.

Lead magnet 2 — LinkedIn operator/investor audience

Title: "The Ex-Tech Operator's Internal Tools Stack"

Format: 12-page PDF

Contents:

  • The 6 internal tools I built and what each replaced
  • The cost of the SaaS I would have bought instead (~$60K/yr total)
  • Build time per tool (3-week initial sprint + ongoing)
  • What I'd build differently if starting over
  • The 3 categories I'm still buying (and why)

Why it works: LinkedIn audience reads the artifact. PDFs work here because the format itself signals "professional / saveable / shareable." Not a PDF for IG.

Lead magnet 3 — STR audience (Month 2 only — not Month 1)

Title: "STR Portfolio Dashboard — what I track across 11 units in 3 markets"

Format: Notion page

Contents:

  • Per-unit KPIs
  • Cross-market view
  • Anomaly rules
  • The PM stack I'm using vs. building

Why it works: multi-market STR operators are searching for exactly this. Almost no public examples exist of a 3-market portfolio dashboard.


Standing offer rules

Where the offer appears:

  • ✅ Bio (every platform, one link)
  • ✅ Last slide of carousels — handle + one line, never CTA bait
  • ✅ Pinned comment on TikTok — single sentence + link
  • ✅ Featured section on LinkedIn — newsletter signup + lead magnet 2
  • ✅ Stories link sticker (IG) — once a week, Thursday "build-in-public" story only

Where it does NOT appear:

  • ❌ Comment CTAs ("comment X and I'll send Y")
  • ❌ Every post caption
  • ❌ DM auto-responses
  • ❌ Any post that doesn't earn it

The earn rule: include the bio-link line in a caption ONLY when the post itself surfaces a specific artifact you can reference (e.g., "the dashboard I'm referring to — full breakdown in this issue: link in bio"). Otherwise leave it off.


Conversion targets — Month 1

  • Newsletter signups: 500+ (across all sources)
  • Issue #1 open rate: 45%+ (small list, high-intent — expect this)
  • Lead magnet 1 (SMB) downloads: 300+
  • Lead magnet 2 (LinkedIn PDF) downloads: 200+

Don't bait. Don't run paid ads in Month 1. Let the standing offer compound naturally.


Conversion targets — Month 3 (after 6 issues)

  • List size: 2,000+
  • Open rate sustained: 40%+
  • Issue-to-issue retention: 80%+ (not unsubscribing)
  • Inbound DMs from real operators referencing newsletter content: 10/week

If the list is growing but the inbound DM signal is flat, the newsletter content is wrong. Recalibrate.

Competitor Scan

Competitor / Peer Scan — Reference

Purpose: know who Jack is vs. who he isn't. Use this to position content + identify what to NOT copy.


The lane Jack uniquely owns

"The software engineer who actually runs a 50-person blue-collar operation AND a multi-market STR portfolio, and ships the software stack for both."

No one else credibly claims all four:

  1. Real SWE chops (13 years, 6 companies)
  2. A blue-collar / deskless operation he actually runs (not invests in)
  3. A multi-market real estate portfolio (not concentrated)
  4. He builds the internal software himself (not just hires it out)

Peer / competitor map

Codie Sanchez — Contrarian Thinking

  • Lane: boring businesses / acquisition content
  • Audience size: ~8M across platforms
  • Steal: cash-flow language, naming verticals in hooks ("laundromats, car washes")
  • Don't copy: mass-market boring-business guru positioning; the course funnel; drift toward financial-freedom framing
  • Where Jack wins: he RUNS the operation. Codie talks about the category from the outside.

Nick Huber — @sweatystartup

  • Lane: self-storage + service biz operator on X
  • Steal: thread structure (in-the-weeds ops + one strong opinion); raised $7M off Twitter
  • Don't copy: edgelord/contrarian-takes flywheel — Jack's voice is receipts, not provocation
  • Where Jack wins: Nick doesn't have SWE chops or AI-internal-tool content. The build side is Jack's.

Pieter Levels — @levelsio

  • Lane: solo builder, ships SaaS in public on X
  • Steal: public revenue counters, public dashboards, "I built X in N hours" format
  • Don't copy: the vibe-coded SaaS spray — Jack ships internal tools for his own ops, not public products
  • Where Jack wins: Levels has no W-2 payroll, no deskless workforce, no insurance housing portfolio. Different stakes.

Greg Isenberg — Late Checkout

  • Lane: AI startup ideas, idea-guy content on YT/X
  • Steal: cohesive "playbook" framing, tight YT thumbnails
  • Don't copy: idea-guy / list-of-startup-ideas content — Jack has the operator side Greg doesn't
  • Where Jack wins: Jack ships. Greg pitches ideas. Operator-receipts > idea posts.

Sieva Kozinsky — Enduring Ventures

  • Lane: SMB roll-ups, holdco content on LinkedIn
  • Steal: LinkedIn long-form with org-chart receipts, hiring posts
  • Don't copy: CEO-of-holdco voice — Jack is closer to the floor
  • Where Jack wins: Sieva manages portfolio CEOs. Jack manages shifts. Different altitude.

Brent Beshore — Permanent Equity

  • Lane: SMB PE thoughtful operator on LinkedIn / longform
  • Steal: long-arc essays on culture and operating reality
  • Don't copy: investor frame — Jack is operator+builder, a sharper niche
  • Where Jack wins: Brent invests. Jack builds the dashboards Brent's portcos would buy.

Khe Hy — RadReads

  • Lane: corporate escape / ex-finance creator
  • Steal: newsletter+cohort funnel mechanics
  • Don't copy: "Quit your job" content — exactly the language Jack's voice rules forbid
  • Where Jack wins: Khe sells the escape. Jack shows the build after the escape.

AI dev creators (Theo Browne / Levi Notik / various)

  • Lane: AI dev tooling content on YT/X
  • Steal: live-build, "watch me ship" cadence
  • Don't copy: they build for devs. Jack builds for donut shop GMs.
  • Where Jack wins: B2B-to-blue-collar end-user audience is unique.

The hole in this map

Nobody owns "SWE who actually runs a 50-employee blue-collar operation + multi-market STR portfolio and ships AI internal tools for both."

  • Codie owns acquisition category content (no operator skin)
  • Nick owns service-biz ops (no SWE/AI chops)
  • Levels owns solo SaaS (no W-2 payroll)
  • Greg owns ideas (no shipping)
  • Sieva/Brent own holdco/PE altitude (no floor work)
  • Khe owns the escape (no build-after)
  • AI devs own dev tools (no blue-collar end user)

Jack sits between all of them. The receipts (7 shops, 11 rentals, $60K/yr SaaS replaced, three-week build, GP/LP fund) make the lane defensible — none of these creators can credibly claim all of those.


Emerging trends Jack can ride (only the on-voice ones)

  1. "Replace your SaaS stack" receipts — concrete teardowns of $X/mo tools replaced by N hours of code. The $60K/yr number is a category-defining hook.
  2. Anti-vibe-coding backlash — counter-current to Levels-style spray. "I ship code that touches payroll, it has to work." Operator-stakes coding is an unfilled lane.
  3. AI-for-deskless / blue-collar workers — almost all AI-for-SMB content targets agencies/knowledge workers. Donut shop floor + 20 hourly employees is the underrepresented end.
  4. Labor-%-as-content — schedule screenshots, variance reports, inventory-alert Slack screenshots. The "show your dashboards" format is rising on LinkedIn and reads as proof, not flex.
  5. Holdco / multi-unit operator content on LinkedIn — Sieva, Brent, etc. The 7-shop + 11-unit multi-asset story is a LinkedIn-native hook the IG-first creators undershoot.

Content gaps Jack should own

  1. "The internal tool I shipped this week, and the labor-% / cash-variance it moved." Weekly changelog format. Nobody is doing build-in-public for an offline business they actually run.
  2. SaaS-replacement teardowns with real invoices — "Here's the $2,400/mo tool, here's the 180 lines of code, here's month-3 numbers." Receipt-mode anti-SaaS.
  3. AI for the 20-employee shop floor — scheduling, shift-swap, daily ops reporting from a non-knowledge-worker workforce. Codie talks acquisition; nobody talks operating-system.
  4. "What 13 years in tech actually teaches you about running donuts (and what it doesn't)" — honest crossover content. Most ex-corporate creators oversell tech transferability; Jack can be the honest one.
  5. The cash-variance / inventory-alert genre — boring operator metrics as content primitives. Owns a vocabulary (labor %, variance, on-hand, baseline anomaly) that the IG creator crowd literally doesn't speak.

Sources (peer references)