Language support on Glitch: a list

So, as a few of my posts here have hinted at so far, I’ve been experimenting with other languages on Glitch, seeing what I could get working just with what’s installed on the container. I’ve especially been focusing on compile-to-JS languages that are available on NPM because of the space savings from pnpm and caching.

I thought it might be helpful to keep a list of what I’ve discovered so far. Moderator @cassey has also created a Glitch collection of non-JS projects you can remix, including many of the ones mentioned here. Feel free to comment with your own experiments.

Native languages:

  • Java: OpenJDK 1.8 and Maven are present. Otherwise untested.
  • .NET: .NET Core 2.1 is installed including the dotnet CLI tool along with the ASP.NET runtimes. I was able to compile a basic F# HelloWorld using this guide. See also Fable below.
  • Python: both Python 2.7 and 3.5 are installed as well as pip. There is a hello world starter glitch for Python/Flask available for remix.
  • Go: A template exists for a Go app using the gin framework.
  • Rust: Works. I was able to build a hello-rust template using the Iron framework for the backend. Note that due to disk space premium, some of the more popular options like actix-web and nickel were a no go: they run out of disk space during compilation. (UPDATE: At the moment, it appears Cargo is not working anymore, see thread: How do I install packages with Rust?)
  • Racket: Works by installing the minimal Racket distribution locally. Two sample apps are available, a very basic REST API with Spin, and a more extensive server-side rendered sample app. Use .scm extensions instead of .rkt if you want syntax highlighting in the editor.
  • Other langs found in ls -al /usr/bin but untested:
    • C/C++. Both gcc and clang. Also LLVM tools.
    • Haskell. ghc, haddock, and cabal are installed.
    • OCaml. the OCaml compiler and camlp4 are installed.
    • Perl. including CPAN.
    • Erlang.
    • Elixir.
    • Lua 5.2.
    • PHP and/or PHP7.
    • Ruby, including Rails
    • Swift

Compile to JS languages:

  • Typescript: Installs via npm. Not tested personally, but unsurprisingly seems to work just fine as there’s a number of projects using it, including several “hello world” type starter apps to remix.
  • Elm: Installs via npm, works great. Have written several little projects, including a hello world to start with. Slight gotcha here: for some reason the “add dependency” tool finds some very ancient version of Elm labeled “2.0.0” rather than the actual current version of 0.19, so it’s best to manually install this.
  • ClojureScript: Can install the lumo-cljs compiler via npm, and basic compilation works, as well as backend node dependencies. However a bug in the CLJS compiler seems to break library imports for frontend applications due to how it handles symlinks. I’ve talked this over with Lumo’s dev and a fix may come, but he’s quite busy with other projects at the moment.
  • Fable: F# to JS compiler. Works! I’ve built a project from the minimal Fable template here. Note that the deps do eat quite a bit of disk space.
  • Bucklescript: OCaml to JS compiler, also used for Facebook’s Reason. Works, but you must install via the GUI “add package” tool in the editor. If you install manually at the console it will “lose” the built bsb compiler on the next restart. Also the initial install takes a very long time as it has to build the compiler from source, but restart time seems to be fine after that. I’ve created a hello-world demo.
  • Purescript: You can install the Purescript tools if you first run enable-npm in the console. I’ve created a very simple hello-purescript for using PS with Bower. psc-package seems to fail on installing packages, so can’t recommend that.

The Glitch "lifecycle"

If you start from the node-app/hello-express project template, Glitch will run the project with pnpm install --shamefully-flatten && npm start, and the sample code hosts the static index.html via Express through a random forwarded port. Changes to Javascript and HTML files will automatically trigger a rerun of npm start, while changes to the package.json will also rerun pnpm install.

This is useful for compile-to-JS languages, as you can just customize the start script to compile your language of choice, and then have the index.html point to your build output for the JS.

However, as it won’t necessarily know to reload on file changes to non-JS files, you’ll need to customize the file watcher, which you can do by creating a watch.json file, with the same contents as the "watch" key described in glitch.json below.

glitch.json

