Thank you for your interest in contributing! This project is a simple, privacy-first tool for turning PDF presentations into printable handout sheets, and contributions are welcome.
-
Fork the repository
-
Clone your fork:
git clone https://github.com/your-username/PDF-Slides-to-Handouts-Converter.git cd PDF-Slides-to-Handouts-Converter -
Install dependencies:
npm install
-
Start the development server:
npm run dev
-
Open http://localhost:3000 in your browser.
| Category | Technology |
|---|---|
| Framework | Next.js 14 (App Router) |
| UI | React 18, TailwindCSS, shadcn/ui |
| PDF Generation | pdf-lib |
| PDF Preview | pdfjs-dist |
| Theming | next-themes |
| Language | TypeScript |
- Open an issue with clear steps to reproduce
- Include browser/OS info and screenshots if applicable
- Check existing issues first to avoid duplicates
- Open an issue with the enhancement label
- Describe the use case and why it would be helpful
- Be as specific as possible
-
Create a new branch from
main:git checkout -b feature/your-feature-name
-
Make your changes
-
Ensure the project builds without errors:
npm run build
-
Run the linter:
npm run lint
-
Commit your changes with a clear commit message:
git commit -m "feat: add your feature description" -
Push to your fork and open a Pull Request
We follow Conventional Commits:
| Prefix | Description |
|---|---|
feat: |
A new feature |
fix: |
A bug fix |
docs: |
Documentation changes |
style: |
Formatting, no code change |
refactor: |
Code restructuring |
test: |
Adding or updating tests |
chore: |
Maintenance tasks |
- Privacy first — No server-side processing. All PDF handling must remain client-side.
- Keep it simple — This tool should stay lightweight and easy to use.
- TypeScript — All new code should be written in TypeScript with proper types.
- Accessibility — Keep the UI accessible (keyboard navigation, screen readers).
- No tracking — Do not add analytics, telemetry, or third-party tracking.
app/ --> Next.js app router pages
components/ --> React UI components
lib/ --> Core logic (PDF processing, layout engine, templates)
public/ --> Static assets (logos, images)
styles/ --> Global CSS
Open a discussion or an issue — happy to help!