GithubHelp home page GithubHelp logo

franky47 / francoisbest.com Goto Github PK

View Code? Open in Web Editor NEW
219.0 5.0 20.0 39.36 MB

Homepage & blog

Home Page: https://francoisbest.com

License: Other

TypeScript 56.19% JavaScript 2.23% MDX 40.15% CSS 1.43%
homepage blog nextjs mdx chakra-ui

francoisbest.com's Introduction

francoisbest.com's People

Contributors

dependabot[bot] avatar franky47 avatar imgbotapp avatar karlhorky avatar ngryman avatar

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

francoisbest.com's Issues

Add search

Multiple options here:

  • Searching title & description only -> Cmd+F #usetheplatform
  • Full text search (may be slow or require more tooling)
  • Semantic search with LLMs and embeddings

Improve footnotes

Some ideas:

  • Josh Comeau's hover tooltip
  • Inline on hover
  • Aside on desktop

Requirements:

  • Must play nice with screen readers & a11y
  • Must not break the flow of reading (ie: jump/scroll somewhere else on the page)
  • Should be obvious it's a footnote, not just a link (like Josh's red star).

https://gwern.net/sidenote

Automated articles index

  • List published posts
  • Include summary when available
  • Statically built with getStaticProps
  • Show tags when available
  • Dynamic client-side tag filtering, by query string

Tag filtering story

Tags are represented in the index and the articles as Badges from Chakra. They are clickable, and point to the index page with a ?tag=tagName query string. The index listens for this query and show only the relevant articles, plus a way to clear the query.

The post listing logic might be shared with #1, some examples:
https://github.com/zeit/next.js/tree/canary/examples/blog-starter

Reading List

  • Add search (title & description)
  • Add RSS feeds (daily & weekly digests)
  • Add mailing list (daily & weekly digests). will require automation.

ISR errors with FS access

Pages that require ISR refreshing (eg: /open-source) fail if they embed a blog post or anything that calls the filesystem.

Could be due to bundling failing to pick the dependency.

Add view counters refresher

View counters expire after 6 months of inactivity. As the site is built daily, check if some counters have a TTL of 2 days or less (to keep some jitter margin) and bump a fake view to keep it alive.

Add tag filtering

Some predicaments:

At the moment, the blog index page (/posts) is a static page that contains all posts, and tags in the query string have no effect.

To add tag filtering, there are a few options:

  • Store the tag in the querystring, eg: /posts?tag=react
  • Store the tag in the pathname as a dynamic path: /posts/tags/react

Querystring approach

If using a server-centric approach, by using the searchParams prop on the blog index page, it turns it into a serverless function, which doesn't pick up the blog posts.

If using a static approach with islands of interactivity (wrapped in Suspense) to read the querystring and render a conditional list of posts, it gives a FOUC (flash of unfiltered content), where all the posts are initially shown and the filter applies.
Not wrapping in Suspense deopts into client-side rendering which has issues with dark mode not being applied (possibly another issue to look into).

Dynamic path approach

Research stage: investigate the possibility of generating static pages based on known tags, with a custom 'not-found' for unknown tags that doesn't 404 but show "no posts tagged XYZ".

It could also be possible to generate a tag index at /posts/tags, with the frequency of each tag.

Chakra v1 breakages

  • Tooltips on open-source repo embeds (forward ref issue ?)
  • NPM download graph sizing and viewporting
  • Notes right negative margin on mobile

Fix FOUC

Flash of unthemed content, where the initial load shows the light theme, then partially switches to dark theme on dark OSes.

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.