- HTML 56.1%
- JavaScript 30.6%
- CSS 13.3%
- Browser-based converter for converting 750 Words exports to Day One format - Pure JavaScript, no build step required - Deterministic UUID generation to prevent duplicate entries - Includes test suite and example files - Ready for static hosting deployment |
||
|---|---|---|
| examples | ||
| .gitignore | ||
| .nojekyll | ||
| 404.html | ||
| converter.js | ||
| DEPLOYMENT.md | ||
| favicon.svg | ||
| index.html | ||
| README.md | ||
| robots.txt | ||
| style.css | ||
| test.html | ||
750 Words to Day One Converter
A simple conversion script for those using 750 words for their daily writing who want to them migrate their entries to Day One at the end of the month. A browser-based converter that transforms 750 Words monthly export files into Day One journal format. This tool runs entirely in your browser - no server required, and your data never leaves your computer.
Features
- Privacy-first: All processing happens locally in your browser
- Deterministic UUIDs: Re-importing the same export generates identical UUIDs, in theory preventing duplicate entries in Day One
- Simple interface: Just select a file, convert, and download
- No installation: Works in any modern web browser
Usage
- Open
index.htmlin your web browser - Click "Select 750 Words Export File" and choose your
.txtexport file - Click "Convert to Day One"
- Click "Download ZIP" to save the converted file
- Import the ZIP file into Day One using their import feature
Click "Show Help" in the converter for detailed instructions on exporting from 750 Words and importing into Day One on different platforms.
How It Works
750 Words Format
The converter expects 750 Words monthly export files with entries separated by ------ ENTRY ------ markers. Each entry contains:
- Title (date string)
- Date (ISO format: YYYY-MM-DD)
- Word count and writing time
- Entry content (plain text)
Day One Format
The converter generates a Day One JSON-in-ZIP file containing:
Journal.jsonwith metadata and entries array- Each entry includes:
- Deterministic UUID (based on date + content hash)
- Creation and modification dates
- Rich text content in Day One's format
Note: Day One will create a new journal called "Journal" when importing. You can keep entries there or move them to any existing journal.
Deterministic UUIDs
To prevent duplicate entries when re-importing, the converter generates UUIDs based on a SHA-256 hash of the entry's date and content. This ensures the same entry always gets the same UUID.
Technical Details
- Pure JavaScript: No frameworks or build tools required
- JSZip: Used via CDN for ZIP file creation
- Web Crypto API: For SHA-256 hashing to generate deterministic UUIDs
- FileReader API: For reading text files locally
Browser Compatibility
Works in all modern browsers that support:
- FileReader API
- Web Crypto API (SubtleCrypto)
- ES6+ JavaScript features
Limitations
- Text-only entries (750 Words doesn't support images/attachments)
- No timezone information preserved (uses UTC)
- No tags or metadata beyond date and content
Development
A browser-based test suite is included for development:
test.html- Open in a browser to run tests and see results visually. Tests verify parsing logic, UUID generation, and Day One format conversion.
Note: test.html and the examples/ folder are development files and are excluded from deployment.
Deployment
The converter is ready for static hosting. All production files are in the root directory.
See DEPLOYMENT.md for detailed deployment instructions for:
- GitHub Pages
- Netlify
- Vercel
- Generic static hosting
Quick start: Upload the production files (index.html, converter.js, style.css, favicon.svg, robots.txt, .nojekyll, 404.html) to your static hosting provider.
Example
An example 750 Words export file is included in examples/750words_export_2013-05.txt, and an example Day One format file is in examples/DayOne_JSON_Format.zip.