Simple email-based file transfer service - perfect for public computers.
XyloMail lets you:
- Upload files (up to 4.5MB)
- Send them to any email address
- No sign-in required
- Files delivered as ZIP archives
Perfect for when you need to send files from a public/shared computer without logging into your personal email account.
- Framework: Next.js (Pages Router)
- Language: TypeScript
- Styling: Tailwind CSS
- UI/Animations: Framer Motion, OGL, and custom GLSL shaders.
- Email Delivery: Brevo (Sendinblue) & Nodemailer
- File Handling: Formidable (for parsing) & Archiver (for zipping)
- Deployment: Vercel
Follow these steps to get a local copy of XyloMail up and running.
- Node.js v18.x or later
npm,yarn, orpnpmpackage manager
-
Clone the repository:
git clone https://github.com/your-username/xylo-mail-next.git cd xylo-mail-next -
Install dependencies:
npm install
-
Set up environment variables: Create a file named
.envin the root of your project and add the following variables. You can get these credentials from your email service providers (Brevo, SMTP2GO, etc.).# Brevo (Sendinblue) Configuration BREVO_API_KEY=your_brevo_api_key BREVO_SENDER_EMAIL=[email protected] BREVO_SENDER_NAME=XyloMail # SMTP Fallback Configuration SMTP_HOST=your_smtp_host SMTP_PORT=587 SMTP_USER=your_smtp_username SMTP_PASS=your_smtp_password SMTP_FROM_EMAIL=[email protected] SMTP_FROM_NAME=XyloMail
-
Run the development server:
npm run dev
-
Open http://localhost:3000 in your browser to see the application.
Alternatively, you can run the project in a Docker container for a consistent development environment.
-
Prerequisites:
- Docker must be installed and running.
-
Build and run the container: This command will build the Docker image and start the container in the background. It will automatically use the variables from your
.envfile.docker-compose up --build -d
-
Access the application: Open http://localhost:3000 in your browser.
-
To stop the container:
docker-compose down
