HN user

benmxrt

26 karma
Posts6
Comments18
View on HN

Thanks for reporting this! The issue was caused by the email HTML content not being properly normalized before rendering - some emails from services like emailprivacytester.com return complex nested structures that triggered a React rendering error. I've pushed a fix that safely handles all edge cases (non-string HTML arrays, nested objects in header fields, etc.). Should be live shortly. Really appreciate you testing with edge cases like this!

OP here.

I built this because I was frustrated with existing file tools requiring uploads for simple tasks like merging PDFs or converting a video.

FileZen is a 100% client-side tool built with React and WebAssembly.

Tech Stack: - ffmpeg.wasm for video/audio processing (running in Web Workers to avoid blocking UI). - pdf-lib for document manipulation. - Vite + React for the frontend.

The main challenge was handling memory limits in the browser (especially specifically on iOS Safari) when processing larger video files.

It's currently an MVP and completely free. I'd love to hear your thoughts on the WASM performance and if you encounter any crashes on mobile devices.

I’m genuinely overwhelmed by the traffic (hitting 145+ concurrent sessions!) and the deep technical feedback from this community.

As a solo developer, seeing Mephisto being analyzed so thoroughly is incredible. If you support the idea of a 100% cookie-free, zero-persistence temporary mail tool, please consider starring the project on GitHub. It helps with visibility and keeps the motivation high to implement the complex features we’ve been discussing here (like IP-based domain allocation and secure reply-only logic).

Repo: https://github.com/jokallame350-lang/temp-mailmephisto

You hit the nail on the head. From an SMTP perspective, 'replying' is functionally identical to 'sending,' which is why most disposable mail services are strictly receive-only.

The moment you allow outbound traffic, you risk being weaponized as an open relay for spam. To implement a safe 'Reply-Only' feature, Mephisto would need a sophisticated validation layer that cryptographically links the outbound reply to a specific, recently received message ID. Even then, rate-limiting would have to be extremely aggressive. For now, staying receive-only is a deliberate choice to protect the service's reputation and ensure 100% uptime.

I want to be completely transparent here. Mephisto currently utilizes a few different upstream providers (including Guerrilla Mail and 1secmail) via a custom proxy layer to ensure high availability. The goal of this project isn't to build a new mail protocol from scratch, but to provide a hardened, cookie-free, and zero-persistence 'privacy frontend' that bridges the gap between these APIs and the end-user.

Regarding the AI claim: I've used modern dev tools to speed up the React/TypeScript implementation, but the architecture (RAM-only storage, IndexedDB caching, and PWA focus) is a deliberate design choice I've made to solve specific privacy frustrations I had with existing services. I appreciate the call for better attribution, and I'll be updating the 'About' section to clearly credit all upstream providers.

That is an intriguing feature request. Most disposable services avoid outgoing mail entirely to prevent being abused for spam, but a strict 'Reply-Only' policy (where you can only send to the address that just emailed you) is a clever middle ground.

Implementing this while maintaining the zero-persistence architecture would require a secure, ephemeral SMTP relay. It’s definitely a complex challenge, but the value it adds for verifying accounts that require a response is huge. I’m adding this to the experimental roadmap!

You're right that the current beta uses Guerrilla Mail as the upstream provider for mail delivery. My 'Zero-Persistence' and 'No-Cookie' claims specifically apply to the Mephisto layer: we don't store your data in our own DB, we don't use tracking cookies, and we purge all session metadata from our RAM.

Regarding polling vs WebSockets: The frontend currently polls the Mephisto proxy to ensure maximum compatibility with strict corporate firewalls, but a native WebSocket implementation for our own mail-server node is the long-term goal. I’m being transparent about the proxying—Mephisto is designed as a privacy-hardened 'frontend wrapper' that adds an extra layer of anonymity between you and the upstream providers.

That is a valid point. Currently, the backend keeps them in RAM mainly to support multi-device syncing (like the QR handoff feature) during an active session. If a user scans the QR code to open the same inbox on mobile, the backend needs to serve those existing messages to the new client.

However, I'm exploring a 'Transfer & Purge' logic where, once a message is successfully delivered and acknowledged by the primary client, it could be encrypted or removed from the server-side RAM entirely, leaving the responsibility of persistence to the client-side IndexedDB. It’s a delicate balance between UX and the absolute 'zero-trace' goal.

Absolutely agree with both of you. I just deployed an update that includes a domain picker directly in the address bar. Users can now manually choose from 8 different domains (including .net, .org, .la, and .info) to bypass blanket filters that often target the default TLDs.

Rotating less common TLDs automatically is the next logical step to keep the service resilient. Appreciate the support!

Great question. The emails are stored in volatile RAM on the backend only for the duration of the active session.

To ensure a smooth experience if you accidentally navigate away or refresh, I’ve recently implemented IndexedDB local caching on the client side. This keeps your messages accessible in your browser's local storage without them ever being written to our server's hard drive.

However, Mephisto follows a strict 'Zero-Persistence' policy: the moment you explicitly clear your session or the session naturally expires, a wipe sequence is triggered, and all data is cryptographically purged from both the server's RAM and your browser's local cache. If you navigate away without a cache, the signal is lost—just like a true burner phone.

That is a great point, and it's definitely on the roadmap.

The "cat and mouse" game between disposable email services and site filters is constant. I'm currently looking into rotating a pool of less common TLDs to keep the service viable for longer.

The idea of letting users pick from a list is also solid—it gives them more agency and potentially bypasses blanket filters that only target the "default" domain.

Thanks for the feedback, Tony!