Why 48 Hours?
We tried building tools over weeks. They died. Feature creep, perfectionism, loss of momentum.
48 hours is the sweet spot:
- Short enough to maintain urgency
- Long enough to ship something useful
- Natural deadline (weekend project)
๐ก The Philosophy
A tool that exists is infinitely more valuable than a perfect tool that doesn't.
Friday: Validation & Setup
Test if the idea is worth building at all.
Questions to answer:
- โ Does this solve a real problem I've experienced?
- โ Would I use this tool weekly?
- โ Can it be built in 48 hours?
- โ Does it fit Neorgon's "no paywall, no signup" philosophy?
Decision: If 3+ answers are "yes", proceed. Otherwise, abandon.
cp -r _template/app new-tool-site
cd new-tool-site
python3 -m http.server 8800 # Start dev server
Build the minimum viable product. Ignore:
- โ Animations
- โ Settings/preferences
- โ Advanced features
- โ Perfect styling
Focus: The single feature that makes the tool useful.
Saturday: Polish & Integration
- Apply glassmorphism styles
- Add basic hover effects
- Ensure mobile works
- Test keyboard navigation
Generate OG image in OG Studio
Create favicon.ico
Design tool icon
# Add card to neorgon-site/index.html
# Update category in js/search.js
# Add preview to js/previews.js
git add .
git commit -m "Add new-tool card"
- OG meta tags (title, description, image)
- JSON-LD schema markup
- Canonical URL
- Twitter Card tags
Sunday: Testing & Deployment
Accessibility Test:
- Enable prefers-reduced-motion (macOS Settings โ Accessibility)
- Navigate with keyboard only
- Test with VoiceOver
- Check color contrast with WebAIM
Performance Test:
- Lighthouse audit (target: 95+ performance)
- 3G network simulation
- Mobile viewport testing
Create minimal README.md:
- What the tool does (one sentence)
- How to run locally
- Live URL
- Screenshot
Push to GitHub Pages:
git add .
git commit -m "Initial release: new-tool-site"
git push origin main
gh-pages -d . # Deploy to GitHub Pages
Add to neorgon-site:
- Create HTML card with correct accent color
- Add to search.js categories
- Test search/filter
Hour 48: The Launch
๐ Launch Checklist
โ
Tool deployed and accessible
โ
Hub card added and working
โ
Search finds the tool
โ
OG image generated
โ
Analytics tracking (Plausible)
โ
Lighthouse score โฅ 95
โ
Mobile responsive
โ
README created
โ
Social post drafted
Ship it. Take a photo. Move on.
What We Don't Do
โ Skip These (They Don't Matter at Launch)
- E2E Tests: Manual testing is faster for 48-hour tools
- Unit Tests: Not worth it for 500-line apps
- CI/CD:
git pushis our CI - TypeScript: Vanilla JS is faster to write
- Feature Flags: Ship finished features only
- Analytics Dashboard: Plausible is configured automatically
- User Accounts: Goes against "no signup" philosophy
Real Example: Building Anatomy Site
We built anatomy.neorgon.com (UI component learning tool) using this exact process:
- Friday 7 PM: Idea - "I keep forgetting UI component names"
- Friday 8 PM: Copied _template/app, created wireframe mockup
- Friday 10 PM: Hover detection working, showing component names
- Saturday 9 AM: Added 50+ components to data file
- Saturday 2 PM: Generated OG image
- Saturday 4 PM: Added to neorgon hub
- Saturday 6 PM: Tested on mobile, fixed touch events
- Sunday 11 AM: Created README with examples
- Sunday 1 PM: Deployed to GitHub Pages
- Sunday 2 PM: Tweeted link
๐ฏ Result
2,100 lines of code. 48 hours total. 1,200 users in first week.
Zero bugs reported in first month.
Common Pitfalls
โ Pitfall 1: Perfectionism
Symptom: Spending 3 hours on a button animation.
Fix: Set a timer. 30 minutes max per feature.
โ Pitfall 2: Scope Creep
Symptom: "Wouldn't it be cool if it also had AI features?"
Fix: Write the scope on a sticky note. If it's not on the note, it doesn't exist.
โ Pitfall 3: Testing Everything
Symptom: 6 hours writing tests for 400 lines of code.
Fix: Manual testing is sufficient for 48-hour tools.
โ Pitfall 4: Deployment Drama
Symptom: "It works locally but breaks in production."
Fix: Test production deploys on staging branches first.
What Makes This Work
โ 5 Rules for 48-Hour Tools
- Scope = One Feature
"Timezone converter" not "Project management platform" - No Database
localStorage or static files only - No Backend
Frontend-only or serverless functions - Copy-Paste Liberally
Duplication is faster than abstraction - Ship Ugly, Refactor Later
Published tools get improved; unpublished tools don't
The Numbers
After 18 tools built this way:
- 17/18 tools shipped on time (94% success rate)
- Average build time: 18.2 hours
- Average lines of code: 1,847
- Bugs found in first week: 2.1 average
- Tools abandoned after launch: 0
- Tools extracted to standalone repos: 3
Your Turn
This blog post took 48 hours to write. Here's the template:
๐ 48-Hour Tool Template
# _template/app Structure
โโโ index.html # Title, meta, script tags
โโโ css/
โ โโโ style.css # Glassmorphism styles
โโโ js/
โโโ app.js # Main entry (import everything)
โโโ state.js # Mutable state object
โโโ render.js # DOM rendering
โโโ events.js # Click handlers, etc.
โโโ utils.js # Helper functions
# Launch checklist
โ
Local dev server working
โ
Core feature functional
โ
Mobile responsive
โ
OG image created
โ
Added to hub
โ
README written
โ
Deployed to GitHub Pages
โ
Shared on social media
Start the timer. Build something weird.