PaceLog — The Daily 60-Second Voice Check-In That Holds Makers Accountable When Their Motivation Disappears
Every productivity tool assumes you will open an app and type something. PaceLog calls you instead — a 60-second phone check-in every morning where you say what you shipped yesterday and what you are building today, and it turns your answer into a public build log that your audience can follow. Accountability via phone call, not willpower.
Difficulty
intermediate
Category
Consumer Apps
Market Demand
High
Revenue Score
6/10
Platform
Web App
Vibe Code Friendly
No
Hackathon Score
🏆 7/10
What is it?
The pattern is universal: indie hackers download Notion, set up a beautiful tracker, use it for 4 days, and abandon it. The friction of opening an app and typing is the killer. PaceLog flips the model — it calls your phone at a time you set, asks two questions via a voice prompt, transcribes your answer with Whisper, extracts your goals and completions, and publishes a daily update to your public build log page. Your Twitter followers get a link. Your streak is public. Social accountability replaces app discipline. The whole system is buildable in 2 weeks with Twilio Voice, OpenAI Whisper for transcription, Claude for extraction, and a Next.js public profile page. The indie hacker community on X and r/indiehackers has thousands of people begging for external accountability structures they will actually use.
Why now?
The build-in-public movement on X peaked in mid-2026 with tens of thousands of indie hackers publicly tracking their progress, creating a massive audience for accountability tools — and OpenAI Whisper API pricing dropped to $0.006/minute in 2025 making per-call transcription economics viable at $9/month.
- ▸Daily outbound phone call at a user-set time with a 60-second voice prompt capturing yesterday's win and today's goal (Implementation note: Twilio Voice calls user, TwiML plays prompt, records response, sends to Whisper)
- ▸OpenAI Whisper transcription plus Claude extraction of completed tasks and today's goals into structured JSON
- ▸Auto-published public build log page at /[username] showing daily streak, recent updates, and cumulative shipped items
- ▸Optional auto-tweet generation from the extracted update with a link to the public log page
Target Audience
Indie hackers, solo founders, and makers building in public — roughly 500k active build-in-public participants on X and r/indiehackers who have tried and abandoned at least one accountability system.
Example Use Case
Jess is building a SaaS in public. PaceLog calls her at 8am, she says yesterday she shipped the landing page and today she is building auth. By 8:05am her public log at pacelog.io/jess shows the update and her Twitter post auto-links to it, gaining her 15 new followers who are watching her build.
User Stories
- ▸As an indie hacker building in public, I want a daily phone call that captures my progress automatically, so that I never miss a day of my build log even when motivation is low.
- ▸As a maker with a public audience, I want my daily check-in automatically published to a shareable page, so that my followers can track my progress without me writing a thread.
- ▸As a solo founder, I want to see my shipping streak on a public page, so that the social accountability of not breaking the streak keeps me consistent.
Done When
- ✓Outbound call: done when user sets their call time, the system places a Twilio call within 60 seconds of the scheduled time, and the user hears the two-question voice prompt.
- ✓Log publication: done when a user answers the call and their public profile page at /[username] shows a new entry within 5 minutes of the call ending.
- ✓Streak counter: done when a user answers 3 consecutive calls and their public page shows a 3-day streak counter that increments correctly.
- ✓Stripe upgrade: done when user clicks Upgrade, Stripe checkout completes, and the account shows Pro status immediately with unlimited future calls enabled.
Is it worth building?
$9/month × 300 users = $2,700 MRR at month 4. $9/month × 800 users = $7,200 MRR at month 8. Assumes viral build-in-public tweets from early users drive organic growth — ambitious, requires 3+ users publicly posting their PaceLog links on X.
Unit Economics
CAC: $5 via X organic build-in-public posts. LTV: $108 (12 months at $9/month). Payback: 1 month. Gross margin: 80%.
Business Model
SaaS subscription
Monetization Path
Free: 7-day trial with 3 check-ins. Pro at $9/month: unlimited check-ins, public profile page, streak tracking. Upgrade triggered at trial end.
Revenue Timeline
First dollar: week 2 via first Pro upgrade. $1k MRR: month 3. $5k MRR: month 9.
Estimated Monthly Cost
Twilio Voice: $40 (based on 300 users × 30 calls/month × $0.013/min × 1.5min avg), Whisper API: $15, Claude API: $20, Vercel: $20, Supabase: $25, Stripe fees: $15. Total: ~$135/month at 300 users.
Profit Potential
Lifestyle-level SaaS at $5k MRR. Community virality required to exceed that.
Scalability
Can expand to team accountability pods, weekly email summaries to subscribers, and a discovery feed for build-in-public followers.
Success Metrics
Week 1: 100 signups. Week 3: 40% of users answer 5+ consecutive calls. Month 2: 65% month-1 retention.
Launch & Validation Plan
Post a manual version: DM 10 indie hackers on X, call them personally every morning for a week, transcribe their updates by hand, and post to a public Notion page. If 7 of 10 say it changed their output, build it.
Customer Acquisition Strategy
First customer: tweet the manual version publicly and show before/after shipping velocity for one week — if it gets traction, build the automated version. Ongoing: build-in-public content on X showing PaceLog streaks, r/indiehackers launch post, ProductHunt.
What's the competition?
Competition Level
Medium
Similar Products
HabitCast (previous idea, different mechanic) focuses on habit check-ins not build logging. Buildstreak is a manual log not automated. WIP.chat is async text — none call your phone and auto-publish a build log.
Competitive Advantage
Phone call beats app open for compliance — no other accountability tool calls you, and the public log page creates social stakes that pure private trackers cannot replicate.
Regulatory Risks
TCPA compliance required for outbound calls to US numbers — must obtain explicit consent before calling. Include clear opt-in at signup. GDPR: voice recordings must be deletable on request.
What's the roadmap?
Feature Roadmap
V1 (launch): daily outbound call, Whisper transcription, Claude extraction, public log page, Stripe Pro plan. V2 (month 2-3): skip-day grace, weekly email summary to followers. V3 (month 4+): team accountability pods, GitHub commit auto-import.
Milestone Plan
Phase 1 (Week 1-2): Twilio call flow, Whisper transcription, Claude extraction, and public page ship, done when one real call produces a published log entry. Phase 2 (Week 3-4): Stripe billing live and cron scheduler working, done when first paid user receives 5 automated calls. Phase 3 (Month 2): 50 paid users, done when 70% answer at least 15 of their first 21 calls.
How do you build it?
Tech Stack
Next.js, Twilio Voice, OpenAI Whisper API, Claude API, Supabase, Resend, Stripe — build with Cursor for Twilio voice flow, v0 for public profile page
Suggested Frameworks
-
Time to Ship
2 weeks
Required Skills
Twilio Voice API, OpenAI Whisper transcription, Claude structured extraction, Next.js public pages.
Resources
Twilio Voice quickstart, Whisper API docs, Claude API structured output docs, Supabase Auth guide.
MVP Scope
app/page.tsx (landing + signup), app/[username]/page.tsx (public build log), app/dashboard/page.tsx (user settings + streak view), app/api/call/route.ts (Twilio outbound call trigger via cron), app/api/webhook/twilio/route.ts (TwiML response + recording handler), app/api/transcribe/route.ts (Whisper + Claude extraction), lib/db/schema.ts (users, checkins, log_entries), lib/twilio.ts (call helper), lib/extract.ts (Claude extraction prompt), .env.example
Core User Journey
Sign up -> set call time and phone number -> receive first call next morning -> hear log entry published -> share public URL on X -> upgrade to Pro.
Architecture Pattern
Vercel cron fires daily per user -> Twilio API places outbound call -> TwiML plays prompt and records response -> recording webhook hits /api/webhook/twilio -> audio sent to Whisper -> transcript sent to Claude -> structured log entry inserted to Supabase -> public profile page updated -> optional tweet queued via Twitter API.
Data Model
User has one CallConfig (time, phone number, timezone). User has many CheckIns. CheckIn has a raw transcript, extracted goals, and extracted completions. User has one PublicProfile with streak count and visibility setting.
Integration Points
Twilio Voice for outbound calls and TwiML, OpenAI Whisper API for transcription, Claude API for goal extraction, Supabase for database and auth, Stripe for billing, Twitter API v2 for optional auto-tweet, Resend for streak summary emails.
V1 Scope Boundaries
V1 excludes: team pods, subscriber email list for followers, SMS fallback, mobile app, custom voice prompts, integration with linear or GitHub commits.
Success Definition
An indie hacker finds PaceLog on X, signs up without founder help, answers 10 consecutive morning calls, and their public log page earns them 50 new followers who comment on their progress.
Challenges
Twilio outbound call costs ($0.013/min) mean per-user COGS are non-trivial at high volume — the hardest non-technical problem is retention past day 14 when the novelty fades and users stop answering calls.
Avoid These Pitfalls
Do not build the Twitter auto-post on day one — it requires Twitter API approval and can block the whole launch. Do not skip TCPA consent at signup or you will get banned by Twilio. Retention past day 14 is the real product problem — build a skip-day grace mechanism or streak streaks will tank and users will churn.
Security Requirements
Supabase Auth with magic link, explicit TCPA consent checkbox stored with timestamp at signup, RLS on all user tables, Twilio webhook signature validation on all incoming webhooks, voice recordings deleted from Twilio after transcription.
Infrastructure Plan
Vercel for Next.js and cron (1-minute interval), Supabase for Postgres and auth, Twilio for voice calls, GitHub Actions for CI, Sentry for error tracking — total $135/month at 300 users.
Performance Targets
300 DAU and 300 cron-triggered calls/day at launch, Twilio call placed within 60 seconds of scheduled time, Whisper transcription under 30 seconds, public profile page loads under 1s with static generation.
Go-Live Checklist
- ☐Security audit complete.
- ☐Payment flow tested end-to-end.
- ☐Error tracking (Sentry) live.
- ☐Monitoring dashboard configured.
- ☐Custom domain set up with SSL.
- ☐Privacy policy, terms, and TCPA consent language published.
- ☐5+ beta users answered 7+ consecutive calls.
- ☐Rollback plan documented.
- ☐Launch post drafted for r/indiehackers and X build-in-public community.
First Run Experience
On first run: a demo public profile page for a fictional indie hacker named demo_user shows 14 days of pre-seeded log entries and a 14-day streak so the page never looks empty. User can browse the demo profile immediately. No manual config required: demo profile loads from static seed data, and the call scheduler only activates after the user saves their real phone number and gives TCPA consent.
How to build it, step by step
1. Define Drizzle schema for users, call_configs, checkins, and log_entries in lib/db/schema.ts. 2. Scaffold Next.js app and install twilio, openai, @anthropic-ai/sdk, drizzle-orm, stripe, resend. 3. Build Supabase Auth signup flow with phone number and call time collection and explicit TCPA consent checkbox. 4. Build Twilio outbound call helper in lib/twilio.ts that places a call and serves TwiML recording prompt. 5. Build /api/webhook/twilio route that receives the recording URL, downloads audio, and sends to Whisper. 6. Build Claude extraction prompt in lib/extract.ts that takes a transcript and returns structured JSON with completed_yesterday and goal_today arrays. 7. Build Vercel cron job that runs every minute, checks which users have a call scheduled in this minute, and triggers the Twilio call. 8. Build public profile page at /[username] using v0 to render the streak counter and last 7 days of log entries. 9. Add Stripe checkout for $9/month Pro plan with webhook handler that sets user.plan in Supabase. 10. Verify: create account, set call time to 2 minutes from now, wait for call, answer and speak for 30 seconds, confirm log entry appears on public profile page within 3 minutes.
Generated
June 19, 2026
Model
claude-sonnet-4-6
Disclaimer: Ideas on this site are AI-generated and may contain inaccuracies. Revenue estimates, market demand figures, and financial projections are illustrative assumptions only — not financial advice. Do your own research before making any business or investment decisions. Technology availability, pricing, and market conditions change rapidly; always verify details independently.