Total posts: 4, wordcount: 1,739, reading time about 0.1 hours, total 1,118,994 views.
View posts by categories
View posts by tags

Cloudflare Email Worker as a Service / API
# Cloudflare Email Worker as a Service / API A private api/worker service for sending email powered by Cloudflare worker project.

Use remote-cloudflare-kv on Vercel
https://github.com/willin/remote-cloudflare-kv

Silver Bullet of Front-End
# File naming ## Routing Slug Use `/folder/[slug]/index.jsx` instead of `/folder/[slug].jsx`. In `Next.js` project, folder tree may look like this: ```plain . ├── _app.tsx ├── _document.tsx ├── index.tsx └── posts └── [slug].tsx ``` However, this way is not extendable, when we need to add a sub page like `/post/[slug]/comments`, you need to change the previous file name. The best practise is that: ```plain ROOT/pages/ ├── _app.tsx ├── _document.tsx ├── index.tsx └── posts └── [slug] └── index.tsx ``` Similar, in `Nuxt.js` project, you may adapt it to this way: ```plain ROOT/pages/ ├── index.vue └── posts └── _slug └── index.vue ``` ## Do not use `UPPERCASE` in file names Especially in routing directories. It's wierd to see an URL like this: ```plain https://example.com/SomePath/WithUppercase?Params=something ``` URL should be case insensitive. # Data Structure ## Do not use `UPPERCASE` in data structure Almost all data stuctures can be generated automatically, by using scripts among with MySQL, Graphql, OpenAPI etc. If you use all lowercase naming, you have no need worry about the casing issues. BAD: ```javascript { "createdAt": "2021-05-22 16:00:00" } ``` GOOD: ```javascript { "created_at": "2021-05-22 16:00:00" } ``` # # Params, State or Storage ## When to use params Unique IDs, such as: - `/post/:slug` - `/product/:id` - `/anything/detail/:id` Do not use paths like `/anything/detail` to show a single fetched data. When you share the link to others, they will get a `404 error`. ## When to use states Such as dark mode status, localization config, page/component data to share. ## When to use storage like LocalStorage Persistize a state, or offline data.

26th Birthday