Transform your content into social promotions with AI β Copy, paste, post. No OAuth, no complexity.
Features β’ Quick Start β’ Tech Stack β’ Philosophy β’ Roadmap
Navam Marketer is a marketing automation tool built for bootstrapped startup founders who need to maintain a social media presence without a marketing team. It uses AI to transform existing content into platform-optimized posts, with a simple copy-paste workflow that works with any social platform.
|
No marketing team? No problem. Automate content repurposing with AI while maintaining complete control over what gets published. |
Minimum Lovable Product β not just viable, but delightful. Beautiful UI, smooth UX, and thoughtful details from day one. |
|
Review and edit everything before publishing. AI generates, you approve. No auto-posting means no surprises. |
Runs completely offline with SQLite. No OAuth, no external dependencies (except Claude for content generation). Your data stays local. |
v1.0.0 Highlight: We've removed LinkedIn OAuth and auto-posting in favor of a simpler, more reliable copy-paste workflow. See What's New below.
graph LR
A[π Ingest URL] --> B[π€ Generate with AI]
B --> C[π Copy Content]
C --> D[π± Paste to Platform]
D --> E[π Track URL]
E --> F[π Record Metrics]
style A fill:#3b82f6
style B fill:#8b5cf6
style C fill:#10b981
style D fill:#f59e0b
style E fill:#ef4444
style F fill:#06b6d4
π Source Ingestion v0.1.0
Extract clean, readable content from any URL with a single click.
- Intelligent Parsing β Powered by Mozilla Readability
- Clean Output β Removes ads, clutter, and navigation
- Database Storage β Saved for future campaign use
- Source Management β Dedicated page to view and manage all sources
- Multi-Source Support β Generate from any saved source
Example: Paste a Medium article URL, get clean markdown content ready for AI processing.
π€ AI Content Generation v0.3.0
Generate platform-optimized posts with Claude AI (Sonnet 4.5).
Multi-Platform Generation
- π± LinkedIn: Professional posts (3000 chars, 3-5 hashtags)
- π¦ Twitter: Punchy tweets (280 chars, 1-2 hashtags)
- π Blog: Introduction paragraphs (500 chars)
Customization Options
- Tone Selection: Professional, Casual, Technical, Enthusiastic
- Call-to-Action: Optional CTA for driving engagement
- Source-Based: Generate from ingested content
Features
- Batch generation for all platforms at once
- Preview before saving to kanban
- Tasks created in Draft status for review
- Powered by Claude Sonnet 4.5 via Anthropic SDK
π Campaign & Task Management v0.2.0
Organize your social media workflow with an intuitive Kanban board.
Campaign Management
- Create unlimited campaigns with names and descriptions
- Track task counts per campaign
- Archive/restore campaigns for organization
- Export/import campaigns as JSON
- Duplicate campaigns with one click
Kanban Board
- ποΈ 4 Status Columns: To Do β Draft β Scheduled β Posted
- π±οΈ Drag & Drop: Smooth task movement with visual feedback
- βοΈ Inline Editing: Edit post content directly on cards
- π·οΈ Platform Tags: LinkedIn, Twitter, Blog with color coding
- π Real-Time Updates: Instant sync with database
Task Features
- Platform-specific categorization
- Scheduled date tracking (for planning, not auto-posting)
- Delete with confirmation
- Content preview with line clamping
π Manual Copy-Paste Workflow v1.0.0 π
Simple, reliable workflow that works with any social platform β no OAuth required.
Copy to Clipboard
- π One-Click Copy β Copy button on every task card
- β Toast Confirmation β "Post content copied to clipboard!"
- π― Works Everywhere β LinkedIn, Twitter, Facebook, Instagram, Threads, etc.
Manual Post URL Tracking
- π Add URL β Link icon on posted tasks opens URL input
- πΎ Save & Display β Published URLs saved and shown as "View Post" link
- π Platform Agnostic β Works with any social platform URL
- π Optional β Track URLs for reference, or skip if not needed
Benefits
- β No OAuth setup or token management
- β No API rate limits or failures
- β Works with platforms beyond LinkedIn/Twitter
- β Review post on platform before publishing
- β Platform updates won't break your workflow
- β Better privacy β no stored credentials
Workflow Example
1. Generate content with AI
2. Click copy button on task card
3. Open LinkedIn/Twitter/etc.
4. Paste content (Cmd+V / Ctrl+V)
5. Edit and publish manually
6. (Optional) Copy post URL and add to task
7. (Optional) Record engagement metrics
π Performance Dashboard v0.6.0
Track your social media engagement with real-time metrics and beautiful visualizations.
KPI Cards
- π Total Posts: Count of published content
- π Total Clicks: Link clicks via tracking
- β€οΈ Total Likes: Engagement metrics
- π Total Shares: Content sharing stats
Engagement Chart
- π Line chart showing metrics over last 30 days
- Multiple data series (clicks, likes, shares)
- Interactive tooltips and legend
- Responsive design for all screen sizes
Manual Metric Recording v0.7.3
- π Record Metrics Dialog: Click-to-open interface on posted tasks
- β‘ Quick Actions: One-click +1 buttons for likes, shares, comments, clicks
- π Custom Entry: Form for bulk metric recording
- π¨ Visual Display: Color-coded badges with icons on kanban cards
- π Real-Time Updates: Metrics refresh automatically after recording
Link Click Tracking
- Redirect tracker:
/r/{taskId}?url={destination} - Automatic click recording
- Real-time dashboard updates
- Easy integration in social posts
π― Additional Features (Click to expand)
- Unified Navigation
v0.7.2β Breadcrumb trail, active states, workflow clarity - Onboarding Hints
v0.11.1β Dismissible, contextual guidance for first-time users - Empty States
v0.11.0β Actionable prompts when campaigns/sources are empty - Toast Notifications
v0.10.0β Elegant feedback with Sonner
- Campaign Archive
v0.11.2β Archive/restore campaigns, soft delete - Export/Import
v0.12.1β JSON export/import for backup and portability - Campaign Duplication
v0.12.2β One-click campaign copying with intelligent task reset - Database Migrations
v0.12.0β Version-controlled schema with Prisma Migrate
- 279 Tests β 100% passing, comprehensive integration & component tests
- TypeScript β Full type safety across the entire codebase
- API Routes β RESTful conventions, clean architecture
- Hot Reload β Fast development with Next.js 15
Major Release: This is a breaking change that removes OAuth complexity and embraces simplicity.
- π Copy Button β One-click clipboard copy on all task cards
- π Manual URL Tracking β Add published post URLs for reference
- π Platform Agnostic β Works with ANY social platform, not just LinkedIn
- π― Simplified Workflow β No auth, no scheduler, no complexity
- π LinkedIn OAuth β No more token management or refresh logic
- β° Auto-Posting β No automatic posting to social platforms
- ποΈ User Model β No OAuth credential storage
- π Scheduler β No background job processing
Before v1.0.0:
Configure OAuth β Connect LinkedIn β Schedule β Auto-post β Hope it works
After v1.0.0:
Copy β Paste β Post β Done β¨
Why This Change?
- Simpler: No OAuth setup, no token errors, no API failures
- More Reliable: Platform updates won't break functionality
- Better Privacy: No credentials stored, no external dependencies
- Platform Flexible: Works with LinkedIn, Twitter, Facebook, Instagram, Threads, etc.
- Local-First: True offline capability (except AI generation)
π See
backlog/release-1.0.0.mdfor complete details and migration guide.
- Node.js 18 or higher
- npm (or pnpm)
- Anthropic API Key (for AI content generation)
# Clone the repository
git clone https://github.com/yourusername/navam-marketer.git
cd navam-marketer
# Install dependencies (use --legacy-peer-deps for React 19 RC)
npm install --legacy-peer-deps
# Set up environment variables
cp .env.example .env
# Edit .env and add your ANTHROPIC_API_KEY
# Set up the database (run migrations)
npm run db:push
# Start the development server
npm run devπ That's it! Open http://localhost:3000 to get started.
Supported URLs:
|
|
|
|
|
|
|
|
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Next.js 15 App Router β
β (React 19 RC) β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β Frontend β Backend β
β ββ shadcn/ui + Radix UI β ββ API Routes (RESTful) β
β ββ Tailwind CSS β ββ Prisma ORM β
β ββ @dnd-kit (Drag & Drop) β ββ SQLite (dev) β
β ββ Recharts (Viz) β ββ PostgreSQL (prod) β
β ββ Zustand (UI State) β ββ Claude AI Integration β
β ββ TanStack Query (Future) β β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
marketer/
βββ π app/ # Next.js App Router
β βββ π api/ # Backend API routes
β β βββ π campaigns/ # Campaign CRUD + archive/export/import
β β βββ π tasks/ # Task CRUD
β β βββ π source/ # Content extraction
β β βββ π generate/ # AI content generation
β β βββ π metrics/ # Performance tracking
β βββ π campaigns/ # Campaign management page
β βββ π sources/ # Source management page
β βββ π layout.tsx # Root layout with navigation
β βββ π page.tsx # Home page
β βββ π globals.css # Global styles + Tailwind
β
βββ π components/ # React components
β βββ π ui/ # shadcn/ui primitives (Button, Dialog, etc.)
β βββ π kanban-board.tsx # Drag-drop board container
β βββ π kanban-column.tsx # Column (To Do, Draft, etc.)
β βββ π kanban-card.tsx # Task card with copy/edit/delete
β βββ π navigation.tsx # Unified navigation header
β βββ π dashboard-stats.tsx # KPI cards
β βββ π engagement-chart.tsx # Recharts visualization
β βββ π create-campaign-dialog.tsx
β βββ π create-task-dialog.tsx
β βββ π generate-content-dialog.tsx
β βββ π schedule-task-dialog.tsx
β βββ π record-metrics-dialog.tsx
β βββ π add-source-dialog.tsx
β βββ π source-card.tsx
β βββ π source-details-dialog.tsx
β βββ π onboarding-hint.tsx
β
βββ π lib/ # Utilities & helpers
β βββ π prisma.ts # Database client singleton
β βββ π store.ts # Zustand state management
β βββ π utils.ts # Helper functions (cn, etc.)
β βββ π onboarding.ts # Hint dismissal persistence
β βββ π test-utils.ts # Test helpers
β
βββ π prisma/ # Database
β βββ π schema.prisma # Schema definition
β βββ π migrations/ # Migration history
β βββ π dev.db # SQLite database (local)
β
βββ π __tests__/ # Test suite
β βββ π integration/ # Integration tests (279 tests)
β βββ π components/ # Component tests
β
βββ π backlog/ # Project planning
β βββ π active.md # Development roadmap
β βββ π issues.md # Issue tracking
β βββ π release-*.md # Release notes (v0.1.0 - v1.0.0)
β
βββ π CLAUDE.md # AI assistant instructions
βββ π README.md # This file
βββ π package.json # Dependencies & scripts
βββ π tsconfig.json # TypeScript config
βββ π tailwind.config.ts # Tailwind config
βββ π next.config.mjs # Next.js config
βββ π .env.example # Environment variables template
| Command | Description |
|---|---|
npm run dev |
Start development server on localhost:3000 |
npm run build |
Build optimized production bundle |
npm start |
Start production server |
npm run lint |
Run ESLint for code quality |
| Command | Description |
|---|---|
npm test |
Run all 279 tests |
npm run test:watch |
Run tests in watch mode |
npm run test:coverage |
Generate test coverage report |
| Command | Description |
|---|---|
npm run db:push |
Push schema changes (development) |
npm run db:generate |
Regenerate Prisma client |
npm run db:migrate |
Create & apply migration |
npm run db:migrate:deploy |
Apply migrations (production/CI) |
npm run db:migrate:reset |
Reset database & reapply all migrations |
npm run db:studio |
Open Prisma Studio GUI |
π For migration workflow details, see
docs/migrations.md
We're not building an MVP β we're building an MLP:
|
Beautiful UI and smooth UX from day one, not an afterthought. |
Review before publish, always. AI generates, you approve. |
Do less, but do it exceptionally well. Quality over features. |
Works offline, deploys globally. Your data stays yours. |
- Progressive Disclosure β Show what matters, hide complexity until needed
- Instant Feedback β Loading states, error messages, toast confirmations
- Type Safety β Full TypeScript coverage for reliability
- Component Reusability β DRY with shadcn/ui primitives
- Simplicity Over Automation β Manual control beats complex automation
"Perfection is achieved, not when there is nothing more to add, but when there is nothing left to take away." β Antoine de Saint-ExupΓ©ry
We removed OAuth, auto-posting, and scheduling because:
- Complexity β Value β Simple workflows are more reliable
- Control > Convenience β Manual posting gives you control
- Privacy Matters β No credentials stored = better security
- Platform Agnostic β Works with ANY social platform
View All 18 Releases (v0.1.0 - v1.0.0)
- v0.1.0 β Source Ingestion (Mozilla Readability)
- v0.2.0 β Campaign & Task Management (Kanban)
- v0.3.0 β Content Generation with Claude AI
- v0.4.0 β Scheduling Interface
- v0.5.0 β Smooth Drag-and-Drop Animations
- v0.6.0 β Performance Dashboard & Analytics
- v0.7.0 β Unified Campaign Manager
- v0.7.1 β Source Management Page
- v0.7.2 β Unified Navigation System
- v0.7.3 β Manual Metrics Recording UI
- v0.8.0 β Streamlined Navigation & Source Management
- v0.8.1 β Fix Add Source Button Bug
- v0.9.0 β Streamlined Generate from Source Workflow
- v0.10.0 β Enhanced Source Fetch UX (Toast Notifications)
- v0.11.0 β Improved Campaign Workflow Clarity
- v0.11.1 β Dismissible Onboarding Hints
- v0.11.2 β Campaign Archive Management
- v0.12.0 β Database Migrations Setup
- v0.12.1 β Data Export/Import
- v0.12.2 β Campaign Duplication
- v0.13.0 β LinkedIn API Integration (removed in v1.0.0)
- v0.13.1 β LinkedIn OAuth Configuration Fix (removed in v1.0.0)
- v0.14.0 β User-Owned LinkedIn OAuth Credentials (removed in v1.0.0)
- v0.14.1 β LinkedIn Token Auto-Refresh (removed in v1.0.0)
- v1.0.0 β Manual Copy-Paste Workflow (MAJOR RELEASE)
Goal: Track engagement metrics without requiring OAuth authentication.
Planned Features:
- CSV/JSON import for bulk metrics
- Metrics import from platform analytics exports
- Optional browser extension for auto-tracking
- Improved manual metrics entry workflow
See: Issue #9 in backlog/issues.md
Goal: Intelligent AI orchestration with model routing.
Planned Features:
- LangGraph workflow implementation
- Model routing (Claude Haiku for speed, Sonnet for quality)
- Agent decision logging
- Stream progress updates to UI
Status: Planning stage
π See
backlog/active.mdfor detailed specifications.
Test Suite: 279 tests, 100% passing
# Run all tests
npm test
# Watch mode for development
npm run test:watch
# Generate coverage report
npm run test:coverage- Integration Tests: 18 test files covering all API routes and workflows
- Component Tests: UI component functionality and accessibility
- Manual Posting Workflow: 17 comprehensive tests for copy-paste workflow
- Database Operations: Real Prisma client, actual SQLite database
- Execution Time: < 3 seconds for full suite
Philosophy: Integration over unit tests. Test real database operations, not mocks.
| Metric | Count |
|---|---|
| Total Releases | 18 |
| API Routes | 11 |
| React Components | 26 |
| Database Models | 4 |
| Test Files | 18 |
| Tests Passing | 279 (100%) |
| Lines of Code | ~11,800 |
| Dependencies | Production-ready stack |
This is currently a private project. For questions or feedback, please contact the development team.
If you're working on this codebase:
- Read
CLAUDE.mdfor AI assistant instructions - Follow the MLP philosophy and design principles
- Write tests for all new features (integration tests preferred)
- Update
backlog/active.mdwith progress - Create release notes in
backlog/release-X.Y.Z.md
Private β All rights reserved.
Built with modern tools from the open-source community:
|
Next.js The React Framework |
shadcn/ui Beautiful components |
Prisma Next-gen ORM |
dnd-kit Modern drag & drop |
Tailwind CSS Utility-first CSS |
Zustand State management |
Special Thanks:
- Anthropic β Claude AI for content generation
- Mozilla β Readability for content extraction
- Vercel β Hosting and deployment platform
- The entire open-source community
Need Help?
π Check backlog/active.md for development roadmap
π Review CLAUDE.md for project guidelines
π Found a bug? Check backlog/issues.md
v1.0.0 β Made with β€οΈ for bootstrapped founders
"Simplicity is the ultimate sophistication."