BlogCraft is a modern web application designed to replace discontinued tools like Open Live Writer, offering a comprehensive solution for editing and publishing on Blogger with an advanced interface and powerful features.
- Beta v0.4.21 – the application is now runnable with essential features.
- Fixed theme toggle to seamlessly switch between light and dark modes.
- Updated test suite to ensure core functionality works as expected.
- Added optional wide content layout expanding editing area to 1600px.
- Node.js 18.x or higher (recommended)
- npm (v9+) or Yarn (v1.22+)
- Google Account with Blogger access
-
Clone the repository
git clone https://github.com/your-username/blogcraft.git cd blogcraft -
Install dependencies
npm install # or yarn install -
Configure environment variables
- Create a
.envfile in the project root with the following:
# Google OAuth Client ID (from Google Cloud Console) REACT_APP_GOOGLE_CLIENT_ID=your-client-id.apps.googleusercontent.com # TinyMCE API Key (optional but recommended) REACT_APP_TINYMCE_API_KEY=your-tinymce-api-key - Create a
-
Set up Google OAuth
- Go to Google Cloud Console
- Create a new project or select an existing one
- Enable the Blogger API
- Create OAuth 2.0 credentials:
- Application type: Web application
- Authorized JavaScript origins:
http://localhost:3000 - Authorized redirect URIs:
http://localhost:3000
- Copy the Client ID to your
.envfile
-
Run the application
# On macOS/Linux ./run.sh # On Windows run.bat # Or start manually npm start
-
Access the application at
http://localhost:3000
- Robust Google Sign-In via
@react-oauth/googlewith Blogger scope - Token handling improvements in
AuthServiceandTokenManager(session checks, safer storage) BloggerServicewith caching, timeouts, and clearer error messages (401/403/429)- Dashboard: blog selector, recent posts, and basic monthly stats
- Post Editor (TinyMCE): draft/publish, scheduling, labels, metadata injection, import (TXT/HTML/Word) and export to Word
- Templates Manager: create, edit, delete, and reuse content templates
- Settings: theme (dark/light), defaults, autosave/backup options
- i18n foundations (
en-US,pt-PT) and improved styling
-
Create Google Cloud Project
- Visit Google Cloud Console
- Create a new project or select an existing one
-
Enable APIs
- Navigate to "APIs & Services"
- Enable "Blogger API"
-
Create OAuth Credentials
- Go to "Credentials"
- Click "Create Credentials" > "OAuth client ID"
- Select "Web application"
- Add authorized origins and redirect URIs
- For local development:
http://localhost:3000 - For production: Your actual domain
- For local development:
-
Configure Consent Screen
- Set up OAuth consent screen
- Add required scopes:
.../auth/blogger(Blogger API)emailprofile
-
Security Considerations
- Keep your Client ID and credentials confidential
- Never commit sensitive information to version control
- Use environment variables for sensitive data
- Ensure your Google account has Blogger access
- Verify Client ID and scopes match your application
- Check network connectivity
- Ensure browser supports modern OAuth flows
- If you receive 401/403 errors, remove the local token (
localStoragekey:blogcraft_token) and sign in again - The project uses
react-scriptswith--openssl-legacy-providerset innpmscripts for compatibility on Node 18
npm run build
npm testThe production build will be created in build/.
To package BlogCraft as a standalone Windows executable run:
node build-release.js
The resulting blogcraft-x.y.z.exe will be placed in the dist/ directory (version taken from package.json). On Windows you can use the helper batch file build-release.bat.
BlogCraft includes an optional Node.js scheduler that can publish posts at a later time even when the main UI is closed.
- Add scheduled posts to
scheduled-posts.json(seescheduled-posts.example.jsonfor the structure). - Export a Blogger access token in
BLOGGER_TOKENand optionally setSCHEDULED_POSTS_FILE. - Run the service:
npm run scheduler
The process will stay running and publish each post at its configured publishDate.
- Use incognito/private browsing to test login flows
- Clear browser cache if experiencing authentication issues
- Check browser console for detailed error messages
BlogCraft requires minimal permissions to:
- Read your Blogger blogs
- Create, edit, and manage blog posts
- Access basic profile information
- Image upload conveniences and media management
- More powerful template variables and snippets
- Improved offline/auto-save experience
Developed with ❤️ for the blogging community