Template Composer

This post is part of Railway's 2024 product roadmap kickoff, the Railway team spends the first week every three months sharing our thought process and concepts of what we plan to build.

Project cheerleader: Melissa Hale

Ever since we did the Template Bounty program in June. We now have 500+ Templates and counting on the platform. However, users have noted that:

  • Templates become stale quickly

  • They don't quickly adopt the new features that are shipped that help templates (meta)

  • Creating new templates still isn't as fun as it could be

We are thinking about having the concept of having the canvas on Railway allow users to build and specify new templates where users/companies on the platform can build and distribute updates to their templates the same way they do with projects on Railway.

As with everything, we want your thoughts- is this something you'd like to see? What's stopping you from shipping a template? Whats painful?

Completed

0 Threads mention this feature

12 Replies

brody
EMPLOYEE

2 years ago

Whats painful?

template collaboration - templates are currently only able to be worked on by a singular person

setting variables - a raw style editor would give a better overview of a service's variables


aleks
HOBBY

2 years ago

I'd very much like to be able to have a template (or a general project!) be a single GitHub repo or folder with an HCL, JSON, or YAML file at the root where I can define all of my infrastructure. Having to manage everything in a GUI isn't really my cup of tea, personally.


Aleks, not to put the entire burden on you, but if you have a spec in mind- we'd be all ears.



zuchka
PRO

2 years ago

I'd very much like to be able to have a template (or a general project!) be a single GitHub repo or folder with an HCL, JSON, or YAML file at the root where I can define all of my infrastructure.

I think that would be awesome


brody
EMPLOYEE

2 years ago

I would like the edit and update template pages to be unified into a single new editing and publishing page, where you could change all aspects of the template down to their service icons. I think the canvas style would work perfectly for this!

the unified page would still work for unpublished templates but would require all the normal publishing information upon wanting to publish


medim
MODERATOR

2 years ago

Imo I think there’s too much clicking while editing a template in the UI and it’s even worse if u have a lot of ENV vars to set, a raw paste option would be incredible (but idk how it would work with the descriptions)


gridonyx
HOBBY

2 years ago

Imo I think there’s too much clicking while editing a template in the UI and it’s even worse if u have a lot of ENV vars to set, a raw paste option would be incredible (but idk how it would work with the descriptions)

I agree with this, the more variables there are on the template the more unruly it starts to become. A raw/json editor similar to that in the project would be awesome and create a more cohesive experience.

I would like the edit and update template pages to be unified into a single new editing and publishing page, where you could change all aspects of the template down to their service icons. I think the canvas style would work perfectly for this!

the unified page would still work for unpublished templates but would require all the normal publishing information upon wanting to publish

This would be spectacular, having to hop around between two spots creates unnecessary friction to the process and having it all unified would be a good quality of life improvement.


Nothing confuses me more than looking inside my project and see a bunch of jumbled up services. If we could group some related services in projects, it would be great. Eg. when we Import a new template in a project and it has more than one service it shows a nice border outside the imported services which shows that they are a group and function together.

Thanks.

(My bad it does not belong here)


aleks
HOBBY

2 years ago

Aleks, not to put the entire burden on you, but if you have a spec in mind- we'd be all ears.

Didn't see this, sorry! I'm thinking maybe something like this in a railway-project.yaml or something in the root of the repo:

name: Ultra Super SaaS
contents:
- variable: MY_SHARED_VAR
  value: $up3rS3cr3t!
- volume: strapi-data
- service: frontend
  root: frontend/ # pulls from the current directory if possible
  domain: ultrasupersaas.com
- service: backend
  dir: backend
  env:
    PORT: 8080
    APP_URL: ${{RAILWAY_PUBLIC_URL}} # or whatever the variable's called
  config: # replaces options from `railway.json` in the provided `dir`
    builder: dockerfile
  domain:
    - backboard.ultrasupersaas.com
    - whyofcourseweneedanotherdomain.com
- service: strapi
  image: strapi/strapi # Deploy from a Docker image
  mount:
    /var/lib/strapi: strapi-data
- service: api
  repo: aleksrutins/supersaasapi # Deploy from a GitHub Repo
  domain: $generate # there's probably a better syntax for this
- template: postgres # Merge in a template from the Railway registry
- template: aleksrutins/notafaketemplate # Merge in a template from GitHub

It would also be nice to have an official Terraform provider.


garretcharp
HOBBY

2 years ago

2 things I think would be nice:

  1. A way to edit a config file before deploying the service. For example, I have a template for running a Cloudflare Tunnel (https://railway.app/template/cIsLIC?referralCode=vanUWT) where the service has a config.yml file that should be different for every single user based on their deployment. (This would also be helpful for the Prometheus template on the marketplace as well)

  2. Some ways to potentially offer variations of the same template. For the same template I have it would be nice if I could offer premade templates with different frameworks/languages. For example, I could have one using Node+Express, or Rust+Axum, or Laravel, etc etc. Would also be cool if any services could be marked as optional and omitted if a user did not want something that is not required (Prometheus is not required in my case).


fp
EMPLOYEE

2 years ago

Hey y'all, we've started making strides on this project so sharing a quick update here on the new template creation experience based on the canvas.

Template Composer

Edit: Looks like we don't support videos yet? Updated preview to an image.


Status changed to Completed unicodeveloper 11 months ago


Loading...