/chronosecrets

A (rather different?) new social media to schedule and share encrypted messages

Primary LanguageTypeScriptGNU Affero General Public License v3.0AGPL-3.0

GitHub top language GitHub code size in bytes GitHub stars GitHub deployment

πŸ“Œ Overview

Wait4it is a project that relies on various essential dependencies, including auth, formkit, radix-ui, tailwindcss, tiptap, trpc, next-auth, and many others. It utilizes a wide range of tools and libraries to deliver its functionality.

πŸ” Table of Contents

πŸ“ Project Structure

β”œβ”€β”€ .eslintrc.json
β”œβ”€β”€ .gitignore
β”œβ”€β”€ .prettierignore
β”œβ”€β”€ README.md
β”œβ”€β”€ components.json
β”œβ”€β”€ dbml.ts
β”œβ”€β”€ drizzle.config.ts
β”œβ”€β”€ kirimase.config.json
β”œβ”€β”€ next.config.js
β”œβ”€β”€ package.json
β”œβ”€β”€ pnpm-lock.yaml
β”œβ”€β”€ postcss.config.js
β”œβ”€β”€ prettier.config.mjs
β”œβ”€β”€ public
β”‚   β”œβ”€β”€ next.svg
β”‚   └── vercel.svg
β”œβ”€β”€ schema.dbml
β”œβ”€β”€ src
β”‚   β”œβ”€β”€ app
β”‚   β”‚   β”œβ”€β”€ api
β”‚   β”‚   β”‚   β”œβ”€β”€ auth
β”‚   β”‚   β”‚   β”‚   └── [...nextauth]
β”‚   β”‚   β”‚   β”‚       └── route.ts
β”‚   β”‚   β”‚   β”œβ”€β”€ email
β”‚   β”‚   β”‚   β”‚   └── route.ts
β”‚   β”‚   β”‚   β”œβ”€β”€ friends
β”‚   β”‚   β”‚   β”‚   └── route.ts
β”‚   β”‚   β”‚   β”œβ”€β”€ people
β”‚   β”‚   β”‚   β”‚   └── route.ts
β”‚   β”‚   β”‚   β”œβ”€β”€ secrets
β”‚   β”‚   β”‚   β”‚   └── route.ts
β”‚   β”‚   β”‚   β”œβ”€β”€ trpc
β”‚   β”‚   β”‚   β”‚   └── [trpc]
β”‚   β”‚   β”‚   β”‚       └── route.ts
β”‚   β”‚   β”‚   └── user
β”‚   β”‚   β”‚       └── route.ts
β”‚   β”‚   β”œβ”€β”€ favicon.ico
β”‚   β”‚   β”œβ”€β”€ home
β”‚   β”‚   β”‚   β”œβ”€β”€ layout.tsx
β”‚   β”‚   β”‚   β”œβ”€β”€ page.tsx
β”‚   β”‚   β”‚   β”œβ”€β”€ people
β”‚   β”‚   β”‚   β”‚   └── page.tsx
β”‚   β”‚   β”‚   └── secrets
β”‚   β”‚   β”‚       β”œβ”€β”€ [id]
β”‚   β”‚   β”‚       β”‚   └── page.tsx
β”‚   β”‚   β”‚       └── new
β”‚   β”‚   β”‚           └── page.tsx
β”‚   β”‚   β”œβ”€β”€ layout.tsx
β”‚   β”‚   β”œβ”€β”€ loading.tsx
β”‚   β”‚   β”œβ”€β”€ my
β”‚   β”‚   β”‚   └── settings
β”‚   β”‚   β”‚       └── page.tsx
β”‚   β”‚   β”œβ”€β”€ page.tsx
β”‚   β”‚   └── resend
β”‚   β”‚       └── page.tsx
β”‚   β”œβ”€β”€ components
β”‚   β”‚   β”œβ”€β”€ auth
β”‚   β”‚   β”‚   β”œβ”€β”€ SignIn.tsx
β”‚   β”‚   β”‚   └── SignOut.tsx
β”‚   β”‚   β”œβ”€β”€ emails
β”‚   β”‚   β”‚   └── FirstEmail.tsx
β”‚   β”‚   β”œβ”€β”€ my
β”‚   β”‚   β”‚   └── SettingsForm.tsx
β”‚   β”‚   β”œβ”€β”€ people
β”‚   β”‚   β”‚   β”œβ”€β”€ FindPeople.tsx
β”‚   β”‚   β”‚   β”œβ”€β”€ FriendCard.tsx
β”‚   β”‚   β”‚   β”œβ”€β”€ FriendsList.tsx
β”‚   β”‚   β”‚   β”œβ”€β”€ RequestCard.tsx
β”‚   β”‚   β”‚   β”œβ”€β”€ RequestsList.tsx
β”‚   β”‚   β”‚   β”œβ”€β”€ UserCard.tsx
β”‚   β”‚   β”‚   β”œβ”€β”€ completed-profile.tsx
β”‚   β”‚   β”‚   β”œβ”€β”€ requests-for-user.tsx
β”‚   β”‚   β”‚   └── uncomplete-profile.tsx
β”‚   β”‚   β”œβ”€β”€ secrets
β”‚   β”‚   β”‚   β”œβ”€β”€ MySecretsList.tsx
β”‚   β”‚   β”‚   β”œβ”€β”€ SecretEditor.tsx
β”‚   β”‚   β”‚   β”œβ”€β”€ SecretForm.tsx
β”‚   β”‚   β”‚   β”œβ”€β”€ SecretModal.tsx
β”‚   β”‚   β”‚   └── Tiptap.tsx
β”‚   β”‚   └── ui
β”‚   β”‚       └── [shadcn-ui] components
β”‚   β”œβ”€β”€ lib
β”‚   β”‚   β”œβ”€β”€ api
β”‚   β”‚   β”‚   β”œβ”€β”€ friendships
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ mutations.ts
β”‚   β”‚   β”‚   β”‚   └── queries.ts
β”‚   β”‚   β”‚   β”œβ”€β”€ secrets
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ mutations.ts
β”‚   β”‚   β”‚   β”‚   └── queries.ts
β”‚   β”‚   β”‚   └── user
β”‚   β”‚   β”‚       β”œβ”€β”€ mutations.ts
β”‚   β”‚   β”‚       └── queries.ts
β”‚   β”‚   β”œβ”€β”€ auth
β”‚   β”‚   β”‚   β”œβ”€β”€ Provider.tsx
β”‚   β”‚   β”‚   └── utils.ts
β”‚   β”‚   β”œβ”€β”€ db
β”‚   β”‚   β”‚   β”œβ”€β”€ index.ts
β”‚   β”‚   β”‚   β”œβ”€β”€ migrate.ts
β”‚   β”‚   β”‚   β”œβ”€β”€ migrations
β”‚   β”‚   β”‚   β”‚   └── meta
β”‚   β”‚   β”‚   β”‚       └── _journal.json
β”‚   β”‚   β”‚   └── schema
β”‚   β”‚   β”‚       β”œβ”€β”€ attachments.ts
β”‚   β”‚   β”‚       β”œβ”€β”€ auth.ts
β”‚   β”‚   β”‚       β”œβ”€β”€ index.ts
β”‚   β”‚   β”‚       └── secrets.ts
β”‚   β”‚   β”œβ”€β”€ email
β”‚   β”‚   β”‚   β”œβ”€β”€ index.ts
β”‚   β”‚   β”‚   └── utils.ts
β”‚   β”‚   β”œβ”€β”€ env.mjs
β”‚   β”‚   β”œβ”€β”€ hooks
β”‚   β”‚   β”‚   β”œβ”€β”€ useDebounce.tsx
β”‚   β”‚   β”‚   └── useMounted.tsx
β”‚   β”‚   β”œβ”€β”€ server
β”‚   β”‚   β”‚   β”œβ”€β”€ routers
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ _app.ts
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ friendships.ts
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ secrets.ts
β”‚   β”‚   β”‚   β”‚   └── user.ts
β”‚   β”‚   β”‚   └── trpc.ts
β”‚   β”‚   β”œβ”€β”€ trpc
β”‚   β”‚   β”‚   β”œβ”€β”€ Provider.tsx
β”‚   β”‚   β”‚   β”œβ”€β”€ api.ts
β”‚   β”‚   β”‚   β”œβ”€β”€ client.ts
β”‚   β”‚   β”‚   β”œβ”€β”€ context.ts
β”‚   β”‚   β”‚   └── utils.ts
β”‚   β”‚   └── utils.ts
β”‚   β”œβ”€β”€ middleware.ts
β”‚   └── styles
β”‚       └── globals.css
β”œβ”€β”€ tailwind.config.ts
└── tsconfig.json

