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.
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
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
Statistics
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
- Releases: 0
Topics
Metadata Files
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
/loginand click “Developer sign in (no email)” (requiresDEV_AUTH=1). - Email magic link (no SMTP): link is logged to the dev console; you can also open
/api/dev/latest-token-linkto retrieve a clickable link. - Production: set
RESEND_API_KEYandRESEND_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/topicsGET /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.jsdb:push— apply Prisma schemadb:seed— seed demo datadb:fts— install FTS triggerslint,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
- Website: https://acglobalgroup.com/
- Repositories: 1
- Profile: https://github.com/antho8101
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
- actions/checkout v4 composite
- actions/setup-node v4 composite
- 578 dependencies
- @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