Giter Club home page Giter Club logo

react-handbook's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

react-handbook's Issues

Evaluate better visual design on longer content pages.

Examples, we could probably use some tables in the React Frameworks page, since we're comparing several together. This would make skimming this page a lot easier and more digestible, while being clearer about the differences between each framework vs running your own meta framework with dependencies.

Export all page's current state to google docs

Keeping the draft/published versions separated in Google Docs vs the repo is becoming a challenge. After the site is done with the latest edits, let's do an export into Google Docs to get all synced up.

Starter Files & Component Tips

I have an idea to have 2 pages for the following type of information:

File templates for Context providers, quick-n-dirty global state with useContext/useState, barrel files and explanation, currying for tons of providers, custom hooks, higher order components, unit/integration/e2e test templates

Basically just a bunch of files people can copy + paste into their project so their not starting from scratch everytime they create a new test file or component file or context file. Just speed up development a tad.

Add ANOTHER new page near component templates - Random component tips and tricks (small tips like the following):
- using key={} to reset state for a component
- Easier conditional JSX logic blocks
- others?
These are just little nuggets that senior react devs have living in their heads.

Complete pages

  • state management libs
  • hooks / advanced usage and concepts
  • performance
  • other "coming soon" links in the sidebar

Add additional link for trusted folder structure to Project Structure page

