/tempnote

Tempnote is a free open source online service that allows users to send secure and confidential information over the internet. The information automatically self destructs after a defined expiry time. On many platforms provided by big tech, your data can be stored on their servers indefinitely with your data being shared with third party providers. We make it a priority to keep your data safe and secure from prying eyes.

Primary LanguageTypeScriptMIT LicenseMIT

Project logo

Status GitHub Issues GitHub Stars License


📝 Table of Contents

🧐 About

Tempnote is a free open source online service that allows users to send secure and confidential information over the internet. The information automatically self destructs after a defined expiry time. On many platforms provided by big tech, your data can be stored on their servers indefinitely with your data being shared with third party providers. We make it a priority to keep your data safe and secure from prying eyes.

Live demo available at https://tempnote.vercel.app.

For any enquiries, email tempnote@andrewvo.co.

If you would like to donate to the project, you can buy me a coffee.

Buy Me A Coffee

⭐️ Features

Rich Text Editor

A fully featured rich text editor with text formatting, bulleted lists, numbered lists, alignment options, links, inline images and emojis. 😎

Automatic Note Deletion

Notes are destroyed automatically after a selected expiry time. Options available are 5 minutes, 15 minutes, 30 minutes, 1 hour, 6 hours, 12 hours, 1 day, 3 days, 5 days and 7 days.

View Limits

Automatically destroy notes after they reach a defined amount of views.

Manual Destruction Links

Generate a manual destruction link to delete a note before its expiry time.

Password Protection

Password protect a note to add an additional layer of security and privacy.

Encryption

All content is securely encrypted on the server using AES-256 encryption and decrypted upon request.

Mobile Friendly

Responsive user interface to support all devices sizes from desktops, tablets to mobile devices.

📷 Screenshots

Home Page

Home Page

Success Page

Success Page

Note Page

Note Page

Password Protection

Password Protection

Manually Delete Note

Manually Delete Note

Mobile Views

Home Page Mobile Success Page Mobile Note Page Mobile Password Protection Mobile Manually Delete Note

Dark Mode

Dark Mode

🏁 Getting Started

These instructions will get you a copy of the project up and running on your local machine for development and testing purposes. See deployment for notes on how to deploy the project on a live system.

Prerequisites

  1. Node.js installed on your local machine.
  2. A Firebase account for the database and cloud functions.
  3. A vercel account to host the Next.js app.
  4. reCAPTCHA v3 credentials to distinguish humans and bots.

Installing

  1. Navigate into the /nextjs folder and edit the .env.sample file with the folowing parameters (Any entry with the NEXT_PUBLIC prefix will be exposed to the front end).
NEXT_PUBLIC_BASE_URL=
NEXT_PUBLIC_CAPTCHA_SITE_KEY=

CAPTCHA_SERVER_API_KEY=
ENCRYPTION_KEY=
FIREBASE_DATABASE_URL=
FIREBASE_PROJECT_ID=
FIREBASE_PRIVATE_KEY=
FIREBASE_CLIENT_EMAIL=
FIREBASE_STORAGE_BUCKET=
  1. Rename .env.sample to .env.
  2. Run yarn to install dependencies.
  3. Navigate to /firebase/functions folder and edit the .env.sample with the following parameters:
SEND_IN_BLUE_API_KEY=
DEFAULT_EMAIL_ADDRESS=
FIREBASE_FUNCTIONS_MEMORY=
FIREBASE_FUNCTIONS_TIMEOUT=
  1. Rename .env.sample to .env.
  2. Run yarn to install dependencies.

🎈 Usage

  1. Run yarn run dev inside the /nextjs directory.
  2. Navigate to http://localhost:3000 in your web browser.

🚀 Deployment

  1. Navigate to the /nextjs directory.
  2. Run vercel in the command line to connect your Vercel account.
  3. Run vercel --prod to deploy to production.
  4. Navigate to the /firebase directory.
  5. Run firebase init in the command line to connect your Firebase project.
  6. Run firebase deploy to deploy to production.

⛏️ Built Using

✍️ Authors