Skip to content

Commit

Permalink
Merge pull request #438 from elsoul/addFrontend
Browse files Browse the repository at this point in the history
Upgrading to v3. Migrating to CloudFlare.
  • Loading branch information
KishiTheMechanic authored Oct 4, 2024
2 parents c5b5fac + 05bb041 commit 2bb9ee5
Show file tree
Hide file tree
Showing 745 changed files with 19,081 additions and 17,848 deletions.
3 changes: 0 additions & 3 deletions .firebaserc
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,6 @@
"skeet-utils": [
"skeet-utils"
],
"skeet-doc": [
"skeet-doc"
],
"skeet-ai": [
"skeet-ai"
],
Expand Down
39 changes: 39 additions & 0 deletions .github/workflows/skeet-dev.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
name: SkeetDev

on:
push:
branches: ['main']
paths:
- 'website/skeet-dev/**'
- '.github/workflows/skeet-dev.yml'

jobs:
build:
name: Build and Deploy
timeout-minutes: 60
runs-on: ubuntu-latest

steps:
- name: Check out code
uses: actions/checkout@v4
with:
fetch-depth: 2

- uses: pnpm/action-setup@v3
with:
version: 9

- name: Setup Node.js environment
uses: actions/setup-node@v4
with:
node-version: 20
cache: 'pnpm'

- name: Install dependencies
run: pnpm install

- name: Deploy to Cloudflare
run: pnpm run -F skeet-dev deploy
env:
CLOUDFLARE_API_TOKEN: ${{ secrets.CLOUDFLARE_API_TOKEN }}
CLOUDFLARE_ACCOUNT_ID: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }}
47 changes: 0 additions & 47 deletions .github/workflows/website-skeet-doc.yml

This file was deleted.

259 changes: 49 additions & 210 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
<p align="center">
<a href="https://skeet.dev/en/">
<img src="https://user-images.githubusercontent.com/20677823/221215449-93a7b5a8-5f33-4da8-9dd4-d0713db0a280.png" alt="Skeet" />
<img src="https://storage.skeet.dev/ogp.jpg" alt="Skeet" />
</a>

<a href="https://twitter.com/intent/follow?screen_name=ELSOUL_LABO2">
<img src="https://img.shields.io/twitter/follow/ELSOUL_LABO2.svg?label=Follow%20@ELSOUL_LABO2" alt="Follow @ELSOUL_LABO2" />
<a href="https://twitter.com/intent/follow?screen_name=SkeetDev">
<img src="https://img.shields.io/twitter/follow/SkeetDev.svg?label=Follow%20@SkeetDev" alt="Follow @SkeetDev" />
</a>
<br/>
<a aria-label="npm version" href="https://www.npmjs.com/package/@skeet-framework/cli">
Expand All @@ -23,227 +23,66 @@

📗 Doc: https://skeet.dev/

📱 Demo App: https://skeeter.dev/
📱 Demo App (Edge Runtime): https://app.skeeter.dev/

## 💃 What's Skeet? 🕺
🌍️ SSG Demo: https://skeeter.dev/

⚡️ AI Auto-code Development ⚡️
Repository for Demo App: https://github.com/elsoul/skeet-v3-next-edge-rc

Skeet is an open-source app development solution capable of AI auto-code development.
Repository for SSG Demo: https://github.com/elsoul/skeet-v3-next-ssg-rc

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.
## The Complete Web Framework for Modern Developers

AI is also used in the development flow, overcoming the learning curve that is a challenge in software frameworks.
With Skeet v3, we’ve fully migrated to Cloudflare, eliminating cold starts and introducing support for edge runtime. It has been transformed into a serverless-native architecture, optimized for the modern web.

Developers can quickly start building functional apps and publish them in the cloud.
🚧 The Skeet development team is currently focused on building v3. Active development is underway.

## Overall Architecture Diagram
For the latest updates, join our official Discord community:
https://discord.gg/H2HeqRq54J

