~ / startup analyses / Palmframe 100-Day Challenge


Palmframe: The 100-Day Challenge

Starting point: Absolute zero. No code, no landing page, no GitHub repo, no domain, no users. Nothing.
Location: France (northern).
Start date: February 26, 2026 (Day 0 = today).
End date: June 6, 2026 (Day 100).
Builder: Solo. No co-founder. No employees. Just you + AI + the internet.



2. 1. Non-Negotiable Rules

These rules do not bend. If you break one, restart the day count.

  1. Ship something every day. A commit, a DM, a post, a bug fix, a feature. Something visible. No “research days.” Research is what you do while building.
  2. Write your daily log. Every night, write what you did, what you learned, and what’s next. In your journal (journal/2026/). Public. No skipping.
  3. Send DMs every day starting Day 11. Minimum 5/day. Non-negotiable. DMs are your distribution channel.
  4. Post publicly at least 3x/week. LinkedIn, Twitter, Reddit, HN — anywhere. Build in public. The product and the audience grow together.
  5. Do not rewrite from scratch. If something works, improve it. Do not start over. Ugly code that ships beats beautiful code that doesn’t exist.
  6. Do not spend more than 1 day on any single feature. If it takes longer, split it. Ship the smallest version today, improve it tomorrow.
  7. Every Sunday: weekly review. Numbers, learnings, plan for next week. Written. Public.

3. 2. The Daily Ritual

Same structure every day. Build the habit. The structure is the discipline.

TimeActivityDuration
MorningBuild. Code, design, fix, improve. Focused work. No Slack, no LinkedIn, no email.3–4 hours
MiddayDistribute. Send DMs. Post on LinkedIn/Twitter. Reply to comments. Engage.1–2 hours
AfternoonBuild more or handle feedback. Respond to users. Fix reported bugs. Ship fixes same day.2–3 hours
EveningLog. Write journal entry. Update tracking spreadsheet. Plan tomorrow.30 min

Total: ~7–9 hours/day. Not 16. Sustainable pace for 100 days. If you burn out on day 30, the challenge fails.


4. 3. What to Track Every Day

Create a simple spreadsheet (or a table in your journal). One row per day. These columns:

ColumnWhatWhy
Day #1, 2, 3, … 100Progress marker
DateYYYY-MM-DDCalendar reference
What I shippedFeature, fix, page, post — something concreteAccountability
DMs sentNumber of DMs sent (EN + FR)Distribution metric
DM replies receivedNumber of repliesEngagement signal
Posts publishedNumber of public posts (LinkedIn, Twitter, Reddit, etc.)Content cadence
New signupsCloud signups (once live)Growth metric
GitHub starsCumulative totalOSS traction
Paying customersCumulative totalRevenue metric
MRR (€)Monthly recurring revenueThe number that matters
Feedback receivedNotable feedback quotes or themesProduct direction
Mood (1–5)How you felt todayBurnout detection
BlockerWhat slowed you down, if anythingPattern recognition

5. Phase 0: Foundation (Days 1–3)

Feb 27 – Mar 1, 2026

Goal: Set up everything you need before writing a single line of product code. Do not skip this. Every shortcut here costs you days later.

Day 1 (Feb 27): Infrastructure

  • Buy/configure palmframe.com domain (if not done)
  • Create GitHub repository (public, AGPLv3 license)
  • Set up project structure (choose your stack — Bun + SQLite recommended for speed)
  • Set up a VPS or Vercel for hosting the cloud version
  • Create accounts: Stripe (for payments later), Resend or SMTP (for transactional emails)
  • Write CLAUDE.md for the project (so AI assistants understand the codebase)
  • Ship: Empty repo with README, license, and project structure on GitHub
  • Post: LinkedIn post — “Day 1. I’m starting a 100-day challenge to build an open-source startup dashboard. Follow along.”
  • Journal: Write today’s entry

Day 2 (Feb 28): Landing Page

  • Build and deploy a one-page landing page at palmframe.com
  • Use the landing page copy from the copywriting arsenal
  • Include: headline, problem, solution, features, pricing (coming soon), email signup for early access
  • No framework. Plain HTML or minimal template. Ship ugly, iterate later.
  • Add email collection (Buttondown, ConvertKit free tier, or simple API endpoint you build yourself)
  • Ship: Live landing page with email collection
  • Post: Share landing page screenshot on Twitter
  • Journal: Write today’s entry

