Project Structure
The starter now uses one shared application tree for most day-to-day work. Driver-specific folders still exist as compatibility fallbacks, but they are no longer the main layout.
Main Folders
| Path | Purpose |
|---|---|
app/ | Your application code: controllers, models, services, policies, jobs, mail classes, providers |
bootstrap/ | Express app creation and ordered provider boot |
config/ | Runtime configuration for app, database, auth, cache, storage, mail, views, queue, and more |
database/migrations/ | Shared migrations for SQL and MongoDB |
database/seeders/ | Shared seeders with DatabaseSeeder.js as the default root entry |
resources/views/ | Server-rendered web components and layouts |
resources/mails/ | Server-rendered mail components and layouts |
routes/ | Web and API route files |
tests/ | Feature and unit tests |
node_modules/@admicaa/netpress/ | The installed framework package |
The Most Important Shift
The implementation is shared-first now:
app/Models/is the default place for modelsdatabase/migrations/is the default place for migrationsdatabase/seeders/is the default place for seeders
Legacy fallback folders are still recognized only when the shared roots are absent:
app/Models/sqlapp/Models/mongodatabase/migrations/sqldatabase/migrations/mongodatabase/seeders/sqldatabase/seeders/mongo
If you are starting new work, do not create those legacy folders.
Common Feature Paths
| Feature | Path |
|---|---|
| API controller | app/Http/Controllers/ |
| Middleware | app/Http/Middleware/ |
| Request validation class | app/Http/Requests/ |
| Model | app/Models/ |
| Cache config | config/cache.js |
| Storage config | config/storage.js |
| Mail class | app/Mail/ |
| Mail template | resources/mails/ |
| Web page component | resources/views/pages/ |
| Shared web layout | resources/views/layouts/ |
| Migration | database/migrations/ |
| Seeder | database/seeders/ |
| Policy | app/Policies/ |
| Job | app/Jobs/ |
| User-defined CLI command | app/Console/Commands/ |
Provider And Route Layout
The app boots through:
server.jsbootstrap/app.jsbootstrap/providers.js
Then the providers mount routes and shared services:
AppServiceProviderregisters body parsing, sessions, shared view state, response helpers, and the shared cache/storage facadesDatabaseServiceProviderboots the active runtime, shared models, and the starterdbhelperRouteServiceProvidermountsroutes/web.jsonly whenconfig/view.jsenables a web engine, then mountsroutes/api.jsunder/api/v1
Rendering Files
setup:rendering writes and updates these areas:
config/view.jsconfig/mail.jsroutes/web.jsapp/Http/Controllers/HomeController.jsresources/views/layouts/resources/views/pages/resources/mails/layouts/resources/mails/
That means rendering setup is part of the starter structure, not an external addon.
Inside The Framework Package
The @admicaa/netpress package contains the reusable framework runtime:
src/base/for shared model, controller, request, mail, and relation primitivessrc/database/for connection resolution, model adapters, query builders, query adapters, and migration helperssrc/core/for view and mail rendering helperssrc/commands/for CLI commandsstubs/for generator output
If you are documenting or debugging framework behavior, inspect this package before guessing from the starter files.