For non-JS projects, you can instead create a glitch.json file to tell Glitch how to setup and run your projects. This should contain the following keys:

  • "install" - this key indicates the command to run when first setting up the environment. It’s best to put here stuff that won’t change every time you change your code, like initial tool/dependency install and setup.
  • "start" - this key indicates the command to run to start the server. So this should include whatever compilation/execution steps are needed to be done every time the code changes. Note that Glitch expects that after running this command, there will be a web server waiting on an open port; if there’s not it will just keep restarting until it does.
  • "watch" - this key contains the file watcher configuration that tells Glitch on which file changes to reinstall/restart the server. This is technically optional, but without it, Glitch will only automatically restart if you change glitch.json file itself.

The "watch" key itself has three potential keys in it. "install" and "start" describe the files to watch and trigger a rerun of the commands in those keys above. Each should each contain an object with "include" and "exclude" keys, which contain arrays of strings, each string being a regex pattern matching a possible filename(s). Whenever a file changes that is matched by the include key, it will rerun the appropriate command (start or install), unless the file also matches one of the patterns in exclude.

The third, optional, key in "watch" is "throttle", which contain the maximum frequency within which Glitch should restart after changes, given in milliseconds.

For an example of what all this looks like, here’s the glitch.json from Rantstack:

{
  "install": "sh ./install.sh",
  "start": "racket/bin/racket rantstack.scm",
  "watch": {
    "install": {
      "include": [
        "^glitch\\.json$",
        "^install\\.sh$",
        "^\\.env$"
      ]
    },
    "restart": {
      "exclude": [
        "^racket/"
      ],
      "include": [
        "\\.rkt$",
        "\\.scm$"
      ]
    },
    "throttle": 1000
  }
}

Some other notes from my experimentation:

  • Because of the way Glitch “restarts the world”, optimization is kind of a tradeoff here: it may be useful to use optimized output for payload size’s sake or if it improves end-user performance, but as this will also slow down the startup time of the instance, your initial loading time could be much longer.
  • The hello-webpage/webpage starter template does not have node installed, but does have Python, OpenJDK, and .NET Core installed still.
  • The Python/Flask template instead uses a start.sh bash script to start the server. I haven’t experimented with this further, but I suspect using glitch.json gives you some more flexibility.
  • Disk space is very limited. Disk space is only 200MB, so that limits the amount of space we have for dependencies, installing additional tools, etc. npm dependencies are sort of an exception though, as much of that is cached by pnpm and Glitch so that it doesn’t count against the instance size limit. Be careful hitting the limit too, as instances can get “stuck” in a loop when close to the cap.
  • RAM is a bit tight. Instance has 512MB of RAM, which is not bad for lightweight servers, but not good for running big toolchains in memory. When writing your build scripts, don’t bother with live reloading tools and the like, since Glitch will restart the whole server on change anyway. Compile once.
  • The port that the Glitch proxy will pick up to serve as the web server can be found from the environment variable PORT. This usually seems to be 3000, and it will also detect a server running on port 8080 automatically, but it’s probably best practice to use the env var.

I hope this is helpful, and if any of the Glitch folks have further insights on some of the unclear stuff, or you’ve done your own experiments feel free to share. I’ll try and keep this post updated.

Updated: 02-Jun-2019

35 Likes

Can’t seem to figure out how to edit the original post anymore so I guess for now, updates go in replies instead.

New language: Racket
I’ve managed to get a Racket web app working! I cloned my Rantstack app, and then wrote a short little install script that grabs the minimal Racket installer, and installs Racket and the web-server-lib pkg locally. Then it just runs the server code! Racket is online!

The editor doesn’t have syntax highlighting for Racket, but you can get some very basic highlighting if you use a .scm extension for your Racket files instead.

Glitch also seems to be smart enough to cache the files somehow too, so after the first time it installs, it won’t have to reinstall the libraries again. Probably also if you have a bigger project you should make an info.rkt file with all your dependencies, and run raco against that to install whatever deps you need, instead of just manually installing web-server-lib as part of the Racket install script.

One snag I did run into is that Glitch gets real cranky when you hit the disk space limit. Some early attempts installed too many packages and that trapped the instance in a state where I couldn’t even make any changes to fix it! Even going into console and deleting files manually and running refresh didn’t help because it wouldn’t retain any changes. I wound up having to just delete the project several times and start over until I got the config right.

2 Likes

Thanks for the update, @jarcane! I made a small change to the forum settings, and now you should be able to edit the original post if you’d prefer to merge the new information in!

3 Likes

