OPTMO is a responsive, feature-rich single-page website for an AI-powered automation platform. It showcases automation workflows for content creation and event organization with an intuitive UI and interactive features.
- Smart Navigation: Collapsible sidebar with adjustable width (200-450px) and smooth animations
- Advanced Search: Real-time full-page search with highlighting across all content
- Project Management: Filterable project cards with category-based organization
- Membership Plans: Three-tier pricing (Free, Pro, Enterprise)
- User Authentication: Email/password signup and login with PocketBase
- User Dashboards: Account management with profile, plan, and settings
- Behavior Analytics: Automatic event tracking and user analytics
- Cookie Consent: Privacy-focused consent management with optional analytics
- Responsive Design: Mobile-first approach with proper touch interactions
- Performance: No build step required, pure vanilla JavaScript (zero dependencies)
- Accessibility: Semantic HTML, keyboard navigation, proper ARIA labels
- Git (for cloning)
- Python 3.x (for local development server)
- Modern web browser
-
Clone the repository:
git clone https://github.com/fredykraft/Optmo.git cd Optmo -
Start a local development server:
# Python 3 python -m http.server 8000 # Or Python 2 python -m SimpleHTTPServer 8000
-
Open your browser and navigate to:
http://localhost:8000
OPTMO includes a complete authentication system with user management and behavior analytics powered by PocketBase.
- ✅ Email/password signup and login
- ✅ User profile management (name, company, avatar)
- ✅ Automatic behavior tracking and analytics
- ✅ Project management with event logging
- ✅ Real-time analytics dashboard
- ✅ Account settings and preferences
-
Download PocketBase from https://pocketbase.io/
-
Run PocketBase:
cd Optmo pocketbase serve --dir ./pb_data # Or use the helper script: bash start-pocketbase.sh
-
Configure Database:
- Open http://localhost:8090 in your browser
- Create an admin account
- Migrations auto-create collections on startup (
users,user_profiles,projects,user_events) - See POCKETBASE_SETUP.md for verification steps
- Configure CORS for
http://localhost:8000
-
Test Authentication:
- Go to http://localhost:8000/login.html
- Sign up or log in with your test account
- Verify redirect to http://localhost:8000/account.html
- Visit http://localhost:8000/test-pocketbase.html to verify setup
- (Optional) Run
python3 scripts/seed_pocketbase.pyto create a demo account and sample analytics data
Frontend (Vanilla JS)
↓ HTTP API Calls
PocketBase Server (localhost:8090)
↓
SQLite Database
├─ users (authentication & profiles)
├─ user_events (behavior tracking)
└─ projects (user projects)
- POCKETBASE_SETUP.md - Complete setup and deployment guide
- SETUP_SUMMARY.md - What's implemented and what's next
- js/pocketbase-client.js - PocketBase integration library
- test-pocketbase.html - Connection test utility
- login.html - Login and signup interface
- account.html - User dashboard
For production use, deploy PocketBase to:
- Railway (recommended, $5/month)
- Render (similar to Railway)
- DigitalOcean (most control, $5/month and up)
- Your own VPS (most affordable, $2-5/month)
See POCKETBASE_SETUP.md for deployment options.
.
├── index.html # Main single-page application
├── donate.html # Donation/support page
├── login.html # User login and signup page
├── account.html # User dashboard and settings
├── test-pocketbase.html # PocketBase connection test utility
├── POCKETBASE_SETUP.md # Detailed PocketBase setup guide
├── SETUP_SUMMARY.md # Implementation summary and checklist
├── start-pocketbase.sh # Helper script to start PocketBase
├── scripts/
│ └── seed_pocketbase.py # One-click PocketBase demo data seeding
├── README.md # This file
├── LICENSE # MIT License
├── .gitignore # Git ignore rules
├── css/
│ └── styles.css # Complete styling (2000+ lines)
├── js/
│ ├── main.js # Core functionality (600+ lines)
│ ├── pocketbase-client.js # PocketBase integration library (180+ lines)
│ ├── private-config.js # ⚠️ Local configuration (NOT committed)
│ └── private-config.example.js # Configuration template
└── assets/ # Images and media
This project follows security best practices:
-
Private Configuration (
js/private-config.js) is never committed to GitHub- Listed in
.gitignorefor protection - Contains only local analytics password
- Template provided in
private-config.example.js
- Listed in
-
No hardcoded secrets in public code
- API keys, tokens, and passwords are excluded
- Email addresses on donation page are intentionally public for support
-
Copy the example file:
cp js/private-config.example.js js/private-config.js
-
Edit
js/private-config.jsand set your own password:window.OPTMO_ANALYTICS_PASSWORD = 'your-secure-password-here';
-
Never commit this file - it's protected by
.gitignore
Run this safety checklist before every push:
-
Verify local-only files are not tracked:
git check-ignore -v js/private-config.js pb_data/ pocketbase/
-
Run the secret scanner:
./scripts/scan_secrets.sh
-
If a private file was accidentally tracked earlier, untrack it:
git rm --cached js/private-config.js || true git rm -r --cached pb_data pocketbase || true
-
Automated check on GitHub:
- Secret scan runs automatically on every push and pull request via GitHub Actions.
- Workflow file:
.github/workflows/secret-scan.yml
- HTML5 - Semantic structure (467 lines)
- CSS3 - Modern styling with custom properties, Flexbox, Grid (2000+ lines)
- Vanilla JavaScript - Zero dependencies, no frameworks (580+ lines)
- Font Awesome 6.4.0 - Icon library (CDN)
- Sidebar Toggle: Open/close main navigation menu
- Adjustable Sidebar: Drag the right edge to resize (200-450px)
- Smooth Scrolling: Anchor links with header offset compensation
- Active States: Navigation highlights current section
- Real-time Search: Type to find content across entire page
- Smart Highlighting: Gold highlights with pulse animation
- Results Panel: Shows count and affected sections
- Keyboard Shortcut:
Cmd+K/Ctrl+Kto focus search
- Project Filtering: Filter cards by category (Content, Events, Tools)
- Cookie Banner: Privacy-first consent management
- Analytics Protection: Optional password-gated analytics tracking
- Back-to-Top Button: Appears after scrolling 300px
- Scroll Progress Bar: Visual progress indicator at top of page
- Toast Notifications: Non-intrusive feedback messages
- Copy-to-Clipboard: One-click email copying on donation page
- Desktop: Full sidebar navigation, multi-column layouts
- Tablet: Optimized spacing, touch-friendly interactions
- Mobile: Overlay sidebar, single-column content, tap targets
If you'd like to support OPTMO development:
- GitHub Sponsors: Sponsor fredykraft
- PayPal: optmo256@gmail.com
- Direct Support: Visit Donation Page
This project is licensed under the MIT License - see LICENSE file for details.
Contributions are welcome! Please feel free to:
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
- Password validation is client-side (for demonstration)
- For production, implement server-side verification
- Analytics hooks are placeholders - integrate with your service
- Preferences stored in
localStorage optmo-analytics-enabledkey for tracking consent- No third-party trackers by default
- Modern features: CSS custom properties, Flexbox, Grid
- Supports: Chrome, Firefox, Safari, Edge (latest versions)
- Mobile browsers: iOS Safari 12+, Chrome Mobile
fredykraft - Original creator and maintainer
- Font Awesome for icon library
- Community feedback for feature improvements
Last updated: February 28, 2026
Version: 1.0.0