I read this article recently (https://www.joshwcomeau.com/react/file-structure/#hooks-5) and it was a very good alternative to the bulletproof-react repo structure. I think variety is fine on this page, as some people won't like the "feature" approach, and this is probably the best alternative I've seen to that.

Include a simple statement like "If you're not a fan of the approach above due to how it groups by feature, you might like this alternative approach by Josh Comeau instead.

Significant Component Refactor

There are several files I ran through way too quickly and did not clean up before pushing the state management article. I was a little too excited to get it published and also was nearing my deadilne. Anyways, the file that ideally could be cleaned up is:

  • src/components/StateTldr.jsx

Please hop in the discord and briefly chat with me before taking it on, just to discuss a general direction that can end up in reusable components/sections for other guides we may write.

Ideas:

  • Turn the tab/accordion (desktop/mobile) into a generic component that's reusable in pages
  • Create a component to wrap all hyperlinks in (both in jsx components and .mdx files) to automatically open new tabs/windows only when linking off-site

Page Improvements | Topics

Add some color or something here. This is a simple page but could pop a little more. Maybe add a gradient to the cards of some kind on hover? Whatever we choose it should be subtle and match the tone/style of the rest of the site styles.

Page Improvements | Frameworks

  • People coming to the site might not have any idea who Andrew Clark is or why his tweet is embedded. Add a description and link so people know why we are quoting him.

"Andrew Clark is a core contributor to React whose recent work includes Hooks, Server Components, and Suspense."

Double check all pages for references to "I" or "me" or "my" and change to "we" or "our"

Add a "Coming soon" or "More to come" component

  1. State Management is a great example here, since we want to publish an advanced guide.
    • this should be just like the "You will learn" summary at beginning of pages, say that we're working on more material and we'd be open to contributions

Other pages that could use something like this:
- hooks
- state management
- automated testing
- ecosystem (always adding)

Add Code Editor

We should consider adding code editor, so that users can interact with code samples directly on the website.

We might also consider adding playground at some point, where users can write and play with code (similar to CodeSandbox or JSFiddle) that is tailored to React

The URL for Qwik is resulting in a 404 error

Hello, The transition destination to the Qwik page under 'High-Performance Websites' on the Framework page resulted in a 404 error. The issue is with the following part of the code:

If this fits your use case, you might benefit from looking into [Astro](https://docs.astro.build/en/guides/integrations-guide/react/) or [Qwik](https://qwik.builder.io/integrations/integration/react/), which are easy to integrate from a React perspective.

I suspect that the URL for Qwik might have changed. I believe the correct URL is https://qwik.builder.io/docs/integrations/react/, not https://qwik.builder.io/integrations/integration/react/. If this is the correct URL, may I create a pull request to correct it?

Clarify args in project structure

  • reword the project structure content to be if you go with an SPA. Maybe make the recommendation to go with SPA less certain, and more like β€œyou’ll probably move quicker”. Also note that going with a framework probably means they encourage opinionated file structures and those should be followed.

Look into favicon situation.

We use inline SVG code to generate the icon shown in tab headers of browsers, in _app.jsx.

That is the "folder". But in the /public directory, we have a static image that looks like a blue briefcase, this was the original image I went with for a logo. But I personally like the emoji combination we've been consistently using around the site: βš›πŸ€Œ

Is it possible to generate those two emojis as an image file, or should we choose a new logo/icon for the favicon?

Docs Page or Storybook

Just for quality of life - we should catalog all the components in our project and display them sort of like a design system or just use storybook to demonstrate.

A way to make this simple would be to Add a link in the footer, only visible on localhost, that opens a new page that demonstrates all the UI components on the site and provides the ts props interface for each

Replace all beta.reactjs.org links with react.dev links

Throughout the site, we very frequently reference the react docs, which were recently published under react.dev domain. Since we were linking to the beta version of the docs (beta.reactjs.org) - we should update all links going to the docs so users can avoid a quick redirect.

Goal:
Any hyperlink on the site that goes to a beta.reactjs.org domain should be replaced with the react.dev equivalent. For any pages that are no longer maintained or result in 404 not found errors, please add to this issue so we can discuss that particular link and any alternatives we might have.

Remove boldness from links/headings

When transferring content from Google Docs -> MDX files, unnecessary bolding happened in a lot of areas. Examples on the "React Basics" page:

No BS TS

We should remove the double asterisk at the beginning and end of this markdown node so that and tags aren't rendered in the actual webpages themselves.

Team-Wide Discussion

With the new release of the React docs (https://react.dev/) yesterday, which look great for the record, we should re-evaluate some of the content we have on our site. I think the framework comparison could at least be modified so that we don't repeat the same things the React docs are already saying.

In general, I think this large update to their docs is a good thing, even if it makes a lot of the content we wrote obsolete or just repeated what they've written.

I still think the mission here is valid, and there is room to improve the other topics that the React docs don't cover great (ecosystem, actually comparing the frameworks, learning resources outside of the docs for the frameworks, etc.)

Secondly, I'd like to propose a more real-time tool like discord or slack to use so that we can all chat regularly on project updates. This would make management of the project easier as well as a method of quickly getting feedback/communication from the wider team.

Get rid of all the first-person references

("I", "me") and replace with "we" or neutral language. Example:

"I wouldn't recommend doing xyz...."
to:
"It is not recommended to do XYZ because..." or "We don't recommend xyz for the following reasons.."

It's probably better to try and re-write most things in a way that there is no subject or framing from a person's perspective.

Migrate to typescript

This is not a terribly complex one, just a big one that will have a lot of file changes and due diligence. Eric should probably take this one on.

Reformat ecosystem page

Try to move the lists into these 3 categories:

  • form componenets (datepickers, dropdowns, buttons, form libraries, input masking etc.)
  • interactive (drag-n-drop, table, visualizations, resizable, grid-layout, guided tours, pdf viewer, cropper, carousels/swipers)
  • passive (loading states, virtualization, internationalization, device detection, polyfills,)

Move "typescript" resources from React Basics to JavaScript Basics

Let's do several things:

  • Rename "JavaScript Basics" to "JS / TS Fundamentals"
  • We need to search the site for links to this page ^^ to update any link titles that need it
  • Rename "React Basics" to "React Fundamentals"
  • We would also need to search the site for links that go to this page ^^ and update accordingly

Finally, let's add this resource to the typescript resource list:

Page Improvements | Semantics & A11Y

We should add the image (with credit/citation) from this page: https://www.semrush.com/blog/semantic-html5-guide/

It's a great visual way to quickly understand for HTML what semantic means. Also, we should rewrite the headers for each section to be more descriptive:

  • "Why" -> "Why is Semantic HTML Important"
  • "A Warning" -> "Bad Practices to Avoid"

The image/banner can be directly linked to the SEM rush asset right below the "A11Y = Accessibility" bullet point in the first section. We should also provide credit right below the image to the original webpage. This can be a simple note like "Image provided by SEMRush.com"

Implement Search Feature

I think all we need to do is sign up for Algolia open-source search. Eric will look into this pretty soon.

Tone improvements to writing across all pages

Some improvements I need to make:

  • replace "I" and "me" with "we" and "our"
  • "js / ts" -> "javascript / typescript" -> JavaScript / TypeScript (correct spelling and capitalization, everywhere)
  • "react" -> "React"
  • "next" -> "Next.js"

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.