{"id":27523432,"url":"https://github.com/vipozdniakov/react-lit-archive","last_synced_at":"2026-04-08T20:47:39.486Z","repository":{"id":286433788,"uuid":"961381325","full_name":"vipozdniakov/react-lit-archive","owner":"vipozdniakov","description":"A personal literature archive built with React, Tailwind CSS, and Firebase — designed as a clean, modern online magazine.","archived":false,"fork":false,"pushed_at":"2025-05-11T15:28:51.000Z","size":1905,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-05-11T15:33:28.717Z","etag":null,"topics":["firebase","literature","magazine-style","magazine-theme","multilingual","poetry","portfolio","prose","react","tilewindcss","web-app"],"latest_commit_sha":null,"homepage":"https://react-lit-archive.vercel.app","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/vipozdniakov.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":null,"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}},"created_at":"2025-04-06T11:59:29.000Z","updated_at":"2025-05-11T15:28:54.000Z","dependencies_parsed_at":null,"dependency_job_id":"6b7dc66a-8fb0-417a-be5a-9aad431e931d","html_url":"https://github.com/vipozdniakov/react-lit-archive","commit_stats":null,"previous_names":["vipozdniakov/react-lit-archive"],"tags_count":8,"template":false,"template_full_name":null,"purl":"pkg:github/vipozdniakov/react-lit-archive","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vipozdniakov%2Freact-lit-archive","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vipozdniakov%2Freact-lit-archive/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vipozdniakov%2Freact-lit-archive/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vipozdniakov%2Freact-lit-archive/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/vipozdniakov","download_url":"https://codeload.github.com/vipozdniakov/react-lit-archive/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vipozdniakov%2Freact-lit-archive/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31573788,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-08T14:31:17.711Z","status":"ssl_error","status_checked_at":"2026-04-08T14:31:17.202Z","response_time":54,"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":["firebase","literature","magazine-style","magazine-theme","multilingual","poetry","portfolio","prose","react","tilewindcss","web-app"],"created_at":"2025-04-18T12:01:06.240Z","updated_at":"2026-04-08T20:47:39.476Z","avatar_url":"https://github.com/vipozdniakov.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 📚 My Literature Archive / Moje Archiwum Literatury\n\nA personal literature archive for publishing and browsing poetry and prose. / Osobiste archiwum literackie do publikowania i przeglądania poezji oraz prozy.\n\nThe design follows a modern online magazine layout, with support for multiple languages and tag-based filtering. Now includes a dynamic tag cloud with frequency-based styling and a modular component structure. / Projekt inspirowany nowoczesnym układem magazynu online, z obsługą wielu języków, filtrowaniem według tagów, dynamiczną chmurą tagów i modułową strukturą komponentów.\n\n---\n\n## 📸 Preview / Podgląd\n\n![Preview of My Literature Archive](public/preview.jpg)\n\n[🔗 View Live Demo / Zobacz wersję online](https://react-lit-archive.vercel.app/)\n\n---\n\n## 🛠️ Tech Stack / Technologie\n\n- [React](https://reactjs.org/) — component-based frontend framework / framework frontendowy oparty na komponentach\n- [Vite](https://vitejs.dev/) — fast build tool / szybkie narzędzie do budowania aplikacji\n- [Tailwind CSS](https://tailwindcss.com/) — utility-first styling / narzędzie do stylizacji typu utility-first\n- [Firebase Firestore](https://firebase.google.com/products/firestore) — cloud database / baza danych w chmurze\n- [Git \u0026 GitHub](https://github.com/) — version control / kontrola wersji\n- [Vercel](https://vercel.com/) — hosting and CI/CD / hosting i CI/CD\n\n---\n\n## 🚀 Getting Started / Jak zacząć\n\n1. Clone the repository / Sklonuj repozytorium:\n\n```bash\ngit clone https://github.com/vipozdniakov/react-lit-archive.git\ncd react-lit-archive\n```\n\n2. Install dependencies / Zainstaluj zależności:\n\n```bash\nnpm install\n```\n\n3. Create a .env file and add your Firebase config / Utwórz plik .env i dodaj konfigurację Firebase:\n\n```env\nVITE_FIREBASE_API_KEY=...\nVITE_MY_GOOGLE_UID=...\nVITE_FIREBASE_AUTH_DOMAIN=...\nVITE_FIREBASE_PROJECT_ID=...\nVITE_FIREBASE_STORAGE_BUCKET=...\nVITE_FIREBASE_MESSAGING_SENDER_ID=...\nVITE_FIREBASE_APP_ID=...\n```\n\n4. Start the development server / Uruchom serwer deweloperski:\n\n```bash\nnpm run dev\n```\n\n## ✨ Features / Funkcje\n\n- Add and display literature entries (prose or poetry) / Dodawanie i wyświetlanie wpisów literackich (proza lub poezja)\n- Text formatting preserved (e.g., line breaks in poetry) / Zachowanie formatowania tekstu (np. podziały wierszy)\n- Full-text search across content and titles / Wyszukiwanie pełnotekstowe w treści i tytułach\n- Language filter: Russian, Belarusian, Polish / Filtrowanie według języka: rosyjski, białoruski, polski\n- Multi-tag filtering (strict mode: all tags must match) / Filtrowanie według wielu tagów (tryb ścisły: wszystkie tagi muszą pasować)\n- Tag-based filtering with frequency-based tag cloud / Filtrowanie według tagów z dynamiczną chmurą opartą na częstotliwości\n- Minimalist magazine-style layout / Minimalistyczny układ w stylu magazynu\n- Modular component architecture for easier scaling / Modułowa architektura komponentów ułatwiająca rozwój projektu\n- 📈 Visitor statistics with Google Analytics 4 integration / 📈 Statystyki odwiedzin dzięki integracji z Google Analytics 4\n- Scroll-to-top button integrated into post layout / Przycisk powrotu na górę zintegrowany z układem postów\n- Language label badges displayed next to post titles / Etykiety językowe wyświetlane obok tytułów postów\n\n## 🔒 Security Practices / Praktyki bezpieczeństwa\n\nThis project follows modern security best practices: / Projekt stosuje nowoczesne praktyki bezpieczeństwa:\n\n- Sensitive data like API keys is managed via environment variables (.env). / Wrażliwe dane, takie jak klucze API, są zarządzane za pomocą zmiennych środowiskowych (.env).\n- API keys are domain-restricted and only allowed minimal necessary access. / Klucze API są ograniczone do wybranych domen i mają minimalnie wymagane uprawnienia.\n- Repository history has been fully cleaned of sensitive information. / Historia repozytorium została w pełni oczyszczona z poufnych informacji.\n\n✅ The project is safe for public deployment and complies with open-source security standards. / Projekt jest bezpieczny do publicznego wdrożenia i zgodny ze standardami bezpieczeństwa open source.\n\n## 🧩 Project Structure / Struktura projektu\n\n```txt\nsrc/\n├── components/\n│   ├── Header.jsx\n│   ├── Footer.jsx\n│   ├── TagFilter.jsx\n│   ├── TagDisplay.jsx\n│   ├── ToastNotifications.jsx\n│   ├── LanguageFilter.jsx\n│   └── ...\n├── hooks/\n│   └── usePosts.js\n├── utils/\n│   ├── filterPosts.js\n│   └── getAllTags.js\n└── App.jsx\n```\n\n## 📄 Changelog / Dziennik zmian\n\nSee [CHANGELOG.md](./CHANGELOG.md) for release notes. / Zobacz [CHANGELOG.md](./CHANGELOG.md), aby przeczytać notatki o wersjach.\n\n## 🧠 Author / Autor\n\n**[Vitali Pazdniakou](https://github.com/vipozdniakov)**\n\n\u003e \"Silence is a word, too.\" /\n\u003e „Cisza to też słowo.”\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvipozdniakov%2Freact-lit-archive","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvipozdniakov%2Freact-lit-archive","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvipozdniakov%2Freact-lit-archive/lists"}