Publicat is a fast, scalable, and beautiful web app that transforms any structured .csv
bibliography into an interactive journal explorer. Featuring timeline views, search capabilities, and D3.js visualizations, it's the perfect way to share archival metadata with the world—instantly.
This project builds on the structure of vsesvit.vercel.app and generalizes it for any CSV-based journal archive.
- 📂 Plug & Play CSV Input — Just drop in your
.csv
file. - 🕰️ Browse by Decade — Explore issues across time.
- 🔍 Search Everything — Find articles by author, title, translator.
- 📊 Visual Analytics — Unique authors per decade, country/language distributions.
- 🌙 Dark Mode by Default (with slick UI)
- 🤖 Future-Ready — Built with React (Next.js) + D3 + PapaParse
- 💬 Built-in AI Assistant — Ask questions about the data in natural language
Your .csv
file should have the following columns (headers must be exact):
journal_id,journal_name,journal_year,journal_number,article_name,author,translator,country,country_latin,language,language_latin
You can leave fields blank if not applicable.
Put your .csv
inside the /public/data/
folder.
Rename it something like my_journal_data.csv
.
Search across the codebase and update:
const CSV_URL = '/data/data_2.csv';
To:
const CSV_URL = '/data/my_journal_data.csv';
This is found in:
index.tsx
search.tsx
visualizations.tsx
ai_chat.tsx
Edit:
<title>Vsesvit</title>
To:
<title>Publicat</title>
Also update logos, meta descriptions, and about.tsx
for your own flavor.
- Push your project to GitHub
- Go to vercel.com
- Connect your repo & deploy
npm install -g vercel
vercel
Follow the interactive prompts.
Have a cool CSV use case? Want to improve visualizations? PRs are welcome!
- Fork the repo
- Clone it locally
- Install dependencies:
npm install
- Run dev server:
npm run dev
Created by @KGeorgii. Feel free to open issues or reach out for collaboration ideas!
MIT License.