A modern, configurable PDF planner generator designed for digital note-taking apps like GoodNotes, Notability, and Remarkable. Create beautiful, functional planners with intelligent hyperlinks for seamless navigation.
- π¨ Simple Web UI: Modern, responsive interface for easy configuration
- π Flexible Pages: Year, Quarter, Month, Week, and Daily spreads
- π Smart Hyperlinks: Navigate between pages with clickable links
- π¨ Visual Presets: 8 curated color themes (Dracula, Nord, Gruvbox, etc.)
- ποΈ Customizable: Fonts, colors, paper styles (grid/dot/line/plain)
- Node.js (v14 or higher)
- Typst (for PDF generation)
# Install Typst
brew install typst
# Install Node.js dependencies
npm installnpm startThe web interface will be available at http://localhost:3000
- Open
http://localhost:3000in your browser - Configure your planner settings:
- Timeline: Year, start month, duration
- Pages: Select which spreads to include
- Style: Choose orientation, paper style, colors
- Click Generate PDF
Your planner will be generated in the output/ directory.
- Timeline: Start year (2000-2100), month, duration
- Week Settings: Week start day, weekend type
- Page Selection: Year, Quarter, Month, Week, Daily pages
- Output Format: Portrait/Landscape, paper style, pattern density
- Visual Presets: 8 curated themes or custom colors
- Daily Page: Sidebar options, time format, active hours
- Typography: Primary and secondary fonts with weights
- Colors: Dark, light, and accent colors
- Visual Themes: Dracula, Nord, Gruvbox, Solarized, and more
- Dracula: Dark theme with vibrant purple accents
- Nord: Arctic, north-bluish color palette
- Gruvbox: Retro groove with warm, earthy tones
- Solarized: Precision colors for reduced eye strain
- Monokai: Iconic dark theme with vibrant highlights
- Catppuccin: Soothing pastel theme
- Tokyo Night: Clean dark theme inspired by Tokyo nights
- GitHub: Clean and familiar GitHub aesthetic
PaperMaker/
βββ web/ # Web interface
β βββ index.html # Main UI
β βββ index.css # Styling
β βββ app.js # Configuration logic
βββ templates/ # Typst templates
β βββ main.typ # Main orchestrator
β βββ components/ # Page components
β β βββ cover.typ
β β βββ year.typ
β β βββ quarter.typ
β β βββ month.typ
β β βββ week.typ
β β βββ daily.typ
β βββ utils/ # Helper functions
β βββ dates.typ
β βββ hyperlinks.typ
β βββ styles.typ
βββ examples/ # Example configurations
βββ fonts/ # Font files
βββ server.js # Express server
βββ build.sh # Build script
βββ package.json
The planner includes intelligent hyperlinks for seamless navigation:
- Year β Months/Days: Click month names or day numbers
- Quarter β Months: Click month names
- Month β Weeks/Days: Click day numbers
- Week β Days: Click day headers
- Back Navigation: Every page links back to parent pages
- Start Simple: Begin with a monthly-only configuration
- Test Navigation: Always test hyperlinks in your target app
- Save Configurations: The web UI downloads your config as JSON
- Customize Colors: Use visual presets or create custom themes
- Paper Styles: "Plain" for maximum flexibility, "Line" for structured notes
You can also build directly from the command line:
./build.sh path/to/config.json [output-name]Generate multiple configurations:
for config in examples/*.json; do
./build.sh "$config"
doneTested with:
- β GoodNotes (iOS/macOS)
- β Notability (iOS/macOS)
- β Apple Notes (iOS/macOS)
β οΈ Remarkable (limited testing)
# Check if port 3000 is in use
lsof -i :3000
# Install dependencies
npm install# Install Typst
brew install typst
# Or download from: https://github.com/typst/typst- Check that your config JSON is valid
- Ensure all required fields are present
- Verify year is between 2000-2100
- Some PDF viewers don't support internal links
- Test in your target app (GoodNotes/Notability)
- Ensure you're using the latest version of the app
Contributions are welcome! Feel free to:
- Report bugs
- Suggest features
- Submit pull requests
This project is licensed under the AGPL-3.0 License - see the LICENSE file for details.
Created by Hiran Venugopalan
Made with β€οΈ for digital note-takers