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

Use fastboot #204

Closed
iqualfragile opened this issue Oct 24, 2015 · 29 comments
Closed

Use fastboot #204

iqualfragile opened this issue Oct 24, 2015 · 29 comments
Labels
A-frontend 🐹 C-enhancement ✨ Category: Adding new behavior or a change to the way an existing feature works

Comments

@iqualfragile
Copy link

I mean its bascially a static site, nothing animated.
Why does it have to use javascript? For that sweet asynchronous loading? I don't think thats worth it.

@azerupi
Copy link

azerupi commented Oct 24, 2015

The whole front-end is using Ember.js (if I am not mistaken). It may not be animated but it makes extensive use of Javascript to render the pages.

@iqualfragile
Copy link
Author

yes, exactly my point, its using javascript where static pages would be the tool of choice.

@azerupi
Copy link

azerupi commented Oct 25, 2015

I agree that most parts of the page could and should probably be rendered server-side and only use JavaScript to enhance the page with animations, graphics, ...

(handlebars-rust)?

This is probably not going to change at the moment but it's worth remembering when Crates.io get's its redesign.

@alexcrichton can probably make a more "official" comment though :)

@steveklabnik
Copy link
Member

When FastBoot lands, we'll get server-side stuff with no code changes, just some ops ones.

Sent from my iPhone

On Oct 25, 2015, at 07:20, Mathieu David notifications@github.com wrote:

I agree that most parts of the page could and should probably be rendered server-side and only use JavaScript to enhance the page with animations, graphics, ...

(handlebars-rust)?

This is probably not going to change at the moment but it's worth remembering when Crates.io get's its redesign.

@alexcrichton can probably make a more "official" comment though :)


Reply to this email directly or view it on GitHub.

@crumblingstatue
Copy link

While I have no problem with needing JavaScript, the page sometimes renders slow and uses a lot of CPU when loading. It would be nice if a beefy server did the rendering instead of the client.

@iqualfragile
Copy link
Author

its not even like doing that stuff on the server would be costly, you can render it once and cache the results until its updated the next time which i guess is a timespan of about 2 months for an average crate, maybe less often.

@steveklabnik
Copy link
Member

I tried a preview of FastBoot today, but it's gonna require something like Ember 2.3.x, so we would have to upgrade before using it.

@tbu-
Copy link

tbu- commented Jun 30, 2016

What's the status on this? Can we help with activating FastBoot for crates.io, is there anything that needs to be done?

@steveklabnik
Copy link
Member

Fastboot is very close, but not quite done: https://www.npmjs.com/package/fastboot

1.0.0-beta.4 is the latest of 6 releases

@carols10cents carols10cents added A-ui C-enhancement ✨ Category: Adding new behavior or a change to the way an existing feature works labels Dec 15, 2016
@carols10cents carols10cents changed the title Crates.io unseable without javascript Crates.io unusable without javascript Apr 26, 2017
@iqualfragile
Copy link
Author

i am not too confident fastboot will ever land, its now almost a year later, and they have reached rc-6

development is slow: https://github.com/ember-fastboot/fastboot/commits/master

and issues are plentiful: ember-fastboot/ember-cli-fastboot#360

this might not be the way to go for allowing people to view static content without javascript.

@tbu-
Copy link

tbu- commented Jul 20, 2017

ember-fastboot 1.0 is live: ember-fastboot/ember-cli-fastboot#396 (comment).

@nox
Copy link

nox commented Aug 28, 2017

If hex.pm can manage to not rely on JavaScript, there should be no technical reason crates.io cannot, right?

Edit: rewritten in a less inflammatory way.

@carols10cents
Copy link
Member

@nox We're working on it! Unfortunately, everyone working on crates.io is a volunteer, so these things take time. Thank you for your patience!

@nox
Copy link

nox commented Sep 2, 2017

Thank you for your patience!

@carols10cents Didn't see your answer earlier. ACK, and I'll sit in a corner and wait patiently.

@iqualfragile
Copy link
Author

ok, so fastboot has now landed, what can i do to help enable people to view static content without executing a turing complete language on their mobile cpus?

@carols10cents
Copy link
Member

@locks @Turbo87 I know yinz have been busy lately, could you give a status update on crates.io using fastboot please? What work is left to do? Is there anything blocking?

@Turbo87
Copy link
Member

Turbo87 commented Sep 13, 2017

@carols10cents next step would be to cleanup and finish #819 in some way. unfortunately my dayjob keeps me pretty busy at the moment, but I'll try to have a look at it when I find a bit of time... 😞

@locks
Copy link
Contributor

locks commented Sep 14, 2017

I've also been busy with work, and I believe that's also true for @sivakumar-kailasam. It's still on my mind!

@sivakumar-kailasam
Copy link
Contributor

I have a mini vacation coming up in a couple of weeks. I hope to revisit this then.

@Turbo87
Copy link
Member

Turbo87 commented Oct 1, 2017

What work is left to do? Is there anything blocking?

I've taken another look, and it seems one of the main issues that is preventing this so far is our use of localstorage to keep session data. It would be great if we could use https://github.com/simplabs/ember-simple-auth and/or https://github.com/Vestorly/torii for the GitHub login flow, but it seems that our use of their OAuth system doesn't match how torii is designed to do it.

Is there documentation somewhere that details on how authentication with crates.io works or is supposed to work?

@carols10cents
Copy link
Member

@Turbo87 There isn't much documentation on auth, no.. I thought it was pretty vanilla OAuth flow? I'm going to start a new issue to chat about oauth specifically: #1103

@tbu-
Copy link

tbu- commented Oct 3, 2017

Even if auth doesn't work without JS, it will still be a huge improvement. Would that be easier to implement?

@carols10cents carols10cents changed the title Crates.io unusable without javascript Use fastboot Oct 10, 2017
@seanlinsley
Copy link

I've created a proof of concept PR to show how Crates.io could be rendered server-side: #1173

@nox
Copy link

nox commented Sep 11, 2018

Any news on that?

@locks
Copy link
Contributor

locks commented Sep 11, 2018

@nox we (Ember community peeps) got busy with life stuff :/ Coincidentally I was going to try updating the Ember dependencies today. I'll see if I can kickstart the efforts again.

@est31
Copy link
Member

est31 commented Sep 11, 2018

Due to the sluggishness I've started to avoid crates.io and instead I'm using a self-written, self-hosted alternative. It's much leaner and faster than crates.io, even if it adopts fastboot one day. It only has the things that I need and lacks some things that might be needed for a full crates.io replacement, but I'm happy. https://gitlab.com/est/cargo-local-serve

@kzys
Copy link
Contributor

kzys commented Apr 10, 2019

I'm going to submit a few small PRs to remove jQuery from here and there.

https://github.com/ember-fastboot/ember-cli-fastboot#no-jquery

Running most of jQuery requires a full DOM. Most of jQuery will just not be supported when running in FastBoot mode. One exception is network code for fetching models, which we intended to support, but doesn't work at present.

Here is the first one: #1714

@kzys
Copy link
Contributor

kzys commented Apr 11, 2019

And the second one: #1715

@locks
Copy link
Contributor

locks commented Sep 7, 2019

Work is currently being tracked at #1811 :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-frontend 🐹 C-enhancement ✨ Category: Adding new behavior or a change to the way an existing feature works
Projects
None yet
Development

No branches or pull requests