A Smart Microcopy & UX Content Generator powered by AI
MicroScribe is a full-stack GenAI application built on the MERN stack (MongoDB/Supabase, Express, React, Node.js) that leverages advanced language models to automatically generate high-quality microcopy and UX content for websites, applications, and digital products.
- Overview
- Project Structure
- Tech Stack
- Features
- Installation & Setup
- Backend API
- Frontend Application
- Browser Extension
- Configuration
- Deployment
MicroScribe helps product teams, designers, and marketers generate optimized microcopyβthe small text elements that guide users through applications. Whether it's button labels, error messages, onboarding instructions, or call-to-action text, MicroScribe uses AI to create contextually appropriate, on-brand content.
- AI-Powered Generation: Multiple AI model options (OpenAI GPT-3.5, Hugging Face models, local LLMs)
- Tone & Style Control: Generate content in different tones (professional, casual, friendly, etc.)
- Translation Support: Translate generated content into multiple languages
- Team Collaboration: Manage projects and teams with role-based access
- A/B Testing Metrics: Track and analyze performance of different microcopy variants
- Subscription Plans: Tiered pricing with Stripe integration
- Export Options: Export generated content in various formats
- Browser Extension: Quick access to generation features from your browser
microscribe/
βββ backend/ # Node.js/Express API server
β βββ api/ # API endpoints
β β βββ figma/ # Figma integration
β β βββ generate/ # Core content generation
β β βββ stripe-webhook/# Payment webhook handling
β β βββ subscription/ # Subscription management
β β βββ user/ # User profile endpoints
β βββ middleware/ # Express middleware
β β βββ errorHandler.js
β βββ utils/ # Utility functions
β β βββ cors.js # CORS configuration
β β βββ stripe.js # Stripe payment integration
β β βββ supabase.js # Supabase database client
β βββ package.json
β βββ .env # Environment variables
βββ frontend/ # React application
β βββ public/ # Static assets
β βββ src/
β β βββ components/ # Reusable React components
β β βββ pages/ # Page components
β β β βββ Dashboard.jsx # Project dashboard
β β β βββ Generator.jsx # Main generation interface
β β β βββ Login.jsx # Authentication
β β β βββ Pricing.jsx # Pricing page
β β β βββ Project.jsx # Project details
β β β βββ Settings.jsx # User settings
β β β βββ Team.jsx # Team management
β β β βββ Home.jsx # Landing page
β β βββ services/ # API service layer
β β βββ store/ # Redux state management
β β β βββ slices/ # Redux slices
β β βββ contexts/ # React contexts
β β βββ hooks/ # Custom React hooks
β β βββ utils/ # Utility functions
β β βββ styles/ # Global styles
β β βββ App.jsx # Root component
β βββ package.json
β βββ tailwind.config.js # Tailwind CSS configuration
β βββ postcss.config.js # PostCSS configuration
β βββ .env # Environment variables
βββ browser-extension/ # Chrome/Firefox extension
βββ manifest.json # Extension configuration
βββ popup/ # Extension popup interface
- Runtime: Node.js (ES modules)
- Framework: Express.js
- Database: Supabase (PostgreSQL)
- Authentication: Supabase Auth
- AI/ML Integration:
- OpenAI API (GPT-3.5-turbo)
- Hugging Face Inference (Qwen 2.5, Phi-3, etc.)
- Web LLM (local model support)
- Payments: Stripe API
- Other: CORS, dotenv, UUID
- Framework: React 18
- State Management: Redux Toolkit
- Routing: React Router v6
- Styling: Tailwind CSS + Framer Motion
- UI Components: Headless UI, Heroicons
- API Client: Axios
- Visualization: Recharts
- Code Display: React Syntax Highlighter
- Local Models: Web LLM
- Manifest v3 compatible
- HTML/CSS/JavaScript popup interface
- Generate microcopy using multiple AI models
- Fallback system: Primary model β Fallback models β Manual override
- Context-aware generation based on user input
- Support for various content types
- Multiple tone options (Professional, Casual, Friendly, Formal, etc.)
- ToneSelector component for easy tone switching
- Consistent tone application across generated content
- Multi-language support via TranslationModal
- Translate generated content on-demand
- Language preferences storage
- Create and manage projects
- Store generation history
- Organize content by project
- Project-level settings
- Invite team members
- Role-based access control
- Team settings and preferences
- ABTestMetrics component for variant tracking
- Performance analytics
- Comparison tools for different microcopy versions
- Multiple export formats (JSON, CSV, etc.)
- Batch export functionality
- Custom export templates
- Supabase Auth integration
- Protected routes
- Session persistence
- User profiles
- Stripe payment integration
- Multiple subscription tiers
- Usage tracking and limits
- Webhook handling for payment events
- Quick access to generation features
- Context menu integration
- Quick-copy functionality
- Node.js 16+
- npm or yarn
- Supabase account
- OpenAI API key
- Hugging Face API token
- Stripe account
-
Navigate to backend directory
cd backend -
Install dependencies
npm install
-
Create
.envfile (in backend root)OPENAI_API_KEY=your_openai_key HUGGINGFACE_API_KEY=your_huggingface_token SUPABASE_URL=your_supabase_url SUPABASE_KEY=your_supabase_key STRIPE_SECRET_KEY=your_stripe_secret_key STRIPE_WEBHOOK_SECRET=your_webhook_secret NODE_ENV=development PORT=3001 -
Start the backend server
npm start
Server runs on
http://localhost:3001
-
Navigate to frontend directory
cd frontend -
Install dependencies
npm install
-
Create
.envfile (in frontend root)REACT_APP_SUPABASE_URL=your_supabase_url REACT_APP_SUPABASE_ANON_KEY=your_supabase_anon_key REACT_APP_API_URL=http://localhost:3001 -
Start the frontend development server
npm start
Application runs on
http://localhost:3000
-
Navigate to browser-extension directory
cd browser-extension -
Load in Chrome/Edge:
- Open
chrome://extensions/ - Enable "Developer mode"
- Click "Load unpacked"
- Select the
browser-extensionfolder
- Open
-
Load in Firefox:
- Open
about:debugging#/runtime/this-firefox - Click "Load Temporary Add-on"
- Select
manifest.json
- Open
Generates microcopy using AI models
{
"context": "Button for form submission",
"tone": "professional",
"contentType": "button-label",
"count": 5
}Manages user account information
- GET: Retrieve user profile
- POST: Update user preferences
Handles subscription management
- GET: Get current subscription
- POST: Create new subscription
- PUT: Update subscription plan
Processes payment events from Stripe
- Subscription updated
- Payment succeeded/failed
- Invoice created
Integrates with Figma for design-aware generation
- Extract design context from Figma files
- Apply brand guidelines to generated content
- Home - Landing page and feature showcase
- Login - User authentication
- Signup - New user registration
- Dashboard - Project overview and management
- Generator - Main content generation interface
- Project - Detailed project view with history
- Team - Team member management
- Settings - User preferences and account settings
- Pricing - Subscription plan selection
- Navbar - Navigation and user menu
- Sidebar - Project/team navigation
- GenerationCard - Display generated content
- ToneSelector - Select content tone
- TranslationModal - Translate content
- ExportOptions - Export generated content
- ABTestMetrics - View A/B test results
- ContextInput - Input context for generation
- LoadingSpinner - Loading indicator
- Toast - Notification system
- ProtectedRoute - Route authentication wrapper
- authSlice - Authentication state
- generatorSlice - Generation history and current content
- userSlice - User profile and preferences
- api.jsx - API client for backend communication
- localModelService.jsx - Local LLM inference
- translate.jsx - Translation service
Provides quick access to MicroScribe's generation features:
- Popup interface in
popup/popup.html - Context menu integration
- Content script for in-page generation
- Manifest V3 compliant
- Configured in
tailwind.config.js - Custom theme extensions
- Plugin integrations (forms)
- Configured in
postcss.config.js - Autoprefixer for browser compatibility
Backend:
OPENAI_API_KEY- OpenAI API keyHUGGINGFACE_API_KEY- Hugging Face tokenSUPABASE_URL- Supabase project URLSUPABASE_KEY- Supabase API keySTRIPE_SECRET_KEY- Stripe secret keySTRIPE_WEBHOOK_SECRET- Stripe webhook secretPORT- Server port (default: 3001)
Frontend:
REACT_APP_SUPABASE_URL- Supabase project URLREACT_APP_SUPABASE_ANON_KEY- Supabase public keyREACT_APP_API_URL- Backend API URL
- Configured for Vercel deployment
.vercel/project.jsoncontains deployment config- Automatically deploys API functions
npm run build- Creates production build in
build/directory - Ready for deployment to Vercel, Netlify, or other services
- Can be published to:
- Chrome Web Store
- Firefox Add-ons
- Edge Add-ons
Built on Supabase (PostgreSQL):
- users - User accounts and profiles
- projects - User projects
- generations - Generated content history
- subscriptions - User subscription data
- teams - Team management
- team_members - Team membership tracking
- Environment variables for sensitive data
- Supabase Auth for authentication
- Protected routes and API endpoints
- CORS middleware for cross-origin requests
- Stripe webhooks with secret verification
[Add your license information here]
[Add contribution guidelines here]
For issues, questions, or feature requests, please create an issue in the repository.
Happy generating! π