Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/malekd5/tweeter
(WORK IN PROGRESS) Twitter clone using NextJs 14, Drizzle, and Uploadthing
https://github.com/malekd5/tweeter
cockroachdb drizzle-orm nextjs nextjs14 postgres shadcn-ui tailwindcss typescript uploadthing zod
Last synced: about 2 months ago
JSON representation
(WORK IN PROGRESS) Twitter clone using NextJs 14, Drizzle, and Uploadthing
- Host: GitHub
- URL: https://github.com/malekd5/tweeter
- Owner: MalekD5
- Created: 2023-01-09T20:41:27.000Z (about 2 years ago)
- Default Branch: main
- Last Pushed: 2024-07-25T12:19:51.000Z (6 months ago)
- Last Synced: 2024-07-25T20:50:36.950Z (6 months ago)
- Topics: cockroachdb, drizzle-orm, nextjs, nextjs14, postgres, shadcn-ui, tailwindcss, typescript, uploadthing, zod
- Language: TypeScript
- Homepage:
- Size: 896 KB
- Stars: 2
- Watchers: 3
- Forks: 0
- Open Issues: 7
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Tweeter
Tweeter is a twitter clone built with Next.js. This project attempts to apply clean architecture principles and explores features of Next.js 14 framework such as React Server Components, and Server actions. This project also make use of [Drizzle ORM](https://drizzle-orm.com/) for database operations, [Uploadthing](https://github.com/uploadthing/uploadthing) for uploading images and videos, and [Emoji Mart](https://github.com/missive/emoji-mart) for emoji picker.
## Structure
As mention in the description, this project uses clean architecture principles. Here is how this project structured:
- `app`: This is mainly the presentation layer of the application.
- `use-cases`: This is where all the use cases are defined. like creating an account, posting a tweet, etc..
- `use-cases/common`: this contains interfaces with implementation being delegated to the **infrastructure** folder. mostly typing database operations like getTweets, createTweet, etc..
- `infrastructure`: This is where all the infrastructure code is defined, mostly database stuff and server actions.
- `entities`: This is where all the entities are defined, like tweet, user, etc..
- `lib`: Third party libraries and utility functions.
- `db`: This is where the database connection is defined.
- `types`: This is where all the global types are defined.