π Doc: https://skeet.dev/
π± Demo App: https://skeeter.dev/
π What's Skeet? πΊ
β‘οΈ AI Auto-code Development β‘οΈ
Skeet is an open-source app development solution capable of AI auto-code development.
It allows for rapid development of Web/iOS/Android apps and supports a wide range of developments, including AI-powered chatbot apps, Web3 apps utilizing blockchain, and dApps.
AI is also used in the development flow, overcoming the learning curve that is a challenge in software frameworks.
Developers can quickly start building functional apps and publish them in the cloud.
Overall Architecture Diagram
Skeet is an open-source framework for serverless app development crafted in TypeScript.
It offers the flexibility to select functionalities and the ability to build additional web or mobile interfaces and sophisticated data analytics foundations later on.
It supports Web3 development, eliminates complex infrastructure management, and facilitates auto-scaling and pay-as-you-go pricing.
The Skeet CLI leverages generative AI to reduce overall development costs, is ready for CI/CD automation, and provides enhanced security features.
Currently, it supports development on Google Cloud and Firebase.
Installation
Oneliner installation (Install nodenv, node, npm, @skeet-framework/cli)
$ sh -c "$(curl -sSfL https://storage.googleapis.com/skeet-assets/resources/v1.0.2-install)"
If you already have Node.js installed, you can install Skeet CLI with npm:
$ npm i -g @skeet-framework/cli
Enabling Google Cloud VertexAI/OpenAI
Create a new project in Google Cloud Platform and enable VertexAI. You will need OpenAI API Key to use OpenAI.
Use the following command to enable VertexAI:
$ skeet iam ai
$ skeet ai
or you can choose AI engine by passing options
$ skeet ai --openai
You need to set CHAT_GPT_ORG/CHAT_GPT_KEY in your .env
Then you can ask Skeet AI Assistant to create a new function, method, typedoc and more.
YouTube Video Link: https://www.youtube.com/watch?v=e7J5HDhtpE4
π§ͺ Dependency π§ͺ
- TypeScript ^5.0.0
- Node.js ^18.16.0
- Yarn ^1.22.19
- GitHub CLI ^2.29.0
For Firebase Template
- Google Cloud SDK ^430.0.0
- Firebase CLI ^12.0.0
- Java
π Usage π
β Install Skeet/Firebase CLI
$ npm i -g @skeet-framework/cli
$ npm install -g firebase-tools
β‘ Create Skeet App
$ skeet create <appName>
You can choose a template for the frontend and backend.
- Next.js (React) with GraphQL template
- Next.js (React) with Firestore template
- Expo (React Native) with Firestore template
- Solana Mobile Stack (Expo) + Web (Next.js) with Firestore template
or
Create Skeet App with only backend
$ skeet create <appName> --backend
You can choose a template for the backend.
β’ Run Skeet App
$ cd <appName>
$ skeet s
or
put options to run only backend, frontend, or GraphQL server
Usage: skeet server|s [options]
Run Skeet App
Options:
-b, --backend Run Backend only
-f, --functions Run Firebase Functions only
-w, --web Run Web App only
-g, --graphql Run GraphQL Server only
-h, --help display help for command
Now you have both frontend and backend running locally βοΈ
π² Frontend(Next.js) - http://localhost:4200/
π² Frontend(Expo) - http://localhost:19006/
π» Firebase Emulator - http://localhost:4000/
If you choose GraphQL template, you can use GraphQL Playground
π GraphQL Playground - http://localhost:3000/graphql
Launching Skeet AI Assistant
The Skeet AI Assistant is an interactive tool designed to handle various queries.
$ skeet ai --help
AI Playground
Options:
-v, --vertex Vertex AI
-o, --openai OpenAI
-m, --model <string> Model
-token, --token <number> Max Tokens
-temp, --temperature <number> Temperature
-h, --help display help for command
Upon launching, you'll see a prompt like the one below. Try asking it something:
skeet ai --openai
βββββββββββββββ€βββββββββ
β Option β Value β
βββββββββββββββΌβββββββββ’
β AI Type β OpenAI β
βββββββββββββββΌβββββββββ’
β Model β gpt-4 β
βββββββββββββββΌβββββββββ’
β Max Token β 1000 β
βββββββββββββββΌβββββββββ’
β Temperature β 0 β
βββββββββββββββ§βββββββββ
π€ Skeet AI Mode
`$ <mode>` to change AI mode π€
$ prisma
$ typedoc
$ translate
$ firestore
$ function
$ method
$ help
$ q
OpenAI is selected π€ (type 'q' to quit)
? What can I do for you?
You:
Skeet Document
Skeet CLI
$ skeet --help
Usage: skeet [options] [command]
CLI for Skeet - Full-stack TypeScript Serverless framework
Options:
-V, --version output the version number
-h, --help display help for command
Commands:
create <appName> Create Skeet Framework App
server|s Run Skeet App
deploy Deploy Skeet APP to Firebase
init [options] Initialize Google Cloud Setups for Skeet APP
yarn [options] <yarnCmd> Skeet Yarn Comannd to run yarn command for multiple functions
login Skeet Login Command - Create Firebase Login Token
curl [options] <methodName> Skeet Curl Command - Call Firebase Functions Endpoint
g|generate Skeet Generate Comannd
docker Docker commands
db Database commands
iam Skeet IAM Comannd to setup Google Cloud Platform
add Skeet Add Comannd to add new functions
sync Skeet Sync Comannd to sync backend and frontend
delete|d Skeet Delete Command
get Get Skeet App List
help [command] display help for command
Powered by
- Firebase - Serverless Platform
- Firestore - NoSQL Database
- Firebase Cloud Functions 2nd Gen - FaaS
- Firebase Storage - Cloud Storage
- Firebase Authentication - Auth
- Cloud SQL - Relational Database
- Cloud Load Balancing - Routing
- Prisma - ORM
- GraphQL - Query Language
- Apollo - GraphQL Server
- TypeScript - TypeCheck
- Jest - Test
- ESLint - Linter
- Prettier - Formatter
- Next.js (React) - Web Frontend(SSG)
- Expo (React Native) - Mobile App
Contributing
Bug reports and pull requests are welcome on GitHub at https://github.com/elsoul/skeet-cli This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the Contributor Covenant code of conduct.
License
The package is available as open source under the terms of the Apache-2.0 License.
Code of Conduct
Everyone interacting in the SKEET projectβs codebases, issue trackers, chat rooms and mailing lists is expected to follow the code of conduct.