The Challenge
Create and sell digital products as a solo developer with no budget.
Here's how I went from zero to 26 products in 14 days.
The Pipeline
Expertise → Markdown → PDF → Telegram Bot → Sales
Each step is automated or semi-automated.
Step 1: Pick Topics You Know
I listed everything I could teach:
- SwiftUI development (2 years experience)
- Notion productivity systems (daily user)
- Career skills (job hunting, interviewing)
- AI workflows (using Claude, GPT daily)
- Freelancing (active freelancer)
From these 5 domains, I extracted 26 product ideas.
Step 2: Write in Markdown
Every product starts as a .md file:
# SwiftUI Starter Kit Pro
## 1. Project Architecture Templates
### MVVM Template
swift
struct User: Codable, Identifiable {
let id: UUID
var name: String
}
@MainActor
class UserViewModel: ObservableObject {
@Published var users: [User] = []
// ...
}
## 2. Network Layer
// ...
python
Markdown is fast to write and easy to convert.
Step 3: Convert to PDF
I wrote a Python script using fpdf2 that converts Markdown to styled PDFs:
from fpdf import FPDF
class ProductPDF(FPDF):
def __init__(self, title):
super().__init__()
self.add_font('DejaVu', '', 'fonts/DejaVuSans.ttf', uni=True)
self.add_font('DejaVuMono', '', 'fonts/DejaVuSansMono.ttf', uni=True)
def cover_page(self, title):
self.ln(60)
self.set_font('DejaVu', 'B', 28)
self.multi_cell(0, 14, title, align='C')
The converter handles:
- Headers (H1-H4) with different styles
- Code blocks with dark background
- Tables with alternating row colors
- Lists (ordered and unordered)
- Blockquotes with blue accent
- Cover page with branding
One command converts all 26 .md files to PDFs.
Step 4: Build the Bot
200 lines of Python:
import telebot
from telebot.types import LabeledPrice
PRODUCTS = {
'swiftui_starter': {
'name': 'SwiftUI Starter Kit Pro',
'stars': 75,
'file': 'products/swiftui_starter.pdf'
},
# 25 more...
}
# Payment with Telegram Stars
bot.send_invoice(
chat_id,
title=product['name'],
description=product['description'],
invoice_payload=product_id,
provider_token='',
currency='XTR',
prices=[LabeledPrice(label=product['name'], amount=product['stars'])]
)
Step 5: Promote
Content marketing across platforms:
| Platform | Content Type | Articles |
|---|---|---|
| Dev.to | Technical tutorials | 89+ |
| Threads | Short-form posts | 40+ |
| Telegram | Channel updates | Daily |
Every piece of content mentions @SwiftUIDailyBot.
The Product Catalog
SwiftUI (3 products)
- Starter Kit Pro — 75⭐
- iOS 18 Templates — 60⭐
- UI Components Pack — 50⭐
Notion (5 products)
- Second Brain 2.0 — 40⭐
- Student Life OS — 45⭐
- Developer Productivity OS — 25⭐
- ADHD Life Planner — 75⭐
- Personal Finance OS — 60⭐
Career (8 products)
- ATS Resume Pack — 25⭐
- Job Interview Kit — 30⭐
- LinkedIn Mastery — 25⭐
- Cover Letter Templates — 25⭐
- And 4 more...
AI & Business (7 products)
- AI Agent Toolkit — 50⭐
- AI Workflow Blueprints — 75⭐
- Freelancer Money OS — 75⭐
- And more...
Bundles (3)
- Career Starter — 75⭐ (5 products)
- Developer Pro — 150⭐ (8 products)
- Full Access — 350⭐ (all 26)
Time Breakdown
| Task | Time |
|---|---|
| Writing 26 products | 10 days |
| PDF converter script | 3 hours |
| Telegram bot | 4 hours |
| Testing | 2 hours |
| Promotion setup | 1 day |
| Total | ~14 days |
Tools Used
- Writing: VS Code + Markdown
- PDF generation: Python + fpdf2
- Bot: Python + pyTelegramBotAPI
- Database: SQLite
- Fonts: DejaVu Sans (Unicode support)
Try It
Bot: @SwiftUIDailyBot on Telegram
Channel: t.me/SwiftUIDaily
Building in public. Follow for updates on the journey.
Top comments (0)