constella 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.next/BUILD_ID +1 -0
- package/.next/app-path-routes-manifest.json +53 -0
- package/.next/build-manifest.json +20 -0
- package/.next/diagnostics/build-diagnostics.json +6 -0
- package/.next/diagnostics/framework.json +1 -0
- package/.next/export-marker.json +6 -0
- package/.next/images-manifest.json +68 -0
- package/.next/next-minimal-server.js.nft.json +1 -0
- package/.next/next-server.js.nft.json +1 -0
- package/.next/package.json +1 -0
- package/.next/prerender-manifest.json +36 -0
- package/.next/react-loadable-manifest.json +14 -0
- package/.next/required-server-files.js +343 -0
- package/.next/required-server-files.json +343 -0
- package/.next/routes-manifest.json +362 -0
- package/.next/server/app/(app)/activity/page.js +2 -0
- package/.next/server/app/(app)/activity/page.js.nft.json +1 -0
- package/.next/server/app/(app)/activity/page_client-reference-manifest.js +1 -0
- package/.next/server/app/(app)/agents/[handle]/page.js +18 -0
- package/.next/server/app/(app)/agents/[handle]/page.js.nft.json +1 -0
- package/.next/server/app/(app)/agents/[handle]/page_client-reference-manifest.js +1 -0
- package/.next/server/app/(app)/code/page.js +2 -0
- package/.next/server/app/(app)/code/page.js.nft.json +1 -0
- package/.next/server/app/(app)/code/page_client-reference-manifest.js +1 -0
- package/.next/server/app/(app)/config/page.js +2 -0
- package/.next/server/app/(app)/config/page.js.nft.json +1 -0
- package/.next/server/app/(app)/config/page_client-reference-manifest.js +1 -0
- package/.next/server/app/(app)/costs/page.js +2 -0
- package/.next/server/app/(app)/costs/page.js.nft.json +1 -0
- package/.next/server/app/(app)/costs/page_client-reference-manifest.js +1 -0
- package/.next/server/app/(app)/cron/page.js +2 -0
- package/.next/server/app/(app)/cron/page.js.nft.json +1 -0
- package/.next/server/app/(app)/cron/page_client-reference-manifest.js +1 -0
- package/.next/server/app/(app)/dashboard/page.js +2 -0
- package/.next/server/app/(app)/dashboard/page.js.nft.json +1 -0
- package/.next/server/app/(app)/dashboard/page_client-reference-manifest.js +1 -0
- package/.next/server/app/(app)/docs/[id]/page.js +2 -0
- package/.next/server/app/(app)/docs/[id]/page.js.nft.json +1 -0
- package/.next/server/app/(app)/docs/[id]/page_client-reference-manifest.js +1 -0
- package/.next/server/app/(app)/docs/page.js +2 -0
- package/.next/server/app/(app)/docs/page.js.nft.json +1 -0
- package/.next/server/app/(app)/docs/page_client-reference-manifest.js +1 -0
- package/.next/server/app/(app)/github/page.js +2 -0
- package/.next/server/app/(app)/github/page.js.nft.json +1 -0
- package/.next/server/app/(app)/github/page_client-reference-manifest.js +1 -0
- package/.next/server/app/(app)/goals/page.js +2 -0
- package/.next/server/app/(app)/goals/page.js.nft.json +1 -0
- package/.next/server/app/(app)/goals/page_client-reference-manifest.js +1 -0
- package/.next/server/app/(app)/inbox/page.js +2 -0
- package/.next/server/app/(app)/inbox/page.js.nft.json +1 -0
- package/.next/server/app/(app)/inbox/page_client-reference-manifest.js +1 -0
- package/.next/server/app/(app)/knowledge/page.js +3 -0
- package/.next/server/app/(app)/knowledge/page.js.nft.json +1 -0
- package/.next/server/app/(app)/knowledge/page_client-reference-manifest.js +1 -0
- package/.next/server/app/(app)/models/page.js +2 -0
- package/.next/server/app/(app)/models/page.js.nft.json +1 -0
- package/.next/server/app/(app)/models/page_client-reference-manifest.js +1 -0
- package/.next/server/app/(app)/notifications/page.js +2 -0
- package/.next/server/app/(app)/notifications/page.js.nft.json +1 -0
- package/.next/server/app/(app)/notifications/page_client-reference-manifest.js +1 -0
- package/.next/server/app/(app)/org/page.js +2 -0
- package/.next/server/app/(app)/org/page.js.nft.json +1 -0
- package/.next/server/app/(app)/org/page_client-reference-manifest.js +1 -0
- package/.next/server/app/(app)/organizations/page.js +2 -0
- package/.next/server/app/(app)/organizations/page.js.nft.json +1 -0
- package/.next/server/app/(app)/organizations/page_client-reference-manifest.js +1 -0
- package/.next/server/app/(app)/page.js +3 -0
- package/.next/server/app/(app)/page.js.nft.json +1 -0
- package/.next/server/app/(app)/page_client-reference-manifest.js +1 -0
- package/.next/server/app/(app)/planner/page.js +2 -0
- package/.next/server/app/(app)/planner/page.js.nft.json +1 -0
- package/.next/server/app/(app)/planner/page_client-reference-manifest.js +1 -0
- package/.next/server/app/(app)/plugins/page.js +2 -0
- package/.next/server/app/(app)/plugins/page.js.nft.json +1 -0
- package/.next/server/app/(app)/plugins/page_client-reference-manifest.js +1 -0
- package/.next/server/app/(app)/pm/page.js +2 -0
- package/.next/server/app/(app)/pm/page.js.nft.json +1 -0
- package/.next/server/app/(app)/pm/page_client-reference-manifest.js +1 -0
- package/.next/server/app/(app)/prepare-deploy/page.js +19 -0
- package/.next/server/app/(app)/prepare-deploy/page.js.nft.json +1 -0
- package/.next/server/app/(app)/prepare-deploy/page_client-reference-manifest.js +1 -0
- package/.next/server/app/(app)/profile/page.js +2 -0
- package/.next/server/app/(app)/profile/page.js.nft.json +1 -0
- package/.next/server/app/(app)/profile/page_client-reference-manifest.js +1 -0
- package/.next/server/app/(app)/pulse/page.js +2 -0
- package/.next/server/app/(app)/pulse/page.js.nft.json +1 -0
- package/.next/server/app/(app)/pulse/page_client-reference-manifest.js +1 -0
- package/.next/server/app/(app)/reports/[id]/page.js +3 -0
- package/.next/server/app/(app)/reports/[id]/page.js.nft.json +1 -0
- package/.next/server/app/(app)/reports/[id]/page_client-reference-manifest.js +1 -0
- package/.next/server/app/(app)/reports/page.js +5 -0
- package/.next/server/app/(app)/reports/page.js.nft.json +1 -0
- package/.next/server/app/(app)/reports/page_client-reference-manifest.js +1 -0
- package/.next/server/app/(app)/routines/page.js +2 -0
- package/.next/server/app/(app)/routines/page.js.nft.json +1 -0
- package/.next/server/app/(app)/routines/page_client-reference-manifest.js +1 -0
- package/.next/server/app/(app)/search/page.js +2 -0
- package/.next/server/app/(app)/search/page.js.nft.json +1 -0
- package/.next/server/app/(app)/search/page_client-reference-manifest.js +1 -0
- package/.next/server/app/(app)/security/page.js +2 -0
- package/.next/server/app/(app)/security/page.js.nft.json +1 -0
- package/.next/server/app/(app)/security/page_client-reference-manifest.js +1 -0
- package/.next/server/app/(app)/skills/page.js +18 -0
- package/.next/server/app/(app)/skills/page.js.nft.json +1 -0
- package/.next/server/app/(app)/skills/page_client-reference-manifest.js +1 -0
- package/.next/server/app/(app)/tasks/page.js +2 -0
- package/.next/server/app/(app)/tasks/page.js.nft.json +1 -0
- package/.next/server/app/(app)/tasks/page_client-reference-manifest.js +1 -0
- package/.next/server/app/(app)/test-dev/page.js +2 -0
- package/.next/server/app/(app)/test-dev/page.js.nft.json +1 -0
- package/.next/server/app/(app)/test-dev/page_client-reference-manifest.js +1 -0
- package/.next/server/app/(app)/update/page.js +2 -0
- package/.next/server/app/(app)/update/page.js.nft.json +1 -0
- package/.next/server/app/(app)/update/page_client-reference-manifest.js +1 -0
- package/.next/server/app/(auth)/login/page.js +2 -0
- package/.next/server/app/(auth)/login/page.js.nft.json +1 -0
- package/.next/server/app/(auth)/login/page_client-reference-manifest.js +1 -0
- package/.next/server/app/(auth)/onboarding/page.js +18 -0
- package/.next/server/app/(auth)/onboarding/page.js.nft.json +1 -0
- package/.next/server/app/(auth)/onboarding/page_client-reference-manifest.js +1 -0
- package/.next/server/app/_global-error/page.js +32 -0
- package/.next/server/app/_global-error/page.js.nft.json +1 -0
- package/.next/server/app/_global-error/page_client-reference-manifest.js +1 -0
- package/.next/server/app/_global-error.html +1 -0
- package/.next/server/app/_global-error.meta +16 -0
- package/.next/server/app/_global-error.rsc +15 -0
- package/.next/server/app/_global-error.segments/_full.segment.rsc +15 -0
- package/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +5 -0
- package/.next/server/app/_global-error.segments/_global-error.segment.rsc +5 -0
- package/.next/server/app/_global-error.segments/_head.segment.rsc +5 -0
- package/.next/server/app/_global-error.segments/_index.segment.rsc +6 -0
- package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -0
- package/.next/server/app/_not-found/page.js +2 -0
- package/.next/server/app/_not-found/page.js.nft.json +1 -0
- package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -0
- package/.next/server/app/api/auth/[...all]/route.js +1 -0
- package/.next/server/app/api/auth/[...all]/route.js.nft.json +1 -0
- package/.next/server/app/api/auth/[...all]/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/cron/tick/route.js +52 -0
- package/.next/server/app/api/cron/tick/route.js.nft.json +1 -0
- package/.next/server/app/api/cron/tick/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/dev-login/route.js +1 -0
- package/.next/server/app/api/dev-login/route.js.nft.json +1 -0
- package/.next/server/app/api/dev-login/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/locks/acquire/route.js +1 -0
- package/.next/server/app/api/locks/acquire/route.js.nft.json +1 -0
- package/.next/server/app/api/locks/acquire/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/models/progress/route.js +1 -0
- package/.next/server/app/api/models/progress/route.js.nft.json +1 -0
- package/.next/server/app/api/models/progress/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/passkey/authenticate/options/route.js +1 -0
- package/.next/server/app/api/passkey/authenticate/options/route.js.nft.json +1 -0
- package/.next/server/app/api/passkey/authenticate/options/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/passkey/authenticate/verify/route.js +1 -0
- package/.next/server/app/api/passkey/authenticate/verify/route.js.nft.json +1 -0
- package/.next/server/app/api/passkey/authenticate/verify/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/passkey/register/options/route.js +1 -0
- package/.next/server/app/api/passkey/register/options/route.js.nft.json +1 -0
- package/.next/server/app/api/passkey/register/options/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/passkey/register/verify/route.js +1 -0
- package/.next/server/app/api/passkey/register/verify/route.js.nft.json +1 -0
- package/.next/server/app/api/passkey/register/verify/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/stream/route.js +4 -0
- package/.next/server/app/api/stream/route.js.nft.json +1 -0
- package/.next/server/app/api/stream/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/sync/file/route.js +2 -0
- package/.next/server/app/api/sync/file/route.js.nft.json +1 -0
- package/.next/server/app/api/sync/file/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/telegram/poll/route.js +15 -0
- package/.next/server/app/api/telegram/poll/route.js.nft.json +1 -0
- package/.next/server/app/api/telegram/poll/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/upload/route.js +1 -0
- package/.next/server/app/api/upload/route.js.nft.json +1 -0
- package/.next/server/app/api/upload/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/v1/[[...path]]/route.js +1 -0
- package/.next/server/app/api/v1/[[...path]]/route.js.nft.json +1 -0
- package/.next/server/app/api/v1/[[...path]]/route_client-reference-manifest.js +1 -0
- package/.next/server/app-paths-manifest.json +53 -0
- package/.next/server/chunks/1003.js +1 -0
- package/.next/server/chunks/127.js +26 -0
- package/.next/server/chunks/1388.js +1 -0
- package/.next/server/chunks/1408.js +21 -0
- package/.next/server/chunks/1572.js +1 -0
- package/.next/server/chunks/1591.js +24 -0
- package/.next/server/chunks/1619.js +188 -0
- package/.next/server/chunks/162.js +1 -0
- package/.next/server/chunks/1881.js +1 -0
- package/.next/server/chunks/1968.js +1 -0
- package/.next/server/chunks/2297.js +348 -0
- package/.next/server/chunks/2341.js +1 -0
- package/.next/server/chunks/2517.js +1 -0
- package/.next/server/chunks/2549.js +1 -0
- package/.next/server/chunks/259.js +14 -0
- package/.next/server/chunks/2599.js +1 -0
- package/.next/server/chunks/260.js +1 -0
- package/.next/server/chunks/2867.js +147 -0
- package/.next/server/chunks/3018.js +1 -0
- package/.next/server/chunks/3050.js +18 -0
- package/.next/server/chunks/3085.js +12 -0
- package/.next/server/chunks/3131.js +1 -0
- package/.next/server/chunks/3242.js +1 -0
- package/.next/server/chunks/3266.js +15 -0
- package/.next/server/chunks/3524.js +1 -0
- package/.next/server/chunks/3527.js +479 -0
- package/.next/server/chunks/3533.js +869 -0
- package/.next/server/chunks/3550.js +1 -0
- package/.next/server/chunks/3609.js +2 -0
- package/.next/server/chunks/3667.js +462 -0
- package/.next/server/chunks/3760.js +4 -0
- package/.next/server/chunks/4679.js +1 -0
- package/.next/server/chunks/4804.js +1 -0
- package/.next/server/chunks/4832.js +2 -0
- package/.next/server/chunks/4853.js +1 -0
- package/.next/server/chunks/4979.js +67 -0
- package/.next/server/chunks/5060.js +1 -0
- package/.next/server/chunks/5278.js +1 -0
- package/.next/server/chunks/5614.js +1 -0
- package/.next/server/chunks/5818.js +1 -0
- package/.next/server/chunks/6479.js +1 -0
- package/.next/server/chunks/6658.js +1 -0
- package/.next/server/chunks/6706.js +1 -0
- package/.next/server/chunks/6719.js +1 -0
- package/.next/server/chunks/678.js +1 -0
- package/.next/server/chunks/683.js +1 -0
- package/.next/server/chunks/6862.js +1 -0
- package/.next/server/chunks/6882.js +1 -0
- package/.next/server/chunks/7037.js +1 -0
- package/.next/server/chunks/7107.js +741 -0
- package/.next/server/chunks/73.js +17 -0
- package/.next/server/chunks/7327.js +1 -0
- package/.next/server/chunks/7514.js +1 -0
- package/.next/server/chunks/7622.js +1 -0
- package/.next/server/chunks/7778.js +1 -0
- package/.next/server/chunks/7912.js +1 -0
- package/.next/server/chunks/7949.js +1 -0
- package/.next/server/chunks/7971.js +1 -0
- package/.next/server/chunks/7989.js +1 -0
- package/.next/server/chunks/842.js +22 -0
- package/.next/server/chunks/8762.js +15 -0
- package/.next/server/chunks/8823.js +77 -0
- package/.next/server/chunks/9146.js +4 -0
- package/.next/server/chunks/9676.js +1 -0
- package/.next/server/chunks/9783.js +22 -0
- package/.next/server/chunks/9969.js +3 -0
- package/.next/server/functions-config-manifest.json +18 -0
- package/.next/server/instrumentation.js +1 -0
- package/.next/server/instrumentation.js.nft.json +1 -0
- package/.next/server/interception-route-rewrite-manifest.js +1 -0
- package/.next/server/middleware-build-manifest.js +1 -0
- package/.next/server/middleware-manifest.json +6 -0
- package/.next/server/middleware-react-loadable-manifest.js +1 -0
- package/.next/server/middleware.js +18 -0
- package/.next/server/middleware.js.nft.json +1 -0
- package/.next/server/next-font-manifest.js +1 -0
- package/.next/server/next-font-manifest.json +1 -0
- package/.next/server/pages/500.html +1 -0
- package/.next/server/pages-manifest.json +3 -0
- package/.next/server/prefetch-hints.json +1 -0
- package/.next/server/server-reference-manifest.js +1 -0
- package/.next/server/server-reference-manifest.json +1 -0
- package/.next/server/webpack-runtime.js +1 -0
- package/.next/static/chunks/1858-339516f78a4b00da.js +1 -0
- package/.next/static/chunks/2320-fc8b39380e69d465.js +2 -0
- package/.next/static/chunks/23550918-ff694f70f4b0648c.js +1 -0
- package/.next/static/chunks/3219-ebb3c23be38c838d.js +1 -0
- package/.next/static/chunks/4263-adecb5b466380b6e.js +1 -0
- package/.next/static/chunks/5479-0cceab68cd0ca9c7.js +1 -0
- package/.next/static/chunks/5701-665b927b06158b76.js +1 -0
- package/.next/static/chunks/5920.6451a68b63918988.js +1 -0
- package/.next/static/chunks/6575-5c9139720bb0f5bf.js +4 -0
- package/.next/static/chunks/6834-4759af1ce7d95fb6.js +32 -0
- package/.next/static/chunks/7509.721cd47a931c5518.js +1 -0
- package/.next/static/chunks/8264-1ca011989ee2b231.js +1 -0
- package/.next/static/chunks/9219-4a39a98b5502d9d1.js +1 -0
- package/.next/static/chunks/9690-53d5222618cbeddb.js +1 -0
- package/.next/static/chunks/app/(app)/activity/page-3973534281ecea81.js +1 -0
- package/.next/static/chunks/app/(app)/agents/[handle]/page-83662a175c098282.js +1 -0
- package/.next/static/chunks/app/(app)/code/page-33979545192cd137.js +1 -0
- package/.next/static/chunks/app/(app)/config/page-9933aed1ca8a85c1.js +1 -0
- package/.next/static/chunks/app/(app)/costs/page-131c4dc580efcc19.js +1 -0
- package/.next/static/chunks/app/(app)/cron/page-53ea1aff998a87ca.js +1 -0
- package/.next/static/chunks/app/(app)/dashboard/page-deed83aaa9d0d447.js +1 -0
- package/.next/static/chunks/app/(app)/docs/[id]/page-38c993d73c0eab4f.js +1 -0
- package/.next/static/chunks/app/(app)/docs/page-bf463b55d0554e86.js +1 -0
- package/.next/static/chunks/app/(app)/error-988cd28480809861.js +1 -0
- package/.next/static/chunks/app/(app)/github/page-62678b4e82dfecb6.js +1 -0
- package/.next/static/chunks/app/(app)/goals/page-4adb426fe1c96106.js +1 -0
- package/.next/static/chunks/app/(app)/inbox/page-e347dc55ab467310.js +1 -0
- package/.next/static/chunks/app/(app)/knowledge/page-65393a045b4349be.js +1 -0
- package/.next/static/chunks/app/(app)/layout-7f65675705b011d8.js +1 -0
- package/.next/static/chunks/app/(app)/models/page-e01f1dd7e49a2951.js +1 -0
- package/.next/static/chunks/app/(app)/notifications/page-56548ac87aef00da.js +1 -0
- package/.next/static/chunks/app/(app)/org/page-699e6a6dc0db7d81.js +1 -0
- package/.next/static/chunks/app/(app)/organizations/page-36051a380a7e8eb7.js +1 -0
- package/.next/static/chunks/app/(app)/page-7d1011a566f81520.js +1 -0
- package/.next/static/chunks/app/(app)/planner/page-dab7ced94083373a.js +1 -0
- package/.next/static/chunks/app/(app)/plugins/page-5b5a1f53389be42e.js +1 -0
- package/.next/static/chunks/app/(app)/pm/page-0de5c08c0b227bb0.js +1 -0
- package/.next/static/chunks/app/(app)/prepare-deploy/page-e426038552df8d41.js +1 -0
- package/.next/static/chunks/app/(app)/profile/page-608dfcaf8aae0a69.js +1 -0
- package/.next/static/chunks/app/(app)/pulse/page-309ccaca91de1faa.js +1 -0
- package/.next/static/chunks/app/(app)/reports/[id]/page-53ea1aff998a87ca.js +1 -0
- package/.next/static/chunks/app/(app)/reports/page-68cdc6dcfa472d86.js +1 -0
- package/.next/static/chunks/app/(app)/routines/page-bcc55550b197a9fa.js +1 -0
- package/.next/static/chunks/app/(app)/search/page-5c5f67558d0dbf0d.js +1 -0
- package/.next/static/chunks/app/(app)/security/page-a7d41e36aa366b45.js +1 -0
- package/.next/static/chunks/app/(app)/skills/page-c5b21e89593b8336.js +1 -0
- package/.next/static/chunks/app/(app)/tasks/page-08ae079e3e54d2ce.js +1 -0
- package/.next/static/chunks/app/(app)/test-dev/page-633f82dfd9c3ce23.js +1 -0
- package/.next/static/chunks/app/(app)/update/page-4be019054351bfac.js +1 -0
- package/.next/static/chunks/app/(auth)/login/page-6e85d3377062acae.js +1 -0
- package/.next/static/chunks/app/(auth)/onboarding/page-ebb10c175abf3b85.js +1 -0
- package/.next/static/chunks/app/_global-error/page-23fe50a6bf589c97.js +1 -0
- package/.next/static/chunks/app/_not-found/page-dc38b02aebeab535.js +1 -0
- package/.next/static/chunks/app/api/auth/[...all]/route-23fe50a6bf589c97.js +1 -0
- package/.next/static/chunks/app/api/cron/tick/route-23fe50a6bf589c97.js +1 -0
- package/.next/static/chunks/app/api/dev-login/route-23fe50a6bf589c97.js +1 -0
- package/.next/static/chunks/app/api/locks/acquire/route-23fe50a6bf589c97.js +1 -0
- package/.next/static/chunks/app/api/models/progress/route-23fe50a6bf589c97.js +1 -0
- package/.next/static/chunks/app/api/passkey/authenticate/options/route-23fe50a6bf589c97.js +1 -0
- package/.next/static/chunks/app/api/passkey/authenticate/verify/route-23fe50a6bf589c97.js +1 -0
- package/.next/static/chunks/app/api/passkey/register/options/route-23fe50a6bf589c97.js +1 -0
- package/.next/static/chunks/app/api/passkey/register/verify/route-23fe50a6bf589c97.js +1 -0
- package/.next/static/chunks/app/api/stream/route-23fe50a6bf589c97.js +1 -0
- package/.next/static/chunks/app/api/sync/file/route-23fe50a6bf589c97.js +1 -0
- package/.next/static/chunks/app/api/telegram/poll/route-23fe50a6bf589c97.js +1 -0
- package/.next/static/chunks/app/api/upload/route-23fe50a6bf589c97.js +1 -0
- package/.next/static/chunks/app/api/v1/[[...path]]/route-23fe50a6bf589c97.js +1 -0
- package/.next/static/chunks/app/error-09899a13c38b6e89.js +1 -0
- package/.next/static/chunks/app/global-error-b8050d4d886f448c.js +1 -0
- package/.next/static/chunks/app/layout-ab9deed1e7e2e9df.js +1 -0
- package/.next/static/chunks/framework-4b2c6b6043dd203f.js +1 -0
- package/.next/static/chunks/main-722e16032e7764d1.js +5 -0
- package/.next/static/chunks/main-app-761880af2b6f1962.js +1 -0
- package/.next/static/chunks/next/dist/client/components/builtin/app-error-23fe50a6bf589c97.js +1 -0
- package/.next/static/chunks/next/dist/client/components/builtin/forbidden-23fe50a6bf589c97.js +1 -0
- package/.next/static/chunks/next/dist/client/components/builtin/not-found-23fe50a6bf589c97.js +1 -0
- package/.next/static/chunks/next/dist/client/components/builtin/unauthorized-23fe50a6bf589c97.js +1 -0
- package/.next/static/chunks/polyfills-42372ed130431b0a.js +1 -0
- package/.next/static/chunks/webpack-222e3894b78c67db.js +1 -0
- package/.next/static/css/0a9b5805594444e3.css +1 -0
- package/.next/static/yztMvBwyrWWkSqP6jfXoa/_buildManifest.js +1 -0
- package/.next/static/yztMvBwyrWWkSqP6jfXoa/_ssgManifest.js +1 -0
- package/.next/trace-build +1 -0
- package/.next/types/app/(app)/activity/page.ts +87 -0
- package/.next/types/app/(app)/agents/[handle]/page.ts +87 -0
- package/.next/types/app/(app)/code/page.ts +87 -0
- package/.next/types/app/(app)/config/page.ts +87 -0
- package/.next/types/app/(app)/costs/page.ts +87 -0
- package/.next/types/app/(app)/cron/page.ts +87 -0
- package/.next/types/app/(app)/dashboard/page.ts +87 -0
- package/.next/types/app/(app)/docs/[id]/page.ts +87 -0
- package/.next/types/app/(app)/docs/page.ts +87 -0
- package/.next/types/app/(app)/github/page.ts +87 -0
- package/.next/types/app/(app)/goals/page.ts +87 -0
- package/.next/types/app/(app)/inbox/page.ts +87 -0
- package/.next/types/app/(app)/knowledge/page.ts +87 -0
- package/.next/types/app/(app)/models/page.ts +87 -0
- package/.next/types/app/(app)/notifications/page.ts +87 -0
- package/.next/types/app/(app)/org/page.ts +87 -0
- package/.next/types/app/(app)/organizations/page.ts +87 -0
- package/.next/types/app/(app)/page.ts +87 -0
- package/.next/types/app/(app)/planner/page.ts +87 -0
- package/.next/types/app/(app)/plugins/page.ts +87 -0
- package/.next/types/app/(app)/pm/page.ts +87 -0
- package/.next/types/app/(app)/prepare-deploy/page.ts +87 -0
- package/.next/types/app/(app)/profile/page.ts +87 -0
- package/.next/types/app/(app)/pulse/page.ts +87 -0
- package/.next/types/app/(app)/reports/[id]/page.ts +87 -0
- package/.next/types/app/(app)/reports/page.ts +87 -0
- package/.next/types/app/(app)/routines/page.ts +87 -0
- package/.next/types/app/(app)/search/page.ts +87 -0
- package/.next/types/app/(app)/security/page.ts +87 -0
- package/.next/types/app/(app)/skills/page.ts +87 -0
- package/.next/types/app/(app)/tasks/page.ts +87 -0
- package/.next/types/app/(app)/test-dev/page.ts +87 -0
- package/.next/types/app/(app)/update/page.ts +87 -0
- package/.next/types/app/(auth)/login/page.ts +87 -0
- package/.next/types/app/(auth)/onboarding/page.ts +87 -0
- package/.next/types/app/api/auth/[...all]/route.ts +351 -0
- package/.next/types/app/api/cron/tick/route.ts +351 -0
- package/.next/types/app/api/dev-login/route.ts +351 -0
- package/.next/types/app/api/locks/acquire/route.ts +351 -0
- package/.next/types/app/api/models/progress/route.ts +351 -0
- package/.next/types/app/api/passkey/authenticate/options/route.ts +351 -0
- package/.next/types/app/api/passkey/authenticate/verify/route.ts +351 -0
- package/.next/types/app/api/passkey/register/options/route.ts +351 -0
- package/.next/types/app/api/passkey/register/verify/route.ts +351 -0
- package/.next/types/app/api/stream/route.ts +351 -0
- package/.next/types/app/api/sync/file/route.ts +351 -0
- package/.next/types/app/api/telegram/poll/route.ts +351 -0
- package/.next/types/app/api/upload/route.ts +351 -0
- package/.next/types/app/api/v1/[[...path]]/route.ts +351 -0
- package/.next/types/cache-life.d.ts +145 -0
- package/.next/types/link.d.ts +210 -0
- package/.next/types/package.json +1 -0
- package/.next/types/routes.d.ts +120 -0
- package/.next/types/validator.ts +511 -0
- package/CHANGELOG.md +312 -0
- package/LICENSE +21 -0
- package/README.md +382 -0
- package/README.pt-BR.md +391 -0
- package/bin/constella.mjs +329 -0
- package/bin/guard-hook.mjs +44 -0
- package/bin/lock-hook.mjs +49 -0
- package/bin/worker.mjs +142 -0
- package/docs/assets/arch-orbit.svg +56 -0
- package/docs/assets/blackhole.svg +37 -0
- package/docs/assets/divider-orbit.svg +23 -0
- package/docs/assets/hero-constella.svg +72 -0
- package/docs/en/AGENTS.md +279 -0
- package/docs/en/AI_ARCHITECTURE.md +373 -0
- package/docs/en/ARCHITECTURE.md +334 -0
- package/docs/en/AUTH_MODE.md +247 -0
- package/docs/en/CHAT_COMMANDS.md +305 -0
- package/docs/en/CONFIGURATION.md +340 -0
- package/docs/en/DEPLOY.md +331 -0
- package/docs/en/DM.md +297 -0
- package/docs/en/FAQ.md +258 -0
- package/docs/en/GITHUB.md +341 -0
- package/docs/en/GOALS_SPECS_ISSUES.md +303 -0
- package/docs/en/INBOX.md +340 -0
- package/docs/en/INSTALLATION.md +329 -0
- package/docs/en/KB_AGENT.md +305 -0
- package/docs/en/KB_RAG.md +356 -0
- package/docs/en/MCP.md +313 -0
- package/docs/en/MEMORY_RAG.md +289 -0
- package/docs/en/MODELS.md +341 -0
- package/docs/en/ONBOARDING.md +327 -0
- package/docs/en/PLUGINS.md +290 -0
- package/docs/en/PORTABLE_MODE.md +387 -0
- package/docs/en/PO_AGENT.md +379 -0
- package/docs/en/PREPARE_DEPLOY.md +308 -0
- package/docs/en/PROJECT_STACKS.md +258 -0
- package/docs/en/PUBLIC_API.md +315 -0
- package/docs/en/PUBLISHING.md +343 -0
- package/docs/en/README.md +95 -0
- package/docs/en/SECURITY.md +280 -0
- package/docs/en/SKILLS.md +349 -0
- package/docs/en/START_MODE.md +340 -0
- package/docs/en/SYNCED_BLOCKS.md +320 -0
- package/docs/en/TEAM_ROOM.md +285 -0
- package/docs/en/TELEGRAM.md +294 -0
- package/docs/en/TEST_DEV.md +321 -0
- package/docs/en/TROUBLESHOOTING.md +294 -0
- package/docs/en/UPDATE.md +301 -0
- package/docs/en/VPS_MODE.md +334 -0
- package/docs/en/WORKFLOW.md +321 -0
- package/docs/pt/AGENTS.md +279 -0
- package/docs/pt/AI_ARCHITECTURE.md +373 -0
- package/docs/pt/ARCHITECTURE.md +334 -0
- package/docs/pt/AUTH_MODE.md +247 -0
- package/docs/pt/CHAT_COMMANDS.md +307 -0
- package/docs/pt/CONFIGURATION.md +340 -0
- package/docs/pt/DEPLOY.md +331 -0
- package/docs/pt/DM.md +297 -0
- package/docs/pt/FAQ.md +258 -0
- package/docs/pt/GITHUB.md +341 -0
- package/docs/pt/GOALS_SPECS_ISSUES.md +303 -0
- package/docs/pt/INBOX.md +340 -0
- package/docs/pt/INSTALLATION.md +329 -0
- package/docs/pt/KB_AGENT.md +305 -0
- package/docs/pt/KB_RAG.md +356 -0
- package/docs/pt/MCP.md +313 -0
- package/docs/pt/MEMORY_RAG.md +289 -0
- package/docs/pt/MODELS.md +341 -0
- package/docs/pt/ONBOARDING.md +327 -0
- package/docs/pt/PLUGINS.md +290 -0
- package/docs/pt/PORTABLE_MODE.md +387 -0
- package/docs/pt/PO_AGENT.md +379 -0
- package/docs/pt/PREPARE_DEPLOY.md +308 -0
- package/docs/pt/PROJECT_STACKS.md +258 -0
- package/docs/pt/PUBLIC_API.md +315 -0
- package/docs/pt/PUBLISHING.md +343 -0
- package/docs/pt/README.md +95 -0
- package/docs/pt/SECURITY.md +280 -0
- package/docs/pt/SKILLS.md +349 -0
- package/docs/pt/START_MODE.md +340 -0
- package/docs/pt/SYNCED_BLOCKS.md +320 -0
- package/docs/pt/TEAM_ROOM.md +285 -0
- package/docs/pt/TELEGRAM.md +294 -0
- package/docs/pt/TEST_DEV.md +321 -0
- package/docs/pt/TROUBLESHOOTING.md +294 -0
- package/docs/pt/UPDATE.md +301 -0
- package/docs/pt/VPS_MODE.md +334 -0
- package/docs/pt/WORKFLOW.md +321 -0
- package/drizzle/0000_regular_nightshade.sql +644 -0
- package/drizzle/0001_mixed_zombie.sql +106 -0
- package/drizzle/meta/0000_snapshot.json +4650 -0
- package/drizzle/meta/0001_snapshot.json +5418 -0
- package/drizzle/meta/_journal.json +20 -0
- package/drizzle.config.mjs +16 -0
- package/next.config.mjs +18 -0
- package/package.json +130 -0
- package/scripts/clean-repo.mjs +20 -0
- package/scripts/dev-all.mjs +46 -0
- package/scripts/i18n-parity.mjs +57 -0
- package/scripts/mcp-server.mjs +100 -0
- package/scripts/postbuild.mjs +11 -0
- package/scripts/publish-public.mjs +116 -0
- package/scripts/start-all.mjs +45 -0
- package/scripts/trim-next.mjs +23 -0
- package/scripts/vps-install.sh +39 -0
- package/skills/CONTRIBUTING.md +122 -0
- package/skills/COVERAGE.md +129 -0
- package/skills/INDEX.json +3443 -0
- package/skills/README.md +57 -0
- package/skills/design/animation-motion/SKILL.md +60 -0
- package/skills/design/color-and-typography/SKILL.md +60 -0
- package/skills/design/css-techniques/SKILL.md +58 -0
- package/skills/design/design-systems/SKILL.md +60 -0
- package/skills/design/gradients/SKILL.md +59 -0
- package/skills/design/graphic-design-basics/SKILL.md +55 -0
- package/skills/design/microinteractions/SKILL.md +58 -0
- package/skills/design/responsive-layout/SKILL.md +59 -0
- package/skills/design/ui-ux-principles/SKILL.md +58 -0
- package/skills/engineering/architecture/api-design-rest-graphql/SKILL.md +67 -0
- package/skills/engineering/architecture/caching-strategies/SKILL.md +59 -0
- package/skills/engineering/architecture/data-modeling/SKILL.md +64 -0
- package/skills/engineering/architecture/message-queues-async/SKILL.md +58 -0
- package/skills/engineering/architecture/scalability-reliability/SKILL.md +62 -0
- package/skills/engineering/architecture/software-architecture-patterns/SKILL.md +56 -0
- package/skills/engineering/architecture/system-design-fundamentals/SKILL.md +56 -0
- package/skills/engineering/backend/auth-and-authorization/SKILL.md +62 -0
- package/skills/engineering/backend/backend-fundamentals/SKILL.md +65 -0
- package/skills/engineering/backend/observability-logging/SKILL.md +60 -0
- package/skills/engineering/frontend/accessibility-wcag/SKILL.md +57 -0
- package/skills/engineering/frontend/frontend-architecture/SKILL.md +65 -0
- package/skills/engineering/frontend/rendering-strategies-ssr-csr/SKILL.md +60 -0
- package/skills/engineering/frontend/state-management/SKILL.md +69 -0
- package/skills/engineering/performance/backend-performance/SKILL.md +69 -0
- package/skills/engineering/performance/database-query-optimization/SKILL.md +64 -0
- package/skills/engineering/performance/profiling-and-benchmarking/SKILL.md +60 -0
- package/skills/engineering/performance/web-performance-core-vitals/SKILL.md +72 -0
- package/skills/engineering/practices/clean-code/SKILL.md +61 -0
- package/skills/engineering/practices/code-optimization/SKILL.md +60 -0
- package/skills/engineering/practices/code-review-practices/SKILL.md +58 -0
- package/skills/engineering/practices/git-workflow/SKILL.md +62 -0
- package/skills/engineering/practices/refactoring/SKILL.md +58 -0
- package/skills/engineering/security/appsec-fundamentals/SKILL.md +70 -0
- package/skills/engineering/security/dependency-supply-chain/SKILL.md +77 -0
- package/skills/engineering/security/owasp-asvs/SKILL.md +54 -0
- package/skills/engineering/security/owasp-top-10/SKILL.md +63 -0
- package/skills/engineering/security/secrets-management/SKILL.md +58 -0
- package/skills/engineering/security/secure-auth-sessions/SKILL.md +56 -0
- package/skills/engineering/testing/tdd-and-coverage/SKILL.md +62 -0
- package/skills/engineering/testing/testing-strategy-pyramid/SKILL.md +56 -0
- package/skills/engineering/testing/unit-integration-e2e/SKILL.md +75 -0
- package/skills/languages/c/SKILL.md +74 -0
- package/skills/languages/clojure/SKILL.md +73 -0
- package/skills/languages/cpp/SKILL.md +75 -0
- package/skills/languages/csharp/SKILL.md +75 -0
- package/skills/languages/dart/SKILL.md +82 -0
- package/skills/languages/elixir/SKILL.md +74 -0
- package/skills/languages/erlang/SKILL.md +76 -0
- package/skills/languages/go/SKILL.md +83 -0
- package/skills/languages/haskell/SKILL.md +70 -0
- package/skills/languages/java/SKILL.md +71 -0
- package/skills/languages/javascript/SKILL.md +62 -0
- package/skills/languages/kotlin/SKILL.md +68 -0
- package/skills/languages/lua/SKILL.md +79 -0
- package/skills/languages/objectivec/SKILL.md +83 -0
- package/skills/languages/php/SKILL.md +74 -0
- package/skills/languages/python/SKILL.md +68 -0
- package/skills/languages/r/SKILL.md +70 -0
- package/skills/languages/ruby/SKILL.md +67 -0
- package/skills/languages/rust/SKILL.md +72 -0
- package/skills/languages/scala/SKILL.md +73 -0
- package/skills/languages/swift/SKILL.md +73 -0
- package/skills/languages/typescript/SKILL.md +69 -0
- package/skills/meta/authoring-agent-skills/SKILL.md +73 -0
- package/skills/meta/progressive-disclosure/SKILL.md +65 -0
- package/skills/meta/skill-frontmatter-spec/SKILL.md +65 -0
- package/skills/process/adr-technical-decisions/SKILL.md +59 -0
- package/skills/process/app-planning/SKILL.md +63 -0
- package/skills/process/architecture-before-code/SKILL.md +52 -0
- package/skills/process/breaking-work-into-sprints/SKILL.md +53 -0
- package/skills/process/idea-to-product/SKILL.md +50 -0
- package/skills/process/mocks-and-screen-flows/SKILL.md +52 -0
- package/skills/process/prioritization-moscow-rice/SKILL.md +64 -0
- package/skills/process/problem-framing/SKILL.md +51 -0
- package/skills/process/product-discovery/SKILL.md +53 -0
- package/skills/process/readme-generation/SKILL.md +90 -0
- package/skills/process/requirements-to-specs/SKILL.md +53 -0
- package/skills/process/research-official-docs/SKILL.md +58 -0
- package/skills/process/review-code-perf-security/SKILL.md +65 -0
- package/skills/process/security-by-design/SKILL.md +68 -0
- package/skills/process/specs-to-issues/SKILL.md +53 -0
- package/skills/process/testing-before-done/SKILL.md +61 -0
- package/skills/process/validating-ux-navigation/SKILL.md +63 -0
- package/skills/references/ai-attachments-ui/SKILL.md +66 -0
- package/skills/references/ai-in-browser-webllm/SKILL.md +74 -0
- package/skills/references/ai-tool-ui-patterns/SKILL.md +63 -0
- package/skills/references/component-patterns-gallery/SKILL.md +62 -0
- package/skills/references/gradient-resources/SKILL.md +66 -0
- package/skills/references/react-component-libraries/SKILL.md +61 -0
- package/skills/references/saas-landing-patterns/SKILL.md +67 -0
- package/skills/references/shadcn-tailwind-theming/SKILL.md +74 -0
- package/skills/references/vercel-ai-sdk-elements/SKILL.md +66 -0
- package/skills/references/web-animation-codrops/SKILL.md +68 -0
- package/skills/stacks/aiml/jupyter/SKILL.md +68 -0
- package/skills/stacks/aiml/keras/SKILL.md +77 -0
- package/skills/stacks/aiml/numpy/SKILL.md +69 -0
- package/skills/stacks/aiml/pandas/SKILL.md +72 -0
- package/skills/stacks/aiml/pytorch/SKILL.md +77 -0
- package/skills/stacks/aiml/scikit-learn/SKILL.md +74 -0
- package/skills/stacks/aiml/tensorflow/SKILL.md +79 -0
- package/skills/stacks/auth/auth0/SKILL.md +63 -0
- package/skills/stacks/auth/authjs/SKILL.md +69 -0
- package/skills/stacks/auth/clerk/SKILL.md +72 -0
- package/skills/stacks/auth/keycloak/SKILL.md +63 -0
- package/skills/stacks/auth/lucia/SKILL.md +56 -0
- package/skills/stacks/auth/passport/SKILL.md +70 -0
- package/skills/stacks/auth/supabase-auth/SKILL.md +66 -0
- package/skills/stacks/baas/amplify/SKILL.md +71 -0
- package/skills/stacks/baas/appwrite/SKILL.md +79 -0
- package/skills/stacks/baas/firebase/SKILL.md +73 -0
- package/skills/stacks/baas/heroku/SKILL.md +71 -0
- package/skills/stacks/backend/actix/SKILL.md +77 -0
- package/skills/stacks/backend/adonisjs/SKILL.md +65 -0
- package/skills/stacks/backend/aspnet-core/SKILL.md +75 -0
- package/skills/stacks/backend/codeigniter/SKILL.md +76 -0
- package/skills/stacks/backend/django/SKILL.md +62 -0
- package/skills/stacks/backend/express/SKILL.md +65 -0
- package/skills/stacks/backend/fastapi/SKILL.md +64 -0
- package/skills/stacks/backend/fastify/SKILL.md +64 -0
- package/skills/stacks/backend/fiber/SKILL.md +68 -0
- package/skills/stacks/backend/flask/SKILL.md +71 -0
- package/skills/stacks/backend/gin/SKILL.md +68 -0
- package/skills/stacks/backend/graphql/SKILL.md +70 -0
- package/skills/stacks/backend/hono/SKILL.md +64 -0
- package/skills/stacks/backend/koa/SKILL.md +63 -0
- package/skills/stacks/backend/laravel/SKILL.md +73 -0
- package/skills/stacks/backend/nestjs/SKILL.md +70 -0
- package/skills/stacks/backend/nginx/SKILL.md +77 -0
- package/skills/stacks/backend/phoenix/SKILL.md +68 -0
- package/skills/stacks/backend/rails/SKILL.md +67 -0
- package/skills/stacks/backend/spring/SKILL.md +70 -0
- package/skills/stacks/backend/spring-boot/SKILL.md +70 -0
- package/skills/stacks/backend/symfony/SKILL.md +77 -0
- package/skills/stacks/container/containerd/SKILL.md +75 -0
- package/skills/stacks/container/docker/SKILL.md +90 -0
- package/skills/stacks/container/podman/SKILL.md +93 -0
- package/skills/stacks/database/cassandra/SKILL.md +74 -0
- package/skills/stacks/database/cockroachdb/SKILL.md +69 -0
- package/skills/stacks/database/dynamodb/SKILL.md +62 -0
- package/skills/stacks/database/mariadb/SKILL.md +71 -0
- package/skills/stacks/database/mongodb/SKILL.md +71 -0
- package/skills/stacks/database/mysql/SKILL.md +72 -0
- package/skills/stacks/database/neon/SKILL.md +68 -0
- package/skills/stacks/database/planetscale/SKILL.md +70 -0
- package/skills/stacks/database/postgresql/SKILL.md +81 -0
- package/skills/stacks/database/redis/SKILL.md +78 -0
- package/skills/stacks/database/sqlite/SKILL.md +70 -0
- package/skills/stacks/database/supabase/SKILL.md +79 -0
- package/skills/stacks/dataviz/chart-js/SKILL.md +72 -0
- package/skills/stacks/dataviz/d3/SKILL.md +77 -0
- package/skills/stacks/dataviz/grafana/SKILL.md +69 -0
- package/skills/stacks/dataviz/plotly/SKILL.md +71 -0
- package/skills/stacks/frontend/alpine/SKILL.md +75 -0
- package/skills/stacks/frontend/angular/SKILL.md +75 -0
- package/skills/stacks/frontend/backbone/SKILL.md +82 -0
- package/skills/stacks/frontend/ember/SKILL.md +85 -0
- package/skills/stacks/frontend/htmx/SKILL.md +73 -0
- package/skills/stacks/frontend/lit/SKILL.md +76 -0
- package/skills/stacks/frontend/preact/SKILL.md +74 -0
- package/skills/stacks/frontend/qwik/SKILL.md +65 -0
- package/skills/stacks/frontend/react/SKILL.md +77 -0
- package/skills/stacks/frontend/solidjs/SKILL.md +75 -0
- package/skills/stacks/frontend/svelte/SKILL.md +70 -0
- package/skills/stacks/frontend/vue/SKILL.md +69 -0
- package/skills/stacks/infra/ansible/SKILL.md +76 -0
- package/skills/stacks/infra/aws/SKILL.md +66 -0
- package/skills/stacks/infra/azure/SKILL.md +72 -0
- package/skills/stacks/infra/circleci/SKILL.md +78 -0
- package/skills/stacks/infra/cloudflare/SKILL.md +65 -0
- package/skills/stacks/infra/fly-io/SKILL.md +63 -0
- package/skills/stacks/infra/gcp/SKILL.md +66 -0
- package/skills/stacks/infra/jenkins/SKILL.md +73 -0
- package/skills/stacks/infra/kubernetes/SKILL.md +64 -0
- package/skills/stacks/infra/netlify/SKILL.md +60 -0
- package/skills/stacks/infra/railway/SKILL.md +63 -0
- package/skills/stacks/infra/tailscale/SKILL.md +65 -0
- package/skills/stacks/infra/terraform/SKILL.md +75 -0
- package/skills/stacks/infra/vagrant/SKILL.md +70 -0
- package/skills/stacks/infra/vercel/SKILL.md +60 -0
- package/skills/stacks/meta/astro/SKILL.md +64 -0
- package/skills/stacks/meta/docusaurus/SKILL.md +71 -0
- package/skills/stacks/meta/eleventy/SKILL.md +69 -0
- package/skills/stacks/meta/gatsby/SKILL.md +63 -0
- package/skills/stacks/meta/hugo/SKILL.md +73 -0
- package/skills/stacks/meta/jekyll/SKILL.md +70 -0
- package/skills/stacks/meta/nextjs/SKILL.md +62 -0
- package/skills/stacks/meta/nuxt/SKILL.md +66 -0
- package/skills/stacks/meta/remix/SKILL.md +67 -0
- package/skills/stacks/meta/sveltekit/SKILL.md +70 -0
- package/skills/stacks/meta/vite/SKILL.md +63 -0
- package/skills/stacks/mobile/android/SKILL.md +77 -0
- package/skills/stacks/mobile/flutter/SKILL.md +77 -0
- package/skills/stacks/mobile/ionic/SKILL.md +72 -0
- package/skills/stacks/mobile/nativescript/SKILL.md +71 -0
- package/skills/stacks/mobile/react-native/SKILL.md +75 -0
- package/skills/stacks/mobile/xamarin/SKILL.md +73 -0
- package/skills/stacks/orm/diesel/SKILL.md +72 -0
- package/skills/stacks/orm/django-orm/SKILL.md +58 -0
- package/skills/stacks/orm/drizzle/SKILL.md +67 -0
- package/skills/stacks/orm/gorm/SKILL.md +73 -0
- package/skills/stacks/orm/knex/SKILL.md +64 -0
- package/skills/stacks/orm/mongoose/SKILL.md +64 -0
- package/skills/stacks/orm/prisma/SKILL.md +64 -0
- package/skills/stacks/orm/sequelize/SKILL.md +65 -0
- package/skills/stacks/orm/sqlalchemy/SKILL.md +71 -0
- package/skills/stacks/orm/typeorm/SKILL.md +70 -0
- package/skills/stacks/queue/bullmq/SKILL.md +69 -0
- package/skills/stacks/queue/celery/SKILL.md +68 -0
- package/skills/stacks/queue/kafka/SKILL.md +66 -0
- package/skills/stacks/queue/nats/SKILL.md +66 -0
- package/skills/stacks/queue/rabbitmq/SKILL.md +64 -0
- package/skills/stacks/queue/redis/SKILL.md +66 -0
- package/skills/stacks/runtime/beam/SKILL.md +72 -0
- package/skills/stacks/runtime/bun/SKILL.md +80 -0
- package/skills/stacks/runtime/deno/SKILL.md +74 -0
- package/skills/stacks/runtime/dotnet/SKILL.md +64 -0
- package/skills/stacks/runtime/jvm/SKILL.md +66 -0
- package/skills/stacks/runtime/node/SKILL.md +70 -0
- package/skills/stacks/runtime/pypy/SKILL.md +69 -0
- package/skills/stacks/runtime/python3/SKILL.md +70 -0
- package/skills/stacks/styling/bootstrap/SKILL.md +74 -0
- package/skills/stacks/styling/bulma/SKILL.md +80 -0
- package/skills/stacks/styling/chakra-ui/SKILL.md +61 -0
- package/skills/stacks/styling/css-modules/SKILL.md +54 -0
- package/skills/stacks/styling/mui/SKILL.md +60 -0
- package/skills/stacks/styling/sass/SKILL.md +63 -0
- package/skills/stacks/styling/shadcn-ui/SKILL.md +58 -0
- package/skills/stacks/styling/styled-components/SKILL.md +62 -0
- package/skills/stacks/styling/tailwind/SKILL.md +59 -0
- package/skills/stacks/styling/unocss/SKILL.md +64 -0
- package/skills/stacks/styling/vanilla-extract/SKILL.md +64 -0
- package/skills/stacks/styling/vuetify/SKILL.md +89 -0
- package/skills/stacks/testing/cypress/SKILL.md +68 -0
- package/skills/stacks/testing/jasmine/SKILL.md +67 -0
- package/skills/stacks/testing/jest/SKILL.md +67 -0
- package/skills/stacks/testing/mocha/SKILL.md +71 -0
- package/skills/stacks/testing/playwright/SKILL.md +68 -0
- package/skills/stacks/testing/puppeteer/SKILL.md +70 -0
- package/skills/stacks/testing/selenium/SKILL.md +70 -0
- package/skills/stacks/testing/vitest/SKILL.md +68 -0
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: fastify
|
|
3
|
+
description: Fast, low-overhead Node.js HTTP framework with schema validation and a plugin/encapsulation model; consult for performant APIs.
|
|
4
|
+
domain: stack
|
|
5
|
+
category: backend
|
|
6
|
+
tags: [fastify, nodejs, http, plugins, json-schema, backend]
|
|
7
|
+
official_sources:
|
|
8
|
+
- https://fastify.dev/docs/latest/
|
|
9
|
+
- https://github.com/fastify/fastify
|
|
10
|
+
verified: 2026-06-16
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# Fastify
|
|
14
|
+
|
|
15
|
+
## Overview
|
|
16
|
+
Fastify is a fast, low-overhead web framework for Node.js focused on serving the highest number of requests possible without sacrificing security validation or developer experience. It is built around a plugin architecture, hooks, and JSON-Schema-based validation and serialization. Read this when building performance-sensitive HTTP APIs that benefit from schema-driven request handling.
|
|
17
|
+
|
|
18
|
+
## Official sources
|
|
19
|
+
- Docs: https://fastify.dev/docs/latest/
|
|
20
|
+
- Repo: https://github.com/fastify/fastify
|
|
21
|
+
- Getting started: https://fastify.dev/docs/latest/Guides/Getting-Started/
|
|
22
|
+
|
|
23
|
+
## Install / setup
|
|
24
|
+
```bash
|
|
25
|
+
npm i fastify
|
|
26
|
+
```
|
|
27
|
+
(Source: https://fastify.dev/docs/latest/Guides/Getting-Started/)
|
|
28
|
+
|
|
29
|
+
## Core concepts
|
|
30
|
+
- **Instance & lifecycle** — `fastify()` creates a server; routes and plugins register against it before `listen()`.
|
|
31
|
+
- **Plugins** — almost everything is a plugin registered with `fastify.register()`; plugins encapsulate routes, decorators, and hooks.
|
|
32
|
+
- **Encapsulation** — each plugin gets its own context that inherits from parents but is isolated from siblings; use the `fastify-plugin` wrapper to deliberately expose a plugin's decorators/hooks to the parent scope (https://fastify.dev/docs/latest/Reference/Encapsulation/).
|
|
33
|
+
- **JSON Schema validation & serialization** — attach a `schema` to a route to validate input and fast-serialize output.
|
|
34
|
+
- **Hooks** — lifecycle hooks (`onRequest`, `preHandler`, `onSend`, etc.) run code at defined request phases.
|
|
35
|
+
- **Decorators** — extend `fastify`, `request`, and `reply` with custom properties/methods.
|
|
36
|
+
|
|
37
|
+
## Best practices
|
|
38
|
+
- Define route schemas for body/querystring/params and responses to get validation plus faster serialization (https://fastify.dev/docs/latest/Guides/Getting-Started/).
|
|
39
|
+
- Prefer `async/await` handlers; returning a value sends the response, and thrown errors are routed to the error handler.
|
|
40
|
+
- Encapsulate features as plugins and only break encapsulation with `fastify-plugin` when sharing is intentional (https://fastify.dev/docs/latest/Reference/Plugins/).
|
|
41
|
+
- Register plugins and await readiness before calling `listen()` so the plugin tree is fully booted.
|
|
42
|
+
|
|
43
|
+
## Common pitfalls
|
|
44
|
+
- Mixing `async` handlers with manual `reply.send()` and also returning a value → causes "reply already sent"; in async handlers, return the payload OR call `reply.send`, not both (https://fastify.dev/docs/latest/Reference/Routes/).
|
|
45
|
+
- Expecting a decorator/hook registered inside a child plugin to be visible to parents → it isn't, due to encapsulation; wrap with `fastify-plugin` to expose it upward.
|
|
46
|
+
|
|
47
|
+
## Examples
|
|
48
|
+
```javascript
|
|
49
|
+
import Fastify from 'fastify';
|
|
50
|
+
|
|
51
|
+
const fastify = Fastify({ logger: true });
|
|
52
|
+
|
|
53
|
+
fastify.get('/', async () => ({ hello: 'world' }));
|
|
54
|
+
|
|
55
|
+
await fastify.listen({ port: 3000 });
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
## Further reading
|
|
59
|
+
- https://fastify.dev/docs/latest/Reference/Validation-and-Serialization/ — schema deep dive
|
|
60
|
+
- https://fastify.dev/docs/latest/Reference/Hooks/ — hook reference
|
|
61
|
+
|
|
62
|
+
## Related skills
|
|
63
|
+
- ../express — the minimal framework Fastify positions against on performance
|
|
64
|
+
- ../nestjs — can run on a Fastify platform adapter
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: fiber
|
|
3
|
+
description: Express-inspired Go web framework built on Fasthttp for fast, low-allocation HTTP services; consult when building Go APIs with an Express-like API.
|
|
4
|
+
domain: stack
|
|
5
|
+
category: backend
|
|
6
|
+
tags: [go, fiber, fasthttp, express, web-framework]
|
|
7
|
+
official_sources:
|
|
8
|
+
- https://docs.gofiber.io/
|
|
9
|
+
- https://github.com/gofiber/fiber
|
|
10
|
+
verified: 2026-06-16
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# Fiber
|
|
14
|
+
|
|
15
|
+
## Overview
|
|
16
|
+
Fiber is an Express-inspired web framework written in Go and built on top of Fasthttp, the fastest HTTP engine for Go. It aims for fast development with zero memory allocation and high performance in mind. Read this when building Go HTTP APIs and you want an Express-like routing and middleware API.
|
|
17
|
+
|
|
18
|
+
## Official sources
|
|
19
|
+
- Docs: https://docs.gofiber.io/
|
|
20
|
+
- Repo: https://github.com/gofiber/fiber
|
|
21
|
+
- Install / download: https://docs.gofiber.io/ (Installation section)
|
|
22
|
+
|
|
23
|
+
## Install / setup
|
|
24
|
+
```bash
|
|
25
|
+
# Requires Go 1.25 or higher
|
|
26
|
+
go get github.com/gofiber/fiber/v3
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
## Core concepts
|
|
30
|
+
- App: `fiber.New()` creates the application instance that registers routes and middleware and starts the server with `app.Listen`.
|
|
31
|
+
- Context (`fiber.Ctx`): the per-request object exposing params, query, body parsing, and response helpers — the Express-like `c` argument.
|
|
32
|
+
- Routing: HTTP-verb methods (`app.Get`, `app.Post`, ...) with path params (`:id`) and wildcards, plus route grouping.
|
|
33
|
+
- Middleware: handlers chained with `c.Next()`; Fiber ships official middleware (logger, CORS, recover, etc.).
|
|
34
|
+
- Built on Fasthttp: Fiber uses Fasthttp rather than net/http, which is what enables its low-allocation performance profile.
|
|
35
|
+
|
|
36
|
+
## Best practices
|
|
37
|
+
- Pin the major version in your import path (`/v3`) so upgrades are explicit and breaking changes are opt-in (https://docs.gofiber.io/).
|
|
38
|
+
- Use the official middleware packages (recover, logger, CORS) instead of reimplementing common concerns.
|
|
39
|
+
- Be aware that Fasthttp's `Ctx` and the values it returns are reused per request; copy values you need to retain beyond the handler.
|
|
40
|
+
- Return errors from handlers and centralize handling with a custom error handler on `fiber.New`.
|
|
41
|
+
|
|
42
|
+
## Common pitfalls
|
|
43
|
+
- Assuming net/http compatibility → Fiber is built on Fasthttp, so net/http middleware and `http.Request` APIs do not apply directly.
|
|
44
|
+
- Holding onto byte slices/strings from `Ctx` after the handler returns → they may be reused; copy them first.
|
|
45
|
+
- Mixing Fiber versions (v2 vs v3) imports → keep a single major version; APIs differ between them.
|
|
46
|
+
|
|
47
|
+
## Examples
|
|
48
|
+
```go
|
|
49
|
+
package main
|
|
50
|
+
|
|
51
|
+
import "github.com/gofiber/fiber/v3"
|
|
52
|
+
|
|
53
|
+
func main() {
|
|
54
|
+
app := fiber.New()
|
|
55
|
+
app.Get("/", func(c fiber.Ctx) error {
|
|
56
|
+
return c.SendString("Hello, World!")
|
|
57
|
+
})
|
|
58
|
+
app.Listen(":3000")
|
|
59
|
+
}
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
## Further reading
|
|
63
|
+
- https://docs.gofiber.io/ — Welcome / Installation / Zero allocation notes
|
|
64
|
+
- https://github.com/gofiber/fiber — Source and examples
|
|
65
|
+
|
|
66
|
+
## Related skills
|
|
67
|
+
- ../gin — alternative high-performance Go web framework
|
|
68
|
+
- ../adonisjs — Express-lineage framework in TypeScript
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: flask
|
|
3
|
+
description: Minimal Python WSGI microframework built on Werkzeug and Jinja; consult for small services, APIs, or when you want to assemble your own stack.
|
|
4
|
+
domain: stack
|
|
5
|
+
category: backend
|
|
6
|
+
tags: [flask, python, wsgi, microframework, jinja, backend]
|
|
7
|
+
official_sources:
|
|
8
|
+
- https://flask.palletsprojects.com/
|
|
9
|
+
- https://github.com/pallets/flask
|
|
10
|
+
verified: 2026-06-16
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# Flask
|
|
14
|
+
|
|
15
|
+
## Overview
|
|
16
|
+
Flask is a lightweight WSGI web microframework for Python, designed for a quick start that scales up to complex applications. It is built on Werkzeug (WSGI) and Jinja (templating) and ships a minimal core, leaving database, validation, and other choices to you via extensions. Read this when you want a small, flexible Python web app or API without a prescribed project structure.
|
|
17
|
+
|
|
18
|
+
## Official sources
|
|
19
|
+
- Docs: https://flask.palletsprojects.com/
|
|
20
|
+
- Repo: https://github.com/pallets/flask
|
|
21
|
+
- Install: https://flask.palletsprojects.com/en/stable/installation/
|
|
22
|
+
|
|
23
|
+
## Install / setup
|
|
24
|
+
```bash
|
|
25
|
+
pip install Flask
|
|
26
|
+
```
|
|
27
|
+
The docs recommend creating and activating a virtual environment first:
|
|
28
|
+
```bash
|
|
29
|
+
mkdir myproject
|
|
30
|
+
cd myproject
|
|
31
|
+
python3 -m venv .venv
|
|
32
|
+
. .venv/bin/activate
|
|
33
|
+
```
|
|
34
|
+
(Source: https://flask.palletsprojects.com/en/stable/installation/)
|
|
35
|
+
|
|
36
|
+
## Core concepts
|
|
37
|
+
- **Application object** — `Flask(__name__)` creates the WSGI app; you register routes and run it.
|
|
38
|
+
- **Routing & view functions** — the `@app.route()` decorator maps URLs to functions that return responses.
|
|
39
|
+
- **Request / response context** — the request-bound `request` object and the application/request context manage per-request state.
|
|
40
|
+
- **Templates (Jinja)** — `render_template()` renders Jinja templates with auto-escaping.
|
|
41
|
+
- **Blueprints** — group related routes/handlers into reusable components for larger apps.
|
|
42
|
+
- **Extensions** — optional packages (e.g. SQLAlchemy, Flask-Login) add ORM, auth, etc.
|
|
43
|
+
|
|
44
|
+
## Best practices
|
|
45
|
+
- Develop inside a virtual environment to isolate dependencies, as the install guide instructs (https://flask.palletsprojects.com/en/stable/installation/).
|
|
46
|
+
- Use the application factory pattern and Blueprints to structure non-trivial apps (https://flask.palletsprojects.com/en/stable/patterns/appfactories/).
|
|
47
|
+
- Never run the built-in development server in production; use a production WSGI server like Gunicorn or uWSGI (https://flask.palletsprojects.com/en/stable/deploying/).
|
|
48
|
+
- Keep configuration in `app.config` / environment variables, not hardcoded.
|
|
49
|
+
|
|
50
|
+
## Common pitfalls
|
|
51
|
+
- Leaving `debug=True` (or the dev server) enabled in production → exposes the interactive debugger, which allows arbitrary code execution; disable debug and deploy behind a real WSGI server (https://flask.palletsprojects.com/en/stable/deploying/).
|
|
52
|
+
- Accessing `request` or other context-bound globals outside a request/app context → raises a "working outside of request context" error; push a context or restructure the code (https://flask.palletsprojects.com/en/stable/appcontext/).
|
|
53
|
+
|
|
54
|
+
## Examples
|
|
55
|
+
```python
|
|
56
|
+
from flask import Flask
|
|
57
|
+
|
|
58
|
+
app = Flask(__name__)
|
|
59
|
+
|
|
60
|
+
@app.route("/")
|
|
61
|
+
def hello():
|
|
62
|
+
return "Hello, World!"
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
## Further reading
|
|
66
|
+
- https://flask.palletsprojects.com/en/stable/quickstart/ — quickstart
|
|
67
|
+
- https://flask.palletsprojects.com/en/stable/deploying/ — deployment options
|
|
68
|
+
|
|
69
|
+
## Related skills
|
|
70
|
+
- ../django — batteries-included Python alternative
|
|
71
|
+
- ../fastapi — async, typed Python API framework
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: gin
|
|
3
|
+
description: Fast Go HTTP web framework with httprouter-based routing, middleware, and JSON binding; consult when building Go REST APIs or microservices.
|
|
4
|
+
domain: stack
|
|
5
|
+
category: backend
|
|
6
|
+
tags: [go, gin, http, rest-api, web-framework]
|
|
7
|
+
official_sources:
|
|
8
|
+
- https://gin-gonic.com/en/docs/
|
|
9
|
+
- https://github.com/gin-gonic/gin
|
|
10
|
+
verified: 2026-06-16
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# Gin
|
|
14
|
+
|
|
15
|
+
## Overview
|
|
16
|
+
Gin is a high-performance HTTP web framework written in Go that offers a Martini-like API with much better performance thanks to httprouter. It targets REST APIs, microservices, and web apps where speed and developer productivity matter. Read this when building Go HTTP services with routing, middleware, and request binding.
|
|
17
|
+
|
|
18
|
+
## Official sources
|
|
19
|
+
- Docs: https://gin-gonic.com/en/docs/
|
|
20
|
+
- Repo: https://github.com/gin-gonic/gin
|
|
21
|
+
- Install / download: https://gin-gonic.com/en/docs/quickstart/
|
|
22
|
+
|
|
23
|
+
## Install / setup
|
|
24
|
+
```bash
|
|
25
|
+
go get -u github.com/gin-gonic/gin
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
## Core concepts
|
|
29
|
+
- Engine & router: `gin.Default()` returns an Engine with Logger and Recovery middleware attached; it dispatches requests via a zero-allocation router.
|
|
30
|
+
- Context (`*gin.Context`): carries the request/response, params, and helpers for binding and rendering; passed to every handler.
|
|
31
|
+
- Middleware: functions that run before/after handlers, attached globally or per route group, calling `c.Next()` to continue the chain.
|
|
32
|
+
- Route grouping: `router.Group("/api")` clusters routes that share a prefix and middleware.
|
|
33
|
+
- Binding & validation: `c.ShouldBindJSON` and friends parse and validate request bodies into structs using tags.
|
|
34
|
+
- Rendering: built-in helpers for JSON, XML, and HTML responses.
|
|
35
|
+
|
|
36
|
+
## Best practices
|
|
37
|
+
- Use `gin.Default()` for built-in crash recovery and logging, or `gin.New()` when you want to compose middleware explicitly (https://gin-gonic.com/en/docs/quickstart/).
|
|
38
|
+
- Group related routes and apply shared middleware at the group level rather than repeating it per route.
|
|
39
|
+
- Validate input with binding tags and `ShouldBind*` methods so malformed requests are rejected early.
|
|
40
|
+
- Set `gin.SetMode(gin.ReleaseMode)` in production to reduce debug overhead and log noise.
|
|
41
|
+
|
|
42
|
+
## Common pitfalls
|
|
43
|
+
- Forgetting to call `c.Next()` (or `c.Abort()`) in custom middleware → the chain stalls or continues unexpectedly; call the correct one explicitly.
|
|
44
|
+
- Using `c.Bind*` (which auto-aborts with 400) when you want to handle errors yourself → use `c.ShouldBind*` to control the error response.
|
|
45
|
+
- Running in debug mode in production → switch to release mode to avoid verbose logging and warnings.
|
|
46
|
+
|
|
47
|
+
## Examples
|
|
48
|
+
```go
|
|
49
|
+
package main
|
|
50
|
+
|
|
51
|
+
import "github.com/gin-gonic/gin"
|
|
52
|
+
|
|
53
|
+
func main() {
|
|
54
|
+
r := gin.Default()
|
|
55
|
+
r.GET("/ping", func(c *gin.Context) {
|
|
56
|
+
c.JSON(200, gin.H{"message": "pong"})
|
|
57
|
+
})
|
|
58
|
+
r.Run() // listens on :8080
|
|
59
|
+
}
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
## Further reading
|
|
63
|
+
- https://gin-gonic.com/en/docs/quickstart/ — Quickstart
|
|
64
|
+
- https://gin-gonic.com/en/docs/examples/ — Examples (binding, middleware, grouping)
|
|
65
|
+
|
|
66
|
+
## Related skills
|
|
67
|
+
- ../fiber — Express-inspired Go web framework alternative
|
|
68
|
+
- ../actix — high-performance web framework in Rust
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: graphql
|
|
3
|
+
description: GraphQL — a query language and server-side runtime for APIs where clients request exactly the fields they need from a strongly-typed schema. Consult when designing a schema (SDL), writing queries/mutations/subscriptions, building a resolver-based server (graphql-js, Apollo), avoiding over/under-fetching, or referencing the GraphQL specification.
|
|
4
|
+
domain: stack
|
|
5
|
+
category: backend
|
|
6
|
+
tags: [graphql, api, schema, resolvers, query-language, graphql-js, backend]
|
|
7
|
+
official_sources:
|
|
8
|
+
- https://graphql.org/learn/
|
|
9
|
+
- https://github.com/graphql/graphql-spec
|
|
10
|
+
- https://www.graphql-js.org/docs/getting-started/
|
|
11
|
+
verified: 2026-06-17
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
# GraphQL
|
|
15
|
+
|
|
16
|
+
## Overview
|
|
17
|
+
GraphQL is an open-source query language for APIs plus a runtime that fulfills those queries against a typed schema. Clients ask for exactly the fields they need in one request, eliminating over- and under-fetching common to REST. It is transport- and database-agnostic — resolvers fetch data from any backend. Read this when designing a schema, writing resolvers, or choosing a GraphQL server.
|
|
18
|
+
|
|
19
|
+
## Official sources
|
|
20
|
+
- Docs: https://graphql.org/learn/
|
|
21
|
+
- Repo: https://github.com/graphql/graphql-spec
|
|
22
|
+
- Install: https://www.graphql-js.org/docs/getting-started/
|
|
23
|
+
|
|
24
|
+
## Install / setup
|
|
25
|
+
```bash
|
|
26
|
+
# Reference JavaScript implementation:
|
|
27
|
+
npm install graphql --save
|
|
28
|
+
```
|
|
29
|
+
Source: https://www.graphql-js.org/docs/getting-started/ (graphql-js is the official JS implementation: parser, type system, validator, executor).
|
|
30
|
+
|
|
31
|
+
## Core concepts
|
|
32
|
+
- **Schema (SDL)** — the typed contract; `type`, `Query`, `Mutation`, `Subscription` define the API surface.
|
|
33
|
+
- **Types** — scalars, objects, enums, interfaces, unions, input types, and non-null/list modifiers.
|
|
34
|
+
- **Operations** — queries (read), mutations (write), subscriptions (real-time streams).
|
|
35
|
+
- **Resolvers** — functions that return the data for each field; the heart of execution.
|
|
36
|
+
- **Fields & arguments** — clients select fields and pass typed arguments per field.
|
|
37
|
+
- **Introspection** — the schema is self-describing; tools like GraphiQL query it.
|
|
38
|
+
- **Single endpoint** — typically one POST endpoint (e.g. `/graphql`) for all operations.
|
|
39
|
+
- **Fragments & variables** — reusable field sets and parameterized, cacheable queries.
|
|
40
|
+
|
|
41
|
+
## Best practices
|
|
42
|
+
- Design the schema around client/product needs, not your database tables (https://graphql.org/learn/schema/).
|
|
43
|
+
- Solve N+1 resolver fan-out with batching/caching (DataLoader) (https://graphql.org/learn/best-practices/).
|
|
44
|
+
- Use cursor-based (connections) pagination for lists (https://graphql.org/learn/pagination/).
|
|
45
|
+
- Return structured `errors` and prefer nullable fields for partial failures (https://graphql.org/learn/best-practices/).
|
|
46
|
+
|
|
47
|
+
## Common pitfalls
|
|
48
|
+
- N+1 queries when a list resolver hits the DB per item → batch with DataLoader.
|
|
49
|
+
- Unbounded query depth/complexity enables DoS → add depth/complexity limits and timeouts.
|
|
50
|
+
- Exposing a single `/graphql` makes per-resource HTTP caching hard → use persisted queries / response caching.
|
|
51
|
+
|
|
52
|
+
## Examples
|
|
53
|
+
```javascript
|
|
54
|
+
import { graphql, buildSchema } from 'graphql';
|
|
55
|
+
|
|
56
|
+
const schema = buildSchema(`type Query { hello: String }`);
|
|
57
|
+
const rootValue = { hello: () => 'Hello world!' };
|
|
58
|
+
|
|
59
|
+
graphql({ schema, source: '{ hello }', rootValue })
|
|
60
|
+
.then((res) => console.log(res));
|
|
61
|
+
// { data: { hello: 'Hello world!' } }
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
## Further reading
|
|
65
|
+
- https://spec.graphql.org/ — the formal GraphQL specification versions
|
|
66
|
+
- https://graphql.org/community/tools-and-libraries/ — servers and clients per language
|
|
67
|
+
|
|
68
|
+
## Related skills
|
|
69
|
+
- ../spring — expose a GraphQL API from a Spring backend (Spring for GraphQL)
|
|
70
|
+
- ../nginx — reverse-proxy a GraphQL server behind Nginx
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: hono
|
|
3
|
+
description: Tiny, ultrafast Web-Standards web framework that runs on Cloudflare Workers, Deno, Bun, Node.js and edge; consult for edge/multi-runtime APIs.
|
|
4
|
+
domain: stack
|
|
5
|
+
category: backend
|
|
6
|
+
tags: [hono, edge, web-standards, cloudflare-workers, bun, deno, backend]
|
|
7
|
+
official_sources:
|
|
8
|
+
- https://hono.dev/docs/
|
|
9
|
+
- https://github.com/honojs/hono
|
|
10
|
+
verified: 2026-06-16
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# Hono
|
|
14
|
+
|
|
15
|
+
## Overview
|
|
16
|
+
Hono is a small, simple, and ultrafast web framework built on Web Standards. The same code runs on any JavaScript runtime — Cloudflare Workers, Fastly Compute, Deno, Bun, Vercel, AWS Lambda, Lambda@Edge, and Node.js. Read this when targeting edge/serverless platforms or when you want one routing/middleware codebase portable across runtimes.
|
|
17
|
+
|
|
18
|
+
## Official sources
|
|
19
|
+
- Docs: https://hono.dev/docs/
|
|
20
|
+
- Repo: https://github.com/honojs/hono
|
|
21
|
+
- Getting started: https://hono.dev/docs/getting-started/basic
|
|
22
|
+
|
|
23
|
+
## Install / setup
|
|
24
|
+
```bash
|
|
25
|
+
npm create hono@latest my-app
|
|
26
|
+
```
|
|
27
|
+
(Source: https://hono.dev/docs/getting-started/basic)
|
|
28
|
+
|
|
29
|
+
## Core concepts
|
|
30
|
+
- **App instance** — `new Hono()` creates the router/app; `.get()`, `.post()`, etc. register routes.
|
|
31
|
+
- **Web Standards core** — built on the standard `Request`/`Response` and Fetch APIs, which is why it is runtime-portable.
|
|
32
|
+
- **Context (`c`)** — handlers receive a `Context` exposing `c.req`, `c.json()`, `c.text()`, env bindings, and helpers.
|
|
33
|
+
- **Middleware** — composable `async (c, next) => {}` functions; Hono ships built-in middleware (CORS, logger, JWT, etc.).
|
|
34
|
+
- **Presets / adapters** — import paths/presets (`hono`, `hono/tiny`, `hono/quick`) and runtime adapters tailor the router and serving for each platform.
|
|
35
|
+
- **RPC & typing** — routes can be typed end-to-end and shared with clients via the RPC feature.
|
|
36
|
+
|
|
37
|
+
## Best practices
|
|
38
|
+
- Pick the import preset that matches your workload (e.g. `hono/quick` for many cold starts) per the docs (https://hono.dev/docs/api/presets).
|
|
39
|
+
- Use the official middleware (CORS, logger, secure headers) instead of hand-rolling cross-cutting concerns (https://hono.dev/docs/middleware/builtin/cors).
|
|
40
|
+
- Use the runtime-specific starter template so the entrypoint and serving adapter match your target (https://hono.dev/docs/getting-started/basic).
|
|
41
|
+
- Return `Response`-compatible values from handlers via `c.json` / `c.text` rather than mutating shared state.
|
|
42
|
+
|
|
43
|
+
## Common pitfalls
|
|
44
|
+
- Assuming Node-only APIs (e.g. `fs`, raw `http`) work everywhere → on Workers/Deno/edge only Web Standard APIs are available; keep handlers runtime-agnostic.
|
|
45
|
+
- Forgetting a platform-specific entrypoint/adapter → each runtime has its own bootstrap (e.g. `@hono/node-server` for Node); follow the matching getting-started page (https://hono.dev/docs/getting-started/nodejs).
|
|
46
|
+
|
|
47
|
+
## Examples
|
|
48
|
+
```typescript
|
|
49
|
+
import { Hono } from 'hono';
|
|
50
|
+
|
|
51
|
+
const app = new Hono();
|
|
52
|
+
|
|
53
|
+
app.get('/', (c) => c.text('Hello Hono!'));
|
|
54
|
+
|
|
55
|
+
export default app;
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
## Further reading
|
|
59
|
+
- https://hono.dev/docs/api/presets — choosing presets per runtime
|
|
60
|
+
- https://hono.dev/docs/guides/rpc — typed RPC between server and client
|
|
61
|
+
|
|
62
|
+
## Related skills
|
|
63
|
+
- ../fastify — Node-focused performance framework
|
|
64
|
+
- ../express — minimal Node framework with a similar middleware model
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: koa
|
|
3
|
+
description: Expressive, minimal middleware framework for Node.js from the Express team, built on async/await; consult for lean, composable HTTP servers.
|
|
4
|
+
domain: stack
|
|
5
|
+
category: backend
|
|
6
|
+
tags: [koa, nodejs, middleware, async-await, http, backend]
|
|
7
|
+
official_sources:
|
|
8
|
+
- https://koajs.com/
|
|
9
|
+
- https://github.com/koajs/koa
|
|
10
|
+
verified: 2026-06-16
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# Koa
|
|
14
|
+
|
|
15
|
+
## Overview
|
|
16
|
+
Koa is an expressive HTTP middleware framework for Node.js, created by the team behind Express, designed to make web applications and APIs more enjoyable to write. It has a small core (no bundled middleware) and uses `async`/`await` with a cascading middleware model and a unified `ctx` object. Read this when you want a minimal, modern foundation and prefer composing middleware explicitly.
|
|
17
|
+
|
|
18
|
+
## Official sources
|
|
19
|
+
- Docs: https://koajs.com/
|
|
20
|
+
- Repo: https://github.com/koajs/koa
|
|
21
|
+
|
|
22
|
+
## Install / setup
|
|
23
|
+
```bash
|
|
24
|
+
npm i koa
|
|
25
|
+
```
|
|
26
|
+
Koa requires node v18.0.0 or higher for ES2015 and async function support. (Source: https://koajs.com/)
|
|
27
|
+
|
|
28
|
+
## Core concepts
|
|
29
|
+
- **Application** — `new Koa()` creates an app; `app.use()` adds middleware; `app.listen()` starts the server.
|
|
30
|
+
- **Cascading middleware** — middleware are `async (ctx, next) => {}`; calling `await next()` runs downstream middleware, then control flows back upstream ("cascade").
|
|
31
|
+
- **Context (`ctx`)** — a single object per request that wraps and delegates to `ctx.request` and `ctx.response` (e.g. `ctx.body`, `ctx.status`).
|
|
32
|
+
- **Request / Response abstractions** — Koa's own objects sit on top of Node's, adding helpful accessors.
|
|
33
|
+
- **No bundled middleware** — routing, body parsing, etc. come from separate packages (e.g. `@koa/router`, `koa-bodyparser`).
|
|
34
|
+
|
|
35
|
+
## Best practices
|
|
36
|
+
- Set the response with `ctx.body` / `ctx.status` rather than calling Node's `res` directly, so Koa handles serialization correctly (https://koajs.com/#response).
|
|
37
|
+
- Use `try/catch` around `await next()` in an upstream middleware to centralize error handling (https://koajs.com/#error-handling).
|
|
38
|
+
- Keep middleware focused and order them deliberately, since the cascade depends on registration order.
|
|
39
|
+
- Add only the middleware packages you need (router, body parser, CORS) to keep the core minimal.
|
|
40
|
+
|
|
41
|
+
## Common pitfalls
|
|
42
|
+
- Forgetting to `await next()` (or returning before it) → downstream middleware never runs and the cascade breaks; always await the chain.
|
|
43
|
+
- Treating Koa like Express (e.g. expecting built-in routing/body parsing or the `(req, res, next)` signature) → Koa uses `ctx` and bundles no middleware; install the equivalents explicitly.
|
|
44
|
+
|
|
45
|
+
## Examples
|
|
46
|
+
```javascript
|
|
47
|
+
const Koa = require('koa');
|
|
48
|
+
const app = new Koa();
|
|
49
|
+
|
|
50
|
+
app.use(async (ctx) => {
|
|
51
|
+
ctx.body = 'Hello World';
|
|
52
|
+
});
|
|
53
|
+
|
|
54
|
+
app.listen(3000);
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
## Further reading
|
|
58
|
+
- https://koajs.com/#error-handling — error handling patterns
|
|
59
|
+
- https://github.com/koajs/koa/blob/master/docs/guide.md — official guide
|
|
60
|
+
|
|
61
|
+
## Related skills
|
|
62
|
+
- ../express — predecessor framework from the same team
|
|
63
|
+
- ../fastify — higher-performance Node alternative
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: laravel
|
|
3
|
+
description: Full-featured PHP web framework with Eloquent ORM, Blade, queues, and Artisan; consult when building or maintaining a Laravel backend.
|
|
4
|
+
domain: stack
|
|
5
|
+
category: backend
|
|
6
|
+
tags: [php, laravel, mvc, eloquent, web-framework]
|
|
7
|
+
official_sources:
|
|
8
|
+
- https://laravel.com/docs
|
|
9
|
+
- https://github.com/laravel/laravel
|
|
10
|
+
verified: 2026-06-16
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# Laravel
|
|
14
|
+
|
|
15
|
+
## Overview
|
|
16
|
+
Laravel is a PHP web application framework with expressive syntax that provides structure for full-stack apps and API backends. It bundles routing, dependency injection, the Eloquent ORM, queues, scheduled jobs, real-time broadcasting, and testing out of the box. Read this when scaffolding, routing, persisting data, or organizing a Laravel codebase.
|
|
17
|
+
|
|
18
|
+
## Official sources
|
|
19
|
+
- Docs: https://laravel.com/docs
|
|
20
|
+
- Repo: https://github.com/laravel/laravel (application skeleton); framework at https://github.com/laravel/framework
|
|
21
|
+
- Install / download: https://laravel.com/docs/installation
|
|
22
|
+
|
|
23
|
+
## Install / setup
|
|
24
|
+
```bash
|
|
25
|
+
# Install the Laravel installer via Composer (requires PHP + Composer)
|
|
26
|
+
composer global require laravel/installer
|
|
27
|
+
|
|
28
|
+
# Create a new application
|
|
29
|
+
laravel new example-app
|
|
30
|
+
|
|
31
|
+
# Start dev server, queue worker, and Vite together
|
|
32
|
+
cd example-app
|
|
33
|
+
npm install && npm run build
|
|
34
|
+
composer run dev
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
## Core concepts
|
|
38
|
+
- Request lifecycle: requests enter through `public/index.php`, pass through middleware, are dispatched by the router, and return a response — understanding this order is key to debugging.
|
|
39
|
+
- Routing & controllers: routes in `routes/web.php` and `routes/api.php` map URIs to closures or controllers; conventions make controller/file placement predictable.
|
|
40
|
+
- Eloquent ORM: each model maps to a database table; relationships, migrations, and seeders manage schema and data.
|
|
41
|
+
- Service container & facades: the container resolves dependencies via injection; facades provide a static-style interface to container-bound services.
|
|
42
|
+
- Blade templates: Laravel's templating engine for full-stack rendering, with components and layouts.
|
|
43
|
+
- Configuration via `.env`: environment-specific values live in `.env` (not committed); the `config/` directory holds documented options.
|
|
44
|
+
|
|
45
|
+
## Best practices
|
|
46
|
+
- Keep `.env` out of source control; each environment supplies its own credentials (https://laravel.com/docs/installation#environment-based-configuration).
|
|
47
|
+
- Serve the app from the web root (the `public/` directory), never from a subdirectory, to avoid exposing sensitive files (https://laravel.com/docs/installation#directory-configuration).
|
|
48
|
+
- Use migrations and seeders for schema/data so environments stay reproducible.
|
|
49
|
+
- Use starter kits for authentication scaffolding rather than rolling your own (https://laravel.com/docs/starter-kits).
|
|
50
|
+
|
|
51
|
+
## Common pitfalls
|
|
52
|
+
- Committing `.env` or serving from a subdirectory → exposes credentials and source; keep `.env` ignored and serve from the public root.
|
|
53
|
+
- Treating Laravel only as full-stack → it also works as an API backend with Sanctum auth; choose the path that matches your frontend.
|
|
54
|
+
- Forgetting to run `php artisan migrate` after switching from the default SQLite to MySQL/PostgreSQL → create the database and run migrations.
|
|
55
|
+
|
|
56
|
+
## Examples
|
|
57
|
+
```php
|
|
58
|
+
// routes/web.php
|
|
59
|
+
use Illuminate\Support\Facades\Route;
|
|
60
|
+
|
|
61
|
+
Route::get('/users/{id}', function (string $id) {
|
|
62
|
+
return \App\Models\User::findOrFail($id);
|
|
63
|
+
});
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
## Further reading
|
|
67
|
+
- https://laravel.com/docs/lifecycle — Request lifecycle
|
|
68
|
+
- https://laravel.com/docs/eloquent — Eloquent ORM
|
|
69
|
+
- https://laravel.com/docs/sanctum — API authentication
|
|
70
|
+
|
|
71
|
+
## Related skills
|
|
72
|
+
- ../rails — another convention-driven full-stack web framework
|
|
73
|
+
- ../adonisjs — TypeScript framework with comparable full-stack ergonomics
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: nestjs
|
|
3
|
+
description: Opinionated TypeScript backend framework with DI, modules, and decorators; consult when building structured Node server-side apps.
|
|
4
|
+
domain: stack
|
|
5
|
+
category: backend
|
|
6
|
+
tags: [nestjs, nodejs, typescript, dependency-injection, backend]
|
|
7
|
+
official_sources:
|
|
8
|
+
- https://docs.nestjs.com/
|
|
9
|
+
- https://github.com/nestjs/nest
|
|
10
|
+
verified: 2026-06-16
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# NestJS
|
|
14
|
+
|
|
15
|
+
## Overview
|
|
16
|
+
NestJS is a progressive Node.js framework for building efficient, scalable, enterprise-grade server-side applications with TypeScript. It layers an opinionated architecture (modules, providers, dependency injection, decorators) on top of an HTTP platform (Express by default, optionally Fastify). Read this when you need a structured, testable backend with first-class DI rather than wiring middleware by hand.
|
|
17
|
+
|
|
18
|
+
## Official sources
|
|
19
|
+
- Docs: https://docs.nestjs.com/
|
|
20
|
+
- Repo: https://github.com/nestjs/nest
|
|
21
|
+
- Install / first steps: https://docs.nestjs.com/first-steps
|
|
22
|
+
|
|
23
|
+
## Install / setup
|
|
24
|
+
```bash
|
|
25
|
+
npm i -g @nestjs/cli
|
|
26
|
+
nest new project-name
|
|
27
|
+
```
|
|
28
|
+
The CLI can also be run without a global install via `npx @nestjs/cli@latest`. Add `--strict` to `nest new` for TypeScript's stricter feature set. (Source: https://docs.nestjs.com/first-steps)
|
|
29
|
+
|
|
30
|
+
## Core concepts
|
|
31
|
+
- **Modules** — each app has a root module; modules group related providers and controllers and define the dependency boundary via `@Module({})`.
|
|
32
|
+
- **Controllers** — handle incoming requests and return responses; routing is declared with decorators like `@Controller()` and `@Get()`.
|
|
33
|
+
- **Providers / services** — injectable classes (`@Injectable()`) holding business logic, resolved by Nest's DI container.
|
|
34
|
+
- **Dependency injection** — constructor-based injection wires providers together; the container manages instantiation and scope.
|
|
35
|
+
- **Pipes, guards, interceptors, filters** — cross-cutting building blocks for validation/transformation, authorization, request/response wrapping, and exception handling.
|
|
36
|
+
- **Platform-agnostic core** — the same code runs on `@nestjs/platform-express` or `@nestjs/platform-fastify`.
|
|
37
|
+
|
|
38
|
+
## Best practices
|
|
39
|
+
- Keep one feature per module and export only what other modules need, so the DI graph stays explicit (https://docs.nestjs.com/modules).
|
|
40
|
+
- Use Pipes (e.g. the built-in `ValidationPipe` with class-validator) to validate and transform incoming payloads at the boundary (https://docs.nestjs.com/techniques/validation).
|
|
41
|
+
- Centralize error handling with exception filters rather than try/catch in every controller (https://docs.nestjs.com/exception-filters).
|
|
42
|
+
- Lean on the CLI (`nest generate`) to scaffold modules/controllers/services consistently.
|
|
43
|
+
|
|
44
|
+
## Common pitfalls
|
|
45
|
+
- Forgetting to register a provider in a module's `providers` (or import its module) → "Nest can't resolve dependencies" error; declare and export providers explicitly.
|
|
46
|
+
- Treating default request-scoped vs singleton lifetimes interchangeably → request-scoped providers add per-request overhead; default to singleton scope unless you truly need per-request state (https://docs.nestjs.com/fundamentals/injection-scopes).
|
|
47
|
+
|
|
48
|
+
## Examples
|
|
49
|
+
```typescript
|
|
50
|
+
import { Module, Controller, Get } from '@nestjs/common';
|
|
51
|
+
|
|
52
|
+
@Controller('cats')
|
|
53
|
+
export class CatsController {
|
|
54
|
+
@Get()
|
|
55
|
+
findAll(): string {
|
|
56
|
+
return 'This action returns all cats';
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
@Module({ controllers: [CatsController] })
|
|
61
|
+
export class AppModule {}
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
## Further reading
|
|
65
|
+
- https://docs.nestjs.com/fundamentals/custom-providers — advanced DI patterns
|
|
66
|
+
- https://docs.nestjs.com/cli/overview — CLI reference
|
|
67
|
+
|
|
68
|
+
## Related skills
|
|
69
|
+
- ../express — the default underlying HTTP platform
|
|
70
|
+
- ../fastify — alternative high-performance platform adapter
|