A modern, feature-rich text steganography platform built with Next.js 14, featuring 8 advanced encoding techniques, AI-powered suggestions, and cloud-based history tracking.
- 8 Steganography Techniques:
- Zero-Width Characters
- Whitespace Encoding
- Homoglyph Substitution
- Unicode Normalization
- Synonym Replacement
- Character Frequency
- Punctuation Variation
- Invisible Ink
- Smart auto-detection of hidden messages
- Intelligent technique recommendations
- Context-aware capacity suggestions
- One-shot auto-fill for cover text
- Supabase cloud database integration
- Local storage fallback
- Cross-device history synchronization
- Comprehensive activity tracking
- Emergent-style design with smooth animations
- Responsive 2-column layout
- Dark mode support
- Clean inline suggestions
- Paste & Clear buttons for convenience
- Node.js 18+
- npm or yarn
- Supabase account (optional, works with local storage)
# Clone the repository
git clone https://github.com/Raheedpasha10/steganography01.git
cd steganography01/Steg2
# Install dependencies
npm install
# Set up environment variables
cp .env.example .env
# Edit .env and add your Supabase credentials (optional)
# Run the development server
npm run devOpen http://localhost:3000 in your browser.
Note: The app works perfectly without any configuration! Supabase setup is optional for cloud sync.
The app works perfectly without database setup using browser localStorage. For cloud sync across devices:
- Go to supabase.com
- Create a new project
- Copy your project URL and anon key from Settings β API
Edit your .env file:
NEXT_PUBLIC_SUPABASE_URL=your_project_url
NEXT_PUBLIC_SUPABASE_ANON_KEY=your_anon_keyGo to your Supabase SQL Editor and run:
-- See setup-database.sql for the complete SQL
CREATE TABLE IF NOT EXISTS history (
id UUID DEFAULT gen_random_uuid() PRIMARY KEY,
user_id TEXT NOT NULL,
action TEXT NOT NULL,
technique TEXT NOT NULL,
text_preview TEXT,
success BOOLEAN DEFAULT true,
created_at TIMESTAMP WITH TIME ZONE DEFAULT NOW()
);Then run the RLS policies from fix-rls-policies.sql.
That's it! The app will automatically use the database.
- Navigate to Encode page
- Enter your cover text (the visible message)
- Enter your secret message (to hide)
- Select a steganography technique
- Click Encode
- Copy the encoded text!
AI Features:
- If cover text is too short, click Auto-Fill button
- Get intelligent technique recommendations
- See real-time capacity indicators
- Navigate to Decode page
- Paste the encoded text
- Click Auto-Detect or select technique manually
- View your decoded message!
Smart Detection:
- Tries both compressed & uncompressed
- Tests all 8 techniques automatically
- Shows confidence scores
Steg2/
βββ app/
β βββ api/
β β βββ history/ # History API routes
β βββ dashboard/ # Main dashboard
β βββ encode/ # Encoding interface
β βββ decode/ # Decoding interface
β βββ history/ # History page
β βββ login/ # Authentication
β βββ signup/
βββ components/
β βββ CleanSuggestions.jsx # AI suggestion component
β βββ AnimatedCard.jsx # Animated UI cards
β βββ ui/ # Shadcn UI components
βββ lib/
β βββ stego/ # 8 steganography techniques
β βββ ai-detection.js # AI detection logic
β βββ auto-extend.js # Auto-fill logic
β βββ local-history.js # Local storage fallback
β βββ supabase.js # Database client
βββ setup-database.sql # Database setup
βββ fix-rls-policies.sql # Security policies
- Frontend: Next.js 14 (App Router), React 18
- Styling: Tailwind CSS, Shadcn UI
- Animations: Framer Motion
- Database: Supabase (PostgreSQL)
- AI: Anthropic Claude (detection)
- Compression: pako (gzip)
- Row-Level Security (RLS) enabled
- HTTPS/TLS encryption
- JWT authentication
- Only metadata stored (not secret messages)
- Client-side encoding/decoding
- Database: 500 MB (using ~0.004%)
- API Calls: 50,000/month
- Cost: $0.00 forever (for personal use)
{
"action": "encode",
"technique": "zero-width",
"text_preview": "First 100 chars...",
"success": true,
"timestamp": "2025-10-26T..."
}NOT stored: Your secret messages, full texts, or sensitive data.
Intelligently generates contextual text to meet capacity requirements in one click.
- Tries Supabase database first
- Falls back to localStorage automatically
- Works offline seamlessly
- Tests all techniques with both compression modes
- Validates message quality
- Returns confidence scores
- No intrusive toast notifications
- Context-aware inline suggestions
- Smooth animations and transitions
Create .env.local (optional, credentials are embedded):
NEXT_PUBLIC_SUPABASE_URL=your_url
NEXT_PUBLIC_SUPABASE_ANON_KEY=your_keyHistory not showing?
- Run
fix-rls-policies.sqlin Supabase - Check browser console for errors
- Verify localStorage:
localStorage.getItem('steganotext_history')
Decode showing garbage?
- Make sure you're using the same technique
- Try Auto-Detect instead
- Check if compression was used during encoding
App not starting?
# Clear cache and reinstall
rm -rf .next node_modules package-lock.json
npm install
npm run devMIT License - feel free to use for personal or commercial projects.
Raheed Pasha
- GitHub: @Raheedpasha10
- Supabase for database infrastructure
- Shadcn for beautiful UI components
- Anthropic for AI capabilities
Built with β€οΈ using Next.js and modern web technologies.
For detailed setup instructions, see DATABASE_SETUP.md.