Skip to content

Instantly share code, notes, and snippets.

View warrenday's full-sized avatar

Warren Day warrenday

View GitHub Profile
@warrenday
warrenday / gist:ebf3285499d33131dccf7c34754fd367
Created August 16, 2026 20:12
Macro Notes Privacy Policy
# Privacy Policy — Macro Notes
**Last updated: 16 August 2026**
Macro Notes is a food diary for iPhone, developed by Warren Day ("we", "us"). This policy
explains exactly what the app collects, what leaves your phone, who else touches it, and what
you can do about it.
Contact: **warren@overstacked.io**
@warrenday
warrenday / gist:07abe3bbf147720345846f195834fc0b
Created August 13, 2026 11:07
12 Rules for Claude.md (Example)
# CLAUDE.md
Trailmark — an iOS app for logging hikes, backed by a Node.js REST API.
- `ios/` — SwiftUI app, iOS 17+, native components only
- `api/` — Node 22, TypeScript, Express, Postgres 16 (Kysely)
- `packages/contracts/` — zod schemas + generated OpenAPI. Single source of truth for both sides. Change the contract first, then the server, then the client.
Nested rules live in `api/CLAUDE.md` and `ios/CLAUDE.md`. Longer workflows (release, migration, security review) are skills in `.claude/skills/` — do not paste them here.
function positionalProp<
N extends string, F extends boolean | string | number
>(name: N, fallback?: F): (
F extends false ?
string | number | false
: F extends string ? string : number
)
const x = positionalProp('foo', false) // string | number | false
{
"Print to console": {
"prefix": "rtc",
"body": [
"import React from 'react'",
"",
"interface I$1Props {",
"",
"}",
"",
@warrenday
warrenday / linked-list-iterator.js
Last active February 17, 2021 20:44
Loop over a linked list
class LinkedList {
head = null
tail = null;
insert(data) {
const newNode = { data };
if (!this.head) {
this.head = newNode
} else {
this.tail.next = newNode;
export const getIsQueryOrMutation = (queryString: string) => {
return queryString.replace(/\s/g, '').startsWith('query')
? 'query'
: 'mutate';
};
import { ApolloServer } from 'apollo-server';
import { schema } from './schema';
export const createServer = () => {
return new ApolloServer({
schema,
});
};
exports[`Bookings Integration Tests getBooking`] = `
Object {
"data": Object {
"getBooking": Object {
"id": 1,
"cartReference": "123-123-456",
"paymentAmount": 2000,
"cancelled": false,
"receiptNumber": "456464565",
},
import { createTestClient } from 'apollo-server-testing';
import { createServer } from './createServer';
export const runTestCases = (
groupName,
testCases,
) => {
const { query } = createTestClient(createServer());
describe(`${groupName} resolvers`, () => {
import { createTestClient } from 'apollo-server-testing';
const { query } = createTestClient();
const res = await query({
query: `
query listBookings {
id
}
`,