π Quick Start Guide - Memo System with GitHub Pages
β¨ Overview
Your memo system now supports:
- π Public memos: Synced to GitHub Pages, visible to everyone
- π Private memos: Stored locally, visible only to you
- π File attachments: Up to 10MB per file
- π― Smart filtering: By category, priority, and visibility
π How to Use
1. Add a Memo
- Open
/memospage on your website - Fill in the form:
- Title (optional)
- Content (required)
- Category (General/Todo/Idea/Note)
- Priority (Normal/Important/Urgent)
- Visibility:
- π Public: Will be synced to server
- π Private: Stays on your device only
- Add attachments if needed
- Click βAdd Memoβ
2. Sync Public Memos to Server
After adding a public memo:
- Click the βοΈ Sync button on the memo
- Copy the generated command
- Run in your terminal:
echo '{...}' | ruby sync_memo.rb sync git add _data/memos.yml assets/ git commit -m "Add memo: Your Title" git push - Wait 1-2 minutes for GitHub Pages to rebuild
- Your memo is now live!
3. Manage Memos
- Filter: Click category or visibility buttons
- Search: Type in search box
- Complete: Click β to mark as done
- Delete: Click ποΈ to remove
- View attachments: Click images or download files
π Privacy & Visibility
| Feature | Public π | Private π |
|---|---|---|
| Storage | GitHub repo | Browser IndexedDB |
| Who can see | Everyone on website | Only you |
| Synced | Yes (manual) | No |
| Survives browser clear | Yes | No |
| Needs git push | Yes | No |
β οΈ Important Limits
GitHub Pages Constraints
- Repository size: Stay under 1GB
- File size: Max 10MB per attachment
- Build frequency: Max 10 builds/hour
- Bandwidth: 100GB/month (soft limit)
Recommendations
- Use private for sensitive data: Passwords, personal notes
- Use public for sharing: Blog drafts, public todos
- Compress files: Before uploading large attachments
- Monitor repo size:
du -sh .git du -sh assets/
π οΈ Manual Commands
Sync a specific memo
# Get memo JSON (from browser console):
# const memo = localMemos.find(m => m.id === YOUR_ID);
# console.log(JSON.stringify(memo));
echo 'PASTE_JSON_HERE' | ruby sync_memo.rb sync
Delete synced memo
ruby sync_memo.rb delete <memo_id>
git add -A
git commit -m "Delete memo"
git push
Check storage usage
# Check Git repository size
du -sh .git
# Check assets folder
du -sh assets/images/memos/
du -sh assets/files/memos/
# Find large files
find assets/ -type f -size +5M -ls
π Example Workflow
Scenario: Taking Meeting Notes
- During meeting (Private):
- Create private memo with notes
- Attach photos of whiteboard
- Mark important points
- After meeting (Convert to Public):
- Review and clean up notes
- Remove sensitive info
- Create new public memo with summary
- Sync to share with team
- Follow-up (Public Todos):
- Create public todos for action items
- Set priority (Important/Urgent)
- Team can see on website
π― Best Practices
1. File Management
- Compress images:
convert image.jpg -quality 80 image_compressed.jpg - Use PDF compression tools
- Link to external storage for very large files
2. Organization
- Use categories consistently
- Set meaningful titles
- Add dates in content for time-sensitive items
3. Security
- Never put passwords in public memos
- Review before syncing
- Remember: public = everyone can see
4. Performance
- Keep total attachments < 100MB
- Delete old memos periodically
- Clean up unused attachments
π Troubleshooting
Memo not syncing?
- Check file sizes (< 10MB)
- Verify JSON format
- Check Ruby is installed:
ruby --version - Look for error messages in terminal
Canβt find memo after browser clear?
- Private memos are lost if you clear browser data
- Public memos are safe (theyβre on GitHub)
- Always sync important memos!
Repository too large?
# Remove large files from git history
git filter-branch --tree-filter 'rm -rf assets/files/memos/large_file.pdf' HEAD
# Force push (β οΈ destructive!)
git push --force
GitHub Pages not updating?
- Check GitHub Actions tab for build status
- Wait 2-3 minutes
- Hard refresh (Ctrl+Shift+R / Cmd+Shift+R)
- Check for build errors
π Quick Reference
# Start local Jekyll server
bundle exec jekyll serve
# Visit memos page
open http://localhost:4000/memos
# Sync memo
echo 'JSON' | ruby sync_memo.rb sync
# Delete memo
ruby sync_memo.rb delete <id>
# Check sizes
du -sh assets/
# Commit changes
git add _data/memos.yml assets/
git commit -m "Update memos"
git push
π Tips for Success
- Start with private: Test features with private memos first
- Batch syncs: Sync multiple public memos at once
- Regular cleanup: Review and delete old memos monthly
- Backup important: Copy critical private memos elsewhere
- Monitor size: Check repo size weekly if uploading many files
Happy memo-taking! πβ¨
Need help? Check MEMO_SYSTEM_README.md for detailed documentation.