https://github.com/antho8101/edicto

A public platform to publish, search, and archive official communications from verified organizations, with advanced search, real-time alerts, AI summaries, and immutable version history.

https://github.com/antho8101/edicto

Science Score: 26.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (9.5%) to scientific vocabulary

Keywords

ai-summaries edicto information-access institutional-communication journalism-tools officiel-statements open-data press-releases public-archive public-register real-time-alerts research-tools verified-communications version-history
Last synced: 9 months ago · JSON representation

Repository

A public platform to publish, search, and archive official communications from verified organizations, with advanced search, real-time alerts, AI summaries, and immutable version history.

Basic Info
  • Host: GitHub
  • Owner: antho8101
  • License: mit
  • Language: TypeScript
  • Default Branch: main
  • Homepage:
  • Size: 146 KB
Statistics
  • Stars: 0
  • Watchers: 0
  • Forks: 0
  • Open Issues: 0
  • Releases: 0
Topics
ai-summaries edicto information-access institutional-communication journalism-tools officiel-statements open-data press-releases public-archive public-register real-time-alerts research-tools verified-communications version-history
Created 10 months ago · Last pushed 10 months ago
Metadata Files
Readme Funding License

README.md

EDICTO — The official register of verified statements

EDICTO is a public, neutral platform that centralizes official communications from verified organizations (companies, institutions, NGOs). It provides transparent publishing, versioning, integrity proofs, powerful search, personalized monitoring, and open access for everyone.

Vision

  • Public-by-default register, not a social network
  • Verified sources only (domain/DNS/legal checks)
  • Tamper-resistant history (timestamps + SHA-256), readable diffs
  • Powerful research and monitoring for journalists, researchers, and institutions

Features (MVP)

  • Public browsing: home, explore, statement detail with versions, organization pages, topics, search, RSS
  • Organization verification: domain email + DNS TXT + optional legal docs; admin approval
  • Publishing & versioning: Markdown + PDF attachments; SHA-256, timestamps, diffs, current version pin
  • Integrity & proof: display hash, “Verify hash” button, version history
  • Search: Postgres FTS + trigram; filters by org/topic/date; Pro unlocks advanced facets/exports
  • Monitoring: follows, alerts (by org/keywords/conditions), in-app and email (digest/instant)
  • Realtime: live updates (SSE) on feed
  • API: public read endpoints; org write endpoint; webhooks (statement.published/updated)
  • Billing: Free vs Pro vs Team (Stripe); plan-based limits
  • Admin: verification queue, moderation, audit logs

Tech Stack

  • Next.js 14 (App Router, React Server Components) — TypeScript strict
  • Tailwind CSS v4 — design tokens (Navy #0B1B2B, Ivory #F7F3EA, Gold #C6A15B)
  • Prisma + PostgreSQL (Neon) — FTS (tsvector + triggers), trigram, JSONB metadata
  • Auth: NextAuth (Email magic link + optional OAuth later); Dev credentials for local
  • Emails: Resend (or SMTP); S3-compatible storage for PDFs/images
  • Realtime: SSE; Cron: Vercel Cron/Node cron; Rate limit: Redis (future)

App Structure (Routes)

  • Public: /, /statements, /statements/[org]/[slug], /org/[slug], /topics, /topics/[slug], /search, /pricing, /about, /help, /brand, /rss, /legal/privacy, /legal/terms, /legal/cookies, /legal/imprint
  • User (auth): /feed, /saved, /alerts, /settings, /billing
  • Organization (verified): /org/[slug]/dashboard, /publish, /verification, /api, /webhooks
  • Admin: /admin/verify, /admin/moderation, /admin/logs
  • Onboarding: /onboarding, /onboarding/org, /onboarding/user, /onboarding/user/preferences

Data Model (Prisma overview)

  • Users (plans, locale, sessions, accounts)
  • Organizations (verified status, domains)
  • Statements + StatementVersions (content, hashSha256, PDFs, attachments)
  • Topics/Tags and many-to-many join tables
  • Follows, SavedStatements, SavedSearch, AlertRules, Notifications
  • ApiKeys, WebhookEndpoints, Integrations
  • VerificationRequest (with reviewer), AuditLog, ViewLog, BillingSubscription

Getting Started

1) Install

