Closed jessicaschilling closed 3 years ago
Refined requirements to include the following:
* Application Req: Ecosystem Index Page/ Discovery View
* to include alternate list view, with logos
* Application: Project Profile Page/ Detailed Information Page
* to display and segment all associated tags/filters (linked to top level category pages)
* Embeddable Object: CTA Section/ Preview View
* Application: Category Index Pages / Category Specific (top level) Search Results Pages
Next Steps:
We had a touch point today where we honed details in the context of low fidelity designs. Key areas we covered were:
cc: @jessicaschilling & @d3as8a
@jessicaschilling I'd like to start an exploratory discussion here about an alternate stack—still based on Vue.
We've been talking about the potential upside of using Vue/Nuxt in place of VuePress for this project.
Nuxt is to Vue as Next is to React:
VuePress is similar in implementation: pages are compiled into a static site and served server-side
Since the IPFS ecosystem is interactive, a great deal of the functionality isn't really content or page-based. Instead it's state-based (i.e., what's the state of a series of filters and other user inputs).
The benefits of using Nuxt are:
static
mode: so it will compile into a static sitejson
, in the case of structured data, and PRs can still be made to amend dataThe VuePress docs themselves have a section about Nuxt, where they stipulate when it's better to use VuePress:
Nuxt is capable of doing what VuePress does, but it’s designed for building applications. VuePress is focused on content-centric static sites and provides features tailored for technical documentation out of the box.
In other words, while Nuxt has a static mode that's comparable, it behaves more like an application. VuePress is designed to behave like a content website.
[FEEDBACK REQUESTED] @zebateira @jdiogopeixoto @cwaring -- I mentioned @orvn's comment above in our ipfs.io replatforming discussion in https://github.com/ipfs/website/issues/412, but want to confirm that none of you have any issues with the directory being built on Nuxt as part of a larger IPFS/PL website ecosystem. Can you please weigh in?
@orvn -- please note that the same requirements of the "teaser" version to be embedded in various external sites still apply. Correct that this platform decision would have no impact on that work?
@orvn -- please note that the same requirements of the "teaser" version to be embedded in various external sites still apply. Correct that this platform decision would have no impact on that work?
@jessicaschilling it would actually the embeddable piece easier to implement. I mentioned this above, but I didn't use the word teaser (see embedded container (CTA/summary view)
) in my previous comment.
The only reservation is regarding the IPFS requirement, if the end static application is required to run at both root domain (app.website.tld) and gateway access (gateway.ipfs.io/ipfs/cid) then this needs to be evaluated first.
The only reservation is regarding the IPFS requirement, if the end static application is required to run at both root domain (app.website.tld) and gateway access (gateway.ipfs.io/ipfs/cid) then this needs to be evaluated first.
The legacy Slingshot site (which is on static Nuxt) does get served up by that path: gateway.ipfs.io/ipfs/Qmf3...HortQf
Except none of the relative paths for resources work because those are separate CIDs. Does this help shed light on anything @cwaring?
Actually you may not be aware of the background behind this. In the past if you were using the IPFS browser extension then you would get redirected to a gateway url whenever a _dnslink
entry was detected. So it was important for sites to work at multiple path depths (with relative assets) in order to not break the functionality.
Thankfully we now have a root origin support in IPFS so we can access any site from b32cid.ipfs.dweb.link or b32cid.localhost so this doesn't break websites.
However for legacy support many gateways still only support /ipfs/cid access so all of our primary websites are designed to work in both scenarios. It also means you can ipfs get cid
a static website to a local folder and run it without a web server.
Our VuePress implementation works for both these cases so it would be nice to know if Nuxt can do the same. Webpack sites often have trouble due to dynamic requires and forced absolute paths in the build output but it is possible to hook into the config and dynamically configure the basepath for webpack and vue router. You can see an example of how I did that here: https://github.com/cwaring/vuepress-plugin-ipfs
Being Pragmatic and given that this is no longer a critical breaking feature I personally wouldn't say it's a hard requirement, however this should be established early on with whoever is signing this project off because it might not be possible to implement at the end.
If you know a way that Nuxt does this out of the box then we have all bases covered! Keen to have your input around this.
@cwaring @orvn I'm afraid we do need to consider this a hard requirement.
@cwaring @orvn I'm afraid we do need to consider this a hard requirement.
Understood @jessicaschilling, will look into viability and find out if this is a blocker. At the moment I'm optimistic (I suspect it's not a big hurdle).
Actually you may not be aware of the background behind this. In the past if you were using the IPFS browser extension then you would get redirected to a gateway url whenever a _dnslink entry was detected.
Ah, you're totally right. I didn't know about the legacy behavior. Thanks for explaining.
Webpack sites often have trouble due to dynamic requires and forced absolute paths in the build output but it is possible to hook into the config and dynamically configure the basepath for webpack and vue router.
For our part of the build process gulp
does all the extra compilation we need, but nuxt itself is pretty deeply coupled with Webpack it (VuePress too, I think?). We can definitely use this approach to transform path structure during compile time cc: @timelytree who has done this before on nuxt, and probably has other insights to add to this issue discussion.
You can see an example of how I did that here
Thanks! I'll have to read some IPFS docs and test a few things, but this does feel like the kind of thing that's doable for nuxt as well (without taking up excess time).
Great! I'm also starting on a Nuxt app this week so I'll see how elegantly it can handle relative paths now. The less hacking we have to do the better 🤞
I mentioned @orvn's comment above in our ipfs.io replatforming discussion in ipfs/website#412, but want to confirm that none of you have any issues with the directory being built on Nuxt as part of a larger IPFS/PL website ecosystem. Can you please weigh in?
Sounds good to me 👍 The issue with the relative paths is something that needs to be tackled but like @orvn said, it's doable.
Today we started by briefly talking about the technical stack. We then reviewed prototype feedback, how it fits into the lo-fi design, and what alterations may be necessary. Key areas we covered were:
cc: @jessicaschilling & @d3as8a & @emilymariahh
In a touch point yesterday we reviewed mid-fidelity designs, with the IPFS brand standards applied, as well as an enhanced mid-fi version of the embedded view. We also spoke about nuxt compatibility with IPFS Gateway routes, which now works (a nuxt [module is available here]()).
Key areas we covered were:
A new type of chart, displayed as horizontal segments instead of a treemap, which solves a number of hurdles including:
Minor adjustments for mid-fi design of index and singular views
Review of new mid-fi design for embedded view
Consensus on miscellaneous other areas like: filter input placement, pagination, button position, heading position, URL formatting
cc: @jessicaschilling & @d3as8a & @emilymariahh
We had a new touchpoint yesterday where we reviewed high fidelity designs and new specifications.
Key areas:
Clarity around standalone treemap/logo-map requirement
Review of high-fidelity designs and confirmed details before dev handoff
Review of alternate visual treatment intended to test styling variability
Progress with segment chart
cc: @jessicaschilling & @d3as8a & @emilymariahh
We had several touchpoints over the last 3 weeks, including one today. During this time, we kicked off development and hit milestones.
json
with content areas become availablejson
schemajson
structurecc: @jessicaschilling & timelytree
We've soft-launched https://ecosystem.ipfs.io, so will close this issue. Follow along with wrap-up and future work at https://github.com/ipfs/ecosystem-directory/!
Objective
Replace the existing canonical ecosystem diagram with an interactive, information-rich directory that effectively illustrates how IPFS adds critical value and tech enablement for IPFS builder orgs, projects, and industries. Presentation must be at, at minimum, two levels of detail:
Latest status documents
These items are evolving, but the latest will always be listed here. Check back regularly.
Draft features/requirements
It's safe to assume that these requirements are roughly accurate, but please keep in mind that details can change as the project develops. Always assume that materials under "Latest status documents" above are the source of latest truth.
Features: Summary view
An at-a-glance view of top IPFS implementers and the tangible value that IPFS provides them. Includes the following features and requirements:
Features: Detailed view(s)
A not-overwhelming, easily searchable/filterable showcase for exploring how builders leverage IPFS to succeed and the ways in which IPFS provides value. This detailed view may include additional drill-down views subject to prototyping and refinement, but overall includes the following features and requirements:
A sortable/filterable discovery mechanism for finding builders with similar concerns/aims to yours, using the following as parameters:
Industry/subject type(s) (multi-choice filter)
Product focus (this needs refining, particularly vis-a-vis overlap with industry/subject):
IPFS enablers/benefits (multi-choice filter):
Tools/implementations used (multi-choice filter):
Size/scale factor as demonstrated by "big number" metrics (TBD - not for initial release, but should be built with this in mind)
Additional requirements
Must be easily updated via PR, with the awareness that in future we may use Forestry to enable additions and updates AND/OR pull data from a CRM via API(requirements change: data source of truth will live in third-party DB and updated via re-importing JSON from that DB, so update request flow is out of scope here)In the meantime, must include well-written checklist in PR template to make submission as easy and standardized as possibleLegacy documents
Please note that these may be outdated as project requirements continue to develop, and should be used for reference only.