Skip to content

Instantly share code, notes, and snippets.

View jonahallibone's full-sized avatar

Jonah Allibone jonahallibone

View GitHub Profile
@jonahallibone
jonahallibone / web-dev-tools-2023.md
Created January 13, 2023 17:19
Web Dev Tools 2023

A list of tools compiled in January 2023

There's no real order to this. More of a dump. Will organize in the future

  • Prisma
    • TypeSafe ORM for Node.js
  • tRPC
    • Typesafe REST, GraphQL alternative for TypeScript monorepos
  • create-t3-app
  • A starter pack of Next.js, Prisma.io, and tRPC
import { useRef, useState } from "react";
import {
Box,
Button,
Center,
Flex,
Grid,
GridItem,
IconButton,
Input,
import React, { useContext, useRef, useMemo } from "react";
import {
ApolloClient,
ApolloProvider,
HttpLink,
InMemoryCache
} from "@apollo/client";
import { setContext } from "apollo-link-context";
import { BrowserRouter as Router } from "react-router-dom";
import AppContext from "./AppContext";
import React, { useState, useEffect, useRef } from "react";
import styles from "./industry-tree.module.scss";
const IndustryTreeGroup = ({ group = {}, onChange = () => {}, industryTitle = "" }) => {
const [checked, setChecked] = useState([]);
const [collapsed, setCollapsed] = useState(true);
const indeterminateCheckbox = useRef(null);
const toggleAll = event => {
if (event.target.checked) {
import React, { useState, useEffect } from "react";
import styles from "./dropdown.module.scss";
const Dropdown = ({ children, title, ...rest }) => {
const focusStyle = styles.dropdown__focus;
const [focusClass, setFocusClass] = useState("");
const [focus, setFocus] = useState(false);
useEffect(() => {
if(focus) {
import React, { useState, useEffect } from "react";
import styles from "./dropdown.module.scss";
const Dropdown = ({ children, title, ...rest }) => {
const focusStyle = styles.dropdown__focus;
const [focusClass, setFocusClass] = useState("");
const [focus, setFocus] = useState(false);
useEffect(() => {
if(focus) {
import React, { useState, useEffect, useRef } from "react";
import FileSaver from "file-saver";
import qs from "qs";
const SearchContext = React.createContext({
setFormData: () => {},
formData: {},
setSearchIsLoading: () => {},
searchIsLoading: false,
setTableData: () => {},
import React, { useState, useEffect, useRef } from "react";
import FileSaver from "file-saver";
import qs from "qs";
const SearchContext = React.createContext({
setFormData: () => {},
formData: {},
setSearchIsLoading: () => {},
searchIsLoading: false,
setTableData: () => {},
import firebase from "firebase";
const initFirebase = () => {
const firebaseConfig = {
apiKey: process.env.REACT_APP_API_KEY,
authDomain: process.env.REACT_APP_AUTH_DOMAIN,
databaseURL: process.env.REACT_APP_DATABASE_URL,
projectId: process.env.REACT_APP_PROJECT_ID,
storageBucket: process.env.REACT_APP_STORAGE_BUCKET,
messagingSenderId: process.env.REACT_APP_MESSAGING_SENDER_ID,
import React, { useRef, useEffect, useState } from 'react';
import './App.css';
import GoogleMap from './components/google-map/GoogleMap';
import Header from './components/header/header';
import MapContainer from './components/map-container/MapContainer';
import Sidebar from './components/sidebar/Sidebar';
import HomeContainer from './components/home-container/HomeContainer';
import firebase, {initFirebase} from "./components/firebase/firebase.js";
const App = () => {