Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Client-side web applications #195

Open
davidthor opened this issue Dec 7, 2023 · 0 comments
Open

Client-side web applications #195

davidthor opened this issue Dec 7, 2023 · 0 comments
Assignees
Labels
components Issues related to creating components enhancement New feature or request

Comments

@davidthor
Copy link
Member

Is your feature request related to a problem? Please describe.

Frameworks like React, Vue, Angular, and others have made it popular for developers to create web applications that run much (or sometimes all) of their logic in the browser via javascript. These applications are sometimes ship entirely static assets to the client, sometimes do SSR, and sometimes can do both (e.g. hybrid or polymorphic).

I had originally thought we could use the Static buckets feature alongside deploy hooks to ship these apps, but that limits the applications to a) only be statically served, and b) only be shipped to s3 supporting providers. This would prevent the use of github pages, cloudflare pages, Vercel, Netlify, and various other specialized providers.

Describe the solution you'd like

I'd like a dedicated feature to support javascript-powered web applications. This would allow me to easily create and integrate these types of applications into my components while still enabling the use of popular providers for deployment:

version: v2

webapps:
  frontend:
    # Directory containing all the code needed to build and/or run the webapp
    context: ./

    # Command used to compile the web app
    build: npm run build

    # Command used to run the webapp from source
    dev: npm start

    # The directory containing the compiled source after the `build` command is run
    outdir: ./build

    # The command to run from inside `outdir` to start the server.
    # If none specified, assume the contents are static and serve from a vanilla webserver like nginx
    start: node server.js

    # Environment variables to be made available during the `build` step
    environment:
      BACKEND_ADDR: ${{ ingresses.backend.url }}

ingresses:
  backend:
    service: backend

Describe alternatives you've considered

I had tried to use static buckets which I could get working on s3 behind cloudfront, but there are very few providers that support performant serving of webapps out of s3.

@davidthor davidthor added enhancement New feature or request components Issues related to creating components labels Dec 7, 2023
@davidthor davidthor self-assigned this Dec 7, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
components Issues related to creating components enhancement New feature or request
Projects
None yet
Development

When branches are created from issues, their pull requests are automatically linked.

1 participant