A semi-curated list of SaaS, platforms and web-based tools for software development.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<!doctype html> | |
<html lang="en"> | |
<head> | |
<meta charset="UTF-8" /> | |
<title>Vanilla</title> | |
</head> | |
<body> | |
<label style="display: flex; gap: 0.5rem; align-items: center"> | |
<input type="range" id="slider" /> | |
<span id="value"></span> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Add deno completions to search path | |
if [[ ":$FPATH:" != *":/Users/franky/.zsh/completions:"* ]]; then export FPATH="/Users/franky/.zsh/completions:$FPATH"; fi | |
# The following lines were added by compinstall | |
zstyle ':completion:*:descriptions' format '%B%d%b' | |
zstyle ':completion:*:messages' format '%d' | |
zstyle ':completion:*:warnings' format 'No matches for: %d' | |
zstyle ':completion:*' group-name '' | |
zstyle ':completion:*' group-name '' | |
zstyle ':completion:*' ignore-parents parent pwd .. directory |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#include <MIDI.h> | |
#include <string.h> | |
MIDI_CREATE_DEFAULT_INSTANCE(); | |
template<unsigned Size, typename DataType> | |
struct MessageQueue { | |
static constexpr unsigned sMask = Size - 1; | |
inline MessageQueue<Size, DataType>() |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import type { Stripe } from 'stripe' | |
export type StripeWebhookEventTypes = | |
Stripe.WebhookEndpointCreateParams.EnabledEvent | |
export type StripeWebhookEvent< | |
EventType extends StripeWebhookEventTypes, | |
Payload | |
> = { | |
eventType: EventType |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"explorer.experimental.fileNesting.enabled": true, | |
"explorer.experimental.fileNesting.patterns": { | |
"*.ts": "$(capture).js, $(capture).d.ts, $(capture).test.ts", | |
"*.js": "$(capture).js.map, $(capture).min.js, $(capture).d.ts, $(capture).test.js", | |
"*.jsx": "$(capture).js", | |
"*.tsx": "$(capture).ts, $(capture).*.ts, $(capture).*.tsx", | |
"tsconfig.json": "tsconfig.*.json", | |
"docker-compose.yml": "docker-compose.*.yml", | |
".env": ".env.*", |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/** | |
* Traverse a JSON object depth-first, in a `reduce` manner. | |
* | |
* License: MIT © 2021 François Best (https://francoisbest.com) | |
* | |
* @param input The root node to traverse | |
* @param callback A function to call on each visited node | |
* @param initialState Think of this as the last argument of `reduce` | |
*/ | |
export function reduceTree<State>( |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"colors": { | |
"green": { | |
"50": "#ECF8EF", | |
"100": "#CBECD2", | |
"200": "#A9DFB6", | |
"300": "#88D399", | |
"400": "#66C77C", | |
"500": "#45BA60", | |
"600": "#37954D", |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Array.from( | |
new Set( | |
// List all links on the page | |
Array.from(document.getElementsByTagName('a')) | |
.filter(a => | |
// Only keep status URLs | |
a.href.match(/^https:\/\/twitter\.com\/(\w+)\/status\/(\d+)$/) | |
) | |
.map(a => a.href) // Keep only the link URL | |
) // new Set: remove duplicates |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import React from 'react' | |
export interface EmojiFaviconProps { | |
emoji: string | |
badgeEmoji?: string | |
} | |
export const EmojiFavicon: React.FC<EmojiFaviconProps> = ({ emoji, badgeEmoji }) => { | |
const inlineSvg = React.useMemo(() => { | |
return ` |
NewerOlder