module StringContext = | |
Context.MakePair({ | |
type t = string; | |
let defaultValue = "Awesome"; | |
}); | |
let component = ReasonReact.statelessComponent("Tree"); | |
let make = _children => { |
// NOTE: you will NOT write code like this when using suspense | |
// instead, you'll use react-cache (not yet officially published) | |
// it'll handle things like pre-loading, handling rapid re-renders, etc. | |
const cache = {} | |
function FetchPokemon({pokemonName}) { | |
const pokemon = cache[pokemonName] | |
if (!pokemon) { | |
const promise = fetchPokemon(pokemonName).then( |
When it comes to databases and AWS VPC, best practice is to place your database in private subnet. By definition, private subnet in AWS is not reachable from the Internet because no Internet gateway is attached to private subnet. This is the way you protect your data. This kind of configuration is good for security but bad for data management.
How can you easily access and manage your secured data?
There are two basic ways to acees it.
- Access postgres RDS from bastion host. There are following requirements for this.
function serializeForm(form, urlEncode = false) { | |
const formData = new FormData(form); | |
if (urlEncode) { | |
const searchParams = new URLSearchParams(formData) | |
return searchParams.toString(); | |
} | |
const serializedFormData = {}; |
import React, { useRef, useState } from 'react'; | |
import { Typography } from '@material-ui/core'; | |
import TextField from '@material-ui/core/TextField'; | |
import CircularProgress from '@material-ui/core/CircularProgress'; | |
import Autocomplete, { | |
AutocompleteChangeDetails, | |
AutocompleteChangeReason, | |
AutocompleteProps | |
} from '@material-ui/lab/Autocomplete'; |
(I'm enjoying doing these raw, barely edited writeups; I hope they're useful to you too)
This is my own writeup on feature flags; for a deep dive I'd recommend something like Martin Fowler's article (https://martinfowler.com/articles/feature-toggles.html).
So. Feature flags. The basic idea that you'll store configuration/values on a database/service somewhere, and by changing those values, you can change the user experience/features for a user on the fly.
Let's say that you're building a new feature, called 'new-button' which changes the color of buttons, which is currently red, to blue. Then you'd change code that looks like this -
import React from "react"; | |
import { graphql } from "react-relay"; | |
import createPageContainer from "../relay/createPageContainer"; | |
import PostLayout from "../components/PostLayout"; | |
import Header from "../components/Header"; | |
import Shell from "../layouts/Shell"; |
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.