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,67 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: remix
|
|
3
|
+
description: React meta-framework built on web fundamentals (nested routes, loaders/actions); note v2's successor is React Router v7. Consult for Remix apps.
|
|
4
|
+
domain: stack
|
|
5
|
+
category: meta
|
|
6
|
+
tags: [react, ssr, web-standards, loaders, react-router]
|
|
7
|
+
official_sources:
|
|
8
|
+
- https://remix.run/docs
|
|
9
|
+
- https://github.com/remix-run/remix
|
|
10
|
+
verified: 2026-06-16
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# Remix
|
|
14
|
+
|
|
15
|
+
## Overview
|
|
16
|
+
Remix is a React framework, by the remix-run team, focused on web standards (the Fetch API, forms, HTTP caching) and progressive enhancement, using nested routes with server `loader`/`action` functions for data flow. Read this when working on a Remix codebase or deciding between Remix and its successor. Important: the official v2 docs state that "the latest version of Remix is now React Router v7"; the `remix-run/remix` repo currently hosts Remix 3 (in beta as of mid-2026). Confirm which line a project targets before relying on version-specific details.
|
|
17
|
+
|
|
18
|
+
## Official sources
|
|
19
|
+
- Docs (v2): https://remix.run/docs
|
|
20
|
+
- Repo: https://github.com/remix-run/remix
|
|
21
|
+
- Install / quickstart (v2): https://remix.run/docs/en/main/start/quickstart
|
|
22
|
+
|
|
23
|
+
## Install / setup
|
|
24
|
+
```bash
|
|
25
|
+
npx create-remix@latest
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
## Core concepts
|
|
29
|
+
- **Nested routes.** The route hierarchy maps to nested UI; parent routes render layout around child route outlets, and each route can own its own data and error boundary.
|
|
30
|
+
- **Loaders.** A route's `loader` runs on the server to provide data for that route on GET requests; the component reads it via `useLoaderData`.
|
|
31
|
+
- **Actions.** A route's `action` runs on the server to handle mutations (typically form POSTs), pairing with HTML `<Form>` for progressive enhancement.
|
|
32
|
+
- **Web standards first.** Remix builds on the Fetch `Request`/`Response`, forms, and HTTP semantics rather than bespoke abstractions.
|
|
33
|
+
- **Server rendering + progressive enhancement.** Pages render on the server and work before/without client JS, then enhance once hydrated.
|
|
34
|
+
|
|
35
|
+
## Best practices
|
|
36
|
+
- **Decide your framework line first.** Per the official docs, new projects should generally adopt React Router v7 (Remix v2's successor); use the v2 docs only when maintaining an existing v2 app.
|
|
37
|
+
- Co-locate **`loader`/`action`/component** in the route module so data and UI for a route live together.
|
|
38
|
+
- Use Remix's **`<Form>`** and actions for mutations to get progressive enhancement and proper revalidation rather than manual client fetch wiring.
|
|
39
|
+
- Lean on **web-standard `Request`/`Response`** objects in loaders/actions instead of framework-specific request shims.
|
|
40
|
+
|
|
41
|
+
## Common pitfalls
|
|
42
|
+
- Starting a brand-new project on Remix v2 without realizing it has moved to React Router v7 → check the official banner/docs and choose the current line deliberately.
|
|
43
|
+
- Putting data-loading logic in client effects → move it to the route `loader` so it runs on the server with SSR and revalidation.
|
|
44
|
+
- Confusing `remix-run/remix` (now Remix 3 beta) with the v2/React Router v7 lineage → verify the exact package and version a repo depends on.
|
|
45
|
+
|
|
46
|
+
## Examples
|
|
47
|
+
```tsx
|
|
48
|
+
// app/routes/_index.tsx
|
|
49
|
+
import { useLoaderData } from "@remix-run/react";
|
|
50
|
+
|
|
51
|
+
export async function loader() {
|
|
52
|
+
return { message: "Hello from the server" };
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
export default function Index() {
|
|
56
|
+
const { message } = useLoaderData<typeof loader>();
|
|
57
|
+
return <h1>{message}</h1>;
|
|
58
|
+
}
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
## Further reading
|
|
62
|
+
- React Router v7 (Remix's successor): https://reactrouter.com/
|
|
63
|
+
- Remix 3 (beta) repo README: https://github.com/remix-run/remix
|
|
64
|
+
|
|
65
|
+
## Related skills
|
|
66
|
+
- ../nextjs — alternative React meta-framework
|
|
67
|
+
- ../vite — Remix v2 uses Vite for its dev/build pipeline
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: sveltekit
|
|
3
|
+
description: Svelte meta-framework — file routing, SSR/SSG/SPA, load functions, form actions, deploy adapters; consult when building or debugging a SvelteKit app.
|
|
4
|
+
domain: stack
|
|
5
|
+
category: meta
|
|
6
|
+
tags: [svelte, ssr, file-routing, adapters, vite]
|
|
7
|
+
official_sources:
|
|
8
|
+
- https://svelte.dev/docs/kit
|
|
9
|
+
- https://github.com/sveltejs/kit
|
|
10
|
+
verified: 2026-06-16
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# SvelteKit
|
|
14
|
+
|
|
15
|
+
## Overview
|
|
16
|
+
SvelteKit is the official application framework for Svelte (maintained by sveltejs), with the tagline "Web development, streamlined." It provides file-system routing, server-side rendering, data-loading and form-action conventions, and deployment adapters, built on top of Vite. Read this when scaffolding a SvelteKit app or reasoning about routing, load functions, or deployment targets.
|
|
17
|
+
|
|
18
|
+
## Official sources
|
|
19
|
+
- Docs: https://svelte.dev/docs/kit
|
|
20
|
+
- Repo: https://github.com/sveltejs/kit
|
|
21
|
+
- Install / create a project: https://svelte.dev/docs/kit/creating-a-project
|
|
22
|
+
|
|
23
|
+
## Install / setup
|
|
24
|
+
```bash
|
|
25
|
+
npx sv create my-app
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
## Core concepts
|
|
29
|
+
- **File-system routing.** Routes live under `src/routes`; `+page.svelte`, `+layout.svelte`, `+page.server.ts`, and `+server.ts` files define pages, layouts, server logic, and endpoints by convention.
|
|
30
|
+
- **Load functions.** `load` functions (in `+page.js`/`+page.server.js` and layout equivalents) fetch data for a route; server `load` runs only on the server.
|
|
31
|
+
- **Form actions.** Server `actions` handle form submissions with progressive enhancement.
|
|
32
|
+
- **Rendering modes.** Routes can be server-rendered, prerendered (SSG), or run as an SPA, configurable per route.
|
|
33
|
+
- **Adapters.** Deployment adapters target platforms such as Node, static hosting, Cloudflare, Netlify, and Vercel.
|
|
34
|
+
- **Built on Vite.** The dev server and build pipeline use Vite, giving fast HMR and the Vite plugin ecosystem.
|
|
35
|
+
|
|
36
|
+
## Best practices
|
|
37
|
+
- Use the official **`sv create`** scaffolder to start a project, then `npm run dev` — this is the path the docs recommend.
|
|
38
|
+
- Put server-only/data-fetching logic in **`load` functions** (server variants for secrets/DB access) rather than in components.
|
|
39
|
+
- Use **form actions** with `<form>` for mutations to get progressive enhancement instead of hand-written client fetches.
|
|
40
|
+
- Choose the **adapter** that matches your deployment target so the build output fits the platform.
|
|
41
|
+
|
|
42
|
+
## Common pitfalls
|
|
43
|
+
- Importing server-only code (secrets, DB clients) into universal modules → keep it in `*.server.*` files / server `load` so it never ships to the client.
|
|
44
|
+
- Expecting browser APIs to exist during SSR → guard with the `browser` check from `$app/environment` or run them in lifecycle hooks.
|
|
45
|
+
- Forgetting to install/configure an adapter for your host → add the matching deployment adapter before building for production.
|
|
46
|
+
|
|
47
|
+
## Examples
|
|
48
|
+
```svelte
|
|
49
|
+
<!-- src/routes/+page.svelte -->
|
|
50
|
+
<script>
|
|
51
|
+
export let data;
|
|
52
|
+
</script>
|
|
53
|
+
|
|
54
|
+
<h1>{data.message}</h1>
|
|
55
|
+
```
|
|
56
|
+
```js
|
|
57
|
+
// src/routes/+page.server.js
|
|
58
|
+
export function load() {
|
|
59
|
+
return { message: 'Hello from the server' };
|
|
60
|
+
}
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
## Further reading
|
|
64
|
+
- Introduction: https://svelte.dev/docs/kit/introduction
|
|
65
|
+
- Adapters: https://svelte.dev/docs/kit/adapters
|
|
66
|
+
|
|
67
|
+
## Related skills
|
|
68
|
+
- ../nuxt — Vue meta-framework with a comparable model
|
|
69
|
+
- ../astro — content-focused framework that also supports Svelte islands
|
|
70
|
+
- ../vite — the build tool SvelteKit is built on
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: vite
|
|
3
|
+
description: Fast frontend build tool and dev server — native-ESM dev with instant HMR, optimized production builds; consult when scaffolding or configuring SPAs.
|
|
4
|
+
domain: stack
|
|
5
|
+
category: meta
|
|
6
|
+
tags: [build-tool, dev-server, esm, hmr, bundler]
|
|
7
|
+
official_sources:
|
|
8
|
+
- https://vite.dev/guide/
|
|
9
|
+
- https://github.com/vitejs/vite
|
|
10
|
+
verified: 2026-06-16
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# Vite
|
|
14
|
+
|
|
15
|
+
## Overview
|
|
16
|
+
Vite (by vitejs) is "next generation frontend tooling" — a build tool with two parts: a dev server that serves source over native ES modules with extremely fast Hot Module Replacement, and a production build command that bundles optimized static assets. It is framework-agnostic (templates for vanilla, React, Vue, Svelte, and more) and is the build layer under many meta-frameworks. Read this when scaffolding a single-page app or configuring builds, plugins, or the dev server.
|
|
17
|
+
|
|
18
|
+
## Official sources
|
|
19
|
+
- Docs / guide: https://vite.dev/guide/
|
|
20
|
+
- Repo: https://github.com/vitejs/vite
|
|
21
|
+
- Install / scaffolding: https://vite.dev/guide/#scaffolding-your-first-vite-project
|
|
22
|
+
|
|
23
|
+
## Install / setup
|
|
24
|
+
```bash
|
|
25
|
+
npm create vite@latest
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
## Core concepts
|
|
29
|
+
- **Native-ESM dev server.** In development Vite serves source files as native ES modules, so it does not bundle the whole app up front, enabling fast startup.
|
|
30
|
+
- **Hot Module Replacement (HMR).** Edits update modules in place quickly without a full reload.
|
|
31
|
+
- **Production build.** `vite build` produces optimized, bundled static assets (Vite uses Rolldown to bundle for production).
|
|
32
|
+
- **Framework-agnostic templates.** Scaffolding offers templates for vanilla, React, Vue, Svelte, Solid, and others.
|
|
33
|
+
- **Plugin API + JS API.** A typed Plugin API and programmatic JavaScript API let you extend and embed Vite.
|
|
34
|
+
- **Dependency pre-bundling.** Vite pre-bundles dependencies to convert them to ESM and speed up dev page loads.
|
|
35
|
+
|
|
36
|
+
## Best practices
|
|
37
|
+
- Scaffold with **`npm create vite@latest`** and pick a template, as the official guide shows.
|
|
38
|
+
- Run a supported **Node.js version (20.19+ or 22.12+)** per the docs; upgrade if a template warns it needs higher.
|
|
39
|
+
- Use the **`public/`** folder for assets served as-is and `import` other assets so Vite can hash/optimize them.
|
|
40
|
+
- Extend behavior through the **Plugin API** rather than patching the build manually.
|
|
41
|
+
|
|
42
|
+
## Common pitfalls
|
|
43
|
+
- Running on an unsupported Node.js version → install Node 20.19+/22.12+ (some templates require higher) as the docs state.
|
|
44
|
+
- Expecting the dev server's unbundled behavior to mirror the production bundle exactly → test the output of `vite build` / `vite preview` before deploying.
|
|
45
|
+
- Referencing static assets by a guessed path instead of importing them or placing them in `public/` → use imports or `public/` so paths resolve after build.
|
|
46
|
+
|
|
47
|
+
## Examples
|
|
48
|
+
```bash
|
|
49
|
+
# Scaffold, then run the dev server
|
|
50
|
+
npm create vite@latest my-app
|
|
51
|
+
cd my-app
|
|
52
|
+
npm install
|
|
53
|
+
npm run dev
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
## Further reading
|
|
57
|
+
- Features: https://vite.dev/guide/features
|
|
58
|
+
- Plugin API: https://vite.dev/guide/api-plugin
|
|
59
|
+
|
|
60
|
+
## Related skills
|
|
61
|
+
- ../sveltekit — meta-framework built on Vite
|
|
62
|
+
- ../nextjs — React meta-framework (uses its own bundler, Turbopack)
|
|
63
|
+
- ../astro — content framework built on Vite tooling
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: android
|
|
3
|
+
description: Native Android app development with Kotlin, Jetpack Compose, and Android Studio/Gradle; consult when building native Android apps, working with activities, the lifecycle, Jetpack libraries, Gradle builds, or publishing to Google Play.
|
|
4
|
+
domain: stack
|
|
5
|
+
category: mobile
|
|
6
|
+
tags: [android, kotlin, jetpack-compose, android-studio, gradle, mobile]
|
|
7
|
+
official_sources:
|
|
8
|
+
- https://developer.android.com/develop
|
|
9
|
+
- https://github.com/android
|
|
10
|
+
- https://developer.android.com/studio
|
|
11
|
+
verified: 2026-06-17
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
# Android (native)
|
|
15
|
+
|
|
16
|
+
## Overview
|
|
17
|
+
Native Android development builds apps that run directly on the Android OS, written primarily in Kotlin (or Java) using the Android SDK, Jetpack libraries, and Jetpack Compose for UI, built with Gradle in Android Studio. Read this when creating a native Android app, working with activities and the lifecycle, adopting Compose, configuring Gradle, or preparing a release for Google Play.
|
|
18
|
+
|
|
19
|
+
## Official sources
|
|
20
|
+
- Docs: https://developer.android.com/develop
|
|
21
|
+
- Repo: https://github.com/android
|
|
22
|
+
- Install: https://developer.android.com/studio
|
|
23
|
+
|
|
24
|
+
## Install / setup
|
|
25
|
+
```bash
|
|
26
|
+
# Install Android Studio from developer.android.com/studio, then create a project:
|
|
27
|
+
# File > New > New Project > "Empty Activity" (Compose), or via Gradle wrapper:
|
|
28
|
+
./gradlew assembleDebug
|
|
29
|
+
```
|
|
30
|
+
Android Studio is the official IDE and SDK manager (https://developer.android.com/studio); new projects are created through its New Project wizard and built with the Gradle wrapper.
|
|
31
|
+
|
|
32
|
+
## Core concepts
|
|
33
|
+
- **Activity & lifecycle** — an `Activity` is an entry point/screen with `onCreate`/`onStart`/`onResume`/`onPause`/etc. callbacks.
|
|
34
|
+
- **Jetpack Compose** — modern declarative UI toolkit using `@Composable` functions and state; the recommended way to build UI.
|
|
35
|
+
- **Jetpack libraries** — AndroidX components: ViewModel, Lifecycle, Room, Navigation, WorkManager, DataStore.
|
|
36
|
+
- **Gradle build system** — `build.gradle(.kts)` defines dependencies, SDK levels, and product flavors.
|
|
37
|
+
- **Manifest** — `AndroidManifest.xml` declares components, permissions, and `minSdk`/`targetSdk`.
|
|
38
|
+
- **Intents** — messages to start activities/services or pass data between components.
|
|
39
|
+
- **Resources & R class** — strings, layouts, drawables in `res/`, referenced via generated `R`.
|
|
40
|
+
|
|
41
|
+
## Best practices
|
|
42
|
+
- Use Kotlin and Jetpack Compose for new UI (https://developer.android.com/courses/android-basics-compose/course).
|
|
43
|
+
- Follow recommended app architecture: UI layer + ViewModel + data layer with unidirectional data flow (https://developer.android.com/topic/architecture).
|
|
44
|
+
- Keep work off the main thread with coroutines/Flow (https://developer.android.com/kotlin/coroutines).
|
|
45
|
+
- Target the latest stable `targetSdk` and test on multiple API levels (https://developer.android.com/google/play/requirements/target-sdk).
|
|
46
|
+
|
|
47
|
+
## Common pitfalls
|
|
48
|
+
- Blocking the main thread with network/disk work → causes ANRs; use coroutines or WorkManager.
|
|
49
|
+
- Leaking `Context`/`Activity` across config changes → hold state in `ViewModel`, not the Activity.
|
|
50
|
+
- Hardcoding strings/dimensions → use `res/values` resources for localization and theming.
|
|
51
|
+
|
|
52
|
+
## Examples
|
|
53
|
+
```kotlin
|
|
54
|
+
class MainActivity : ComponentActivity() {
|
|
55
|
+
override fun onCreate(savedInstanceState: Bundle?) {
|
|
56
|
+
super.onCreate(savedInstanceState)
|
|
57
|
+
setContent {
|
|
58
|
+
MaterialTheme { Greeting("Android") }
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
@Composable
|
|
64
|
+
fun Greeting(name: String) {
|
|
65
|
+
Text(text = "Hello, $name!")
|
|
66
|
+
}
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
## Further reading
|
|
70
|
+
- https://developer.android.com/jetpack/compose — Jetpack Compose UI
|
|
71
|
+
- https://developer.android.com/topic/architecture — recommended app architecture
|
|
72
|
+
- https://kotlinlang.org/docs/android-overview.html — Kotlin for Android
|
|
73
|
+
|
|
74
|
+
## Related skills
|
|
75
|
+
- ../flutter — cross-platform toolkit that compiles to native Android
|
|
76
|
+
- ../react-native — cross-platform mobile framework targeting Android
|
|
77
|
+
- ../nativescript — native Android APIs from JavaScript
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: flutter
|
|
3
|
+
description: Flutter is Google's UI toolkit for building natively compiled iOS, Android, web, and desktop apps from a single Dart codebase; consult when scaffolding with flutter create, building widget trees, managing state, or debugging hot reload, pub packages, and platform builds.
|
|
4
|
+
domain: stack
|
|
5
|
+
category: mobile
|
|
6
|
+
tags: [flutter, dart, mobile, ios, android, cross-platform, widgets]
|
|
7
|
+
official_sources:
|
|
8
|
+
- https://docs.flutter.dev/
|
|
9
|
+
- https://github.com/flutter/flutter
|
|
10
|
+
- https://docs.flutter.dev/install
|
|
11
|
+
verified: 2026-06-17
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
# Flutter
|
|
15
|
+
|
|
16
|
+
## Overview
|
|
17
|
+
Flutter is an open-source UI framework from Google for building natively compiled applications for mobile, web, and desktop from a single Dart codebase. It renders its own widgets via the Impeller/Skia engine rather than wrapping native controls, giving consistent UI across platforms. Read this when creating a Flutter app, composing widget trees, choosing a state-management approach, or debugging hot reload and `pub` dependencies.
|
|
18
|
+
|
|
19
|
+
## Official sources
|
|
20
|
+
- Docs: https://docs.flutter.dev/
|
|
21
|
+
- Repo: https://github.com/flutter/flutter
|
|
22
|
+
- Install: https://docs.flutter.dev/install
|
|
23
|
+
|
|
24
|
+
## Install / setup
|
|
25
|
+
```bash
|
|
26
|
+
flutter create my_app
|
|
27
|
+
cd my_app
|
|
28
|
+
flutter run
|
|
29
|
+
```
|
|
30
|
+
From the official "Create a new Flutter app" reference at https://docs.flutter.dev/reference/create-new-app (install the SDK first per https://docs.flutter.dev/install).
|
|
31
|
+
|
|
32
|
+
## Core concepts
|
|
33
|
+
- **Everything is a widget** — UI is a tree of immutable widgets (layout, styling, and structure are all widgets).
|
|
34
|
+
- **Stateless vs Stateful** — `StatelessWidget` for static UI; `StatefulWidget` + `State` for mutable, re-rendering UI.
|
|
35
|
+
- **Hot reload** — inject changed source into the running Dart VM without losing app state.
|
|
36
|
+
- **BuildContext & build()** — `build()` describes UI from current config/state; `setState()` triggers rebuilds.
|
|
37
|
+
- **pubspec.yaml** — declares dependencies and assets; resolved with `flutter pub get`.
|
|
38
|
+
- **Material & Cupertino** — first-party widget libraries for Android-style and iOS-style design.
|
|
39
|
+
- **Dart** — typed, AOT-compiled language; sound null safety is standard.
|
|
40
|
+
|
|
41
|
+
## Best practices
|
|
42
|
+
- Prefer composition over deep inheritance; build small, reusable widgets (https://docs.flutter.dev/perf/best-practices).
|
|
43
|
+
- Use `const` constructors to let Flutter skip rebuilds of unchanged subtrees (https://docs.flutter.dev/perf/best-practices).
|
|
44
|
+
- Pick a state-management approach deliberately (Provider/Riverpod/Bloc) (https://docs.flutter.dev/data-and-backend/state-mgmt/options).
|
|
45
|
+
- Run `flutter analyze` and `flutter test` in CI; follow Effective Dart (https://dart.dev/effective-dart).
|
|
46
|
+
|
|
47
|
+
## Common pitfalls
|
|
48
|
+
- Doing expensive work in `build()` → it can run every frame; cache results or hoist out of `build`.
|
|
49
|
+
- Calling `setState()` after dispose or off the widget's `State` → guard with `mounted` checks.
|
|
50
|
+
- Forgetting `flutter pub get` after editing `pubspec.yaml` → run it (IDEs often do this automatically).
|
|
51
|
+
|
|
52
|
+
## Examples
|
|
53
|
+
```dart
|
|
54
|
+
import 'package:flutter/material.dart';
|
|
55
|
+
|
|
56
|
+
void main() => runApp(const MyApp());
|
|
57
|
+
|
|
58
|
+
class MyApp extends StatelessWidget {
|
|
59
|
+
const MyApp({super.key});
|
|
60
|
+
@override
|
|
61
|
+
Widget build(BuildContext context) => const MaterialApp(
|
|
62
|
+
home: Scaffold(
|
|
63
|
+
body: Center(child: Text('Hello from Flutter')),
|
|
64
|
+
),
|
|
65
|
+
);
|
|
66
|
+
}
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
## Further reading
|
|
70
|
+
- https://docs.flutter.dev/ui/widgets — widget catalog
|
|
71
|
+
- https://dart.dev/guides — the Dart language
|
|
72
|
+
- https://pub.dev/ — package registry for Flutter and Dart
|
|
73
|
+
|
|
74
|
+
## Related skills
|
|
75
|
+
- ../react-native — alternative cross-platform mobile framework (JS/React)
|
|
76
|
+
- ../android — underlying native Android platform Flutter targets
|
|
77
|
+
- ../ionic — web-tech cross-platform mobile alternative
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: ionic
|
|
3
|
+
description: Ionic is an open-source UI toolkit for building cross-platform mobile, desktop, and web apps from one web codebase (Angular, React, or Vue) running natively via Capacitor; consult when scaffolding with ionic start, using Ionic UI components, or wiring native device features.
|
|
4
|
+
domain: stack
|
|
5
|
+
category: mobile
|
|
6
|
+
tags: [ionic, capacitor, angular, react, vue, mobile, web]
|
|
7
|
+
official_sources:
|
|
8
|
+
- https://ionicframework.com/docs
|
|
9
|
+
- https://github.com/ionic-team/ionic-framework
|
|
10
|
+
- https://ionicframework.com/docs/intro/cli
|
|
11
|
+
verified: 2026-06-17
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
# Ionic
|
|
15
|
+
|
|
16
|
+
## Overview
|
|
17
|
+
Ionic is an open-source UI toolkit for building cross-platform apps for mobile, desktop, and web from a single web-technology codebase, integrating with Angular, React, or Vue. UI is composed of framework-agnostic web components; native packaging and device APIs come from Capacitor. Read this when scaffolding an Ionic app, using its component library, theming, or bridging to native features.
|
|
18
|
+
|
|
19
|
+
## Official sources
|
|
20
|
+
- Docs: https://ionicframework.com/docs
|
|
21
|
+
- Repo: https://github.com/ionic-team/ionic-framework
|
|
22
|
+
- Install: https://ionicframework.com/docs/intro/cli
|
|
23
|
+
|
|
24
|
+
## Install / setup
|
|
25
|
+
```bash
|
|
26
|
+
npm install -g @ionic/cli
|
|
27
|
+
ionic start myApp tabs --type=angular --capacitor
|
|
28
|
+
cd myApp
|
|
29
|
+
ionic serve
|
|
30
|
+
```
|
|
31
|
+
Install command from https://ionicframework.com/docs/intro/cli; `ionic start` usage from https://ionicframework.com/docs/cli/commands/start (swap `--type=react` or `--type=vue` as needed).
|
|
32
|
+
|
|
33
|
+
## Core concepts
|
|
34
|
+
- **Web components** — `<ion-button>`, `<ion-list>`, etc., are framework-agnostic components usable from Angular/React/Vue.
|
|
35
|
+
- **Capacitor** — the native runtime that packages the web app as iOS/Android and exposes device plugins (Camera, Filesystem, etc.).
|
|
36
|
+
- **Adaptive (mode) styling** — components adapt to `ios` or `md` (Material) mode for platform-appropriate look and feel.
|
|
37
|
+
- **Routing & navigation** — uses the host framework's router (Angular Router, React Router, Vue Router) plus `ion-router-outlet`.
|
|
38
|
+
- **CSS variables / theming** — customize via CSS custom properties and the global theme.
|
|
39
|
+
- **ionic CLI** — `start`, `serve`, `build`, `generate`, and `capacitor` subcommands.
|
|
40
|
+
|
|
41
|
+
## Best practices
|
|
42
|
+
- Use Capacitor (default for new apps) over legacy Cordova for native builds (https://ionicframework.com/docs/developing/starting).
|
|
43
|
+
- Choose the framework integration matching your team (Angular/React/Vue) at `ionic start` time (https://ionicframework.com/docs/cli/commands/start).
|
|
44
|
+
- Theme with CSS variables rather than overriding component internals (https://ionicframework.com/docs/theming/basics).
|
|
45
|
+
- Lazy-load routes/pages to keep startup fast on devices (https://ionicframework.com/docs/angular/navigation).
|
|
46
|
+
|
|
47
|
+
## Common pitfalls
|
|
48
|
+
- Forgetting `npx cap sync` after installing native plugins → native projects miss the changes.
|
|
49
|
+
- Heavy DOM/animation work on low-end devices → it's still a WebView; profile and virtualize long lists with your framework's virtual-scroll solution (Angular CDK, react-window, vue-virtual-scroller).
|
|
50
|
+
- Mixing Cordova and Capacitor plugin assumptions → prefer Capacitor-native plugins.
|
|
51
|
+
|
|
52
|
+
## Examples
|
|
53
|
+
```html
|
|
54
|
+
<ion-header>
|
|
55
|
+
<ion-toolbar>
|
|
56
|
+
<ion-title>Home</ion-title>
|
|
57
|
+
</ion-toolbar>
|
|
58
|
+
</ion-header>
|
|
59
|
+
<ion-content class="ion-padding">
|
|
60
|
+
<ion-button expand="block">Tap me</ion-button>
|
|
61
|
+
</ion-content>
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
## Further reading
|
|
65
|
+
- https://ionicframework.com/docs/components — UI component reference
|
|
66
|
+
- https://capacitorjs.com/docs — Capacitor native runtime and plugins
|
|
67
|
+
- https://ionicframework.com/docs/theming/basics — theming with CSS variables
|
|
68
|
+
|
|
69
|
+
## Related skills
|
|
70
|
+
- ../react-native — alternative cross-platform mobile framework
|
|
71
|
+
- ../nativescript — JS-to-native UI without a WebView
|
|
72
|
+
- ../flutter — native-rendered cross-platform UI toolkit
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: nativescript
|
|
3
|
+
description: NativeScript is an open-source framework for building truly native iOS and Android apps from JavaScript/TypeScript with direct access to native APIs (no WebView), usable plain or with Angular, Vue, React, Svelte, or SolidJS; consult when scaffolding with ns create or calling native platform APIs.
|
|
4
|
+
domain: stack
|
|
5
|
+
category: mobile
|
|
6
|
+
tags: [nativescript, typescript, javascript, mobile, ios, android, native]
|
|
7
|
+
official_sources:
|
|
8
|
+
- https://docs.nativescript.org/
|
|
9
|
+
- https://github.com/NativeScript/NativeScript
|
|
10
|
+
- https://docs.nativescript.org/setup/
|
|
11
|
+
verified: 2026-06-17
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
# NativeScript
|
|
15
|
+
|
|
16
|
+
## Overview
|
|
17
|
+
NativeScript is an open-source framework for building truly native iOS and Android apps using JavaScript or TypeScript, rendering native UI components (not a WebView) and giving direct, synchronous access to native platform APIs. It works standalone or with Angular, Vue, React, Svelte, or SolidJS flavors. Read this when scaffolding a NativeScript app, calling iOS/Android APIs directly from JS, or wiring native UI.
|
|
18
|
+
|
|
19
|
+
## Official sources
|
|
20
|
+
- Docs: https://docs.nativescript.org/
|
|
21
|
+
- Repo: https://github.com/NativeScript/NativeScript
|
|
22
|
+
- Install: https://docs.nativescript.org/setup/
|
|
23
|
+
|
|
24
|
+
## Install / setup
|
|
25
|
+
```bash
|
|
26
|
+
npm install -g nativescript
|
|
27
|
+
ns create myCoolApp --template @nativescript/template-blank
|
|
28
|
+
cd myCoolApp
|
|
29
|
+
ns run android # or: ns run ios
|
|
30
|
+
```
|
|
31
|
+
Install command from https://docs.nativescript.org/setup/windows; `ns create` template usage from https://docs.nativescript.org/guide/creating-a-project.
|
|
32
|
+
|
|
33
|
+
## Core concepts
|
|
34
|
+
- **Direct native API access** — call iOS (Objective-C/Swift) and Android (Java/Kotlin) APIs straight from JS via generated bindings.
|
|
35
|
+
- **Native UI elements** — XML/markup maps to real native views (`<Label>`, `<Button>`, `<ListView>`), no DOM/WebView.
|
|
36
|
+
- **Flavors** — author in plain JS/TS or with Angular, Vue, React, Svelte, or SolidJS bindings.
|
|
37
|
+
- **ns CLI** — `create`, `run`, `build`, `debug`, `preview`, and `plugin` subcommands.
|
|
38
|
+
- **Plugins** — npm packages wrapping native SDKs; installed with `ns plugin add`.
|
|
39
|
+
- **Webpack & HMR** — bundled with webpack; hot module replacement during `ns run`.
|
|
40
|
+
|
|
41
|
+
## Best practices
|
|
42
|
+
- Pick a flavor that matches your team and scaffold with the right template (`--ng`, `--vue`, `--react`, etc.) (https://docs.nativescript.org/guide/creating-a-project).
|
|
43
|
+
- Verify your toolchain with `ns doctor` before building (https://docs.nativescript.org/setup/).
|
|
44
|
+
- Prefer maintained `@nativescript/*` plugins for native features (https://docs.nativescript.org/guide/development-workflow/using-packages).
|
|
45
|
+
- Use TypeScript for type-safe access to native API typings; generate them with `ns typings ios`/`ns typings android` (https://docs.nativescript.org/guide/native-code/generate-typings).
|
|
46
|
+
|
|
47
|
+
## Common pitfalls
|
|
48
|
+
- Missing native SDKs/emulators → run `ns doctor` and follow the per-OS setup guide.
|
|
49
|
+
- Treating it like web → there is no DOM or CSS cascade; layout uses NativeScript layout containers and a CSS subset.
|
|
50
|
+
- Stale build artifacts after native changes → `ns clean`, then rebuild.
|
|
51
|
+
|
|
52
|
+
## Examples
|
|
53
|
+
```xml
|
|
54
|
+
<!-- main-page.xml -->
|
|
55
|
+
<Page xmlns="http://schemas.nativescript.org/tns.xsd">
|
|
56
|
+
<StackLayout>
|
|
57
|
+
<Label text="Hello from NativeScript" />
|
|
58
|
+
<Button text="Tap" tap="{{ onTap }}" />
|
|
59
|
+
</StackLayout>
|
|
60
|
+
</Page>
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
## Further reading
|
|
64
|
+
- https://docs.nativescript.org/guide/marshalling/ — marshalling and calling native APIs
|
|
65
|
+
- https://market.nativescript.org/ — plugins marketplace
|
|
66
|
+
- https://docs.nativescript.org/setup/ — environment setup and `ns doctor`
|
|
67
|
+
|
|
68
|
+
## Related skills
|
|
69
|
+
- ../react-native — also renders native UI from JavaScript
|
|
70
|
+
- ../ionic — web-tech cross-platform mobile alternative (Capacitor)
|
|
71
|
+
- ../android — native Android APIs surfaced by NativeScript
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: react-native
|
|
3
|
+
description: React Native cross-platform mobile framework that builds native iOS and Android apps from React/JavaScript; consult when scaffolding, navigating, styling, debugging Metro/native modules, or shipping RN apps with Expo or the community CLI.
|
|
4
|
+
domain: stack
|
|
5
|
+
category: mobile
|
|
6
|
+
tags: [react-native, react, mobile, ios, android, expo, javascript]
|
|
7
|
+
official_sources:
|
|
8
|
+
- https://reactnative.dev/docs/getting-started
|
|
9
|
+
- https://github.com/facebook/react-native
|
|
10
|
+
- https://reactnative.dev/docs/environment-setup
|
|
11
|
+
verified: 2026-06-17
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
# React Native
|
|
15
|
+
|
|
16
|
+
## Overview
|
|
17
|
+
React Native is an open-source framework from Meta for building native iOS and Android apps using React and JavaScript/TypeScript. UI is declared with React components that render to real native views (not a WebView). Read this when starting an RN project, wiring navigation, building native modules, or troubleshooting the Metro bundler and platform builds.
|
|
18
|
+
|
|
19
|
+
## Official sources
|
|
20
|
+
- Docs: https://reactnative.dev/docs/getting-started
|
|
21
|
+
- Repo: https://github.com/facebook/react-native
|
|
22
|
+
- Install: https://reactnative.dev/docs/environment-setup
|
|
23
|
+
|
|
24
|
+
## Install / setup
|
|
25
|
+
```bash
|
|
26
|
+
npx @react-native-community/cli@latest init AwesomeProject
|
|
27
|
+
```
|
|
28
|
+
From the official "without a framework" guide at https://reactnative.dev/docs/getting-started-without-a-framework. The docs recommend a framework (Expo) for new apps via `npx create-expo-app@latest`.
|
|
29
|
+
|
|
30
|
+
## Core concepts
|
|
31
|
+
- **Components & JSX** — UI built from `View`, `Text`, `Image`, `ScrollView`, etc., instead of HTML elements.
|
|
32
|
+
- **Metro bundler** — JS bundler that serves and hot-reloads your code; started with `npx react-native start`.
|
|
33
|
+
- **Native modules / New Architecture** — TurboModules and Fabric (the New Architecture, default in RN 0.76+) bridge JS to native APIs via JSI.
|
|
34
|
+
- **StyleSheet & Flexbox** — styling uses JS objects and Flexbox; no CSS cascade; values are unitless density-independent pixels.
|
|
35
|
+
- **Platform code** — `Platform.OS`, `.ios.js`/`.android.js` file extensions, and `Platform.select` for per-OS branches.
|
|
36
|
+
- **Hermes** — default JS engine optimized for RN startup and memory.
|
|
37
|
+
- **Frameworks (Expo)** — recommended toolbox providing routing, builds (EAS), and OTA updates on top of RN.
|
|
38
|
+
|
|
39
|
+
## Best practices
|
|
40
|
+
- Prefer a framework like Expo for new apps unless you have unusual native constraints (https://reactnative.dev/docs/getting-started).
|
|
41
|
+
- Use the New Architecture and keep RN/native deps aligned via the Upgrade Helper (https://reactnative.dev/docs/upgrading).
|
|
42
|
+
- Use `FlatList`/`SectionList` for long lists instead of mapping inside `ScrollView` (https://reactnative.dev/docs/optimizing-flatlist-configuration).
|
|
43
|
+
- Type your app with TypeScript; the default template ships TS (https://reactnative.dev/docs/typescript).
|
|
44
|
+
|
|
45
|
+
## Common pitfalls
|
|
46
|
+
- Stale Metro cache after dependency changes → restart with `npx react-native start --reset-cache`.
|
|
47
|
+
- Mixing incompatible native lib versions → use the Upgrade Helper and run `cd ios && pod install` after native changes.
|
|
48
|
+
- Assuming CSS units/cascade → RN styles are per-component JS objects with Flexbox defaults (`flexDirection: 'column'`).
|
|
49
|
+
|
|
50
|
+
## Examples
|
|
51
|
+
```tsx
|
|
52
|
+
import { View, Text, StyleSheet } from 'react-native';
|
|
53
|
+
|
|
54
|
+
export default function App() {
|
|
55
|
+
return (
|
|
56
|
+
<View style={styles.center}>
|
|
57
|
+
<Text>Hello from React Native</Text>
|
|
58
|
+
</View>
|
|
59
|
+
);
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
const styles = StyleSheet.create({
|
|
63
|
+
center: { flex: 1, alignItems: 'center', justifyContent: 'center' },
|
|
64
|
+
});
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
## Further reading
|
|
68
|
+
- https://reactnative.dev/docs/components-and-apis — built-in core components and APIs
|
|
69
|
+
- https://reactnavigation.org/ — React Navigation, the standard routing library
|
|
70
|
+
- https://docs.expo.dev/ — Expo framework, EAS builds, and OTA updates
|
|
71
|
+
|
|
72
|
+
## Related skills
|
|
73
|
+
- ../ionic — another web-tech cross-platform mobile stack (Capacitor)
|
|
74
|
+
- ../flutter — alternative cross-platform native UI toolkit
|
|
75
|
+
- ../nativescript — native UI from JS without a WebView
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: xamarin
|
|
3
|
+
description: .NET MAUI is Microsoft's cross-platform framework (Xamarin's successor) for building native Android, iOS, macOS, and Windows apps from one C# and XAML codebase; consult when scaffolding with dotnet new maui, writing XAML/MVVM UI, or migrating from Xamarin.Forms.
|
|
4
|
+
domain: stack
|
|
5
|
+
category: mobile
|
|
6
|
+
tags: [maui, xamarin, dotnet, csharp, xaml, mobile, cross-platform]
|
|
7
|
+
official_sources:
|
|
8
|
+
- https://learn.microsoft.com/en-us/dotnet/maui/
|
|
9
|
+
- https://github.com/dotnet/maui
|
|
10
|
+
- https://dotnet.microsoft.com/en-us/apps/maui
|
|
11
|
+
verified: 2026-06-17
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
# Xamarin / .NET MAUI
|
|
15
|
+
|
|
16
|
+
## Overview
|
|
17
|
+
.NET MAUI (Multi-platform App UI) is Microsoft's open-source framework for building native apps for Android, iOS, macOS, and Windows from a single C#/XAML codebase. It is the evolution and successor of Xamarin.Forms (Xamarin support ended May 1, 2024). Read this when starting a MAUI app, building XAML UI with MVVM/data binding, sharing code across platforms, or migrating a Xamarin.Forms project.
|
|
18
|
+
|
|
19
|
+
## Official sources
|
|
20
|
+
- Docs: https://learn.microsoft.com/en-us/dotnet/maui/
|
|
21
|
+
- Repo: https://github.com/dotnet/maui
|
|
22
|
+
- Install: https://dotnet.microsoft.com/en-us/apps/maui
|
|
23
|
+
|
|
24
|
+
## Install / setup
|
|
25
|
+
```bash
|
|
26
|
+
dotnet workload install maui
|
|
27
|
+
dotnet new maui -n MyMauiApp
|
|
28
|
+
cd MyMauiApp
|
|
29
|
+
dotnet build -t:Run -f net9.0-android
|
|
30
|
+
```
|
|
31
|
+
CLI creation from https://learn.microsoft.com/en-us/dotnet/maui/get-started/first-app (install the `.NET MAUI` workload / Visual Studio MAUI workload per https://learn.microsoft.com/en-us/dotnet/maui/get-started/installation).
|
|
32
|
+
|
|
33
|
+
## Core concepts
|
|
34
|
+
- **Single project, multi-target** — one project targets `net*-android`, `net*-ios`, `net*-maccatalyst`, `net*-windows`.
|
|
35
|
+
- **XAML + code-behind** — declarative UI in XAML paired with C# code-behind/handlers.
|
|
36
|
+
- **MVVM & data binding** — `BindingContext`, `INotifyPropertyChanged`, and commands separate UI from logic.
|
|
37
|
+
- **Handlers** — lightweight mapping from cross-platform controls to native views (replacing Xamarin renderers).
|
|
38
|
+
- **Layouts & controls** — `Grid`, `StackLayout`, `CollectionView`, `Shell` for app structure and navigation.
|
|
39
|
+
- **Dependency injection** — built-in DI registered in `MauiProgram.CreateMauiApp()`.
|
|
40
|
+
- **Platform code** — conditional `#if ANDROID`/`IOS` and `Platforms/` folders for native specifics.
|
|
41
|
+
|
|
42
|
+
## Best practices
|
|
43
|
+
- Use MVVM with the .NET MAUI Community Toolkit's source generators for clean view models (https://learn.microsoft.com/en-us/dotnet/communitytoolkit/maui/).
|
|
44
|
+
- Prefer `CollectionView`/`Shell` over legacy `ListView`/manual navigation (https://learn.microsoft.com/en-us/dotnet/maui/user-interface/controls/collectionview/).
|
|
45
|
+
- Register services and pages via DI in `MauiProgram` (https://learn.microsoft.com/en-us/dotnet/maui/fundamentals/dependency-injection).
|
|
46
|
+
- Migrate Xamarin.Forms apps with the official upgrade guidance (https://learn.microsoft.com/en-us/dotnet/maui/migration/).
|
|
47
|
+
|
|
48
|
+
## Common pitfalls
|
|
49
|
+
- Blocking the UI thread → use `async`/`await` and `MainThread.BeginInvokeOnMainThread` for UI updates.
|
|
50
|
+
- Forgetting the MAUI workload → builds fail; run `dotnet workload install maui`.
|
|
51
|
+
- Assuming Xamarin custom renderers carry over → port them to MAUI handlers.
|
|
52
|
+
|
|
53
|
+
## Examples
|
|
54
|
+
```xml
|
|
55
|
+
<!-- MainPage.xaml -->
|
|
56
|
+
<ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
|
|
57
|
+
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml">
|
|
58
|
+
<VerticalStackLayout Padding="20" Spacing="10">
|
|
59
|
+
<Label Text="Hello, .NET MAUI!" FontSize="24" />
|
|
60
|
+
<Button Text="Click" Clicked="OnClicked" />
|
|
61
|
+
</VerticalStackLayout>
|
|
62
|
+
</ContentPage>
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
## Further reading
|
|
66
|
+
- https://learn.microsoft.com/en-us/dotnet/maui/fundamentals/data-binding/ — fundamentals: data binding (see also app-lifecycle, shell)
|
|
67
|
+
- https://learn.microsoft.com/en-us/dotnet/maui/migration/ — migrating from Xamarin.Forms
|
|
68
|
+
- https://learn.microsoft.com/en-us/dotnet/communitytoolkit/maui/ — .NET MAUI Community Toolkit
|
|
69
|
+
|
|
70
|
+
## Related skills
|
|
71
|
+
- ../flutter — alternative single-codebase native cross-platform UI
|
|
72
|
+
- ../react-native — JS/React cross-platform mobile framework
|
|
73
|
+
- ../android — native Android target underneath MAUI
|