Skip to content

🧪 Skeet Framework Boilerplate for Solana Mobile Stack and Solana Web dApp🌊

License

Notifications You must be signed in to change notification settings

elsoul/skeet-solana-mobile-stack

Repository files navigation

Skeet Solana Mobile Stack

Skeet Solana Mobile Stack

Follow @ELSOUL_LABO2

Skeet Solana Mobile Stack (Expo) + Web (Next.js) - Firestore Template

Solana Mobile Stack: https://docs.solanamobile.com/

What's Skeet?

TypeScript Serverless Framework 'Skeet'.

The Skeet project was launched with the goal of reducing software development, operation, and maintenance costs.

Build Serverless Apps faster.

Setup

Solana Mobile Stack - Development Setup: https://docs.solanamobile.com/getting-started/development-setup

Dependency

You might need to install specific java version like here:

$ curl -s "https://get.sdkman.io" | bash
$ sdk install java 11.0.20-zulu
$ sdk use java 11.0.20-zulu

$ java --version
openjdk 11.0.20 2023-07-18 LTS
OpenJDK Runtime Environment Zulu11.66+15-CA (build 11.0.20+8-LTS)
OpenJDK 64-Bit Server VM Zulu11.66+15-CA (build 11.0.20+8-LTS, mixed mode)

Usage

※ANDROID_HOME environment is important. Please do not forget to put your ANDROID SDK PATH to eas.json and package.json (It will be like ~/Library/Android/sdk)

$ npm i -g firebase-tools
$ npm i -g @skeet-framework/cli
$ skeet create <project-name>
$ cd <project-name>
$ skeet s

or if you pulled this repo:

$ skeet yarn i
$ skeet s

If you setup the Android Emulator, the mobile app will be launched automatically.

Web-Frontend: http://localhost:4200 Firebase Emulator: http://localhost:4000

※ You need OpenAI API key to use ChatGPT.

./functions/skeet/.env

CHAT_GPT_KEY=your-key
CHAT_GPT_ORG=your-org

Test your app:

$ skeet test

EAS Build

EAS Build

You need to run this command to setup EAS Build project. (Edit app.json for example changing names and deleting "extra" to build new project.)

yarn build:configure

Solana Wallet

You can use Solana Wallet Private key converter to get the keyfile.json. Phantom's Show Private Key gives us the strings which is not compatible with Solana CLI. So we need to convert it to the Uint8Array and made the script for it.

$ yarn solana:key:convert (default: key.json)
// or if you want to name the file.
$ yarn solana:key:convert -- keyfile.json

How to create Compressed NFTs (cNFTs)?

EN: https://medium.com/@KishiTheMechanic/how-to-mint-solana-compressed-nfts-cnfts-with-typescript-be9d0fa7ce30

JA: https://zenn.dev/ki4themecha2q/articles/7dcb9753783a23

Implemening SIWS (Sign In With Solana)

EN: https://medium.com/@KishiTheMechanic/implementing-sign-in-with-solana-siws-ce35dadeda31

JA: https://zenn.dev/ki4themecha2q/articles/85b8725a142f76

Contributing

Bug reports and pull requests are welcome on GitHub at https://github.com/elsoul/skeet-solana-mobile-stack 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.