bash npm install

2) Environment

Create .env with at least: DATABASE_URL=postgresql://... NEXTAUTH_SECRET=change_me NEXTAUTH_URL=http://localhost:3000 DEV_AUTH=1 Email (optional): RESEND_API_KEY=... RESEND_FROM="EDICTO <no-reply@yourdomain.com>"

3) Database

bash npx prisma generate npx prisma db push npm run db:seed npm run db:fts

4) Run

bash npm run dev Open http://localhost:3000.

Authentication (Dev & Prod)

  • Dev: go to /login and click “Developer sign in (no email)” (requires DEV_AUTH=1).
  • Email magic link (no SMTP): link is logged to the dev console; you can also open /api/dev/latest-token-link to retrieve a clickable link.
  • Production: set RESEND_API_KEY and RESEND_FROM (or SMTP). DKIM/brand alignment recommended, but not required to start.

API (MVP)

  • Public read:
    • GET /api/public/statements?query=&org=&topic=&from=&to=&page=
    • GET /api/public/orgs, GET /api/public/topics
    • GET /api/public/statements/by-slug?org=&slug=
  • RSS:
    • /rss/org/[slug].xml, /rss/topic/[slug].xml, /rss/search/[id].xml
  • Org write (verified):
    • POST /api/org/publish — create statement + v1 (hash, timestamps, notify)

Scripts

  • dev — start Next.js
  • db:push — apply Prisma schema
  • db:seed — seed demo data
  • db:fts — install FTS triggers
  • lint, build

Deployment

  • Frontend: Vercel (recommended)
  • Database: Neon (Postgres)
  • Storage: S3-compatible provider (R2/MinIO)
  • Emails: Resend/SMTP
  • Billing: Stripe (Pro/Team), with webhooks

Roadmap

  • AI summaries & translation on publish (worker)
  • Advanced Pro search facets and exports
  • SSE feed for followed orgs
  • Admin tooling: verification queue, moderation actions
  • API docs (OpenAPI) and /api/docs

Contributing & License

  • See CI workflow in .github/workflows/ci.yml; PRs welcome via issues and templates.
  • License: MIT (see LICENSE).

Owner

  • Name: Anthony
  • Login: antho8101
  • Kind: user
  • Location: France
  • Company: acglobalgroup

AC Global Group CEO 🌍 Co-founder of Holy Tweaks software 🤖 Businessman & project creator 🚀

GitHub Events

Total
  • Push event: 2
  • Create event: 2
Last Year
  • Push event: 2
  • Create event: 2

Issues and Pull Requests

Last synced: 9 months ago


Dependencies

.github/workflows/ci.yml actions
  • actions/checkout v4 composite
  • actions/setup-node v4 composite
package-lock.json npm
  • 578 dependencies
package.json npm
  • @eslint/eslintrc ^3 development
  • @tailwindcss/postcss ^4 development
  • @types/node ^22 development
  • @types/nodemailer ^6.4.0 development
  • @types/react ^19 development
  • @types/react-dom ^19 development
  • eslint ^9 development
  • eslint-config-next 15.4.6 development
  • playwright ^1.48.2 development
  • prisma ^6.13.0 development
  • tailwindcss ^4 development
  • tsx ^4.19.2 development
  • typescript ^5 development
  • vitest ^2.0.5 development
  • @auth/prisma-adapter ^1.0.0
  • @prisma/client ^6.13.0
  • next 15.4.6
  • next-auth ^5.0.0-beta.16
  • nodemailer ^6.9.0
  • react ^19
  • react-dom ^19
  • resend ^3.1.0