staticallyio / statically

The CDN for developers.
https://statically.io
MIT License
582 stars 91 forks source link

Statically roadmap, feature requests, technologies, & resources #30

Open fransallen opened 5 years ago

fransallen commented 5 years ago

This will be used as a roadmap, feature requests, and resources for Statically.

Help us make a nice service for fast & better static files!

Do you need a new feature on Statically? Let us know here!

Roadmap

Accepted feature requests

Technologies

Resources

The following are some good sources for knowing more about Statically:

curbengh commented 5 years ago

I have a feature request on Imgpx.

Currently it automatically converts image to webp, provided "Accept: image/webp" header is sent.

However, if the original image is a webp and the header is missing, Imgpx would convert it to jpg instead.

Perhaps Imgpx can provide an option/url parameter (e.g. ?auto_format=false) to opt-out of conversion? That option can also apply to opt-out jpg/png -> webp conversion.


There is a use case for that option. For example, I embed an image with regular resolution, user can open the link to get the full resolution,

<a href="full-res.webp"><img src="low-res.webp"></a>

When accessing a link through <a>, browser does not send Accept: image/webp header, hence the browser wouldn't get the webp and receive jpg instead.

My suggestion is to give an option to override that behavior, so webp is always served (when accessing .webp) regardless whether the header is sent.

fransallen commented 5 years ago

Previously, we thought that auto-jpeg-ing webp image bases would be a solution for website owners providing .webp content to users who might be using browsers that don't support webp, but there doesn't seem to be a reason to do it again today, because we are most want auto-webp.

?auto_format=false would be a good option. But let me see what can be done from the backend, and will back to you soon.

curbengh commented 5 years ago

Unfortunately, auto-jpeg is still required, notably webp currently is not supported by Safari.

Alternatively, Statically could rely on user agent instead of image/webp header, so auto-jpeg if Safari or unsupported browser or old browser is detected. auto-webp could also use that logic.

Another feature request is image transformations (or even video!) (resize, crop, rotate, etc). Useful for responsive image (e.g. <img srcset>). This is a huge one, so feel free to ignore it. I would love to see Statically disrupts image management industry (Cloudinary, Imgix, Kraken...).

curbengh commented 5 years ago

As for Libs, I think it's better to mirror npmjs than cdnjs. cdnjs has strict inclusion criteria, there are currently >150 open PRs. By mirroring npmjs, the libraries in those open PRs would also be included, along with thousands of libraries not found in cdnjs.

I'm aware that user can use github mirror instead, because npm libraries mostly originate from github repos. But doing version update around git commit id is rather un-intuitive in a production environment.

To illustrate, currently I'm using loading-attribute-polyfill library which is published in npm. As it's not included in cdnjs yet, I have to use github mirror instead. Looking through commit history, I know that 6e12e0c corresponds to v1.1.0. When v2 is released, I would have to find out the commit id that correspond to that version.

fransallen commented 5 years ago

notably webp currently is not supported by Safari.

Just forget about it for a moment :)

Let's keep auto-format enabled by default. And yeah, I just enabled auto_format for .webp, can be used like auto_format=0 or auto_format=false :heavy_check_mark:.

Example: https://cdn.statically.io/img/www.gstatic.com/webp/gallery/1.sm.webp?auto_format=false

Alternatively, Statically could rely on user agent instead of image/webp header

This one is that I personally wanted, but listing what browser, what version might be a routine work in the end. Let's put this on top first and see what we can do next.

Another feature request is image transformations (or even video!)

Yup, this is a big one! Probably we can do some simple image transformations on Statically, let's put this on top. Feel free to check out Imgpx Docs if you haven't yet, it contains about image modification; resize, crop, filter, remove background, and more.


As for Libs, I think it's better to mirror npmjs than cdnjs.

We did look at npmjs, this is something we might do in the future, let's put this on top!

curbengh commented 5 years ago

Let's keep auto-format enabled by default. And yeah, I just enabled auto_format for .webp, can be used like auto_format=0 or auto_format=false ✔️.

Example: https://cdn.statically.io/img/www.gstatic.com/webp/gallery/1.sm.webp?auto_format=false

AWESOME

This one is that I personally wanted, but listing what browser, what version might be a routine work in the end. Let's put this on top first and see what we can do next.

yeah, keeping track of browser UA—especially those exotic ones—is indeed a grunt. But since auto_format is here, I think Statically can still stick with header method.

Yup, this is a big one! Probably we can do some simple image transformations on Statically, let's put this on top. Feel free to check out Imgpx Docs if you haven't yet, it contains about image modification; resize, crop, filter, remove background, and more.

AWESOME

fransallen commented 5 years ago

Also added support for format=webp parameter, this will forced Statically converting image to webp format. Expecting more parameter options soon.

curbengh commented 5 years ago

On the url parameter, can I suggest to use 0 | 1 instead of false | true for boolean?

Google currently uses 0 | 1.

I know the suggestion is a breaking change, but once more and more parameters are introduced, 0 | 1 at least can help shorten a bit.

gacallea commented 4 years ago

@fransallen,

first things first: thank you ever so much for statically!

I was wondering if uploading is supported, specifically with a bundler and their plugins. e.g: https://github.com/toxic-johann/webpack-cdn-upload-plugin

Integrating the bundler/plugin within a project would be so convenient and much more efficient.

please and thank you

DevFelixDorn commented 4 years ago

Hello, maybe you/i could add a section on how to self host this, what do you think about this?

munirkamal commented 4 years ago

I would like to suggest a feature request for the screenshot feature. It works well but not for those pages which has CSS animations on the content/section. That ends up with incorrect screenshots. How about adding a delay timer parameter to take the screenshot? Or wait for the page to load fully before taking a screenshot?

curbengh commented 4 years ago

@fransallen you should mark wordpress as done.

Great work 👍

fransallen commented 4 years ago

Hi @curbengh, thanks for reminding me. Checked.

Also thinking maybe I would move this to a more dedicated place like on the website, and bring it closer to Docs for better discovery. Will provide all updates ASAP.

javadalmasi commented 3 years ago

Network expansion (increase of nodes) There are content distribution networks that help make the service more accessible. 1- 5centscdn.com with more than 1100 pop sites (akamai) 2- arvancloud.com suitable for distribution in Iran and India (many pop sites in Iran and India) Using the multicdn ns1 method, you can have a network with more distribution.