We’re building Ever Works in public. Some things may be incomplete, missing, or broken while we continue improving the platform.We’re building Ever Works in public — expect a few rough edges.
Build & ship · The generated site
When Ever Works builds a directory or an awesome-repo Work, it does not assemble a page out of blocks. It clones the classic template — a Next.js 16 App Router monorepo with TypeScript, Drizzle, Auth.js, Playwright and 38 documented features — fills its Git-based CMS with researched content, and deploys it. Everything below is already in the repository on day one, whether you switch it on or not.
Ordinary, current, well-documented technology. Any developer you hire next year can read this codebase without a tour.
A Turborepo + pnpm monorepo with the site in apps/web, the Playwright suite in apps/web-e2e and a Docusaurus documentation site in apps/docs. TypeScript throughout, Zod for form and payload validation.
Styling is utility classes and component props, not a theme binary. Change a colour, ship a component, restyle a page — it is the same edit you would make in any Next.js app you already own.
Schema in apps/web/lib/db/schema.ts, migrations through pnpm db:generate and pnpm db:migrate, a GUI at pnpm db:studio. Point DATABASE_URL at Supabase, PostgreSQL, MySQL or a local SQLite file.
Sign-in ships wired: credentials plus GitHub, Google, Microsoft, Facebook and X, each toggled on or off in the auth block of works.yml. Passkeys are in the schema alongside them — a WebAuthn authenticators table that follows the Auth.js contract. JWT access and refresh tokens live in httpOnly cookies, and middleware protects the routes that need it.
next-intl drives locale-prefixed routes and 21 message files — Arabic, Bulgarian, German, English, Spanish, French, Hebrew, Hindi, Indonesian, Italian, Japanese, Korean, Dutch, Polish, Portuguese, Russian, Thai, Turkish, Ukrainian, Vietnamese and Chinese. Adding the twenty-second is one JSON file.
Content is files, synced from your data repository: data/ for items, pages/ and markdown/ for Markdown pages and header/footer blocks, blocks/ for locale-aware page blocks such as the hero, comparisons/ for head-to-head articles, plus categories.yml, tags.yml, collections.yml and references.yml. The Work’s knowledge base is mirrored into kb/ for the agents rather than rendered to visitors. Editing your site is a commit; reverting it is a revert.
A Dockerfile and a full set of GitHub Actions workflows come with the clone: CI, CodeQL scanning, dev, stage and prod deploys, Vercel and Kubernetes deploys, Docker image publishing and the end-to-end test run. The footer shows the running version and detects when the site has drifted out of sync with its content. You inherit a repository that can build and ship itself, on your hosting, on day one.
The work most teams postpone until “after launch” is generated on the first build, and regenerated on every one after it.
apps/web/app ships sitemap.ts, robots.ts and a generated opengraph-image.tsx, alongside JSON-LD structured data (Product, Organization and more) and hreflang tags for all 21 locales. New pages are discoverable the day they exist.
rss.xml, atom.xml and feed.json are real routes, not a plugin you bolt on. items.json exposes the full catalogue, so other systems — yours or a reader’s — can consume the directory as data.
Both files are generated, so AI crawlers get a clean, structured description of the site instead of guessing at your markup: a manifest at /llms.txt and the whole directory as one Markdown document at /llms-full.txt. Every public page also has a Markdown twin — /items/<slug>.md, /categories/<id>.md, /pages/<slug>.md and the rest — advertised from the HTML with a rel="alternate" type="text/markdown" link and served noindex, so an agent can read the clean text while search engines keep indexing the page. Being readable by machines is now part of being findable.
Debounced search with URL-synced state, category and tag filters, sort and layout controls, active-filter chips and pagination. Featured items, breadcrumb trails and social sharing buttons ship with it.
Per-item view counts and popularity scores are recorded server-side and surfaced in the admin dashboard, so “what is actually getting read” is a number in your own database rather than a guess.
A full light and dark theme with a switcher in the header and system-preference detection. Every shipped component is styled for both — you are not retrofitting it later.
A directory becomes a business when visitors can contribute to it and someone can pay for placement in it. Both halves are in the template.
Visitors submit an item by pasting a URL — extraction pulls the name, description and metadata for them. Reports and moderation queues, an item review flow, roles and permissions, per-item history with a full audit trail, and a complete admin panel are all included. Access control is real role-based access control: permissions are named resource:action, an admin flag sits above them, and roles are created, edited and assigned on their own screens under /admin/roles — so the second person you let into the dashboard does not have to be a second owner.
Upvotes and star ratings, threaded comments, favourites, member profiles with settings, and a trash bin for deleted submissions. Surveys collect structured feedback and store the responses alongside everything else.
Subscription capture and transactional email run through Novu or Resend, so announcements and digests do not need a separate SaaS subscription on day one.
Pricing pages, subscription plans and sponsor ads with an approval workflow, backed by Stripe, Lemon Squeezy, Polar or Solidgate and selected in configuration — works.yml carries the payment.provider key, and the remaining processors are wired through config with a per-user preference on top. Every provider has its webhook route, the customer portal and cancellation flows are handled, and a separate promo-code system puts coupons, percentage and fixed discounts on your listing pages.
Items can carry a location block, and addresses are geocoded in the background. A synchronised map-and-cards view ships behind Mapbox or Google Maps, swapped by setting settings.location.provider.
A conversational assistant helps visitors search, submit and find their own favourites. A documented plugin SDK with slots and lifecycle hooks lets you extend the site, a Twenty CRM integration syncs contacts, ReCAPTCHA v2 guards the forms, and feature flags gate all of it.
The classic template above is the full-featured directory base. The second is the minimal Astro template: static-rendered, plugin-driven and deliberately a blank canvas — SEO, pagination, filters, search, sort, sitemap, breadcrumbs, RSS, analytics and related items are each a separate package, and it ships no auth, database, payments or maps because those are meant to be added as plugins. Pick the base that fits the Work; both land in a repository you own. Directory and awesome-repo Works choose between these two; website, landing-page and blog Works start instead on the general-purpose web base, with its opt-in Astro sibling web-minimal alongside it, and the Template Catalogs page walks through all four.
Every Work is generated from a template — production-grade Next.js and Astro bases — so you never start from a blank page.
Learn more →Every catalog Ever Works ships — website and Work templates, Mission playbooks, twelve starter Agents, a public Skills library and more than thirty prebuilt companies.
Learn more →Production-grade Next.js code, generated alongside the content — your repo, your stack.
Learn more →The features that make a directory or an awesome list worth maintaining — comparison pages, editorial collections, a real taxonomy, link validation, community pull requests and a changelog.
Learn more →Your domain, your brand, on every Work — with HTTPS, redirects, and DNS handled for you.
Learn more →Code and content both live in your own Git, and the platform is open source under AGPLv3 — nothing is locked in.
Learn more →Describe what you want to build. Ever Works researches it, ships it, and keeps it improving — content and code, owned in your own Git.