Day 3 (Mar 1): Plumbing

  • Set up CI/CD (GitHub Actions: lint, test, build, deploy on push)
  • Set up database schema (events table, projects table, API keys table)
  • Set up auth (simple API key system — not OAuth, not magic links, just API keys for now)
  • Docker Compose file (so self-hosting works from day one)
  • Ship: Deployable skeleton that boots up, connects to DB, and returns 200 on /health
  • Journal: Write today’s entry

6. Phase 1: Build the MVP (Days 4–10)

Mar 2 – Mar 8, 2026

Goal: A functional product that receives events via API and displays them in real-time. Ugly is fine. Broken edges are fine. It must work.

Day 4 (Mar 2): Events API

  • Build POST /v1/events endpoint
  • Accept: project, channel, event name, description, icon, tags (all optional except event name)
  • Validate API key
  • Store in database
  • Return 201 with event ID
  • Ship: Working API that accepts and stores events
  • Test: curl -X POST successfully creates events

Day 5 (Mar 3): Dashboard v1

  • Build event feed page (newest first)
  • Show: event name, channel, description, icon, timestamp
  • Auto-refresh (SSE or WebSocket or simple polling for v1)
  • Filter by channel
  • Minimal CSS. Functional. Readable.
  • Ship: Dashboard where you can see events as they arrive

Day 6 (Mar 4): Project Management

  • Create project / generate API key flow
  • Project switcher on dashboard
  • Simple login (email + password, or magic link — keep it simple)
  • Ship: Multi-project support with API key generation

Day 7 (Mar 5): Notifications

  • Slack webhook integration (paste Slack webhook URL, receive events in channel)
  • Discord webhook integration (same pattern)
  • Email notification (send email on specific event types or all events)
  • Ship: At least Slack notifications working

Day 8 (Mar 6): Self-Hosting & Docs

  • Finalize Docker Compose setup (one command: docker compose up)
  • Write README: installation, configuration, API reference, integration examples
  • Test self-hosting on a fresh VPS (Hetzner €4/mo or similar)
  • Add integration examples: curl, Node.js/Bun, Python, Go
  • Ship: Someone can clone the repo and have it running in 5 minutes

Day 9 (Mar 7): SDK & Polish

  • Build and publish palmframe npm package (TypeScript SDK)
  • One function: palmframe.track(event, data)
  • Fix the worst UX issues on the dashboard
  • Add favicon, meta tags, basic SEO to landing page
  • Ship: npm install palmframe works

Day 10 (Mar 8): Launch Prep

  • Deploy cloud version (palmframe.com with sign-up flow)
  • Test the full flow: sign up → create project → get API key → send event → see in dashboard
  • Update landing page with “Get Started” button linking to sign-up
  • Prepare launch posts (LinkedIn, Twitter, Reddit, HN) using copywriting arsenal
  • Pre-write 10 DMs (5 FR, 5 EN) personalized for specific LinkedIn connections
  • Ship: Everything works end-to-end. Ready to show to humans.
  • Post: Teaser post: “Launching something tomorrow.”

7. Phase 2: Launch & First Users (Days 11–20)

Mar 9 – Mar 18, 2026

Goal: Get the product in front of real people. 50+ sign-ups. 100+ GitHub stars. Collect raw, unfiltered feedback.

Day 11 (Mar 9): LAUNCH DAY

  • Publish GitHub repo (if not already public)
  • Post on LinkedIn (FR + EN versions, use LI-1 and LI-2 from copywriting)
  • Post on Twitter (TW-1 launch tweet + TW-2 thread)
  • Post on r/SideProject (RD-1)
  • Submit to Hacker News (HN-1: Show HN)
  • DMs: 10 (5 EN, 5 FR) to carefully selected founders from LinkedIn
  • Goal today: 20 sign-ups, 50 GitHub stars

