echoMail

echoMail Used AI

26 devlogs
18h 46m
•  Ship certified
Created by Brian

A private email service allowing you to create disposable emails for free.

Features:
- (📧) Create disposable, secure emails instantly - no signup required.
- (🔗) Use our free API to integrate disposable emails into your apps/libraries.
- (🛡️) Stay anonymous by using disposable emails instead of your real one.
- (📂) Your emails are never stored once your session ends. Your privacy is guaranteed.
- (🖥️) Optimized web interface for both desktop and mobile devices.
- (👤) Open-source under Apache 2.0 license - contribute or view it anytime.

This is my first ever project using Vite + React! I'm also attempting to learn how to use Tailwind CSS better.

Timeline

Fixed an issue with the margin on the subheader, and I added a little label to remind the user when their inbox expires!

Update attachment

Finally finished with the implementation and revamped the UI!

I've added compatibility so users can have a custom duration with the API. Currently working on improvements for the mail UI.

Update attachment

I finally finished creating the API documentation! I took some time to make sure it looks clean and made it easy-to-use.

Update attachment

Ship 2

1 payout of shell 248.0 shells

Brian

20 days ago

Brian Covers 16 devlogs and 11h 28m

Second iteration is finally ready to ship! Here's a quick demo for anybody interested in how it looks now :)

Update attachment

I managed to upgrade my setup to a good Hetzner server! I also shortened the length of the emails since it previously used UUID (which was super long).

Update attachment

After some final commits, the website is finally ready for production! Updating the server right now.

Update attachment

We're down to the final stretch before the project is ready to ship! I created a MailViewer component to load emails and display them neatly, as long as any additional HTML.

Update attachment

Still working on some minor page changes. I had to fix a bug present in the toast and dialog which caused the opacity animations to work only half the time. This was solved using requestAnimationFrame which basically tells your device hey, i need to display an animation, update the frame and render the initial state before i do it.

Update attachment

I've created one unified session function which will handle all API requests. Decided to do this to clean up the code a bit (lots of repetition...).

Update attachment
Brian
Brian
2h 53m 21 days ago

Similarly for the toast, I created a dialog component to warn users before continuing with certain danger-zone actions. The component HTML is using a modified version of the code here (bleh Tailwind for putting all the other themes/icons behind a paywall): https://tailwindcss.com/plus/ui-blocks/application-ui/overlays/modal-dialogs

Update attachment

Had to fix a quick bug because index.html wasn't being served automatically for all routes (since this is a React app it's necessary).

Update attachment
Brian
Brian
1h 45m 22 days ago

I've been working on the overall design for the Mail page, and created a simple Toast component that I can use to display user messages. The component HTML is using a modified version of the code here (thank you Flowbite!): https://flowbite.com/docs/components/toast/

Update attachment

Currently working on designing the mailbox page! API is all done and ready-for-use (ignore the longgggg email, oh and the localhost...)

Update attachment

I've fixed a few bugs and also added session tokens when new disposable mailboxes are created. These are to prevent attackers from viewing your messages or deleting your inbox, because the token is required for access.

Update attachment

I've updated the code to save a message if one is caught! This means the API should now be fully operable and I can create, destroy, and view messages of disposable emails.

Update attachment
Brian
Brian
1h 14m 23 days ago

I've finished creating the SMTP server, setting up the Prisma database, and included rate limiting for API commands too!

Update attachment

Updated the server to install dependencies and serve the compiled React website if found.

Update attachment

I moved around some of the CSS properties, modified the page glow colors, and added a 404 not found page!

Update attachment

I've moved the custom cursor to its own component and added a pointer checker to remove it for mobile devices!

Update attachment

Ship 1

1 payout of shell 81.0 shells

Brian

24 days ago

Brian Covers 5 devlogs and 5h 35m

During this time, I finished working on the README, setup the domain + GitHub Pages, and patched a few bugs (including one which caused the How it Works, Features, and FAQ buttons to not function properly on locations other than /).
<br>
I also fixed the scroll margin top for each section, and create a ScrollToTop component to force the page to start at the top when the location is changed.

I've finished building the website and setting up my React + Vite project! I'm currently working on creating a README.

Brian
Brian
1h 16m 24 days ago

More progress on the website! I added a features section, finished the navbar, and added a custom cursor :)

Update attachment
Brian
Brian
1h 41m 24 days ago

I've created a simple page and setup my React Router!

Update attachment

First devlog! I'm learning how to setup Vite + React for the first time, and installing Tailwind CSS :D

Update attachment