https://github.com/mkornajcik/echo
Modern Twitter-like social media app built with Node.js, TypeScript, Express, and EJS.
https://github.com/mkornajcik/echo
aws-s3 docker ejs expressjs javascript jwt-authentication nodejs postgresql prisma supabase typescript
Last synced: 3 months ago
JSON representation
Modern Twitter-like social media app built with Node.js, TypeScript, Express, and EJS.
- Host: GitHub
- URL: https://github.com/mkornajcik/echo
- Owner: mkornajcik
- Created: 2025-05-13T10:07:46.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2025-07-07T11:47:42.000Z (12 months ago)
- Last Synced: 2025-08-03T06:37:39.506Z (11 months ago)
- Topics: aws-s3, docker, ejs, expressjs, javascript, jwt-authentication, nodejs, postgresql, prisma, supabase, typescript
- Language: JavaScript
- Homepage: https://social-echo.up.railway.app/
- Size: 1.96 MB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Echo
Echo is a modern, Twitter-like social media app built with TypeScript, Node.js, Express, and EJS. Host your data on Supabase, assets on AWS S3, and deploy the app seamlessly on Railway.
---
## π Table of Contents
1. [β¨ Features](#-features)
2. [π οΈ Tech Stack](#οΈ-tech-stack)
3. [πΌοΈ Screenshots & Demo](#οΈ-screenshots--demo)
4. [π Getting Started](#-getting-started)
- [Prerequisites](#prerequisites)
- [Environment Variables](#environment-variables)
- [Docker Setup](#docker-setup)
5. [βοΈ Usage](#οΈ-usage)
6. [π API Documentation](#-api-documentation)
7. [π Architecture & Hosting](#-architecture--hosting)
8. [π License](#-license)
9. [βοΈ Contact](#οΈ-contact)
---
## β¨ Features
- π **Real-Time Messaging** & live feed updates
- π₯ **Follow / Unfollow** users
- π° **Personalized Feed**
- π **Notifications** for mentions, likes, reposts
- π€ **User Profiles** with bio, posts, followers
- π **Search** posts and users
---
## π οΈ Tech Stack
- **Backend:** TypeScript β’ Node.js β’ Express
- **Templating:** EJS
- **Database:** PostgreSQL (Supabase) β’ Prisma ORM
- **Storage:** AWS S3 Buckets
- **HTTP Client:** Axios
- **Containerization:** Docker
- **Hosting:** Railway (app), Supabase (DB), AWS S3 (assets)
---
## πΌοΈ Screenshots & Demo


## π Getting Started
### Prerequisites
- Docker & Docker Compose
- A Supabase project (with your Prisma schema pushed)
- AWS S3 bucket credentials
- Railway account
### Environment Variables
Create a .env file in your project root and set the following:
```
DATABASE_URL=β¦
PORT=β¦
JWT_SECRET=β¦
JWT_EXPIRES_IN=β¦
JWT_COOKIE_EXPIRES_IN=β¦
NODE_ENV=production
CLIENT_URL=β¦
COOKIE_SECRET=β¦
AWS_ACCESS_KEY_ID=β¦
AWS_SECRET_ACCESS_KEY=β¦
AWS_REGION=β¦
S3_BUCKET_NAME=β¦
```
### Docker Setup
1. Build & start containers:
```
docker-compose up --build -d
```
2. Run migrations:
```
docker-compose exec app npx prisma migrate deploy
```
3. Access:
- App at http://localhost:``
- Supabase DB via Supabase Dashboard
## βοΈ Usage
- Build the code & copy assets: npm run build
- Start the server: npm start
Your server will run on the port you configured (default 3000).
## π API Documentation
Every endpoint, request schema, and response example is documented here:
https://documenter.getpostman.com/view/35992979/2sB2jAd9BZ
## π Architecture & Hosting
- **Railway** β Deploys and hosts the Node.js/Express application
- **Supabase** β Managed PostgreSQL database for production data
- **AWS S3** β Stores userβuploaded files & media assets
## π License
This project is licensed under the **MIT License**.
## βοΈ Contact
Marko KornajΔΓk
βοΈ marko.kornajcik6@gmail.com