![Skeet Architecture](https://storage.googleapis.com/skeet-assets/imgs/SkeetArchitecture.png)
For documentation on versions running on Firebase (v1, v2), please refer to the following links:

Skeet is an open-source framework for serverless app development crafted in TypeScript.
v1 Documentation: https://skeet.dev/en/v1doc/general/overall-architecture

It offers the flexibility to select functionalities and the ability to build additional web or mobile interfaces and sophisticated data analytics foundations later on.
v2 Documentation: https://skeet.dev/en/v2doc/general/overall-architecture

It supports Web3 development, eliminates complex infrastructure management, and facilitates auto-scaling and pay-as-you-go pricing.
## Built with

The Skeet CLI leverages generative AI to reduce overall development costs, is ready for CI/CD automation, and provides enhanced security features.
- [TypeScript](https://www.typescriptlang.org/)
- [ESLint](https://eslint.org/)
- [Prettier](https://prettier.io/)
- [pnpm](https://pnpm.io/)
- [Cloudflare Workers](https://workers.cloudflare.com/)
- [Cloudflare KV](https://developers.cloudflare.com/kv/)
- [Cloudflare Durable Objects](https://developers.cloudflare.com/durable-objects/)
- [Cloudflare D1](https://developers.cloudflare.com/d1/)
- [Cloudflare Pages](https://pages.cloudflare.com/)
- [Wrangler](https://developers.cloudflare.com/workers/wrangler/)
- [`@cloudflare/next-on-pages`](https://github.com/cloudflare/next-on-pages)
- [Neon](https://neon.tech/)
- [Prisma](https://www.prisma.io/)
- [Next.js](https://nextjs.org/)
- [Auth.js](https://authjs.dev/)
- [Resend](https://resend.com/docs/introduction)
- [Tailwind CSS](https://tailwindcss.com/)
- [next-intl](https://next-intl-docs.vercel.app/)
- [React Compiler](https://react.dev/learn/react-compiler)
- [shadcn/ui](https://ui.shadcn.com/)
- [React Hook Form](https://react-hook-form.com/)
- [Zod](https://zod.dev/)
- [Jotai](https://jotai.org/)
- [Vercel AI SDK](https://sdk.vercel.ai/docs/introduction)
- [Next Sitemap](https://github.com/iamvishnusankar/next-sitemap)

Currently, it supports development on Google Cloud and Firebase.
## References

## Installation

Oneliner installation (Install nodenv, node, npm, @skeet-framework/cli)

```bash
$ sh -c "$(curl -sSfL https://storage.googleapis.com/skeet-assets/resources/install-v2.0.5)"
```

If you already have Node.js installed, you can install Skeet CLI with npm:

```bash
$ pnpm add -g firebase-tools
$ pnpm add -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:

```bash
$ skeet init
```

```bash
$ skeet ai --help
```

or you can choose AI engine by passing options

```bash
$ 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.

[![SkeetAI](https://storage.googleapis.com/skeet-assets/animation/skeet-ai-short.gif)](https://www.youtube.com/watch?v=e7J5HDhtpE4)

YouTube Video Link: https://www.youtube.com/watch?v=e7J5HDhtpE4

## 🧪 Dependency 🧪

- [TypeScript](https://www.typescriptlang.org/) ^5.0.0
- [Node.js](https://nodejs.org/ja/) ^20.11.0
- [PNPM](https://pnpm.io/) ^8.0.0
- [GitHub CLI](https://cli.github.com/) ^2.29.0

For Firebase Template

- [Google Cloud SDK](https://cloud.google.com/sdk/docs/install) ^430.0.0
- [Firebase CLI](https://firebase.google.com/docs/cli) ^12.0.0
- [Java](https://www.java.com/en/download/)

## 📗 Usage 📗

### ① Install dependencies

```bash
$ curl -fsSL https://get.pnpm.io/install.sh | sh -
$ pnpm add -g @skeet-framework/cli
$ pnpm add -g firebase-tools
```

### ② Create Skeet App

```bash
$ skeet new
? Enter the name of the app (skeet-app)
```

### ③ Initialize Firebase/Google Cloud Project

```bash
$ skeet init
Initializing Cloud Configurations...
? What's your GCP Project ID (skeet-framework)
```
### ④ Call Your AI Assistant
Now you can call your AI Assistant to create a new function, method, typedoc, and more.
```bash
$ skeet ai --help
```
or You can call check command to check your configurations
```bash
$ skeet check
```
## Add Build-in Template
You can add a build-in template to your App.
```bash
$ skeet add --help
```
![Solana Mobile Stack](https://storage.googleapis.com/skeet-assets/animation/SkeetSolanaMobileStack.gif)
![Chatbot](https://storage.googleapis.com/skeet-assets/animation/skeet-chat-latest.gif)
### Run Skeet App
```bash
$ cd <appName>
$ skeet s
```
### Test Firebase Functions Endpoint
To call Firebase Functions Endpoint, you can use the following command:
e.g. Call root() function
```bash
$ skeet c
firebase > root()
```
## Development Environment
Now you have both frontend and backend running locally ⭐️
📲 Frontend(Next.js) - [http://localhost:4200/](http://localhost:4200/)
📲 Frontend(Expo) - [http://localhost:19006/](http://localhost:19006/)
💻 Firebase Emulator - [http://localhost:4000/](http://localhost:4000/)
## Skeet Document
- [https://skeet.dev/](https://skeet.dev/)
## Skeet CLI
```bash
$ 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 [options] <appName> Create Skeet Framework App
server|s [options] Run Skeet App
deploy [options] Deploy Skeet APP to Firebase
init [options] Initialize Google Cloud Setups
login Skeet Login Command - Create Firebase Login Token
curl [options] <methodName> Skeet Curl Command - Call Firebase Functions Endpoint
g|generate Skeet Generate Comannd
log [options] Deploy Skeet APP to Firebase
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
ai [options] Call Skeet AI Assistant
config Config commands
run [options] Run commands
new|n [options] Create Skeet Framework App
console|c Call Firebase Console to Test Functions
check Check Cloud Configurations
help [command] display help for command
```
## Powered by
- [Firebase - Serverless Platform](https://firebase.google.com/)
- [Firestore - NoSQL Database](https://firebase.google.com/docs/firestore)
- [Firebase Cloud Functions 2nd Gen - FaaS](https://firebase.google.com/docs/functions)
- [Firebase Storage - Cloud Storage](https://firebase.google.com/docs/storage)
- [Firebase Authentication - Auth](https://firebase.google.com/docs/auth)
- [Cloud SQL - Relational Database](https://cloud.google.com/sql)
- [Cloud Load Balancing - Routing](https://cloud.google.com/load-balancing)
- [Prisma - ORM](https://www.prisma.io/?via=ELSOULLABO)
- [TypeScript - TypeCheck](https://www.typescriptlang.org/)
- [Vitest - Test](https://vitest.dev/)
- [ESLint - Linter](https://eslint.org/)
- [Prettier - Formatter](https://prettier.io/)
- [Next.js (React) - Web Frontend(SSG)](https://nextjs.org/)
- [Expo (React Native) - Mobile App](https://expo.dev/)
- [Next.js App Routing](https://nextjs.org/docs/app/building-your-application/routing)
- [React Server Components](https://react.dev/reference/rsc/server-components)
- [React Server Actions](https://react.dev/reference/rsc/server-actions)
- [The Edge Runtime](https://edge-runtime.vercel.app/)
- [What is edge computing?](https://www.cloudflare.com/learning/serverless/glossary/what-is-edge-computing/)
- [Static Site Generation (SSG)](https://nextjs.org/docs/pages/building-your-application/rendering/static-site-generation)
- [Static Exports](https://nextjs.org/docs/app/building-your-application/deploying/static-exports)

## Contributing

Expand Down
5 changes: 0 additions & 5 deletions firebase.json
Original file line number Diff line number Diff line change
Expand Up @@ -53,11 +53,6 @@
"public": "packages/ai/docs",
"ignore": ["firebase.json", "**/.*", "**/node_modules/**"]
},
{
"target": "skeet-doc",
"public": "website/skeet-doc/out",
"ignore": ["firebase.json", "**/.*", "**/node_modules/**"]
},
{
"target": "skeet-cloud-task",
"public": "packages/cloud-task/docs",
Expand Down
Loading

0 comments on commit 2bb9ee5

Please sign in to comment.