{"id":37116912,"url":"https://github.com/umutdeveloper/instagram-light","last_synced_at":"2026-01-14T13:41:43.100Z","repository":{"id":322034219,"uuid":"1088002112","full_name":"umutdeveloper/instagram-light","owner":"umutdeveloper","description":"A lightweight, open-source Instagram clone built with Go (Fiber), Next.js, and PostgreSQL — designed for performance, simplicity, and modular scalability. Includes basic features like user authentication, posts, likes, comments, and real-time notifications.","archived":false,"fork":false,"pushed_at":"2025-11-02T06:46:26.000Z","size":8,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-11-02T07:03:56.182Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Dockerfile","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/umutdeveloper.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-11-02T04:56:34.000Z","updated_at":"2025-11-02T06:46:30.000Z","dependencies_parsed_at":"2025-11-02T07:04:03.774Z","dependency_job_id":null,"html_url":"https://github.com/umutdeveloper/instagram-light","commit_stats":null,"previous_names":["umutdeveloper/instagram-light"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/umutdeveloper/instagram-light","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/umutdeveloper%2Finstagram-light","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/umutdeveloper%2Finstagram-light/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/umutdeveloper%2Finstagram-light/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/umutdeveloper%2Finstagram-light/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/umutdeveloper","download_url":"https://codeload.github.com/umutdeveloper/instagram-light/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/umutdeveloper%2Finstagram-light/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28421680,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-14T13:30:50.153Z","status":"ssl_error","status_checked_at":"2026-01-14T13:29:08.907Z","response_time":107,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-01-14T13:41:42.299Z","updated_at":"2026-01-14T13:41:43.087Z","avatar_url":"https://github.com/umutdeveloper.png","language":"Dockerfile","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 🌅 Instagram Light\n\n\u003e A lightweight, open-source Instagram clone built with **Go (Fiber)**, **Next.js**, and **PostgreSQL** — optimized for simplicity, speed, and modular scalability.\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://img.shields.io/badge/Go-1.22+-00ADD8?style=for-the-badge\u0026logo=go\" /\u003e\n  \u003cimg src=\"https://img.shields.io/badge/Next.js-14-black?style=for-the-badge\u0026logo=next.js\" /\u003e\n  \u003cimg src=\"https://img.shields.io/badge/TailwindCSS-3.4-38B2AC?style=for-the-badge\u0026logo=tailwind-css\" /\u003e\n  \u003cimg src=\"https://img.shields.io/badge/PostgreSQL-15-336791?style=for-the-badge\u0026logo=postgresql\" /\u003e\n  \u003cimg src=\"https://img.shields.io/badge/Docker-Enabled-2496ED?style=for-the-badge\u0026logo=docker\" /\u003e\n\u003c/p\u003e\n\n---\n\n## 🧭 Overview\n\n**Instagram Light** is a minimal, fast, and modern re-implementation of Instagram’s core features — built for learning, prototyping, and small-scale deployment.\n\nThe goal is to create a **clean, modular architecture** with production-ready patterns: authentication, database management, API design, and frontend integration — all within a single monorepo.\n\n---\n\n## 🧱 Architecture\n\n```\ninstagram-light/\n├── backend/       # Go (Fiber) API Server\n│   ├── api/       # Route handlers\n│   ├── db/        # DB connection \u0026 migrations\n│   ├── models/    # GORM models\n│   ├── utils/     # Helpers, JWT, password hashing, etc.\n│   └── main.go\n│\n├── frontend/      # Next.js web app\n│   ├── app/       # App router (Next.js 14+)\n│   ├── components/\n│   ├── pages/\n│   ├── styles/\n│   └── ...\n│\n├── shared/        # Shared constants, types, assets\n│\n├── infra/         # Docker, CI/CD, configs\n│   ├── docker-compose.yml\n│   ├── Dockerfile.backend\n│   ├── Dockerfile.frontend\n│   └── ...\n│\n└── README.md\n```\n\n---\n\n## ⚙️ Tech Stack\n\n| Layer | Technology | Description |\n|-------|-------------|-------------|\n| **Backend** | Go (Fiber), GORM, JWT, Bcrypt | REST API, Auth, ORM |\n| **Frontend** | Next.js (14+), TailwindCSS | SSR frontend \u0026 UI |\n| **Database** | PostgreSQL | User/Post/Like tables |\n| **Realtime** | WebSocket (Fiber) | Notifications \u0026 chat |\n| **Storage** | Local → S3 (later) | Media uploads |\n| **Deployment** | Docker + Fly.io / Render / Railway | Easy cloud deploy |\n| **Logging/Monitoring** | Zap or Logrus (Go) | Structured logging |\n\n---\n\n## 🪜 Getting Started\n\n### 1️⃣ Prerequisites\n\nEnsure you have:\n- **Go 1.22+**\n- **Node.js 18+**\n- **Docker \u0026 Docker Compose**\n- **Git**\n\n---\n\n### 2️⃣ Clone the Repository\n\n```bash\ngit clone https://github.com/\u003cyour-username\u003e/instagram-light.git\ncd instagram-light\n```\n\n---\n\n### 3️⃣ Environment Variables\n\nCreate `.env` files in both `/backend` and `/frontend`.\n\n#### `/backend/.env`\n```\nPORT=8080\nDB_URL=postgres://postgres:password@db:5432/instagram_light?sslmode=disable\nJWT_SECRET=supersecret\nMEDIA_PATH=./media\n```\n\n#### `/frontend/.env.local`\n```\nNEXT_PUBLIC_API_URL=http://localhost:8080\n```\n\n---\n\n### 4️⃣ Docker Setup\n\nRun everything via Docker Compose:\n\n```bash\ndocker-compose up --build\n```\n\nIt will:\n- Start PostgreSQL\n- Start Go backend (Fiber)\n- Start Next.js frontend\n\nAccess:\n- Frontend → [http://localhost:3000](http://localhost:3000)\n- Backend → [http://localhost:8080/health](http://localhost:8080/health)\n\n---\n\n## 🧩 Core Features (MVP)\n\n| Feature | Status | Description |\n|----------|---------|-------------|\n| 👤 User Auth | ✅ | JWT login/register/logout |\n| 🖼️ Post CRUD | 🔄 | Upload \u0026 view posts |\n| ❤️ Likes | 🔄 | Like/unlike posts |\n| 💬 Comments | 🔄 | Add/view comments |\n| 🔔 Notifications | 🚧 | Real-time with WebSocket |\n| 🚫 Moderation | 🚧 | Basic NSFW/keyword filter |\n| 🧮 Analytics | 🕒 | Future (optional module) |\n\n---\n\n## 🧪 API Example\n\n### Health Check\n```bash\nGET /health\nResponse: { \"status\": \"ok\" }\n```\n\n### Register\n```bash\nPOST /api/auth/register\n{\n  \"username\": \"testuser\",\n  \"email\": \"test@example.com\",\n  \"password\": \"123456\"\n}\n```\n\n---\n\n## 🧰 Developer Tips\n\n- Run backend locally without Docker:\n  ```bash\n  cd backend\n  go run main.go\n  ```\n- Run frontend locally:\n  ```bash\n  cd frontend\n  npm run dev\n  ```\n- Database migrations (planned via `golang-migrate`)\n\n---\n\n## 🧪 Testing\n\n- **Backend tests:** `go test ./...`\n- **Frontend tests:** `npm run test`\n- **CI/CD:** GitHub Actions (workflow in `.github/workflows/ci.yml`)\n\n---\n\n## 🚀 Deployment\n\nYou can deploy using:\n- **Fly.io**\n- **Render**\n- **Railway**\n- **Docker Hub + VPS**\n\nExample:\n```bash\ndocker-compose -f docker-compose.prod.yml up -d\n```\n\n---\n\n## 📚 Roadmap\n\n| Phase | Goal | Status |\n|-------|------|---------|\n| **Phase 1** | Basic auth, posts, likes | ✅ |\n| **Phase 2** | Realtime notifications | 🚧 |\n| **Phase 3** | Image CDN \u0026 moderation | 🕒 |\n| **Phase 4** | Analytics \u0026 Admin Dashboard | 🕒 |\n\n---\n\n## 🧑‍💻 Contributors\n\n| Name | Role | Contact |\n|------|------|----------|\n| You | Creator / Lead Dev | [GitHub](https://github.com/your-username) |\n\n---\n\n## 🪪 License\nThis project is licensed under the **MIT License** — free to use and modify.\n\n```\nMIT License © 2025 Umut ÇAKIR\n```\n\n---\n\n## 🌟 Support\nIf you like this project:\n- ⭐ Star it on GitHub  \n- 🐞 Open issues for bugs or ideas  \n- 💬 Contribute with pull requests  \n\n---\n\n\u003cp align=\"center\"\u003e\n  Made with ❤️ using Go + Next.js\n\u003c/p\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fumutdeveloper%2Finstagram-light","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fumutdeveloper%2Finstagram-light","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fumutdeveloper%2Finstagram-light/lists"}