Skip to content

Instantly share code, notes, and snippets.

View dtothefp's full-sized avatar

David Fox-Powell dtothefp

  • Flexport
  • United States
View GitHub Profile
@dtothefp
dtothefp / PRIORITIZATION_MEETING_2026-02-18.md
Last active February 18, 2026 14:31
Prediction Markets — Prioritization Meeting (Feb 18, 2026)

Prioritization Meeting — Feb 18, 2026

The product's core value prop (aggregated market data) has zero real data flowing to the UI. We need to align on data sources before we can prioritize tickets — most are blocked until we decide where the data comes from.

The Data Source Problem

We have two reference projects pulling in opposite directions, and most Linear tickets don't specify their data source. Until we decide, those tickets are blocked.

smart-bet-whisper — API-driven (original Lovable MVP)

ERROR in /Users/davidfox-powell/dev/good-rx/content-web-frontend/src/constants/constants.test.ts(1827,13):
TS2322: Type '{ title: null; displayTitle: any; subtitle: any; content: { title: string; displayTitle: string; url: any; subtitle: any; image: { title: string; url: string; height: number; width: number; __typename: "Asset"; }; ... 4 more ...; __typename: "Link"; }; image: any; sys: { ...; }; __typename: "PageHeroSimple"; }' is not assignable to type 'ContentfulPageMeta_pageContainerCollection_items_heroCollection_items'.
Type '{ title: null; displayTitle: any; subtitle: any; content: { title: string; displayTitle: string; url: any; subtitle: any; image: { title: string; url: string; height: number; width: number; __typename: "Asset"; }; ... 4 more ...; __typename: "Link"; }; image: any; sys: { ...; }; __typename: "PageHeroSimple"; }' is not assignable to type 'ContentfulPageMeta_pageContainerCollection_items_heroCollection_items_PageHeroSimple'.
Types of property 'content' are incompatible.
(function(modules){var installedModules={};function __webpack_require__(moduleId){if(installedModules[moduleId]){return installedModules[moduleId].exports}var module=installedModules[moduleId]={i:moduleId,l:false,exports:{}};modules[moduleId].call(module.exports,module,module.exports,__webpack_require__);module.l=true;return module.exports}__webpack_require__.m=modules;__webpack_require__.c=installedModules;__webpack_require__.d=function(exports,name,getter){if(!__webpack_require__.o(exports,name)){Object.defineProperty(exports,name,{enumerable:true,get:getter})}};__webpack_require__.r=function(exports){if(typeof Symbol!=="undefined"&&Symbol.toStringTag){Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"})}Object.defineProperty(exports,"__esModule",{value:true})};__webpack_require__.t=function(value,mode){if(mode&1)value=__webpack_require__(value);if(mode&8)return value;if(mode&4&&typeof value==="object"&&value&&value.__esModule)return value;var ns=Object.create(null);__webpack_require__.r(ns);O
import _regeneratorRuntime from "@babel/runtime-corejs2/regenerator";
import _asyncToGenerator from "@babel/runtime-corejs2/helpers/esm/asyncToGenerator";
import _Promise from "@babel/runtime-corejs2/core-js/promise";
var wait = function wait() {
var duration = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 100;
return new _Promise(function (res) {
return setTimeout(res, duration);
});
};
import _asyncToGenerator from "@babel/runtime/helpers/esm/asyncToGenerator";
var wait = function wait() {
var duration = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 100;
return new Promise(function (res) {
return setTimeout(res, duration);
});
};
export default
@dtothefp
dtothefp / wait-compiled-no-runtime.js
Created April 20, 2019 16:03
Simple Async Timer Compiled
function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
var wait = function wait() {
var duration = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 100;
return new Promise(function (res) {
return setTimeout(res, duration);
});
};
@dtothefp
dtothefp / wait.js
Last active April 20, 2019 16:07
Simple Async Timer
const wait = (duration = 100) => new Promise((res) => setTimeout(res, duration));
export default async (duration = 500) => {
console.log('Wait for: ', durtaion);
await wait(duration);
console.log('Finished after: ', durtaion);
};
/* eslint-disable */
const { intersection } = require(`lodash`);
const { createClient } = require(`contentful`);
const {
createClient: cmaCreateClient,
} = require(`contentful-management`);
(async () => {
const SPACE_ID = `q5lwz1whkyct`;
const {
import path from 'path';
import webpack from 'webpack';
import MiniCssExtractPlugin from 'mini-css-extract-plugin';
import UglifyJsPlugin from 'uglifyjs-webpack-plugin';
import { BundleAnalyzerPlugin } from 'webpack-bundle-analyzer';
import Dotenv from 'dotenv-webpack';
import HardSourceWebpackPlugin from 'hard-source-webpack-plugin';
import { BundleStatsPlugin } from './plugins/BundleStatsPlugin';
import { LoadableStatsPlugin } from './plugins/LoadableStatsPlugin';
import generateStats from './generate-stats';
.even {
background-color: lavenderblush;
}
.odd {
background-color: goldenrod;
}