Transform your Markdown into LinkedIn-ready posts. Privacy-first, AI-powered, works everywhere.
- No data sent to servers - everything runs in your browser
- Works completely offline after first load
- Install as PWA on mobile/desktop
- No tracking, analytics, or data collection
- All languages supported (English, Spanish, Chinese, Arabic...)
- Any content type (business, personal, technical)
- Beginner-friendly interface with advanced features
- AI-powered title generation
- Dark & Light themes with smooth transitions
- LinkedIn preview (Light/Dark mode + Desktop/Mobile)
- Real-time markdown conversion
- Rich text editor with toolbar
- Auto-save with intelligent history
- Keyboard shortcuts (Ctrl+B, Ctrl+I, Ctrl+S)
- Copy with both HTML and plain text
- Responsive design for all devices
Visit LinkedInify.app
# Clone the repository
git clone https://github.com/encryptioner/linkedinify.git
cd linkedinify
# Install dependencies
pnpm install
# Start development server
pnpm run dev
# Or build for production
pnpm run build
pnpm run preview# Using Python
python -m http.server 8000
# Using Node.js
npx http-server -p 8000
# Using PHP
php -S localhost:8000- Frontend: Vanilla JS with ES6+ modules
- Build Tool: Vite with PWA plugin
- Testing: Vitest with coverage
- Linting: ESLint + Prettier
- CI/CD: GitHub Actions
- Deployment: GitHub Pages
linkedinify/
βββ src/
β βββ js/
β β βββ modules/ # Feature modules
β β βββ utils/ # Utility functions
β β βββ config/ # Configuration
β β βββ app.js # Main application
β βββ css/ # Stylesheets
β βββ index.html # Main HTML
βββ public/ # Static assets
βββ .github/workflows/ # CI/CD workflows
βββ dist/ # Build output
- ThemeManager: Light/dark theme switching
- ContentConverter: Markdown to LinkedIn conversion
- HistoryManager: Local storage and post management
- TitleGenerator: AI-powered title generation
- PreviewManager: LinkedIn preview modes
- KeyboardManager: Keyboard shortcuts
- ClipboardManager: Advanced copy functionality
- Node.js 16+ and pnpm 8+
- Modern browser with ES6+ support
# Install dependencies
pnpm install
# Start development server
pnpm run dev
# Check code quality
pnpm run lint
pnpm run format
# Build for production
pnpm run build# Lint and fix
pnpm run lint
# Format code
pnpm run format
# Full check (lint + build)
pnpm run check- Open in Safari/Chrome
- Tap Share β "Add to Home Screen"
- Use like a native app!
- Look for install icon in address bar
- Click to install as desktop app
- Access from applications menu
# Big Heading
## Medium Heading
### Small Heading
**Bold text** and *italic text*
- Bullet point 1
- Bullet point 2
> Inspiring quote
[Link text](https://example.com)function hello() {
console.log('Hello LinkedIn!');
}- Toolbar: Click buttons for instant formatting
- Keyboard Shortcuts: Ctrl+B (bold), Ctrl+I (italic), Ctrl+S (save)
- History: Save and organize your posts
- Preview: See exactly how it looks on LinkedIn
# π 5 Career Lessons I Learned This Year
## Key Insights
Building relationships *before* you need them is crucial:
- Attend industry meetups
- Engage meaningfully on LinkedIn
- Help others without expecting anything
**Key takeaway:** Your career is a marathon, not a sprint.# π» JavaScript Tips That Will Blow Your Mind
## Clean Code Practices
```javascript
// Destructuring magic
const { name, email, age } = user;Pro tip: Master these patterns for cleaner code!
## π Deployment
### GitHub Pages (Automatic)
1. **Fork this repository** to your GitHub account
2. **Enable GitHub Actions** in your fork:
- Go to Settings β Actions β General
- Select "Allow all actions and reusable workflows"
3. **Enable GitHub Pages**:
- Go to Settings β Pages
- Source: "GitHub Actions"
4. **Push to `main` branch** and the workflow will automatically:
- Install dependencies with pnpm
- Run tests to ensure code quality
- Build the production version
- Deploy to GitHub Pages
5. **Your app will be live** at `https://yourusername.github.io/linkedinify`
### GitHub Pages Setup Guide
The repository includes a complete GitHub Actions workflow (`.github/workflows/deploy.yml`) that:
- β
Uses pnpm for fast, reliable builds
- β
Builds optimized production bundle
- β
Deploys automatically on every push to main
- β
Supports custom domains (configure in workflow)
### Manual Deployment
```bash
# Build the project
pnpm run build
# Deploy to GitHub Pages
pnpm run deploy
# Or upload dist/ folder to any static hosting
- GitHub Pages β
- Netlify β
- Vercel β
- Firebase Hosting β
- Any static hosting β
We welcome contributions! Here's how:
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Make your changes
- Add tests for new functionality
- Run the full check:
pnpm run check - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
- Follow the existing code style (ESLint + Prettier)
- Write tests for new features
- Update documentation as needed
- Keep commits atomic and descriptive
- Ensure all checks pass before submitting PR
- π Translations: Help translate UI text
- π¨ Themes: Create new color schemes
- π Templates: Add content templates
- π Bug Fixes: Report and fix issues
- π Features: Suggest and implement new features
- π Documentation: Improve docs and examples
LinkedInify is built with privacy as the foundation:
- β No Google Analytics or tracking pixels
- β No user data collection
- β No third-party cookies or scripts
- β No server communication after initial load
- β 100% local processing
- β Open source code
- β Your data stays on your device
- Chrome 80+ β
- Firefox 75+ β
- Safari 13+ β
- Edge 80+ β
- Mobile browsers β
- First Load: ~300KB (including all assets)
- Subsequent Loads: Instant (cached)
- Offline: Full functionality
- Mobile: Optimized for all screen sizes
- Content Security Policy implemented
- No external dependencies at runtime
- Local storage only for user data
- HTTPS required for service worker
- Install button not showing: Use Chrome/Edge/Firefox
- Offline not working: Ensure served via HTTP (not file://)
- History not saving: Check browser storage permissions
- π§ Email: mir.ankur.ruet13@gmail.com
- π GitHub Issues: Report bugs or request features
- π¬ Discussions: GitHub Discussions
MIT License - feel free to use, modify, and distribute!
See LICENSE file for details.
- Marked.js: Excellent Markdown parser
- Vite: Amazing build tool and dev experience
- Vitest: Modern testing framework
- LinkedIn: Inspiration for the formatting
- Community: Users who provided feedback and suggestions
- Export to other platforms (Twitter, Medium)
- More content templates
- Advanced formatting options
- Collaborative editing
- Browser extension
- Desktop application (Electron)
- Plugin system
- Content scheduling
- Name: Ankur Mursalin
- Email: mir.ankur.ruet13@gmail.com
- Website: https://encryptioner.github.io/
- LinkedIn: https://www.linkedin.com/in/mir-mursalin-ankur
- Github: https://github.com/encryptioner
- Twitter: https://x.com/AnkurMursalin
- Blog: https://dev.to/mir_mursalin_ankur
- Nerddevs: https://nerddevs.com/author/ankur/
- Project Home Page: https://encryptioner.github.io/linkedinify
Made with β€οΈ by Ankur Mursalin
Empowering everyone to share their stories on LinkedIn beautifully