βœ… Prerequisites

  • Planetscale DB -> create it here
    • Get the Connection Details from them and populate the .env

πŸš€ Run Locally

1.Clone the wait4it repository:

git clone https://github.com/AlvaroAquijeDiaz/wait4it

2.Install the dependencies with one of the package managers listed below:

pnpm install
bun install

3.Start the development mode:

pnpm dev
bun dev

πŸ€” FAQ

1. What is this project about?

This project is fun way to share secrets between friends, allowing the reveal of them only at a certain date, all data is encrypted and unable to be seen by other users

2. Can I contribute to this project?

Yes, we welcome contributions! Head over to Issues and follow this format:

  1. Title: [BUG | FEATURE-REQUEST | HELP] <descriptive title>
  2. Description: As long as you want, proving screenshots is hugely welcomed

Please note that we're only allowing bugs/issues submission, it's possible that we'll enable PRs soon

3. Release date?

Intended to reach sunlight in two weeks from this commit - aprox (30 oct 2023)

πŸ—ΊοΈ Roadmap

  • May post tasks, updates and project from Linear here

πŸ™ Acknowledgements

  • EasyReadme - for this documentation template generation
  • Kirimase - for easy project boilerplate/scaffolding
  • This article - very useful to understand the new paradigms on next.js and react
  • Linear - I think we all know them lol
  • shadcn-ui - Radix-ui - based, headless components

Notes

  • Components divided into
    • RSC - (kebab-case).tsx
    • Client Components - (PascalCase).tsx
      • UI - (kebab-case).tsx
    • Hooks - (camelCase).tsx
  • Pages
    • (kebab-case).tsx