Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/assertnotnull/expo-elysia-pulumi-starter
A starter repo for Expo, Elysia & Pulumi
https://github.com/assertnotnull/expo-elysia-pulumi-starter
aws bun elysia expo pulumi typescript
Last synced: 1 day ago
JSON representation
A starter repo for Expo, Elysia & Pulumi
- Host: GitHub
- URL: https://github.com/assertnotnull/expo-elysia-pulumi-starter
- Owner: assertnotnull
- License: mit
- Created: 2024-04-02T03:25:18.000Z (9 months ago)
- Default Branch: master
- Last Pushed: 2024-04-02T03:32:13.000Z (9 months ago)
- Last Synced: 2024-04-02T04:40:21.807Z (9 months ago)
- Topics: aws, bun, elysia, expo, pulumi, typescript
- Language: TypeScript
- Homepage:
- Size: 276 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Expo Elysia Pulumi starter repo
A starter repo for Expo + Elysia + Pulumi on Bun
# Description
This repo is to take advantage of Bun for backend for a mobile project made with Expo.
It provides:
- It provides end-to-end type safety from Elysia with their [Eden](https://elysiajs.com/eden/overview.html)
- Clear folder structure in a monorepo
- Ability to run the Bun backend in a container and get 2 digits ms speed unlike AWS lambda.
- Not forcing you to use Lambda and DynamoDB for your project
- All dependencies installed by Bun
- Use Tanstack query to call Elysia with EdenYou can see a sample of the frontend calling the back in [frontend/app/(tabs)/index.tsx]()
Note: Frontend only import the typing of Elysia (Eden), so it is fine to import from the backend. The typing is stripped when compiled.# Requirements
You have to have prerequisite installed:
- [Bun](https://bun.sh/)
- [Pulumi](https://www.pulumi.com/)
- [Expo](https://expo.dev/)Knowledge of AWS is required too. Route 53, IAM for the permissions of parts of the system.
# How to install
- Clone this repo
- `bun i`That's all. Now you can run the frontend and backend doing:
`bun backend` & `bun frontend`# How to deploy
- `mkdir infra; cd infra`
- `pulumi new`
- Choose the template `container-aws-typescript`
- In the file `infra/index.ts`, replace the context of the image to make it so: `context: '../backend',`. It will use the Dockerfile of the backend.
- `pulumi up` to deploy.
- You now have a backend running on AWS
- Sadly that's as far this repo can help you.You can refer to Pulumi for more information.
Use IAM to set the roles for the parts of your app and use Route 53 to set your domain names to assign to the load balancers.# FAQ
## Why the main package.json is almost empty and dependencies are managed individually?
Expo v50 relies on the node_module to be at the current folder where the app.json is defined.