I have a running collection of non-Javascript Glitch projects here for anyone who’s looking to remix off one: https://glitch.com/@cassey/lingua-splosion.

2 Likes

That’s awesome! Thanks. I’ve added a link to the OP. :grinning:

1 Like

It’s possible to also compile to JS with Haskell using GHCJS. I did this with http://small-viz.glitch.me/ and I describe the whole process at https://vaibhavsagar.com/blog/2019/10/29/getting-along-with-javascript/.

3 Likes

never knew that, well, thank you! now jtech can move back to the glitch servers,

till i finally deploy it in 6 months to vscode

@J-Tech-Foundation one question, does jtech have a github account?

I do have a github account…
https://github.com/J-Tech-Foundation

Hey folks!

Quick update here, but @potch has written a little guide that helps clarify some useful stuff to know for configuring Glitch projects, especially those in other languages: https://glitch.com/edit/#!/glitchnomicon?path=README.md:1:0

5 Likes

Is there any glitch.json file template for Golang?

Hey! I made an Amber demo. It’s a Smalltalk that compiles to JS. It’s buggy, only works with npm (not pnpm) and the production build takes a lot of time to compile (especially with larger projects). But it works! :sweat_smile:

I’m not sure if i should’ve included src/*.js (compiled js files) in .gitignore, but it seems like Amber developers commit those.

I also tried to install Pharo Smalltalk with Seaside web framework, but it ran out of space.

@wish cool! I added your projects to my lingua-splosion collection.

I also found some cool dotnet starters from user leighghunt!

2 Likes

Hi Andrei - you might be inspired for Go on Glitch by one of these projects:
~go-on-glitch
~go-echo-example
~hello-golang

2 Likes

Typo in the Glitchnomicon line 158: the Prettier config file has two r’s: .prettierrc.

deno also confirmed working for me.

Should I remove the cache on install or not?

1 Like

Gonna add in another language that is supported,
Xent.

1 Like

Putting a bunch of .NET Core templates up here:


(there’s a collection on my profile)

:black_heart:

2 Likes

good catch! will fix now

2 Likes
app@mealspos-app:~ 13:12 
$ go version
go version go1.11.2 linux/amd64

I just tested this and this statement seems to be incorrect or outdated. Though the version of Go installed was released on 2018/11/02 so you may run into some issues.

EDIT: Grammar fixes

3 Likes

Yes, I agree with you! I was able to run a hello world Go app without any problems.

2 Likes

Thanks for the correction! I’ll fix that bit of the list.

4 Likes

Bison and Yacc are also installed.

2 Likes

@jarcane Just tried a ruby and rails and here is the output:

app@mealspos-app:~ 18:51 
$ rails new mealspos
      create  
      create  README.md
      create  Rakefile
      create  .ruby-version
      create  config.ru
      create  .gitignore
      create  Gemfile
         run  git init from "."
Initialized empty Git repository in /app/mealspos/.git/
      create  package.json
      create  app
      create  app/assets/config/manifest.js
      create  app/assets/javascripts/application.js
      create  app/assets/javascripts/cable.js
      create  app/assets/stylesheets/application.css
      create  app/channels/application_cable/channel.rb
      create  app/channels/application_cable/connection.rb
      create  app/controllers/application_controller.rb
      create  app/helpers/application_helper.rb
      create  app/jobs/application_job.rb
      create  app/mailers/application_mailer.rb
      create  app/models/application_record.rb
      create  app/views/layouts/application.html.erb
      create  app/views/layouts/mailer.html.erb
      create  app/views/layouts/mailer.text.erb
      create  app/assets/images/.keep
      create  app/assets/javascripts/channels
      create  app/assets/javascripts/channels/.keep
      create  app/controllers/concerns/.keep
      create  app/models/concerns/.keep
      create  bin
      create  bin/bundle
      create  bin/rails
      create  bin/rake
      create  bin/setup
      create  bin/update
      create  bin/yarn
      create  config
      create  config/routes.rb
      create  config/application.rb
      create  config/environment.rb
      create  config/cable.yml
      create  config/puma.rb
      create  config/spring.rb
      create  config/storage.yml
      create  config/environments
      create  config/environments/development.rb
      create  config/environments/production.rb
      create  config/environments/test.rb
      create  config/initializers
      create  config/initializers/application_controller_renderer.rb
      create  config/initializers/assets.rb
      create  config/initializers/backtrace_silencers.rb
      create  config/initializers/content_security_policy.rb
      create  config/initializers/cookies_serializer.rb
      create  config/initializers/cors.rb
      create  config/initializers/filter_parameter_logging.rb
      create  config/initializers/inflections.rb
      create  config/initializers/mime_types.rb
      create  config/initializers/new_framework_defaults_5_2.rb
      create  config/initializers/wrap_parameters.rb
      create  config/locales
      create  config/locales/en.yml
      create  config/master.key
      append  .gitignore
      create  config/boot.rb
      create  config/database.yml
      create  db
      create  db/seeds.rb
      create  lib
      create  lib/tasks
      create  lib/tasks/.keep
      create  lib/assets
      create  lib/assets/.keep
      create  log
      create  log/.keep
      create  public
      create  public/404.html
      create  public/422.html
      create  public/500.html
      create  public/apple-touch-icon-precomposed.png
      create  public/apple-touch-icon.png
      create  public/favicon.ico
      create  public/robots.txt
      create  tmp
      create  tmp/.keep
      create  tmp/pids
      create  tmp/pids/.keep
      create  tmp/cache
      create  tmp/cache/assets
      create  vendor
      create  vendor/.keep
      create  test/fixtures
      create  test/fixtures/.keep
      create  test/fixtures/files
      create  test/fixtures/files/.keep
      create  test/controllers
      create  test/controllers/.keep
      create  test/mailers
      create  test/mailers/.keep
      create  test/models
      create  test/models/.keep
      create  test/helpers
      create  test/helpers/.keep
      create  test/integration
      create  test/integration/.keep
      create  test/test_helper.rb
      create  test/system
      create  test/system/.keep
      create  test/application_system_test_case.rb
      create  storage
      create  storage/.keep
      create  tmp/storage
      create  tmp/storage/.keep
      remove  config/initializers/cors.rb
      remove  config/initializers/new_framework_defaults_5_2.rb
         run  bundle install
The dependency tzinfo-data (>= 0) will be unused by any of the platforms Bundler is installing for. Bundler is installing for ruby but the dependency is only for x86-mingw32, x86-mswin32, x64-mingw32, java. To add those platforms to the bundle, run `bundle lock --add-platform x86-mingw32 x86-mswin32 x64-mingw32 java`.
Fetching gem metadata from https://rubygems.org/............
Fetching gem metadata from https://rubygems.org/.
Resolving dependencies.....
Fetching rake 13.0.1
Installing rake 13.0.1
Fetching concurrent-ruby 1.1.7
Installing concurrent-ruby 1.1.7
Fetching i18n 1.8.5
Installing i18n 1.8.5
Fetching minitest 5.14.1
Installing minitest 5.14.1
Using thread_safe 0.3.6
Using tzinfo 1.2.7
Using activesupport 5.2.4.3
Using builder 3.2.4
Using erubi 1.9.0
Using mini_portile2 2.4.0
Fetching nokogiri 1.10.10
Installing nokogiri 1.10.10 with native extensions
Using rails-dom-testing 2.0.3
Using crass 1.0.6
Fetching loofah 2.6.0
Installing loofah 2.6.0
Using rails-html-sanitizer 1.3.0
Using actionview 5.2.4.3
Fetching rack 2.2.3
Installing rack 2.2.3
Using rack-test 1.1.0
Using actionpack 5.2.4.3
Using nio4r 2.5.2
Fetching websocket-extensions 0.1.5
Installing websocket-extensions 0.1.5
Fetching websocket-driver 0.7.3
Installing websocket-driver 0.7.3 with native extensions
Using actioncable 5.2.4.3
Using globalid 0.4.2
Using activejob 5.2.4.3
Using mini_mime 1.0.2
Using mail 2.7.1
Using actionmailer 5.2.4.3
Using activemodel 5.2.4.3
Using arel 9.0.0
Using activerecord 5.2.4.3
Using mimemagic 0.3.5
Using marcel 0.3.3
Using activestorage 5.2.4.3
Fetching public_suffix 4.0.5
Installing public_suffix 4.0.5
Fetching addressable 2.7.0
Installing addressable 2.7.0
Fetching io-like 0.3.1
Installing io-like 0.3.1
Fetching archive-zip 0.12.0
Installing archive-zip 0.12.0
Fetching bindex 0.8.1
Installing bindex 0.8.1 with native extensions
Fetching msgpack 1.3.3
Installing msgpack 1.3.3 with native extensions
Fetching bootsnap 1.4.8
Installing bootsnap 1.4.8 with native extensions
Using bundler 2.1.4
Fetching byebug 11.0.1
Installing byebug 11.0.1 with native extensions
Fetching regexp_parser 1.7.1
Installing regexp_parser 1.7.1
Fetching xpath 3.2.0
Installing xpath 3.2.0
Fetching capybara 3.15.1
Installing capybara 3.15.1
Fetching childprocess 3.0.0
Installing childprocess 3.0.0
Fetching chromedriver-helper 2.1.1
Installing chromedriver-helper 2.1.1
Fetching coffee-script-source 1.12.2
Installing coffee-script-source 1.12.2
Fetching execjs 2.7.0
Installing execjs 2.7.0
Fetching coffee-script 2.4.1
Installing coffee-script 2.4.1
Using method_source 1.0.0
Using thor 1.0.1
Using railties 5.2.4.3
Fetching coffee-rails 4.2.2
Installing coffee-rails 4.2.2
Fetching ffi 1.13.1
Installing ffi 1.13.1 with native extensions
Fetching jbuilder 2.10.0
Installing jbuilder 2.10.0
Fetching rb-fsevent 0.10.4
Installing rb-fsevent 0.10.4
Fetching rb-inotify 0.10.1
Installing rb-inotify 0.10.1
Fetching ruby_dep 1.5.0
Installing ruby_dep 1.5.0
Fetching listen 3.1.5
Installing listen 3.1.5
Fetching puma 3.12.6
Installing puma 3.12.6 with native extensions
Using sprockets 3.7.2
Using sprockets-rails 3.2.1
Using rails 5.2.4.3
Fetching rubyzip 1.3.0
Installing rubyzip 1.3.0
Fetching sass-listen 4.0.0
Installing sass-listen 4.0.0
Fetching sass 3.7.4
Installing sass 3.7.4
Fetching tilt 2.0.10
Installing tilt 2.0.10
Fetching sass-rails 5.0.7
Installing sass-rails 5.0.7
Fetching selenium-webdriver 3.142.7
Installing selenium-webdriver 3.142.7
Fetching spring 2.0.2
Installing spring 2.0.2
Fetching spring-watcher-listen 2.0.1
Installing spring-watcher-listen 2.0.1
Fetching sqlite3 1.4.2
Installing sqlite3 1.4.2 with native extensions
Fetching turbolinks-source 5.2.0
Installing turbolinks-source 5.2.0
Fetching turbolinks 5.2.1
Installing turbolinks 5.2.1
Fetching uglifier 4.2.0
Installing uglifier 4.2.0
Fetching web-console 3.7.0
Installing web-console 3.7.0
Bundle complete! 18 Gemfile dependencies, 78 gems now installed.
Use `bundle info [gemname]` to see where a bundled gem is installed.
Post-install message from i18n:

HEADS UP! i18n 1.1 changed fallbacks to exclude default locale.
But that may break your application.

If you are upgrading your Rails application from an older version of Rails:

Please check your Rails app for 'config.i18n.fallbacks = true'.
If you're using I18n (>= 1.1.0) and Rails (< 5.2.2), this should be
'config.i18n.fallbacks = [I18n.default_locale]'.
If not, fallbacks will be broken in your app by I18n 1.1.x.

If you are starting a NEW Rails application, you can ignore this notice.

For more info see:
https://github.com/svenfuchs/i18n/releases/tag/v1.1.0

Post-install message from chromedriver-helper:

  +--------------------------------------------------------------------+
  |                                                                    |
  |  NOTICE: chromedriver-helper is deprecated after 2019-03-31.       |
  |                                                                    |
  |  Please update to use the 'webdrivers' gem instead.                |
  |  See https://github.com/flavorjones/chromedriver-helper/issues/83  |
  |                                                                    |
  +--------------------------------------------------------------------+

Post-install message from sass:

Ruby Sass has reached end-of-life and should no longer be used.

* If you use Sass as a command-line tool, we recommend using Dart Sass, the new
  primary implementation: https://sass-lang.com/install

* If you use Sass as a plug-in for a Ruby web framework, we recommend using the
  sassc gem: https://github.com/sass/sassc-ruby#readme

* For more details, please refer to the Sass blog:
  https://sass-lang.com/blog/posts/7828841

         run  bundle exec spring binstub --all
* bin/rake: spring inserted
* bin/rails: spring inserted

Besides some depreciated dependencies the rails generator seems to work. I’ll keep you posted.

UPDATE:

Rails seems to be broken too. When I attempt to access the project I get this in my console:

=> Booting Puma    3:01 PM

=> Rails 5.2.4.3 application starting in development    3:01 PM

=> Run `rails server -h` for more startup options    3:01 PM

Puma starting in single mode...    3:01 PM

* Version 3.12.6 (ruby 2.3.1-p112), codename: Llamas in Pajamas    3:01 PM

* Min threads: 5, max threads: 5    3:01 PM

* Environment: development    3:01 PM

* Listening on tcp://localhost:3000    3:01 PM

Use Ctrl-C to stop    3:01 PM

Started GET "/" for 72.225.157.15 at 2020-08-19 19:01:49 +0000    3:01 PM

Started GET "/___glitch_loading_status___" for 72.225.157.15 at 2020-08-19 19:01:49 +0000    3:01 PM

Cannot render console from ::ffff:10.10.85.58! Allowed networks: 127.0.0.1, ::1, 127.0.0.0/127.255.255.255    3:01 PM

Cannot render console from ::ffff:10.10.94.207! Allowed networks: 127.0.0.1, ::1, 127.0.0.0/127.255.255.255    3:01 PM

Started GET "/___glitch_loading_status___" for 72.225.157.15 at 2020-08-19 19:01:49 +0000    3:01 PM

Started GET "/" for 72.225.157.15 at 2020-08-19 19:01:49 +0000    3:01 PM

Started GET "/" for 72.225.157.15 at 2020-08-19 19:01:49 +0000    3:01 PM

Cannot render console from ::ffff:10.10.85.58! Allowed networks: 127.0.0.1, ::1, 127.0.0.0/127.255.255.255    3:01 PM

Cannot render console from ::ffff:10.10.91.233! Allowed networks: 127.0.0.1, ::1, 127.0.0.0/127.255.255.255    3:01 PM

Cannot render console from ::ffff:10.10.94.207! Allowed networks: 127.0.0.1, ::1, 127.0.0.0/127.255.255.255    3:01 PM

ActionController::RoutingError (No route matches [GET] "/___glitch_loading_status___"):    3:01 PM

actionpack (5.2.4.3) lib/action_dispatch/middleware/debug_exceptions.rb:65:in `call'    3:01 PM

web-console (3.7.0) lib/web_console/middleware.rb:135:in `call_app'    3:01 PM

web-console (3.7.0) lib/web_console/middleware.rb:22:in `block in call'    3:01 PM

web-console (3.7.0) lib/web_console/middleware.rb:20:in `catch'    3:01 PM

web-console (3.7.0) lib/web_console/middleware.rb:20:in `call'    3:01 PM

actionpack (5.2.4.3) lib/action_dispatch/middleware/show_exceptions.rb:33:in `call'    3:01 PM

railties (5.2.4.3) lib/rails/rack/logger.rb:38:in `call_app'    3:01 PM

railties (5.2.4.3) lib/rails/rack/logger.rb:26:in `block in call'    3:01 PM

activesupport (5.2.4.3) lib/active_support/tagged_logging.rb:71:in `block in tagged'    3:01 PM

activesupport (5.2.4.3) lib/active_support/tagged_logging.rb:28:in `tagged'    3:01 PM

activesupport (5.2.4.3) lib/active_support/tagged_logging.rb:71:in `tagged'    3:01 PM

railties (5.2.4.3) lib/rails/rack/logger.rb:26:in `call'    3:01 PM

sprockets-rails (3.2.1) lib/sprockets/rails/quiet_assets.rb:13:in `call'    3:01 PM

actionpack (5.2.4.3) lib/action_dispatch/middleware/remote_ip.rb:81:in `call'    3:01 PM

actionpack (5.2.4.3) lib/action_dispatch/middleware/request_id.rb:27:in `call'    3:01 PM

rack (2.2.3) lib/rack/method_override.rb:24:in `call'    3:01 PM

rack (2.2.3) lib/rack/runtime.rb:22:in `call'    3:01 PM

activesupport (5.2.4.3) lib/active_support/cache/strategy/local_cache_middleware.rb:29:in `call'   3:01 PM

actionpack (5.2.4.3) lib/action_dispatch/middleware/executor.rb:14:in `call'    3:01 PM

actionpack (5.2.4.3) lib/action_dispatch/middleware/static.rb:127:in `call'    3:01 PM

rack (2.2.3) lib/rack/sendfile.rb:110:in `call'    3:01 PM

railties (5.2.4.3) lib/rails/engine.rb:524:in `call'    3:01 PM

puma (3.12.6) lib/puma/configuration.rb:227:in `call'    3:01 PM

puma (3.12.6) lib/puma/server.rb:706:in `handle_request'    3:01 PM

puma (3.12.6) lib/puma/server.rb:476:in `process_client'    3:01 PM

puma (3.12.6) lib/puma/server.rb:334:in `block in run'    3:01 PM

puma (3.12.6) lib/puma/thread_pool.rb:135:in `block in spawn_thread'    3:01 PM

ActionController::RoutingError (No route matches [GET] "/___glitch_loading_status___"):    3:01 PM

actionpack (5.2.4.3) lib/action_dispatch/middleware/debug_exceptions.rb:65:in `call'    3:01 PM

web-console (3.7.0) lib/web_console/middleware.rb:135:in `call_app'    3:01 PM

web-console (3.7.0) lib/web_console/middleware.rb:22:in `block in call'    3:01 PM

web-console (3.7.0) lib/web_console/middleware.rb:20:in `catch'    3:01 PM

web-console (3.7.0) lib/web_console/middleware.rb:20:in `call'    3:01 PM

actionpack (5.2.4.3) lib/action_dispatch/middleware/show_exceptions.rb:33:in `call'    3:01 PM

railties (5.2.4.3) lib/rails/rack/logger.rb:38:in `call_app'    3:01 PM

railties (5.2.4.3) lib/rails/rack/logger.rb:26:in `block in call'    3:01 PM

activesupport (5.2.4.3) lib/active_support/tagged_logging.rb:71:in `block in tagged'    3:01 PM

activesupport (5.2.4.3) lib/active_support/tagged_logging.rb:28:in `tagged'    3:01 PM

activesupport (5.2.4.3) lib/active_support/tagged_logging.rb:71:in `tagged'    3:01 PM

railties (5.2.4.3) lib/rails/rack/logger.rb:26:in `call'    3:01 PM

sprockets-rails (3.2.1) lib/sprockets/rails/quiet_assets.rb:13:in `call'    3:01 PM

actionpack (5.2.4.3) lib/action_dispatch/middleware/remote_ip.rb:81:in `call'    3:01 PM

actionpack (5.2.4.3) lib/action_dispatch/middleware/request_id.rb:27:in `call'    3:01 PM

rack (2.2.3) lib/rack/method_override.rb:24:in `call'    3:01 PM

rack (2.2.3) lib/rack/runtime.rb:22:in `call'    3:01 PM

activesupport (5.2.4.3) lib/active_support/cache/strategy/local_cache_middleware.rb:29:in `call'    3:01 PM

actionpack (5.2.4.3) lib/action_dispatch/middleware/executor.rb:14:in `call'    3:01 PM

actionpack (5.2.4.3) lib/action_dispatch/middleware/static.rb:127:in `call'    3:01 PM

rack (2.2.3) lib/rack/sendfile.rb:110:in `call'    3:01 PM

railties (5.2.4.3) lib/rails/engine.rb:524:in `call'    3:01 PM

puma (3.12.6) lib/puma/configuration.rb:227:in `call'    3:01 PM

puma (3.12.6) lib/puma/server.rb:706:in `handle_request'    3:01 PM

puma (3.12.6) lib/puma/server.rb:476:in `process_client'    3:01 PM

puma (3.12.6) lib/puma/server.rb:334:in `block in run'    3:01 PM

puma (3.12.6) lib/puma/thread_pool.rb:135:in `block in spawn_thread'     3:01 PM

This is only from creating a new project using rails new <project>. No code has been touched at all.

UPDATE 2: just got a 504 Gateway Time-out error

2 Likes