ai-startup-skills
创业公司做 AI 产品的 7 步 Agent Skill 合集:验证 → BP → 政策 → 路演 → 获客 → 定价 → 注册。
Translation pending
Le barriere del web, segnalate da chi le incontra. Cerca tra le segnalazioni di siti, app e documenti digitali inaccessibili, o inviane una.
Translation pending
OtherHTML · TypeScriptGitHub @accessibitOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
Loading the full README. The saved excerpt is shown below.
Le barriere del web, segnalate da chi le incontra. A public directory of reports about inaccessible websites, apps and digital documents, moderated before publication.
The design comes from Barriere Digitali.html (a bundled design export).Read the full README ↗Le barriere del web, segnalate da chi le incontra. A public directory of reports about inaccessible websites, apps and digital documents, moderated before publication.
The design comes from Barriere Digitali.html (a bundled design export).
typedRoutes), React 19, TypeScript 6src/app/globals.css@prisma/adapter-pg); the client is generated into src/generated/prismanext + full jsx-a11y + prettier)Requirements: Node 22.22+ (nvm use), Docker.
npm install
cp .env.example .env
npm run db:up # Postgres on localhost:5433
npm run db:migrate # applies the migrations
npm run db:seed # example data: real public services (local only)
npm run dev
The seed (prisma/seed.ts) refuses to run if DATABASE_URL does not point to a local database, or if NODE_ENV=production or VERCEL is set.
| Command | Description |
|---|---|
npm run dev | Development server |
npm run build | prisma generate + production build |
npm run lint | ESLint (includes the accessibility rules) |
npm run check-types | Route type generation + tsc |
npm run format | Prettier |
npm test | Unit and component tests (Vitest + axe-core) |
npm run test:e2e | Playwright: axe WCAG 2.2 AA, keyboard, focus, reflow |
npm run db:studio | Prisma Studio (moderation) |
npm run db:deploy | Applies the migrations in production |
Reports arrive with status = PENDING and no linked service. To publish one, open npm run db:studio (pointed at the right database) and:
Service if it does not exist yet. You need slug, name, type, and nameNormalized, which is the name in lowercase without https:// or www..Report, set serviceId, status = PUBLISHED and publishedAt (the date shown to the public). Remove any personal data from description first.Counts and dates in the list are computed from published reports, so nothing else needs updating. Public pages cache database reads for about a minute (cacheLife("minutes") in src/lib/services.ts), so a change made in Studio appears within that time. The sitemap refreshes every hour.
Abuse protection: each IP can send at most 5 reports in 10 minutes and 20 per day, and an identical report sent again within 10 minutes is not saved twice (src/lib/rate-limit.ts). The IP is never stored: only a daily HMAC (ip_hash), keyed with IP_HASH_SECRET. Without that variable in production, the per-IP limit is off.
To give the site a base of real reports before the public ones arrive, the editorial team audits well-known Italian websites (scripts/audit/targets.ts).
npm run audit:scan # or: npm run audit:scan -- inps.it tim.it
# review audit-results/<date>.md, then:
npm run audit:import -- audit-results/<date>.json # local DB, as PENDING
npm run audit:import -- audit-results/<date>.json --publish # local DB, published
DATABASE_URL=… npm run audit:import -- audit-results/<date>.json --publish --remote # production
scan checks the home page and up to two key pages (contacts, services, accessibility, help) with axe-core WCAG 2.2 AA and a reflow check at 320 px.scripts/audit/rules.ts become reports, with at most 6 per service. Any other finding is dropped, so no generic or unverified text is published.reports.evidence: page URL, date, rule, WCAG criteria and affected elements. reports.source is EDITORIAL. Neither is shown on the site.aria-current in the menus, focus moved to the heading after every navigation, and back to the service you came from when returning to the list (same search, sort and page).export const instant = false): the server sends complete HTML, so search, sorting, pagination and the form work without JavaScript, with no layout shift.
useActionState state to the HTML in that case.aria-describedby, and a page title prefixed with "Errori nel modulo".npm test: Vitest + Testing Library + axe-core (normalisation, pagination, validation, components).npm run test:e2e: Playwright on desktop (1440px) and mobile (390px), against the local seed (npm run db:seed). Expected values are derived from prisma/seed-data.ts.
e2e-*) are deleted at the end.fra1 (Frankfurt), next to the database.barrieredigitali (db.t4g.micro, eu-central-1, AWS account 179743357810). Storage is encrypted, backups are kept for 7 days and deletion protection is on.
bd_app, owner of the barrieredigitali database only. TLS is required: the app verifies the certificate against the RDS CA (src/lib/db.ts); any non-local host must use verified TLS; DATABASE_URL carries sslmode=require for the Prisma migrations.bd_admin and bd_app are in AWS Secrets Manager (barrieredigitali/db).barrieredigitali-db), because Vercel has no fixed IPs.DATABASE_URL (user bd_app), IP_HASH_SECRET (random, for the submission limit) and SITE_URL (https://barrieredigitali.org).vercel-build runs prisma migrate deploy only on production builds; previews do not touch the database. Never run the seed in production.DATABASE_URL points to the Postgres in Docker.