Skip to content

Instantly share code, notes, and snippets.

View sahilrajput03's full-sized avatar
πŸ’­
Eating, Sleeping, Coding, Repeat.

Sahil Rajput sahilrajput03

πŸ’­
Eating, Sleeping, Coding, Repeat.
View GitHub Profile
@pedrouid
pedrouid / setup-ssl.md
Last active May 31, 2025 17:30
Setup SSL with NGINX reverse proxy

Get a Free SSL Certificate With Let’s Encrypt

Let’s Encrypt is a free, automated, and open Certificate Authority.

  1. Install tools for using the Let's Encrypt certificates using Certbot
  sudo apt-get update \
  sudo apt-get install software-properties-common
@tannerlinsley
tannerlinsley / Counter.js
Last active July 8, 2024 07:06
Global React State with Context and Immer
import { useCount, useIncrement, useDecrement } from './store.Count'
export default function Counter () {
const count = useCount()
const increment = useIncrement()
const decrement = useDecrement()
return (
<div>
<div>Count: {count}</div>
@tannerlinsley
tannerlinsley / hooks.js
Created January 25, 2019 17:00
useCancellable, useRefresh combo
const useCancellable = fn => {
const requestRef = useRef(0)
return async (...args) => {
// Keep track of latest promise ID
const id = Date.now()
requestRef.current = id
// Wait for resolution
const res = await fn(...args)
function makeStore({ actions }) {
// Make a context for the store
const context = React.createContext();
// Make a provider that takes an initialValue
const Provider = ({ initialValue = {}, children }) => {
// Make a new state instance
const [state, setState] = useState(initialValue);
// Bind the actions with the old state and args
@superjojo140
superjojo140 / postgresql_arch_tutorial.md
Created December 4, 2019 09:56
Setup local PostgreSQL and pgAdmin on ArchLinux

Working with local PostgreSQL and pgAdmin on ArchLinux

Daily Usage

Start postgreSQL

$ sudo systemctl start postgresql
@sahilrajput03
sahilrajput03 / GitCommitEmoji.md
Created July 13, 2020 14:48 — forked from parmentf/GitCommitEmoji.md
Git Commit message Emoji

Inspired by dannyfritz/commit-message-emoji

See also gitmoji.

Commit type Emoji
Initial commit πŸŽ‰ :tada:
Version tag πŸ”– :bookmark:
New feature ✨ :sparkles:
Bugfix πŸ› :bug:
@iansu
iansu / README.md
Last active March 1, 2021 08:40
Create React App 4.0 Alpha Testing

Create New App

JavaScript Template

npx create-react-app@next --scripts-version=@next --template=cra-template@next my-js-app

TypeScript Template

npx create-react-app@next --scripts-version=@next --template=typescript@next my-ts-app

@tannerlinsley
tannerlinsley / useGlobalMemo.js
Created August 28, 2020 23:45
useGlobalMemo is a React hook that lets you share memoizations across an entire app using a unique key.
const cache = {}
export default function useGlobalMemo (key, fn, deps) {
if (!cache[key]) {
cache[key] = {
subs: 0,
deps,
value: fn(),
}
@sahilrajput03
sahilrajput03 / mutable.js(from FUTURE).js
Last active October 5, 2020 09:25
A function which helps easying up un mutating state objects when we need to dispatch new unmutated states to `dispatch` calll. # unmutate
const getMutable = (state) => JSON.parse(JSON.stringify(state)); // This is doer.
const mutableState = getMutable(state);
mutableState.books[0].section[2] = 'Things to be learned in august.';
mutableState.books[1].section[4] = 'Things to be learned in november.';
dispatch(mutableState);
// ----------------------------------------------------------------------------------------------------------
// Antoher simple approach is using closures like immer.js does(but it does some depth comparisons too), for e.g. below is my
@tannerlinsley
tannerlinsley / README.md
Last active March 30, 2026 14:20
Replacing Create React App with the Next.js CLI

Replacing Create React App with the Next.js CLI

How dare you make a jab at Create React App!?

Firstly, Create React App is good. But it's a very rigid CLI, primarily designed for projects that require very little to no configuration. This makes it great for beginners and simple projects but unfortunately, this means that it's pretty non-extensible. Despite the involvement from big names and a ton of great devs, it has left me wanting a much better developer experience with a lot more polish when it comes to hot reloading, babel configuration, webpack configuration, etc. It's definitely simple and good, but not amazing.

Now, compare that experience to Next.js which for starters has a much larger team behind it provided by a world-class company (Vercel) who are all financially dedicated to making it the best DX you could imagine to build any React application. Next.js is the πŸ’£-diggity. It has amazing docs, great support, can grow with your requirements into SSR or static site generation, etc.

So why