Days 12–14 (Mar 10–12): Ride the Wave

  • Reply to EVERY comment on every platform. Speed matters. Reply within 1 hour.
  • Fix any bug reported within 24 hours. Ship the fix. Tell the person who reported it.
  • Post on r/selfhosted (RD-2), r/webdev (RD-3)
  • Post update on LinkedIn: “Launched 3 days ago, here’s what happened”
  • DMs: 5/day (mix of FR and EN)
  • Start email sequence A (welcome email) for new sign-ups

Days 15–17 (Mar 13–15): Feedback Collection Sprint

  • Send email A3 (“1 question about Palmframe”) to all early sign-ups
  • DM every person who starred the GitHub repo and has their contact visible
  • Post on r/startups (RD-4)
  • Post question post on LinkedIn (LI-6)
  • DMs: 5/day
  • Start categorizing feedback: what do people ask for most?
  • Fix the top 3 most-reported issues

Days 18–20 (Mar 16–18): Consolidate

  • Publish Python SDK: pip install palmframe
  • Write first blog post / changelog: “Week 1: What I learned launching Palmframe”
  • Build the top-requested feature from feedback
  • DMs: 5/day
  • Sunday Day 20: First weekly review. Write it publicly.

Phase 2 Targets

MetricTarget
Sign-ups50+
GitHub stars100+
DMs sent (total)60+
DM reply rateTrack it (expect 10–20%)
Active users (sent ≥1 event)10+
Feedback collected20+ pieces
Posts published8+

8. Phase 3: Iterate & First Revenue (Days 21–40)

Mar 19 – Apr 7, 2026

Goal: Turn free users into paying customers. First €. Build the features that make people stay.

Days 21–25: Payment & Polish

  • Integrate Stripe Checkout (Starter: €9/mo, Pro: €29/mo)
  • Implement usage limits (free: 10K events/mo, starter: 100K, pro: 1M)
  • Build usage dashboard (show events used / limit)
  • Improve dashboard UX: better filters, search events, date range picker
  • Add custom domain support for self-hosted instances
  • DMs: 5/day
  • Launch offer: first 20 paying customers get 30% off lifetime

Days 26–30: Content + Outreach

  • Write comparison page: palmframe.com/vs/logsnag (SEO play)
  • Write “How to track events in your startup” tutorial (blog + social)
  • Post on Indie Hackers (IH-1)
  • Post on Hypercafé / French communities (IH-2)
  • Start emailing newsletter sign-ups with updates
  • DMs: 7/day (ramp up — you have more confidence + a better product now)
  • Send email sequence B (cold email to warm LinkedIn contacts with email addresses)

Days 31–35: Feature Sprint Based on Feedback

  • Build the #1 most-requested feature
  • Build the #2 most-requested feature
  • Publish Go SDK: go get palmframe
  • Improve Docker setup based on self-hosting feedback
  • DMs: 7/day
  • Write changelog post for each new feature

Days 36–40: Revenue Push

  • DM everyone who signed up but hasn’t activated (sent 0 events): “Hey, noticed you signed up but haven’t tracked anything yet. What blocked you?”
  • DM active free users approaching the free tier limit: “You’re at 8,000/10,000 events. Want me to bump your limit?”
  • Post “30 days of building Palmframe” retrospective on LinkedIn
  • DMs: 7/day
  • Weekly reviews on Day 27 and Day 34.

Phase 3 Targets

MetricTarget
Sign-ups (cumulative)150+
GitHub stars300+
Paying customers5–10
MRR€50–150
Active users (weekly)30+
DMs sent (total cumulative)200+
Self-hosted installs20+
Blog posts / changelogs5+

9. Phase 4: Growth Engine (Days 41–60)

Apr 8 – Apr 27, 2026

Goal: Build repeatable growth channels. Stop relying solely on DMs. SEO, integrations, and word-of-mouth should start working.

Days 41–45: Integrations & Partnerships

  • Build Vercel integration (one-click install for Vercel users)
  • Build or document Railway / Render one-click deploy
  • Build Stripe webhook receiver (auto-track payments without user code)
  • Build GitHub webhook receiver (auto-track deploys)
  • DMs: 7/day
  • Reach out to 3 newsletter authors (Indie Hackers, TLDR, Console.dev) for features

