The four features
All domain code lives undersrc/features/. If you know the page you’re changing, this tells
you which folder to open.
Inside each one the layout is the same (
components/, views/, hooks/, services/ and so
on), so ls is faster than any list I could keep accurate here. The
architecture guide explains what belongs in each subfolder.
Routes
Public
Requires a session
Guarded bysrc/middleware.ts, and excluded from indexing in src/app/robots.ts.
The wizard runs across six steps under
/projects/create: choose a method, import a
repository, confirm it, describe the project, pick tech and categories, done. They share a
layout that mounts the wizard’s Zustand store.
Things that catch people out
There is no /projects index route
There is no /projects index route
Project discovery lives on
/. A link to /projects returns a 404. This surprises
nearly everyone, because the detail route is /projects/<projectId>.Only one route handler exists, and it isn't the API
Only one route handler exists, and it isn't the API
POST /api/feature-request forwards the feature-request form to a Discord webhook. Every
other request goes to the external API. See the
API Reference. There is no Next.js API layer proxying the
backend.The wizard's provider segment is validated
The wizard's provider segment is validated
/projects/create/<provider>/… accepts only github or gitlab. Anything else calls
notFound().Learn isn't a feature
Learn isn't a feature
/learn is driven by MDX files in content/learn/ and content/hands-on/ at the
repository root, indexed by content/chapters.ts, not by a folder under src/features/.
Chapters are prerendered, so adding one requires a rebuild. See
Writing Learn content.No route groups, no catch-alls
No route groups, no catch-alls
The only dynamic segments are
[slug], [userId], [projectId] and [provider]. There
are no route groups, parallel routes, or intercepting routes to reason about.Beyond pages
src/app/ also holds the files that shape how the app is crawled and shared: sitemap.ts
(static routes plus every trending published project), robots.ts, manifest.ts, and two
dynamic Open Graph image routes for projects and profiles.
Next: development guide
Recipes for adding an API call, a mutation, a page, or a component.