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,75 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: alpine
|
|
3
|
+
description: Lightweight framework for composing JavaScript behavior directly in markup via x- attributes; consult for sprinkles of interactivity.
|
|
4
|
+
domain: stack
|
|
5
|
+
category: frontend
|
|
6
|
+
tags: [alpinejs, declarative, markup, lightweight, reactivity]
|
|
7
|
+
official_sources:
|
|
8
|
+
- https://alpinejs.dev/start-here
|
|
9
|
+
- https://github.com/alpinejs/alpine
|
|
10
|
+
verified: 2026-06-16
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# Alpine.js
|
|
14
|
+
|
|
15
|
+
## Overview
|
|
16
|
+
Alpine.js is a rugged, minimal framework for composing JavaScript behavior directly in your HTML using `x-` attributes. It offers reactive data, event handling, and DOM bindings without a build step, making it ideal for adding interactivity to mostly server-rendered pages. Read this when you want lightweight, declarative client behavior without a SPA framework.
|
|
17
|
+
|
|
18
|
+
## Official sources
|
|
19
|
+
- Docs: https://alpinejs.dev/start-here
|
|
20
|
+
- Repo: https://github.com/alpinejs/alpine
|
|
21
|
+
- Install / download: https://alpinejs.dev/essentials/installation
|
|
22
|
+
|
|
23
|
+
## Install / setup
|
|
24
|
+
Add via CDN (copied verbatim from alpinejs.dev/essentials/installation):
|
|
25
|
+
|
|
26
|
+
```html
|
|
27
|
+
<script defer src="https://cdn.jsdelivr.net/npm/alpinejs@3.x.x/dist/cdn.min.js"></script>
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
Or install via npm and initialize in your bundle:
|
|
31
|
+
|
|
32
|
+
```bash
|
|
33
|
+
npm install alpinejs
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
```javascript
|
|
37
|
+
import Alpine from 'alpinejs'
|
|
38
|
+
|
|
39
|
+
window.Alpine = Alpine
|
|
40
|
+
Alpine.start()
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
## Core concepts
|
|
44
|
+
- **`x-data`** — declares a reactive component scope with state; required to activate Alpine on an element.
|
|
45
|
+
- **Directives** — `x-bind` (`:`), `x-on` (`@`), `x-model`, `x-show`, `x-if`, `x-for` wire state to the DOM.
|
|
46
|
+
- **`x-init`** — runs setup logic when a component initializes.
|
|
47
|
+
- **Reactivity** — Alpine tracks state in `x-data` and updates bindings when it changes.
|
|
48
|
+
- **Magics & globals** — `$el`, `$refs`, `$dispatch`, `$store` provide element refs, events, and shared state.
|
|
49
|
+
- **No build step** — works directly from a script tag for progressive enhancement.
|
|
50
|
+
|
|
51
|
+
## Best practices
|
|
52
|
+
- Keep component state inside `x-data`; for shared state use `Alpine.store` / `$store`.
|
|
53
|
+
- Register plugins/extensions between importing Alpine and calling `Alpine.start()`.
|
|
54
|
+
- Call `Alpine.start()` only once per page to avoid multiple instances.
|
|
55
|
+
- Pin a specific version (e.g. `@3.13.3`) in production instead of the floating `@3.x.x` tag.
|
|
56
|
+
|
|
57
|
+
## Common pitfalls
|
|
58
|
+
- Omitting the `defer` attribute on the CDN script → Alpine must defer so the DOM is ready; the docs require it.
|
|
59
|
+
- Forgetting `x-data` on a container → directives inside won't activate.
|
|
60
|
+
- Putting heavy logic inline in attributes → move it into methods within `x-data` for readability and reuse.
|
|
61
|
+
|
|
62
|
+
## Examples
|
|
63
|
+
```html
|
|
64
|
+
<div x-data="{ count: 0 }">
|
|
65
|
+
<button @click="count++">Clicked <span x-text="count"></span> times</button>
|
|
66
|
+
</div>
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
## Further reading
|
|
70
|
+
- https://alpinejs.dev/start-here — guided introduction
|
|
71
|
+
- https://alpinejs.dev/essentials/installation — installation options
|
|
72
|
+
|
|
73
|
+
## Related skills
|
|
74
|
+
- ../htmx — hypermedia requests; pairs well with Alpine sprinkles
|
|
75
|
+
- ../lit — web components for heavier client logic
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: angular
|
|
3
|
+
description: Full-featured TypeScript frontend platform with CLI, DI, and reactive primitives; consult for components, signals, and Angular CLI apps.
|
|
4
|
+
domain: stack
|
|
5
|
+
category: frontend
|
|
6
|
+
tags: [angular, typescript, cli, signals, dependency-injection, spa]
|
|
7
|
+
official_sources:
|
|
8
|
+
- https://angular.dev/
|
|
9
|
+
- https://github.com/angular/angular
|
|
10
|
+
verified: 2026-06-16
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# Angular
|
|
14
|
+
|
|
15
|
+
## Overview
|
|
16
|
+
Angular is a full-featured, opinionated TypeScript framework and platform for building web applications, with a first-class CLI, dependency injection, routing, forms, and HTTP client included. Modern Angular uses standalone components and signals for reactivity. Read this when scaffolding with the Angular CLI, structuring components/services, or working with DI and signals.
|
|
17
|
+
|
|
18
|
+
## Official sources
|
|
19
|
+
- Docs: https://angular.dev/
|
|
20
|
+
- Repo: https://github.com/angular/angular
|
|
21
|
+
- Install / download: https://angular.dev/installation
|
|
22
|
+
|
|
23
|
+
## Install / setup
|
|
24
|
+
Install the CLI globally and create a project (copied verbatim from angular.dev/installation):
|
|
25
|
+
|
|
26
|
+
```bash
|
|
27
|
+
npm install -g @angular/cli
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
```bash
|
|
31
|
+
ng new <project-name>
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
## Core concepts
|
|
35
|
+
- **Components** — classes with a template and styles, declared standalone in modern Angular.
|
|
36
|
+
- **Templates** — HTML with Angular syntax: bindings (`[prop]`, `(event)`), control flow (`@if`, `@for`), and interpolation.
|
|
37
|
+
- **Signals** — reactive primitives (`signal`, `computed`, `effect`) for fine-grained state.
|
|
38
|
+
- **Dependency injection** — services are provided and injected via the DI system (`inject()` / constructor injection).
|
|
39
|
+
- **Angular CLI** — `ng generate`, `ng serve`, `ng build` scaffold, run, and bundle apps.
|
|
40
|
+
- **Routing** — the Router maps URL paths to components.
|
|
41
|
+
- **RxJS** — Observables power async streams (HTTP, events) throughout the framework.
|
|
42
|
+
|
|
43
|
+
## Best practices
|
|
44
|
+
- Prefer standalone components and the new control-flow syntax (`@if`, `@for`) for new code.
|
|
45
|
+
- Use signals for component state and `computed` for derived values.
|
|
46
|
+
- Use the CLI (`ng generate`) to scaffold consistent components, services, and routes.
|
|
47
|
+
- Provide services at the appropriate injector scope (root vs. component) to control lifetimes.
|
|
48
|
+
- Keep templates declarative; move logic into the component class or services.
|
|
49
|
+
|
|
50
|
+
## Common pitfalls
|
|
51
|
+
- Forgetting to unsubscribe from long-lived Observables → use `async` pipe or `takeUntilDestroyed` to avoid leaks.
|
|
52
|
+
- Doing heavy work in templates → precompute with `computed`/signals or pure pipes.
|
|
53
|
+
- Mixing NgModules and standalone patterns inconsistently → follow the standalone-first guidance for new projects.
|
|
54
|
+
|
|
55
|
+
## Examples
|
|
56
|
+
```typescript
|
|
57
|
+
import { Component, signal } from '@angular/core';
|
|
58
|
+
|
|
59
|
+
@Component({
|
|
60
|
+
selector: 'app-counter',
|
|
61
|
+
standalone: true,
|
|
62
|
+
template: `<button (click)="count.set(count() + 1)">Clicked {{ count() }} times</button>`,
|
|
63
|
+
})
|
|
64
|
+
export class CounterComponent {
|
|
65
|
+
count = signal(0);
|
|
66
|
+
}
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
## Further reading
|
|
70
|
+
- https://angular.dev/overview — platform overview and guides
|
|
71
|
+
- https://angular.dev/tools/cli — Angular CLI reference
|
|
72
|
+
|
|
73
|
+
## Related skills
|
|
74
|
+
- ../react — component UI library
|
|
75
|
+
- ../vue — progressive reactive framework
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: backbone
|
|
3
|
+
description: Backbone.js — a minimalist JavaScript MVC-ish library that gives web apps structure via Models, Collections, Views, Events, and a hash/pushState Router over a RESTful JSON API. Consult when working in a legacy or lightweight Backbone codebase, wiring model change events to view re-renders, syncing models/collections to a REST backend, defining client-side routes, or integrating with Underscore/jQuery and patterns like Marionette.
|
|
4
|
+
domain: stack
|
|
5
|
+
category: frontend
|
|
6
|
+
tags: [backbone, backbonejs, mvc, underscore, jquery, frontend, javascript]
|
|
7
|
+
official_sources:
|
|
8
|
+
- https://backbonejs.org/
|
|
9
|
+
- https://github.com/jashkenas/backbone
|
|
10
|
+
- https://www.npmjs.com/package/backbone
|
|
11
|
+
verified: 2026-06-17
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
# Backbone.js
|
|
15
|
+
|
|
16
|
+
## Overview
|
|
17
|
+
Backbone.js is a small, unopinionated library that adds structure to JavaScript-heavy web apps with key-value-bound Models, ordered Collections, event-driven Views, and a Router, all connecting to an existing API over a RESTful JSON interface. Its only hard dependency is Underscore.js; jQuery (or Zepto) is used for DOM and Ajax. Read this when maintaining or extending a Backbone codebase, debugging model/view event wiring, or syncing data with a REST backend.
|
|
18
|
+
|
|
19
|
+
## Official sources
|
|
20
|
+
- Docs: https://backbonejs.org/
|
|
21
|
+
- Repo: https://github.com/jashkenas/backbone
|
|
22
|
+
- Install: https://www.npmjs.com/package/backbone
|
|
23
|
+
|
|
24
|
+
## Install / setup
|
|
25
|
+
```bash
|
|
26
|
+
npm install backbone underscore jquery
|
|
27
|
+
```
|
|
28
|
+
Backbone's only hard dependency is Underscore.js (>= 1.8.3); jQuery (>= 1.11.0) is needed for `Backbone.View` DOM work and `Backbone.sync` (https://backbonejs.org/#Getting-started). You can also drop in `backbone-min.js` via a script tag from backbonejs.org.
|
|
29
|
+
|
|
30
|
+
## Core concepts
|
|
31
|
+
- **Model** — key-value data with validation, defaults, and `change` events via `get`/`set`.
|
|
32
|
+
- **Collection** — ordered set of models with Underscore enumerable methods and `add`/`remove`/`reset` events.
|
|
33
|
+
- **View** — binds a DOM `el` to model/collection data, declares an `events` hash, and `render`s.
|
|
34
|
+
- **Events** — mixin (`on`/`off`/`trigger`, `listenTo`) usable on any object; foundation of all reactivity.
|
|
35
|
+
- **Router** — maps URL fragments to handlers using hashchange or History `pushState`.
|
|
36
|
+
- **Backbone.sync** — default persistence layer mapping CRUD to RESTful JSON (override for custom backends).
|
|
37
|
+
- **Backbone.history** — singleton started with `Backbone.history.start()` to begin route monitoring.
|
|
38
|
+
- **extend** — class-style inheritance helper (`Backbone.Model.extend({...})`) for all components.
|
|
39
|
+
|
|
40
|
+
## Best practices
|
|
41
|
+
- Use `listenTo`/`stopListening` instead of `on` so views unbind cleanly and avoid leaks (https://backbonejs.org/#Events-listenTo).
|
|
42
|
+
- Keep view-managed DOM scoped to `this.$el` / the `events` hash rather than global selectors (https://backbonejs.org/#View-delegateEvents).
|
|
43
|
+
- Define `model` on Collections and `url`/`urlRoot` so `fetch`/`save` hit the right REST endpoint (https://backbonejs.org/#Collection-url).
|
|
44
|
+
- Implement `validate` and listen for `invalid` to reject bad `set`/`save` calls (https://backbonejs.org/#Model-validate).
|
|
45
|
+
|
|
46
|
+
## Common pitfalls
|
|
47
|
+
- Re-binding handlers with `on` on re-render leaks listeners → use `listenTo` and call `remove()`/`stopListening` on teardown.
|
|
48
|
+
- Routes never fire because `Backbone.history.start()` was not called → start history after routers are constructed.
|
|
49
|
+
- Expecting reactive templates → Backbone does not auto-render; call `render()` from a `change` listener yourself.
|
|
50
|
+
|
|
51
|
+
## Examples
|
|
52
|
+
```javascript
|
|
53
|
+
var Todo = Backbone.Model.extend({ defaults: { done: false } });
|
|
54
|
+
|
|
55
|
+
var TodoView = Backbone.View.extend({
|
|
56
|
+
tagName: 'li',
|
|
57
|
+
events: { 'click .toggle': 'toggle' },
|
|
58
|
+
initialize: function () {
|
|
59
|
+
this.listenTo(this.model, 'change', this.render);
|
|
60
|
+
},
|
|
61
|
+
toggle: function () {
|
|
62
|
+
this.model.set('done', !this.model.get('done'));
|
|
63
|
+
},
|
|
64
|
+
render: function () {
|
|
65
|
+
this.$el.text(this.model.get('title'));
|
|
66
|
+
return this;
|
|
67
|
+
}
|
|
68
|
+
});
|
|
69
|
+
|
|
70
|
+
var view = new TodoView({ model: new Todo({ title: 'Learn Backbone' }) });
|
|
71
|
+
$('#list').append(view.render().el);
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
## Further reading
|
|
75
|
+
- https://backbonejs.org/#FAQ — official FAQ and design rationale
|
|
76
|
+
- https://backbonejs.org/examples/todos/ — the canonical TodoMVC-style example
|
|
77
|
+
- https://marionettejs.com/ — Marionette, a higher-level framework built on Backbone
|
|
78
|
+
|
|
79
|
+
## Related skills
|
|
80
|
+
- ../jquery — DOM/Ajax layer Backbone relies on for views and sync
|
|
81
|
+
- ../react — modern component framework that superseded Backbone-era MVC
|
|
82
|
+
- ../ember — opinionated SPA framework contrast to Backbone's minimalism
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: ember
|
|
3
|
+
description: Ember.js — an opinionated, batteries-included JavaScript framework for ambitious web applications, built around Ember CLI, the Glimmer rendering engine, routing, components, and services. Consult when scaffolding or working in an Ember app, using ember-cli (ember new/serve/generate), writing Glimmer components or templates (.hbs), defining routes/models/controllers/services, wiring Ember Data, or upgrading via the conventional file layout and addon ecosystem.
|
|
4
|
+
domain: stack
|
|
5
|
+
category: frontend
|
|
6
|
+
tags: [ember, emberjs, ember-cli, glimmer, ember-data, frontend, javascript]
|
|
7
|
+
official_sources:
|
|
8
|
+
- https://guides.emberjs.com/release/
|
|
9
|
+
- https://github.com/emberjs/ember.js
|
|
10
|
+
- https://cli.emberjs.com/release/
|
|
11
|
+
verified: 2026-06-17
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
# Ember.js
|
|
15
|
+
|
|
16
|
+
## Overview
|
|
17
|
+
Ember.js is a productive, opinionated frontend framework for building scalable single-page applications, with strong conventions, a powerful router, and a first-class CLI/build pipeline. It bundles routing, components (Glimmer), services, and an optional data layer (Ember Data) so teams share one idiomatic structure. Read this when scaffolding an Ember app, generating routes/components/services, writing Handlebars templates, or upgrading an existing Ember codebase.
|
|
18
|
+
|
|
19
|
+
## Official sources
|
|
20
|
+
- Docs: https://guides.emberjs.com/release/
|
|
21
|
+
- Repo: https://github.com/emberjs/ember.js
|
|
22
|
+
- Install: https://cli.emberjs.com/release/basic-use/
|
|
23
|
+
|
|
24
|
+
## Install / setup
|
|
25
|
+
```bash
|
|
26
|
+
npm install -g ember-cli
|
|
27
|
+
ember new my-app --lang en --strict
|
|
28
|
+
cd my-app
|
|
29
|
+
npm start # dev server at http://localhost:4200 (runs vite dev)
|
|
30
|
+
```
|
|
31
|
+
Commands from the Ember CLI Basic Use guide and the Quick Start (https://cli.emberjs.com/release/basic-use/, https://guides.emberjs.com/release/getting-started/quick-start/).
|
|
32
|
+
|
|
33
|
+
## Core concepts
|
|
34
|
+
- **Router & Routes** — `app/router.js` maps URLs to route handlers that load models and render templates.
|
|
35
|
+
- **Components (Glimmer)** — reusable UI; `.gjs`/`.gts` or paired `.hbs` + backing class; the modern default rendering layer.
|
|
36
|
+
- **Templates** — Handlebars `.hbs` with helpers, modifiers, and `{{outlet}}` for nested routing.
|
|
37
|
+
- **Services** — long-lived singletons (auth, state, API) injected with `@service`.
|
|
38
|
+
- **Ember Data** — store, models, adapters, and serializers for talking to a JSON/REST API.
|
|
39
|
+
- **Ember CLI** — scaffolding/build tool; `ember generate`, `ember serve`, `ember build`, Embroider + Vite build pipeline (Broccoli is the legacy/classic build).
|
|
40
|
+
- **Addons** — npm packages following Ember conventions to extend apps (`ember install <addon>`).
|
|
41
|
+
- **Octane edition** — Glimmer components, native classes, decorators (`@tracked`, `@action`), and template tags as the current idiom.
|
|
42
|
+
|
|
43
|
+
## Best practices
|
|
44
|
+
- Prefer Glimmer components, `@tracked` state, and `@action` over legacy Classic components (https://guides.emberjs.com/release/upgrading/current-edition/).
|
|
45
|
+
- Use `ember generate <blueprint>` to keep files in the conventional layout and tests in sync (https://cli.emberjs.com/release/basic-use/cli-commands/).
|
|
46
|
+
- Put shared, stateful logic in services and inject with `@service` (https://guides.emberjs.com/release/services/).
|
|
47
|
+
- Keep route model hooks for data loading; keep components presentational (https://guides.emberjs.com/release/routing/specifying-a-routes-model/).
|
|
48
|
+
- Adopt Embroider for modern bundling and tree-shaking on new apps (https://github.com/embroider-build/embroider).
|
|
49
|
+
|
|
50
|
+
## Common pitfalls
|
|
51
|
+
- Mutating tracked state in render → derive with getters or update inside `@action` handlers, not during rendering.
|
|
52
|
+
- Forgetting `{{outlet}}` in a parent template → nested routes render nothing; add the outlet.
|
|
53
|
+
- Skipping `ember generate` and hand-creating files → broken resolver lookups; use blueprints so naming/paths match.
|
|
54
|
+
|
|
55
|
+
## Examples
|
|
56
|
+
```javascript
|
|
57
|
+
// app/components/counter.js
|
|
58
|
+
import Component from '@glimmer/component';
|
|
59
|
+
import { tracked } from '@glimmer/tracking';
|
|
60
|
+
import { action } from '@ember/object';
|
|
61
|
+
|
|
62
|
+
export default class CounterComponent extends Component {
|
|
63
|
+
@tracked count = 0;
|
|
64
|
+
|
|
65
|
+
@action increment() {
|
|
66
|
+
this.count += 1;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
```
|
|
70
|
+
```handlebars
|
|
71
|
+
{{! app/components/counter.hbs }}
|
|
72
|
+
<button type="button" {{on "click" this.increment}}>
|
|
73
|
+
Clicked {{this.count}} times
|
|
74
|
+
</button>
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
## Further reading
|
|
78
|
+
- https://guides.emberjs.com/release/tutorial/part-1/ — Super Rentals official tutorial
|
|
79
|
+
- https://api.emberjs.com/ember/release/ — full API reference
|
|
80
|
+
- https://github.com/embroider-build/embroider — next-gen build system
|
|
81
|
+
|
|
82
|
+
## Related skills
|
|
83
|
+
- ../react — component-based SPA alternative with a different rendering model
|
|
84
|
+
- ../vue — progressive framework comparison for SFC/component design
|
|
85
|
+
- ../angular — another opinionated, batteries-included SPA framework
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: htmx
|
|
3
|
+
description: HTML-over-the-wire hypermedia library that adds AJAX, SSE, and swaps via attributes; consult for server-rendered interactivity without SPA JS.
|
|
4
|
+
domain: stack
|
|
5
|
+
category: frontend
|
|
6
|
+
tags: [htmx, hypermedia, ajax, html-over-the-wire, server-rendered]
|
|
7
|
+
official_sources:
|
|
8
|
+
- https://htmx.org/docs/
|
|
9
|
+
- https://github.com/bigskysoftware/htmx
|
|
10
|
+
verified: 2026-06-16
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# htmx
|
|
14
|
+
|
|
15
|
+
## Overview
|
|
16
|
+
htmx is a small dependency-free library that extends HTML with attributes for AJAX, CSS transitions, WebSockets, and Server-Sent Events, letting any element issue requests and swap the returned HTML into the page. It follows the hypermedia (HTML-over-the-wire) approach: the server returns HTML fragments rather than JSON, keeping interactivity logic on the server. Read this when adding dynamic behavior to server-rendered apps without a SPA framework.
|
|
17
|
+
|
|
18
|
+
## Official sources
|
|
19
|
+
- Docs: https://htmx.org/docs/
|
|
20
|
+
- Repo: https://github.com/bigskysoftware/htmx
|
|
21
|
+
- Install / download: https://htmx.org/docs/#installing
|
|
22
|
+
|
|
23
|
+
## Install / setup
|
|
24
|
+
Load via CDN (copied verbatim from htmx.org/docs/#installing):
|
|
25
|
+
|
|
26
|
+
```html
|
|
27
|
+
<script src="https://cdn.jsdelivr.net/npm/htmx.org@2.0.10/dist/htmx.min.js" integrity="sha384-H5SrcfygHmAuTDZphMHqBJLc3FhssKjG7w/CeCpFReSfwBWDTKpkzPP8c+cLsK+V" crossorigin="anonymous"></script>
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
Or install via npm and import in your bundle:
|
|
31
|
+
|
|
32
|
+
```bash
|
|
33
|
+
npm install htmx.org@2.0.10
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
```javascript
|
|
37
|
+
import 'htmx.org';
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
## Core concepts
|
|
41
|
+
- **Hypermedia exchange** — the server responds with HTML fragments that htmx swaps into the DOM.
|
|
42
|
+
- **`hx-get` / `hx-post` (and other verbs)** — issue AJAX requests from any element.
|
|
43
|
+
- **Triggers (`hx-trigger`)** — choose which events fire a request (click, change, load, intervals, etc.).
|
|
44
|
+
- **Targets (`hx-target`) and swaps (`hx-swap`)** — control which element is updated and how (`innerHTML`, `outerHTML`, `beforeend`, …).
|
|
45
|
+
- **`hx-boost`** — progressively enhances normal links/forms into AJAX requests.
|
|
46
|
+
- **Extensions & events** — SSE/WebSocket extensions and a lifecycle event model for hooks.
|
|
47
|
+
|
|
48
|
+
## Best practices
|
|
49
|
+
- Have the server return small HTML partials targeted at the element being swapped.
|
|
50
|
+
- Use `hx-target` and `hx-swap` explicitly so updates land where you intend.
|
|
51
|
+
- Prefer progressive enhancement (`hx-boost`) so pages still work without JS.
|
|
52
|
+
- Pin a specific htmx version (and use the integrity hash / self-host) in production.
|
|
53
|
+
|
|
54
|
+
## Common pitfalls
|
|
55
|
+
- Returning JSON and expecting it to render → htmx swaps HTML; return HTML fragments.
|
|
56
|
+
- Forgetting to re-initialize event handlers for swapped content → rely on htmx attributes or `htmx.process()` rather than one-time JS bindings.
|
|
57
|
+
- Over-broad swap targets clobbering page state → scope `hx-target` to the smallest fragment that needs updating.
|
|
58
|
+
|
|
59
|
+
## Examples
|
|
60
|
+
```html
|
|
61
|
+
<button hx-post="/clicked" hx-target="#result" hx-swap="innerHTML">
|
|
62
|
+
Click me
|
|
63
|
+
</button>
|
|
64
|
+
<div id="result"></div>
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
## Further reading
|
|
68
|
+
- https://htmx.org/docs/ — full documentation
|
|
69
|
+
- https://htmx.org/examples/ — official examples (UX patterns)
|
|
70
|
+
|
|
71
|
+
## Related skills
|
|
72
|
+
- ../alpine — pairs well for client-side sprinkles alongside htmx
|
|
73
|
+
- ../lit — web components for richer client logic
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: lit
|
|
3
|
+
description: Lightweight base library for building fast, standards-based Web Components; consult for LitElement, reactive properties, and html templates.
|
|
4
|
+
domain: stack
|
|
5
|
+
category: frontend
|
|
6
|
+
tags: [lit, web-components, custom-elements, shadow-dom, templates]
|
|
7
|
+
official_sources:
|
|
8
|
+
- https://lit.dev/docs/
|
|
9
|
+
- https://github.com/lit/lit
|
|
10
|
+
verified: 2026-06-16
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# Lit
|
|
14
|
+
|
|
15
|
+
## Overview
|
|
16
|
+
Lit is a small library for building fast, lightweight Web Components on top of native browser standards (Custom Elements, Shadow DOM). Its `LitElement` base class adds reactive properties and efficient declarative templates via tagged template literals, with no heavy framework runtime. Read this when authoring reusable, framework-agnostic components that work in any page or framework.
|
|
17
|
+
|
|
18
|
+
## Official sources
|
|
19
|
+
- Docs: https://lit.dev/docs/
|
|
20
|
+
- Repo: https://github.com/lit/lit
|
|
21
|
+
- Install / download: https://lit.dev/docs/getting-started/
|
|
22
|
+
|
|
23
|
+
## Install / setup
|
|
24
|
+
Install via npm (copied verbatim from lit.dev/docs/getting-started/):
|
|
25
|
+
|
|
26
|
+
```bash
|
|
27
|
+
npm i lit
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
Then import the base class and helpers:
|
|
31
|
+
|
|
32
|
+
```javascript
|
|
33
|
+
import {LitElement, html} from 'lit';
|
|
34
|
+
import {customElement, property} from 'lit/decorators.js';
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
## Core concepts
|
|
38
|
+
- **Web Components** — Lit builds on native Custom Elements and Shadow DOM, so components are portable across frameworks.
|
|
39
|
+
- **`LitElement`** — base class providing the reactive update lifecycle.
|
|
40
|
+
- **Reactive properties** — `@property()`/`@state()` trigger efficient re-renders when they change.
|
|
41
|
+
- **`html` templates** — tagged template literals describe markup; Lit updates only the dynamic parts.
|
|
42
|
+
- **Scoped styles** — `static styles` with the `css` tag are encapsulated via Shadow DOM.
|
|
43
|
+
- **Reactive update lifecycle** — `willUpdate`, `render`, `updated` hooks run around each render.
|
|
44
|
+
|
|
45
|
+
## Best practices
|
|
46
|
+
- Use `@property()` for public attributes/properties and `@state()` for internal reactive state.
|
|
47
|
+
- Define styles with the `css` tagged literal in `static styles` so they're parsed once and shared.
|
|
48
|
+
- Keep `render()` a pure function of reactive properties; perform side effects in `updated()`.
|
|
49
|
+
- For npm projects use the `lit` package, not the CDN bundles, to avoid shipping redundant code.
|
|
50
|
+
|
|
51
|
+
## Common pitfalls
|
|
52
|
+
- Mutating objects/arrays in place without reassigning → Lit detects property changes by identity; assign a new value or call `requestUpdate()`.
|
|
53
|
+
- Forgetting to register the element (`@customElement('x-y')` or `customElements.define`) → the tag won't upgrade.
|
|
54
|
+
- Expecting global CSS to pierce Shadow DOM → style inside the component or use documented theming hooks (CSS custom properties / `::part`).
|
|
55
|
+
|
|
56
|
+
## Examples
|
|
57
|
+
```typescript
|
|
58
|
+
import {LitElement, html} from 'lit';
|
|
59
|
+
import {customElement, state} from 'lit/decorators.js';
|
|
60
|
+
|
|
61
|
+
@customElement('my-counter')
|
|
62
|
+
export class MyCounter extends LitElement {
|
|
63
|
+
@state() count = 0;
|
|
64
|
+
render() {
|
|
65
|
+
return html`<button @click=${() => this.count++}>Clicked ${this.count} times</button>`;
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
## Further reading
|
|
71
|
+
- https://lit.dev/docs/components/overview/ — component authoring guide
|
|
72
|
+
- https://lit.dev/docs/templates/overview/ — templating reference
|
|
73
|
+
|
|
74
|
+
## Related skills
|
|
75
|
+
- ../alpine — declarative behavior in markup
|
|
76
|
+
- ../htmx — hypermedia-driven interactivity
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: preact
|
|
3
|
+
description: Tiny (~4kB) React-compatible UI library with the same modern API; consult for lightweight apps and React-to-Preact aliasing.
|
|
4
|
+
domain: stack
|
|
5
|
+
category: frontend
|
|
6
|
+
tags: [preact, react-alternative, virtual-dom, hooks, lightweight, ui]
|
|
7
|
+
official_sources:
|
|
8
|
+
- https://preactjs.com/guide/v10/getting-started/
|
|
9
|
+
- https://github.com/preactjs/preact
|
|
10
|
+
verified: 2026-06-16
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# Preact
|
|
14
|
+
|
|
15
|
+
## Overview
|
|
16
|
+
Preact is a fast, ~4kB alternative to React with the same modern API (components, virtual DOM, hooks). It targets bundle-size-sensitive projects and can often run existing React code via the `preact/compat` aliasing layer. Read this when you need React-like ergonomics with a tiny footprint or are migrating between React and Preact.
|
|
17
|
+
|
|
18
|
+
## Official sources
|
|
19
|
+
- Docs: https://preactjs.com/guide/v10/getting-started/
|
|
20
|
+
- Repo: https://github.com/preactjs/preact
|
|
21
|
+
- Install / download: https://preactjs.com/guide/v10/getting-started/
|
|
22
|
+
|
|
23
|
+
## Install / setup
|
|
24
|
+
Scaffold a project with the official `create-preact` initializer (copied verbatim from preactjs.com/guide/v10/getting-started/):
|
|
25
|
+
|
|
26
|
+
```bash
|
|
27
|
+
npm init preact
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
To add Preact to an existing build:
|
|
31
|
+
|
|
32
|
+
```bash
|
|
33
|
+
npm install preact
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
## Core concepts
|
|
37
|
+
- **Components & virtual DOM** — same component model and diffing approach as React.
|
|
38
|
+
- **Hooks** — `useState`, `useEffect`, etc. via `preact/hooks`.
|
|
39
|
+
- **JSX / `h`** — JSX compiles to Preact's `h` (hyperscript) factory; configurable per build.
|
|
40
|
+
- **`preact/compat`** — alias layer mapping `react`/`react-dom` to Preact so many React libraries work unchanged.
|
|
41
|
+
- **Signals** — `@preact/signals` offers fine-grained reactive state as an alternative to hooks.
|
|
42
|
+
- **Small footprint** — the runtime is intentionally tiny, reducing load and parse time.
|
|
43
|
+
|
|
44
|
+
## Best practices
|
|
45
|
+
- Import hooks from `preact/hooks` (not from a `react` import) unless using `preact/compat`.
|
|
46
|
+
- Use `preact/compat` aliases in your bundler when consuming React-ecosystem libraries.
|
|
47
|
+
- Consider `@preact/signals` for performant shared state in larger apps.
|
|
48
|
+
- Pin the Preact major version and verify third-party React libs against `compat`.
|
|
49
|
+
|
|
50
|
+
## Common pitfalls
|
|
51
|
+
- Assuming 100% React API parity → some React internals/behaviors differ; test libraries under `compat`.
|
|
52
|
+
- Mixing real `react` and Preact in one bundle without aliasing → configure the bundler alias so only one runtime loads.
|
|
53
|
+
- Forgetting JSX pragma config when not using a preset → set the JSX import source / `h` pragma per the docs.
|
|
54
|
+
|
|
55
|
+
## Examples
|
|
56
|
+
```jsx
|
|
57
|
+
import { render } from 'preact';
|
|
58
|
+
import { useState } from 'preact/hooks';
|
|
59
|
+
|
|
60
|
+
function Counter() {
|
|
61
|
+
const [count, setCount] = useState(0);
|
|
62
|
+
return <button onClick={() => setCount(count + 1)}>Clicked {count} times</button>;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
render(<Counter />, document.getElementById('app'));
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
## Further reading
|
|
69
|
+
- https://preactjs.com/guide/v10/getting-started/ — getting started guide
|
|
70
|
+
- https://preactjs.com/guide/v10/switching-to-preact/ — switching from React via compat
|
|
71
|
+
|
|
72
|
+
## Related skills
|
|
73
|
+
- ../react — the API Preact mirrors
|
|
74
|
+
- ../solidjs — fine-grained reactive alternative
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: qwik
|
|
3
|
+
description: Resumable web framework with instant loading and O(1) hydration via lazy execution; consult for Qwik components and SSR resumability.
|
|
4
|
+
domain: stack
|
|
5
|
+
category: frontend
|
|
6
|
+
tags: [qwik, resumability, hydration, ssr, lazy-loading, ui]
|
|
7
|
+
official_sources:
|
|
8
|
+
- https://qwik.dev/docs/
|
|
9
|
+
- https://github.com/QwikDev/qwik
|
|
10
|
+
verified: 2026-06-16
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# Qwik
|
|
14
|
+
|
|
15
|
+
## Overview
|
|
16
|
+
Qwik is a JavaScript framework focused on instant-loading web apps through **resumability**: instead of replaying app setup on the client (hydration), it serializes server state into HTML and resumes execution on demand. This makes initial JS execution effectively O(1) regardless of app size. Read this when building Qwik components, optimizing time-to-interactive, or using QwikCity for routing/SSR.
|
|
17
|
+
|
|
18
|
+
## Official sources
|
|
19
|
+
- Docs: https://qwik.dev/docs/
|
|
20
|
+
- Repo: https://github.com/QwikDev/qwik
|
|
21
|
+
- Install / download: https://qwik.dev/docs/getting-started/
|
|
22
|
+
|
|
23
|
+
## Install / setup
|
|
24
|
+
Create a project with the official CLI (copied verbatim from qwik.dev/docs/getting-started/):
|
|
25
|
+
|
|
26
|
+
```bash
|
|
27
|
+
npm create qwik@latest
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
## Core concepts
|
|
31
|
+
- **Resumability** — the app resumes from serialized server state instead of re-running setup (hydration) on the client.
|
|
32
|
+
- **The `$` boundary** — `$()` and suffixed APIs (e.g. `onClick$`) mark lazy-loadable, serializable code the optimizer can split.
|
|
33
|
+
- **Components** — `component$()` defines components whose handlers load only when needed.
|
|
34
|
+
- **Reactive state** — `useSignal()` and `useStore()` hold reactive state across server and client.
|
|
35
|
+
- **The Optimizer** — Qwik's build step splits code at `$` boundaries into fine-grained lazy chunks.
|
|
36
|
+
- **QwikCity** — the meta-framework for routing, layouts, and data loading/actions.
|
|
37
|
+
|
|
38
|
+
## Best practices
|
|
39
|
+
- Wrap event handlers and lazy logic in `$` (e.g. `onClick$`) so the optimizer can defer them.
|
|
40
|
+
- Use `useSignal`/`useStore` for state so values serialize and resume correctly.
|
|
41
|
+
- Keep captured closures serializable; avoid referencing non-serializable values across `$` boundaries.
|
|
42
|
+
- Use QwikCity `routeLoader$`/`routeAction$` for data instead of ad-hoc client fetching.
|
|
43
|
+
|
|
44
|
+
## Common pitfalls
|
|
45
|
+
- Capturing non-serializable values (DOM nodes, class instances) inside `$` closures → keep captured state serializable.
|
|
46
|
+
- Treating Qwik like React (eager hydration mindset) → handlers and components are loaded lazily on interaction.
|
|
47
|
+
- Forgetting the `$` suffix on handlers → the optimizer can't lazy-split, hurting the resumability benefit.
|
|
48
|
+
|
|
49
|
+
## Examples
|
|
50
|
+
```tsx
|
|
51
|
+
import { component$, useSignal } from '@builder.io/qwik';
|
|
52
|
+
|
|
53
|
+
export const Counter = component$(() => {
|
|
54
|
+
const count = useSignal(0);
|
|
55
|
+
return <button onClick$={() => count.value++}>Clicked {count.value} times</button>;
|
|
56
|
+
});
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
## Further reading
|
|
60
|
+
- https://qwik.dev/docs/getting-started/ — getting started
|
|
61
|
+
- https://qwik.dev/docs/concepts/resumable/ — resumability concept
|
|
62
|
+
|
|
63
|
+
## Related skills
|
|
64
|
+
- ../react — JSX component library (eager hydration model)
|
|
65
|
+
- ../solidjs — fine-grained reactive library
|