core: Support web packaging

1 vote

Vote

Raised 0% of 6,000 credits
(6,000 credits = 1,000 hours or £33,000.00)

Implement automatic creation and signing of .sxg files, so edge CDN servers (e.g. hosted by Google) can preload pages to users.

https://developers.google.com/web/updates/2018/11/signed-exchanges

Suggested by Chris Graham on 10th June 2019

core: Ensure we are using web font loader with Google Fonts

0 votes

Vote

Raised 0% of 12 credits
(12 credits = 2 hours or £66.00)

We must not have any Google Fonts blocking the critical rendering path.

Google does provide a solution for this:
https://www.lockedownseo.com/load-google-fonts-asynchronously-for-page-speed/

Suggested by Chris Graham on 10th June 2019

core: Performance-centric image overhaul

1 vote

Vote

Raised 0% of 48 credits
(48 credits = 8 hours or £264.00)

We can do responsive images simply using something like width: 100% in CSS or width="100%" in HTML.

This makes things mobile-friendly, but it makes things less-friendly performance-wise as it requires a page reflow once the image metadata (width and height specifically) loads.

Ideally we would be abl…

Suggested by Chris Graham on 10th June 2019

core: Theme options specifying which CSS/JS files to merge into 'global'

0 votes

Vote

Raised 0% of 18 credits
(18 credits = 3 hours or £99.00)

If CSS/JS files are consistently used together, they can be merged.

Previously we tried to automatically detect what CSS/JS files were used on the home page. However, it was over-complex and unstable when caching is involved, making it very difficult to debug and making the code horrible.

A better ap…

Suggested by Chris Graham on 10th June 2019

core: Support Google Translate API v3

0 votes

Vote

Raised 0% of 48 credits
(48 credits = 8 hours or £264.00)

https://cloud.google.com/translate/docs/intro-to-v3

They offer a free tier (I don't believe they did so before).
They provide support for defining terms... so we could provide some kind of editable master-list of terms that should not be translated.

Suggested by Chris Graham on 8th June 2019

ldap: Support STARTTLS

1 vote

Vote

Raised 0% of 6 credits
(6 credits = 1 hour or £33.00)

Current LDAP support just assumes the original LDAP protocol, with no encryption layer.

PHP has functionality for STARTTLS:
https://www.php.net/manual/en/function.ldap-start-tls.php
It's undocumented, but usage seems straight forward.

An option (or even unofficial hidden option) could be added to s…

Suggested by Chris Graham on 16th May 2019

core_themeing: Support dark mode in default theme

1 vote

Vote

Raised 0% of 120 credits
(120 credits = 20 hours or £660.00)

See Safari's announcement:
https://webkit.org/blog/8718/new-webkit-features-in-safari-12-1/

You can make a website light/dark based on media queries. This would be a really cool feature for Composr's default theme.

Currently it's non-standardised.

What is exciting to me is that this may be cool e…

Suggested by Chris Graham on 5th April 2019

recommend: Support web share API

0 votes

Vote

Raised 0% of 18 credits
(18 credits = 3 hours or £99.00)

https://wicg.github.io/web-share/

At this time I think only Safari supports it, so it's very early days. It is interesting though.

Suggested by Chris Graham on 5th April 2019

core_database_drivers: Cleanup queries so can_arbitrary_groupby/remove_duplicate_rows

1 vote

Vote

Raised 0% of 24 credits
(24 credits = 4 hours or £132.00)

In various places we use can_arbitrary_groupby and/or remove_duplicate_rows to strip out duplicated rows coming out of SQL queries.

This is because doing JOINs on tables will multiply up rows on the main table being queried, if the joined table has multiple matching records.
For example, if you are usi…

Suggested by Chris Graham on 3rd April 2019

core: Static cache URL whitelist

1 vote

Vote

Raised 0% of 12 credits
(12 credits = 2 hours or £66.00)

Allow configuring a whitelist (series of regexps) specifying what URLs may be static-cached.

This is to preserve disk space, bots may generate lots of invalid URLs and hence fill up the static cache with junk.

Suggested by Chris Graham on 19th March 2019