Skip to content

Instantly share code, notes, and snippets.

View wilsonowilson's full-sized avatar
🌟
Dreaming in Dart

Wilson Wilson wilsonowilson

🌟
Dreaming in Dart
View GitHub Profile
@wilsonowilson
wilsonowilson / Readme.md
Last active April 8, 2026 17:32
Codex sentry autofix

SOP: Codex Sentry Autofix (Generic)

Goal Automatically create a PR (or close/ignore the issue) when a Sentry issue alert fires, using Codex in CI.

Setup

  1. Codex auth (CI secret)
    • On a dev machine, run pnpm dlx @openai/codex login to create ~/.codex/auth.json.
    • Base64‑encode it and store as a CI secret CODEX_AUTH_JSON_BASE64.
@wilsonowilson
wilsonowilson / prompt.md
Created April 8, 2026 12:45
ICP Prompt

Help me define my ICP (ideal customer profile). Walk me through it step by step. Start by asking me to name 3 real paying customers I'd want 100 more of. For each one, ask me: what do they do, how big are they, what tools they use, why they bought, what they said when they signed up, and what they were frustrated with before. Then find the patterns across all 3, not just demographics, but emotional drivers, exact phrases they use, workflow habits, and what triggered them to buy. Once we have that, help me define:

  • A one-line summary of who this person is
  • Demographics (company size, revenue, team, market)
  • Their deeper situation (what they feel but don't always say)
  • Workflow habits that predict they'll love my product
  • Trigger events that make them active buyers
@wilsonowilson
wilsonowilson / notify.py
Created January 18, 2026 12:20
Get claude code to talk to you
#!/usr/bin/env python3
"""
Dynamic notification hook for Claude Code.
Reads the transcript and generates a contextual spoken message.
"""
import json
import re
import subprocess
import sys
@wilsonowilson
wilsonowilson / job-manager.ts
Created August 22, 2025 06:56
Bullmq wrapper
import { createBullBoard } from '@bull-board/api';
import { BullMQAdapter } from '@bull-board/api/bullMQAdapter';
import { HonoAdapter } from '@bull-board/hono';
import { serveStatic } from '@hono/node-server/serve-static';
import {
Job,
type JobsOptions,
MetricsTime,
type Processor,
Queue,
@wilsonowilson
wilsonowilson / +page.svelte
Last active July 22, 2024 02:26
Setting up ConvertKit Plugin Oauth with Typescript + Firebase
<script lang="ts">
import { page } from '$app/stores';
import { getInitialUser } from '$lib/Identity/api/auth';
import AuthPageLayout from '$lib/Identity/components/AuthPageLayout.svelte';
import InlineLoader from '@senja/shared/components/InlineLoader.svelte';
import TertiaryButton from '@senja/shared/components/TertiaryButton.svelte';
import { ConvertkitIcon } from '@senja/shared/components/icons/integrations';
import { optimizeImage } from '@senja/shared/utils/cdn';
// This is the first URL ConvertKit will call. It'll contain a redirect URL, a <state> parameter and a client_id.
@wilsonowilson
wilsonowilson / settings.json
Created January 2, 2024 14:56
Minimal Vscode w/ APC extension
{
"workbench.colorTheme": "Aura Dark",
"workbench.iconTheme": "material-icon-theme",
"editor.fontFamily": "'Geist Mono', Menlo, Monaco, 'Courier New', monospace",
"apc.listRow": {
"height": 24,
"fontSize": 11
},
"window.titleBarStyle": "native",
"apc.font.family": "Geist Mono",
@wilsonowilson
wilsonowilson / preflight.css
Created June 26, 2023 10:08
Tailwind Prefixed Preflight
#your-container *,
#your-container ::before,
#your-container ::after {
box-sizing: border-box;
border-width: 0;
border-style: solid;
border-color: theme("borderColor.DEFAULT", currentColor);
}
#your-container ::before,
@wilsonowilson
wilsonowilson / ImagePicker.svelte
Created February 6, 2023 08:38
Svelte + Tailwind Image Picker
<script lang="ts">
import { toast } from "../utils/toast";
import Icon from "../components/Icon.svelte";
import { ImagePlus, X } from "../components/icons";
import Label from "../components/Label.svelte";
import FileDrop from "filedrop-svelte";
import { scale } from "svelte/transition";
export let files: File[] = [];
@wilsonowilson
wilsonowilson / index.svelte
Created June 29, 2022 17:26
Paddle Stripe-Style Checkout
<script context="module" lang="ts">
import { getSubscriptionPlan } from '$lib/billing/api';
import { Account, getInitialUser, SubscriptionPlan } from '$lib/core/api';
export const router = false;
import type { Load } from '@sveltejs/kit';
import { onMount } from 'svelte';
export const load: Load = async ({ params }) => {
const id = params.planId;
const result = await getSubscriptionPlan(id);
if (result.isErr()) {
@wilsonowilson
wilsonowilson / main.dart
Created July 9, 2021 22:03
Missing emojis on canvaskit example
import 'package:flutter/material.dart';
void main() {
runApp(const MyApp());
}
class MyApp extends StatelessWidget {
const MyApp({Key? key}) : super(key: key);
@override