Days 46–50: SEO & Content Flywheel

  • Write: palmframe.com/vs/slack-notifications
  • Write: palmframe.com/vs/custom-webhooks
  • Write: “How I built an open-source LogSnag alternative in 10 days” (dev blog bait)
  • Write: “Real-time event tracking for [Next.js / Node.js / Python / Go]” (one per framework, SEO long-tail)
  • Submit to dev tool directories (AlternativeTo, LibHunt, OSS Insight, etc.)
  • DMs: 5/day (can decrease as organic grows)

Days 51–55: Error Tracking Module (Module #2)

  • Build basic error tracking: JavaScript SDK catches errors + sends them as events with stack trace
  • Error grouping by stack trace fingerprint
  • New “errors” channel auto-created in dashboard
  • This is the “startup OS expands” moment. Announce it big.
  • Post: “Palmframe is no longer just event tracking. We’re building an operating system for startups.”
  • DMs: 5/day

Days 56–60: Product Hunt Launch

  • Prepare Product Hunt listing (use PH copy)
  • Get 3–5 hunters/supporters lined up (ask beta users, LinkedIn connections)
  • Launch on Product Hunt
  • Simultaneously post on LinkedIn, Twitter, Reddit, HN (second Show HN: “Palmframe now does event tracking + error tracking”)
  • DMs: 10/day (launch week effort)
  • Weekly reviews on Day 48 and Day 55.

Phase 4 Targets

MetricTarget
Sign-ups (cumulative)400+
GitHub stars800+
Paying customers20–30
MRR€250–500
Active users (weekly)80+
Self-hosted installs50+
SEO pages published5+
Newsletter features1–2

10. Phase 5: Expand & Scale (Days 61–80)

Apr 28 – May 17, 2026

Goal: Third module. Enterprise features. Start building a moat.

Days 61–67: Uptime Monitoring (Module #3)

  • Build endpoint monitoring: HTTP checks every 1–5 minutes from multiple regions
  • Alert on downtime (Slack, Discord, email)
  • Uptime percentage display
  • Response time tracking
  • Announce: “Palmframe now replaces LogSnag + Sentry + UptimeRobot. Three tools in one.”

Days 68–72: Status Page (Module #4)

  • Public status page (auto-generated from uptime monitoring data)
  • Custom subdomain: status.yourcustomer.com
  • Subscriber notifications (email when status changes)
  • Incident creation and update flow
  • This is the enterprise upsell. Status pages are required for SOC2, enterprise deals, etc.

Days 73–77: Team Features

  • Multi-user support (invite team members)
  • Role-based access (admin, member, viewer)
  • Audit log (who did what)
  • This unlocks team plans and higher pricing

Days 78–80: Content & Outreach Blitz

  • Write case study with a happy early customer
  • Post “60 days of building Palmframe: from zero to [MRR]”
  • Reach out to 5 more newsletters / podcasts
  • DMs: 5/day (sustained, not sprinting)
  • Weekly reviews on Day 62, 69, 76.

Phase 5 Targets

MetricTarget
Sign-ups (cumulative)700+
GitHub stars1,500+
Paying customers40–60
MRR€500–1,000
Modules shipped4 (events, errors, uptime, status)
Self-hosted installs100+

11. Phase 6: Compound (Days 81–100)

May 18 – Jun 6, 2026

Goal: Compound all previous work. At this point, organic should be growing. Focus on retention, revenue optimization, and setting up for post-challenge sustainability.

Days 81–85: Revenue Optimization

  • Analyze churn: who left and why?
  • Build failed payment recovery (dunning emails)
  • Annual plans: offer 2 months free on yearly billing
  • Usage-based upgrade prompts: “You’re at 90% of your event limit”

Days 86–90: Developer Experience

  • Improve docs (interactive examples, copy-paste snippets for every framework)
  • Build PHP SDK, Ruby SDK (or whichever languages your users request)
  • API playground (try the API from the browser without installing anything)
  • Quick-start wizard: guided setup in the dashboard

Days 91–95: Community & Content

  • Launch Discord or GitHub Discussions for the community
  • Write “The story of building Palmframe in 100 days” (long-form blog post)
  • Record a demo video (2–3 minutes, screen recording + voiceover)
  • Submit to Awesome Self-Hosted, Awesome Open Source lists

Days 96–100: Retrospective & Next Phase

  • Complete 100-day retrospective: every number, every lesson, every failure
  • Plan the next 100 days (if the project has traction)
  • Post the full story on LinkedIn, Twitter, Indie Hackers, HN
  • Celebrate. Seriously. You did it.

Phase 6 Targets (End of 100 Days)

MetricMinimumGoodExceptional
Sign-ups5001,0002,000+
GitHub stars1,0002,5005,000+
Paying customers3060100+
MRR€400€1,000€2,000+
Self-hosted installs100300500+
Total DMs sent500700900+
Blog posts / changelogs152540+
Modules345+

12. Milestone Targets (Summary)

DayDateMilestone
3Mar 1Infrastructure done. Landing page live. GitHub repo public.
10Mar 8MVP done. Working product end-to-end. Ready for humans.
11Mar 9Launch day. First real users.
20Mar 1850 sign-ups. 100 stars. DM machine running.
30Mar 28First paying customer. €9. Frame it.
40Apr 710 paying customers. Product-market signal.
50Apr 17Error tracking module ships. “Startup OS” narrative begins.
60Apr 27Product Hunt launch. 500+ sign-ups. €500 MRR.
70May 7Uptime monitoring ships. 3 modules.
80May 17Status page ships. Team features. Enterprise-ready.
90May 271,000+ sign-ups. €1,000 MRR target.
100Jun 6Retrospective. Decide: double down or pivot.

13. The DM System

DMs are your primary growth channel for the first 60 days. Here’s the system:

Daily DM Cadence

PhaseDaysDMs/dayTotal DMsFocus
Phase 0–11–1000Building. No DMs yet.
Phase 211–205–10~75Launch outreach. Ask for feedback.
Phase 321–405–7~120Convert to users. Ask for payment.
Phase 441–605–10~150Launch week spikes. Partnerships.
Phase 5–661–1005~200Sustained. Organic should be growing.
Total~545

DM Targeting Priority

  1. Founders in your LinkedIn who are actively building (posted recently, launched something, shared a milestone). These are warm. Use DM-EN-3 or DM-FR-3 (context hook).
  2. CTOs / technical founders. They understand the product instantly. Use DM-EN-2 or DM-FR-2 (pain-first).
  3. Founders you have email addresses for (281 from LinkedIn export). Use email sequence B in parallel.
  4. People who engaged with your posts (liked, commented). They already know you. Use DM-EN-4 or DM-FR-4 (ultra-short).
  5. Indie hackers / build-in-public people. They’ll give you the best feedback. Use DM-EN-7 or DM-FR-7.

DM Tracking

For each DM, track:

FieldExample
NameJean Dupont
PlatformLinkedIn
LanguageFR
Template usedDM-FR-2
Date sent2026-03-09
Replied?Yes / No
Reply summary“Cool, will check it out”
Signed up?Yes / No
Became paying?Yes / No
Follow-up needed?Yes (Day 14)

Use a spreadsheet. Or a simple SQLite database. Or Palmframe itself once it works (dogfooding!).

DM Rules

  • Never copy-paste without personalizing. Mention their product, their post, their company. 1 sentence of personalization minimum.
  • Never DM more than 30/day on LinkedIn. Risk of account restriction. Stay at 5–10/day.
  • Follow up once. If no reply after 5–7 days, send the follow-up (DM-EN-9 or DM-FR-8). If still no reply, move on.
  • Never be pushy. You’re asking for feedback, not selling. The energy is “I built something, would love your take” not “buy my product.”
  • Batch them. Do all DMs in one 30–45 minute block. Don’t sprinkle them throughout the day.

14. The Content System

Posting Cadence

PlatformFrequencyContent Type
LinkedIn3x/weekBuild-in-public updates, launches, questions, milestones
Twitter/XDaily (once launched)Short updates, screenshots, GIFs, threads on launch days
Reddit1x/week (different subreddit each time)Show-off posts, question posts, helpful posts
Hacker News2–3x totalShow HN on launch + major milestones only
Indie Hackers1x/weekMilestones, learnings, revenue updates
Blog (palmframe.com/blog)1x/weekTutorials, comparisons, behind-the-scenes
Journal (alexisbouchez.com)DailyPersonal log (not marketing — this is for you)

Content Ratio

  • 50% — Build-in-public updates (what you shipped, what you learned, numbers)
  • 25% — Educational / helpful (how-to guides, comparisons, tutorials)
  • 15% — Engagement (questions, polls, asking for feedback)
  • 10% — Direct product promotion (launches, features, pricing)

15. The Feedback System

Feedback is the raw material of product-market fit. Treat it like gold.

How to Collect

  1. In-app: Simple feedback button in the dashboard (“What’s missing?”). Even a mailto: link works for v1.
  2. Email: Sequence A, email A3 (“1 question about Palmframe”). Plain text, reply-to you.
  3. DMs: Every DM reply is feedback. Capture it.
  4. Public posts: Comments on your Reddit/HN/LinkedIn posts. Screenshot and categorize.
  5. GitHub Issues: People will file issues. That’s feedback.

How to Categorize

Every piece of feedback goes into one bucket:

BucketWhat it meansAction
BugSomething is brokenFix within 24h. Tell the reporter.
Missing featureThey want something that doesn’t existAdd to feature request tally. Build when 3+ people ask.
UX frictionSomething works but is confusing/annoyingFix in next polish sprint.
PraiseThey like somethingNote what they like. Double down on it. Ask for testimonial.
“Not for me”They don’t need this productAsk why. Learn. Move on.
PricingToo expensive, too cheap, wrong modelTrack patterns. Adjust if 5+ people say the same thing.

The Feedback Loop

The most powerful thing you can do:

  1. Someone gives feedback (“I wish it had X”)
  2. You build X
  3. You tell them: “Hey, you asked for X. I shipped it. Here it is.”
  4. They become a fan for life. They tell their friends. They become a paying customer.

This loop, repeated 20 times, is worth more than any marketing campaign.


16. Weekly Review Template

Every Sunday. Write it in your journal. Post a summary on LinkedIn. This is your accountability mechanism.

Week [X] Review — Palmframe 100-Day Challenge

Days covered: [Day X] to [Day Y]
Dates: [Mon] to [Sun]

Numbers this week:

  • Sign-ups: [new this week] (total: [cumulative])
  • GitHub stars: [new this week] (total: [cumulative])
  • Paying customers: [new this week] (total: [cumulative])
  • MRR: €[amount]
  • DMs sent: [count]
  • DM reply rate: [X]%
  • Posts published: [count]
  • Bugs fixed: [count]
  • Features shipped: [list]

What went well:

  • [...]

What didn’t go well:

  • [...]

Top feedback received:

  • [...]

Key learning:

  • [...]

Plan for next week:

  • [...]

Mood average (1–5): [X]

Biggest blocker: [...]


17. When to Pivot / Abort

Not every idea works. Here are clear signals to re-evaluate:

Red Flags (Consider Pivoting)

  • Day 30, 0 paying customers, <20 active users. People are not using it even when it’s free. The problem might not be painful enough.
  • Day 40, <5 paying customers despite 200+ DMs sent. You’re reaching people, they’re just not converting. Product or market issue.
  • DM reply rate consistently below 5%. Your positioning or targeting is off.
  • Everyone says “cool but I wouldn’t pay for it.” Nice-to-have, not must-have.
  • You dread working on it. If your mood is consistently 1–2/5 for 2+ weeks, the project is killing you.

Green Flags (Keep Going)

  • People use it without being asked to. They come back on their own.
  • People pay without being pushed. The pricing page gets clicks.
  • People tell others about it. You see sign-ups you didn’t DM.
  • People ask for features. They want MORE of what you’re building.
  • Your DM reply rate is 15%+ and people are enthusiastic.

Pivot Options (If Needed)

  1. Pivot the wedge, keep the vision. Event tracking doesn’t resonate? Try starting with the revenue dashboard wedge instead. Same OS vision, different entry point.
  2. Pivot the audience. Founders don’t bite? Try agencies managing multiple client projects. Same product, different buyer.
  3. Pivot to services + product. Sell security audits to pay bills (€297/audit), build Palmframe on the side. De-risk the runway.
  4. Kill it and start the next 100-day challenge. No shame. You’ve got data, skills, and audience from this one.

18. Full Calendar (Day by Day)

Every single day, with its date, phase, and minimum deliverable.

Click to expand full 100-day calendar
DayDatePhaseMinimum DeliverableDMsPost?
1Feb 27FoundationDomain + GitHub repo + project structure0Yes (LI)
2Feb 28FoundationLanding page live at palmframe.com0Yes (TW)
3Mar 1FoundationCI/CD + DB schema + Docker skeleton + /health endpoint0
4Mar 2MVPPOST /v1/events API working0
5Mar 3MVPDashboard v1 (event feed, auto-refresh)0Yes (LI)
6Mar 4MVPProject management + API key generation0
7Mar 5MVPSlack notifications working0
8Mar 6MVPDocker Compose + README + self-hosting works0Yes (TW)
9Mar 7MVPnpm package published + UX polish0
10Mar 8MVPCloud version deployed + full flow tested + launch prep0Yes (teaser)
11Mar 9LaunchLAUNCH DAY: LI + TW + Reddit + HN10Yes (all)
12Mar 10LaunchReply to all comments. Fix first reported bugs.5
13Mar 11LaunchPost on r/selfhosted. Fix bugs.5Yes (Reddit)
14Mar 12LaunchPost on r/webdev. Launch update on LI.5Yes (LI+Reddit)
15Mar 13LaunchSend feedback email (A3) to sign-ups. DM GitHub starrers.5
16Mar 14LaunchPost question post on LI. Categorize feedback.5Yes (LI)
17Mar 15LaunchFix top 3 reported issues. Post on r/startups.5Yes (Reddit)
18Mar 16LaunchPython SDK published.5
19Mar 17LaunchBuild #1 requested feature from feedback.5Yes (TW)
20Mar 18LaunchFirst blog/changelog post. Weekly Review #1.5Yes (LI)
21Mar 19RevenueStripe Checkout integration started5
22Mar 20RevenueStripe Checkout live. Paid plans active.5Yes (LI: “you can now pay”)
23Mar 21RevenueUsage limits + usage dashboard5
24Mar 22RevenueDashboard UX improvements (filters, search)7
25Mar 23RevenueDashboard UX improvements (date range, channels)7Yes (TW: screenshot)
26Mar 24RevenueComparison page: /vs/logsnag7
27Mar 25RevenueTutorial blog post. Weekly Review #2.7Yes (LI+blog)
28Mar 26RevenuePost on Indie Hackers. Post on Hypercafé.7Yes (IH+HC)
29Mar 27RevenueEmail sequence B to LinkedIn contacts with emails7
30Mar 28RevenueNewsletter sign-up email. Aim for first paying customer!7Yes (TW)
31Mar 29RevenueBuild #1 most-requested feature7
32Mar 30RevenueBuild #2 most-requested feature7
33Mar 31RevenueGo SDK published7Yes (LI)
34Apr 1RevenueDocker improvements. Weekly Review #3.7Yes (LI: weekly review)
35Apr 2RevenueChangelog post for new features7Yes (TW+LI)
36Apr 3RevenueDM inactive sign-ups: “What blocked you?”7
37Apr 4RevenueDM active free users near limit7
38Apr 5RevenueFeature polish + bug fixes7
39Apr 6RevenueBuild-in-public post: “30 days of Palmframe”7Yes (LI: milestone)
40Apr 7RevenueRevenue check. Feedback review. Weekly Review #4.7Yes (LI)
41Apr 8GrowthVercel integration started7
42Apr 9GrowthVercel integration shipped7Yes (TW+LI)
43Apr 10GrowthStripe webhook auto-tracker (zero-code payment tracking)7
44Apr 11GrowthGitHub webhook auto-tracker (zero-code deploy tracking)7Yes (TW: “zero-code tracking”)
45Apr 12GrowthOutreach to 3 newsletter authors7
46Apr 13GrowthSEO page: /vs/slack-notifications5
47Apr 14GrowthSEO page: /vs/custom-webhooks. Weekly Review #5.5Yes (LI)
48Apr 15GrowthBlog: “How I built an OSS LogSnag alt in 10 days”5Yes (blog+LI+TW)
49Apr 16GrowthFramework tutorial: “Event tracking for Next.js”5
50Apr 17GrowthSubmit to directories (AlternativeTo, etc.)5
51Apr 18GrowthError tracking module: JS SDK catches errors5
52Apr 19GrowthError grouping by stack trace fingerprint5
53Apr 20GrowthErrors channel auto-created in dashboard5
54Apr 21GrowthError tracking announced. Weekly Review #6.5Yes (all: “Startup OS”)
55Apr 22GrowthProduct Hunt listing prepared5
56Apr 23GrowthLine up PH supporters10
57Apr 24GrowthPRODUCT HUNT LAUNCH DAY10Yes (all)
58Apr 25GrowthRide the PH wave. Reply to everything.10
59Apr 26GrowthSecond Show HN: “now with error tracking”10Yes (HN)
60Apr 27GrowthPost “60 days” retrospective. Weekly Review #7.10Yes (LI: milestone)
61Apr 28ExpandUptime monitoring: endpoint check worker5
62Apr 29ExpandUptime: alerts on downtime5
63Apr 30ExpandUptime: response time tracking + display5
64May 1ExpandUptime: multi-region checks (2+ locations)5
65May 2ExpandUptime monitoring shipped. Announce.5Yes (all: “3 tools in 1”)
66May 3ExpandStatus page: public page renderer5
67May 4ExpandStatus page: incident CRUD. Weekly Review #8.5Yes (LI)
68May 5ExpandStatus page: subscriber notifications5
69May 6ExpandStatus page: custom subdomain5
70May 7ExpandStatus page shipped. Announce.5Yes (all: “4 modules”)
71May 8ExpandTeam features: invite members5
72May 9ExpandTeam features: roles (admin/member/viewer)5
73May 10ExpandTeam features: audit log5
74May 11ExpandTeam features shipped. Weekly Review #9.5Yes (LI)
75May 12ExpandCase study with early customer5Yes (blog)
76May 13Expand“60 days of Palmframe: zero to [MRR]” post5Yes (LI: milestone)
77May 14ExpandOutreach to 5 newsletters/podcasts5
78May 15ExpandPolish + bug fixes5
79May 16ExpandPolish + bug fixes5
80May 17ExpandPhase 5 retrospective. Weekly Review #10.5Yes (LI)
81May 18CompoundChurn analysis: who left and why?5
82May 19CompoundDunning emails (failed payment recovery)5
83May 20CompoundAnnual billing option5
84May 21CompoundUsage-based upgrade prompts5
85May 22CompoundRevenue optimization shipped5Yes (TW)
86May 23CompoundDocs improvements: interactive examples5
87May 24CompoundPHP or Ruby SDK. Weekly Review #11.5Yes (LI)
88May 25CompoundAPI playground (browser-based API tester)5
89May 26CompoundQuick-start wizard in dashboard5
90May 27CompoundDX improvements shipped. Announce.5Yes (TW+LI)
91May 28CompoundDiscord / GitHub Discussions community launch5Yes (all: community)
92May 29CompoundStart writing “100 days of Palmframe” long-form post5
93May 30CompoundRecord demo video (2–3 min)5
94May 31CompoundSubmit to Awesome Self-Hosted, Awesome OSS. Weekly Review #12.5Yes (LI)
95Jun 1CompoundFinish “100 days” blog post draft5
96Jun 2CompoundFinal bug fixes + polish5
97Jun 3CompoundFinal bug fixes + polish5
98Jun 4CompoundFull 100-day retrospective written5
99Jun 5CompoundPublish retrospective everywhere (LI, TW, IH, HN, Reddit)5Yes (all)
100Jun 6CompoundCelebrate. Plan next 100 days. Weekly Review #13 (final).0Yes (LI: thank you)

19. Summary: The Numbers

Metric100-Day Total
Days building100
DMs sent~545
Posts published~50
Blog posts / changelogs~15–25
Weekly reviews13
Journal entries100
Modules shipped4 (events, errors, uptime, status page)
SDKs published4–5 (JS, Python, Go, PHP/Ruby)
Launches3+ (initial, PH, milestones)

Day 1 is February 27, 2026. Day 100 is June 6, 2026. The clock starts tomorrow.