An open API service indexing awesome lists of open source software.

https://github.com/dan5py/mbox-viewer

Modern and simple offline MBOX files viewer
https://github.com/dan5py/mbox-viewer

emails mail mbox mbox-viewer

Last synced: 3 months ago
JSON representation

Modern and simple offline MBOX files viewer

Awesome Lists containing this project

README

          

# MBOX Viewer


logo

A modern, fast, and privacy-focused MBOX file viewer that runs directly in your browser.

## Key Features

- **Client-Side Processing**: All MBOX file parsing and rendering is done in the browser. Your files are never uploaded to a server, ensuring your data remains private.
- **Modern UI**: A clean and modern interface built with Shadcn/ui and Tailwind CSS.
- **HTML Email Rendering**: Accurately renders HTML emails, including attachments and inline images.
- **Bulk Message Export**: Select messages across paginated results and export them as MBOX, TXT, or HTML (with optional attachment bundles).
- **Multiple File Import**: Import many MBOX files at once with drag-and-drop or file picker multi-select.
- **PWA Support**: Install the viewer as a Progressive Web App with offline-ready app shell caching.
- **i18n Support**: Internationalization support with English and Italian locales.

## Tech Stack

- [Next.js](https://nextjs.org/)
- [React](https://react.dev/)
- [TypeScript](https://www.typescriptlang.org/)
- [Tailwind CSS](https://tailwindcss.com/)
- [Shadcn/ui](https://ui.shadcn.com/)
- [Zustand](https://zustand-demo.pmnd.rs/)
- [Web Workers](https://developer.mozilla.org/en-US/docs/Web/API/Web_Workers_API)
- [Bun](https://bun.sh/)

## Getting Started

### Prerequisites

This project uses [Bun](https://bun.sh/docs/installation) as package manager.

### Installation

1. Clone the repository:

```sh
git clone https://github.com/dan5py/mbox-viewer.git
cd mbox-viewer
```

2. Install the dependencies:

```sh
bun install
```

3. Run the development server:

```sh
bun dev
```

Navigate to to view the app.

## Contributing

Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are **greatly appreciated**.

If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue for it.
Thank you!

1. Fork the Project
2. Create your Feature Branch (`git checkout -b feat/new-feature`)
3. Run `bun run format` to format the code
4. Run `bun run lint` to check for linting errors
5. Commit your Changes (`git commit -m 'feat: add new feature'`)
6. Push to the Branch (`git push origin feat/new-feature`)
7. Open a Pull Request

### Commit Messages

We use [Commitlint](https://commitlint.js.org/) to enforce commit message conventions.

## License

Distributed under the MIT License. See `LICENSE` for more information.