Threadxer is a all-new social media platform where you can post your thoughts in under 180 characters. This platform features groundbreaking features like: creating an account using email; uploading images and video; likeing, reposting and quoting other posts; following your favorite content creators so that their posts are shown in your "feed".
Threadxer is built with the latest and greatest libraries to ensure high developer velocity and high performance. tRPC is used to make API calls and to ensure end-to-end type safety. Fastify is a high performance server for Node.js. Drizzle ORM is a SQL builder for TypeScript that provides the excellent developer experience of an ORM and the efficient queries of raw SQL. Tanstack Query (f.k.a React Query) and Redis are used for caching on the client and server respectively, providing cost savings and good user experience. Solid.js is a frontend library for creating performant user interfaces.
Threadxer has a custom built authentication system using JWTs. Refresh and short-term access tokens are used to ensure high security. Passwords are hashed with Bcrypt.
- TypeScript
- Node.js
- PostgreSQL
- Redis via IO Redis library
- Fastify
- tRPC
- Drizzle ORM
- JSON web token
- Nodemailer
- Deployment to Railway.app
- Docker
- Bcrypt
Feel free to clone this repo if you wish. Note, however, that the project won't work proper environment variables and a firebase service JSON file. See /server/.env.example