news files

This commit is contained in:
shit-vault
2026-08-14 18:45:55 -04:00
parent f2978070c1
commit e933b3d385
13 changed files with 1551 additions and 382 deletions
-207
View File
@@ -1,207 +0,0 @@
---
title: "kycourt-colab — Kentucky Appellate Court Corpus Pipeline (project notes)"
status: "active"
folder: "repo root (kycourt-colab)"
tags: [kycourt, pipeline, colab, project-notes]
created: "2026-08-12"
updated: "2026-08-12"
version: "1.1.0"
---
# kycourt-colab — Kentucky Appellate Court Corpus Pipeline
## Overview
A single **generated Google Colab notebook** (`ky_court_pipeline.ipynb`) that
restores, discovers, downloads, extracts, and verifies the full Kentucky
appellate court document corpus (~**98.7k documents**). It is built to survive
Colab's ephemeral runtimes: it auto-resumes after disconnects, is idempotent,
and mirrors all state to Google Drive so nothing is lost between sessions.
**Remote:** https://github.com/stateofshit/kycourt-colab (private)
**Local worktree:** `/home/user/00-incoming/kycourt-colab`
## What problem it solves
A batch archival crawl of public court documents over a ~10-hour-per-session
horizon, on infrastructure (Colab) that kills your process mid-run. Requirements
that fall out of that:
- Every session must pick up exactly where the last one stopped.
- Re-running must be safe (idempotent) — no double-downloads, no data loss.
- State must live somewhere durable (Drive), because the runtime is throwaway.
- The crawl must be polite to a public API (paced, backoff, retries) and
deduplicate aggressively (content-addressed storage).
## Architecture
The notebook is **not hand-written** — its cells are inlined from real Python
modules in `notebook_builder/cells/` (one module per cell, `c00``c90`), and
regenerated with `notebook_builder/build.py`. This means the pipeline is
version-controlled, unit-testable Python that *just happens to be shipped as* a
Colab notebook.
Two shared abstractions carry every stage:
- **SQLite DB** (`ky_court.sqlite`) — source of truth: `documents`,
`discovery_runs`, `extraction_log`, `kv`. Opened in **WAL mode** with a
30s `busy_timeout` so a background reader can snapshot it while the writer
commits (see concurrency below).
- **`Store` abstraction** — Google Drive in Colab, local filesystem in tests;
exposes `exists / read_file / write_bytes / upload_file / list_dir`. All
stages talk to it, never to Drive directly.
**Stage order:** `restore → discover → backfill → download → extract → sync/verify`.
## The six stages (what each actually does)
### 1. Restore — `c40_restore.py`
Rehydrate a fresh/empty workspace from the newest `ky_court-WIP-resume-*.tar.gz`.
Only acts when no DB exists; skips otherwise. If a stale workspace dir is
present it is **moved aside to `-pre-restore` (renamed, never deleted)** before
extracting — the "never destroys data" guarantee. Extracts to temp, then moves
into place.
### 2. Discover — `c50_discover.py`
Enumerate the corpus by searching the court API so we know *what exists*.
Builds search shards (`YYYY-CA`, `YYYY-SC` per year; ceiling-hit shards get
sub-sharded `YYYY-CA-0..9`). Pages results with `X-CTrack-Paging-*` headers up
to a 10k ceiling; a `400` or ceiling-cross raises to force sub-sharding rather
than silently missing docs. Normalizes rows into `documents` with
`status='discovered'`, inserted idempotently via `ON CONFLICT(document_id)`.
Sweeps repeatedly until a pass adds fewer than `CONVERGENCE_DELTA` docs
(convergence). Every sweep logged to `discovery_runs`.
### 3. Backfill — `c60_backfill.py`
Deduplicate *existing* backups into the content-addressed store. Hashes every
file in `pdf_backup/` (SHA-256), writes unique content to `pdf_by_hash/<sha>.pdf`
(9,582 backup files → 3,326 unique PDFs) — "do we already have this?" becomes a
hash lookup. Normalizes DB `local_pdf` pointers. Guarded by `kv backfill_done`.
### 4. Download — `c70_download.py`
Fetch PDFs for all `discovered`/`failed` docs with `attempts < MAX_ATTEMPTS`,
in batches of 50. `api_download` does a `HEAD` (rejects non-200 and anything
> `MAX_PDF_BYTES`), then streams `GET`, hashing as it goes. Dedup wins: a hash
already in the store/manifest uploads nothing. **Retry/backoff** on transient
errors: `sleep = min(60, 5·2^attempts)` (10→20→40→60s, capped), up to 4
attempts. Permanent errors (400/401/403/404/**413**) fail immediately, no
backoff. Writes to `tmp/<id>.part`, promotes to store, paces itself, and pushes
a heartbeat to `status.json` every 100 attempts.
### 5. Extract — `c80_extract.py`
Turn downloaded PDFs into searchable text with `pypdf`. Batches of 500 with 8
parallel worker threads. A PDF with no text layer is a valid `"empty"` result,
not an error. Text written to `text/<sha>.txt`; `extracted_chars` recorded.
Heuristic flags likely-scanned (image-only) PDFs when `chars/pages < 20`.
### 6. Sync/Verify — `c90_verify.py`
Prove nothing is corrupted and push an authoritative snapshot + summaries to
Drive. Runs `PRAGMA integrity_check`; counts totals and the **remaining
queues** (download + extract eligibility queries mirror the stage code exactly,
so `done` is trustworthy). Exports `document_inventory.csv` +
`failed_inventory.csv`. `checkpoint()` makes a consistent DB snapshot via
`src.backup(dst)` (SQLite online backup API) and uploads it as the new
`ky_court.sqlite`. Updates `status.json` with `done = (queues empty)`.
Prints `PASS`/`FAIL`.
## Concurrency (the interesting part)
`checkpoint()` uses SQLite's **online backup API** (`src.backup(dst)`) from a
**separate connection** — not `copytree`, not a WAL checkpoint. It copies the
DB page-by-page and re-copies any page the writer modified during the pass,
looping until a clean pass completes. Combined with **WAL mode** (readers don't
block the writer) and **`busy_timeout=30000`**, this yields a
transactionally-consistent snapshot even while Download is committing every doc.
A naive file copy would produce a torn/corrupt snapshot and drop WAL-committed
data.
## Key design decisions
- **Idempotent + resume-safe everywhere**: skip what's done, never auto-delete
on Drive.
- **Named permanent-failure set** (`PERMANENT_STATUSES` + `_is_permanent()`)
distinguishes never-succeed (401/403/404/413) from transient (5xx/conn/429/408).
- **Content-addressed store** (`pdf_by_hash/<sha>.pdf`) makes dedup a lookup.
- **Config via one `CFG` dict** with env overrides (`KY_BUDGET`, `KY_DRY`,
`KY_PHASES`, `KY_RETRY_HARD`, `KY_LIVE`).
## Config knobs (top cell `CFG`)
| Key | Default | Meaning |
|---|---|---|
| `BUDGET_SECONDS` | 10h | max wall-clock per session (`KY_BUDGET`) |
| `SHUTDOWN_SECONDS` | 15 min | stop early so the session finishes cleanly |
| `PACING_SEARCH` / `PACING_DL` | (0.3,0.7)/(0.3,0.5) | random sleep between API calls |
| `MAX_ATTEMPTS` | 4 | download retries before `failed` |
| `MAX_PDF_BYTES` | 200 MiB | size cap; oversized (413) fails permanently, no retry/backoff |
| `MAX_EXTRACT_ATTEMPTS` | 3 | extraction retries before skip |
| `RETRY_HARD` | 0 (`KY_RETRY_HARD`) | on resume, reset `failed``discovered` |
| `PHASES` | discover,backfill,download,extract | stages to run (`KY_PHASES`) |
| `DRY_RUN` | 0 (`KY_DRY`) | 1 = fully offline, no network |
## File layout
```
ky_court_pipeline.ipynb the deliverable (generated)
notebook_builder/
build.py regenerate the notebook from cells
cells/ c00_config … c90_verify + drive_store.py
tests/ test_pipeline_local.py + conftest.py (offline; live gated by KY_LIVE)
scripts/ smoke_local.py full offline pipeline over the real DB
RUNBOOK.md operational runbook (first run, resuming, failure modes)
docs/superpowers/ specs/ + plans/ design spec + implementation plan
PROJECT_NOTES.md this file
.gitignore ignores .venv, extracted/, *.sqlite, __pycache__,
.worktrees/, .superpowers/ (NOT the WIP tars)
```
> **Data is NOT in the repo.** `extracted/`, `*.tar.gz` resume/WIP archives, and
> `sanitize-work/` live only in Drive / locally. Gitignore does not cover the
> WIP `.tar.gz` files, so never `git add -A` from the repo root.
## Running / testing
```bash
python3 -m venv .venv && .venv/bin/pip install -r <pinned deps>
.venv/bin/pytest tests -q # 20 offline tests (live ones skipped)
.venv/bin/python scripts/smoke_local.py # full pipeline over the real 98,724-row DB
.venv/bin/python notebook_builder/build.py # regenerate the notebook
```
Live API tests are gated behind `KY_LIVE=1` and share a ≤10-request budget.
Suite result at v1.2: **20 passed, 3 skipped**.
## Failure modes (from RUNBOOK)
- **Colab disconnect mid-run** → re-run; `recover()` heals stale rows, drops
`.part` files.
- **Drive quota exceeded** → checkpoint push fails; run continues, store lags.
- **5xx/connection storms** → backoff `min(60, 5·2^attempts)` up to `MAX_ATTEMPTS`.
- **Search shard hits 10k ceiling** → planner sub-shards next run.
- **`integrity_check` not "ok"** → DB corrupt; restore from last resume tar.
## Versioning / releases
Immutable milestone tags (never force-move a published tag):
```
pipeline-v1 33a6ec1 original pipeline milestone
v1.1 ae77344 +README
v1.2 ec248fe +413 oversize permanent-failure fix (MAX_PDF_BYTES knob)
```
`v1.2` also has a **GitHub release** with changelog:
https://github.com/stateofshit/kycourt-colab/releases/tag/v1.2
## Status
Project complete and shipped. Suite green offline. The pipeline is ready to run in Colab (restore from the resume tar → Run all).
### Roadmap / Future enhancements
- **Parallel extract workers** — tune the 8-worker batch size based on observed Colab runtime limits.
- **Drive quota monitoring** — automated alert when `status.json` reports approaching quota, with graceful degradation to skip upload.
- **CLI entry point** — `kycourt-pipeline run --phase discover` to run individual stages outside Colab.
- **Query layer** — lightweight read-only API over the SQLite DB for inspecting discovered/extracted docs without re-running the pipeline.
- **Vault migration** — if/when the repo is folded into the vault, adapt `folder` frontmatter and consolidate `.tar.gz` WIP archives under the vault's resume format. Remote backup, README, tags, and v1.2 release all
in place on GitHub. Suite green offline. The pipeline is ready to run in Colab
(restore from the resume tar → Run all).
-59
View File
@@ -1,59 +0,0 @@
# ky-court-colab
A single generated Google Colab notebook that **restores, discovers, downloads,
extracts, and verifies** the full Kentucky appellate court document corpus
(~98.7k documents). Built to survive Colab disconnects — it auto-resumes, is
idempotent, and mirrors all state to Google Drive so nothing is lost between
sessions.
## What it does
`ky_court_pipeline.ipynb` walks the corpus through six stages:
```
restore → discover → backfill → download → extract → sync/verify
```
Every stage reads/writes one SQLite DB and a `Store` abstraction (Google Drive
in Colab, local filesystem in tests). Any stage stops gracefully at the session
time budget; re-running resumes exactly where it left off.
## Highlights
- **Resumable** — `recover()` heals stale state; each stage skips what's done.
- **Idempotent** — safe to re-run as often as you like.
- **Drive-backed** — SQLite DB, deduped PDFs, extracted text, exports, and a
live `status.json` heartbeat all live under `MyDrive/ky_court-WIP/`.
- **Never auto-deletes on Drive** — original backups are retained.
- **Polite + fault-tolerant** — paced API calls, exponential backoff, capped
retries, and a `DRY_RUN` mode for fully offline exercise.
## Layout
| Path | Purpose |
|---|---|
| `ky_court_pipeline.ipynb` | the deliverable (generated notebook) |
| `notebook_builder/` | sources: `build.py` + one module per cell (`c00_config``c90_verify`) |
| `tests/` | offline pytest suite (18 tests; live ones gated behind `KY_LIVE=1`) |
| `scripts/smoke_local.py` | full offline pipeline over the real DB |
| `RUNBOOK.md` | full operational runbook (first run, resuming, failure modes, config knobs) |
## Quick start
```bash
# local test/smoke
python3 -m venv .venv && .venv/bin/pip install -r <pinned deps>
.venv/bin/pytest tests -q
.venv/bin/python scripts/smoke_local.py
.venv/bin/python notebook_builder/build.py # regenerate the notebook
# on Google Colab
# upload ky_court-WIP-resume-*.tar.gz to MyDrive/ (if Drive is empty),
# open ky_court_pipeline.ipynb, Runtime > Run all.
```
See **`RUNBOOK.md`** for the full runbook — first run, resuming, what "done"
looks like, failure modes, and every config knob.
> **Note:** input data (extracted archives, resume tarballs, `_WIP` backups)
> is deliberately **not** in this repo — it lives in Google Drive / locally.
-116
View File
@@ -1,116 +0,0 @@
# RUNBOOK — ky_court_pipeline.ipynb
One notebook to restore, discover, download, extract, sync, and verify the full
Kentucky appellate court document corpus (~98.7k documents). It is designed to
run in Google Colab, auto-resume after disconnects, and mirror all state up to a
Drive folder so nothing is lost across sessions.
## What this is
A single generated notebook (`ky_court_pipeline.ipynb`) whose cells are inlined
from real Python modules in `notebook_builder/cells/`. The notebook is rebuilt
with `notebook_builder/build.py`. All stages read/write the same SQLite DB and a
`Store` abstraction that is Google Drive in Colab and the local filesystem in
tests/smoke.
Stage order: **restore → discover → backfill → download → extract → sync/verify**.
Any stage stops gracefully at the session budget; re-running resumes where it
left off.
## Files on Drive (`MyDrive/ky_court-WIP/`)
| Path | Purpose |
|---|---|
| `ky_court.sqlite` | source of truth (documents, discovery_runs, kv, extraction_log) |
| `pdf_by_hash/<sha256>.pdf` | deduped PDFs keyed by content hash (3,326 unique from 9,582 backup files) |
| `pdf_backup/<case>_<n>.pdf` | original named backups — **retained, never deleted** |
| `text/<sha256>.txt` | extracted text per PDF |
| `exports/file_manifest.csv` | sha256 → size manifest |
| `exports/document_inventory.csv` / `failed_inventory.csv` | exported summaries from verify |
| `status.json` | live heartbeat + phase/counts (the "is it alive" check) |
| `ky_court-WIP-resume-*.tar.gz` | (MyDrive root) resume tarball used to rehydrate a fresh runtime |
The store root is `MyDrive/ky_court-WIP` (Colab) or `<WORKDIR>/ky_court-WIP` (local).
## First run
1. If Drive is empty (no `ky_court-WIP`), upload `ky_court-WIP-resume-YYYY-MM-DD.tar.gz`
to `MyDrive/`. Stage **restore** will extract it.
2. Open `ky_court_pipeline.ipynb` in Colab.
3. Edit the first code cell (`CFG`) if needed (budget, phases — see Config knobs).
4. **Runtime > Run all**. A session mounts Drive, opens the DB (pulling it from
the store if absent), heals stale state, then runs the enabled phases.
Expected session timeline (typical):
- setup: ~1 min (Drive mount, dirs, recover)
- discover: 1030 min (74 shards, paged search, paced)
- backfill: ~20 min (hash `pdf_backup` → dedupe into `pdf_by_hash`)
- download: ~10 h per session ≈ 612k documents (budget-capped)
- extract: rides along between batches (thread-pooled PDF text extraction)
- verify: ~5 min (integrity check, inventory exports, status push)
## Resuming
Just re-run the notebook. `recover()` closes any stale `running` discovery runs,
drops leftover `.part` files, and each stage skips what's already done:
- backfill: guarded by `kv backfill_done`
- download: only `discovered`/`failed` docs with `attempts < MAX_ATTEMPTS`
- extract: only `downloaded` docs with no extracted text yet
Idempotent by design — safe to rerun as often as you like.
## What "done" looks like
Verify prints `PASS {checks}` and, when every queue is empty:
- notebook verify output includes `done: True`
- `status.json` on Drive contains `"done": true`
A session that merely hit its budget is **not** "done" — it stops early with
`status.json` showing the phase and remaining queues. That is normal mid-flight
state, not an error.
## Failure modes
- **Colab disconnect mid-run** → just re-run. `recover()` heals stale rows;
`.part` files are dropped; partial downloads retry from the queue.
- **Drive quota exceeded** → verify/checkpoint push fails; the run continues
locally in the session but the store lags. Check Drive quota, free space, re-run.
- **5xx / connection storms** → `api_download` returns an error tuple and
`stage_download` backs off `min(60, 5*2^attempts)` seconds, retrying up to
`MAX_ATTEMPTS` before marking the doc `failed`.
- **Search shard hits the 10k ceiling** → `api_search_pages` raises; the planner
sub-shards that seed (`YYYY-CA-N`) on the next run.
- **`integrity` check not "ok"** → verify prints `FAIL`; the DB is corrupted and
should be restored from the last resume tar before trusting anything.
## Config knobs (top code cell `CFG`)
| Key | Default | Meaning |
|---|---|---|
| `BUDGET_SECONDS` | 10 * 3600 | max wall-clock per session (env `KY_BUDGET`) |
| `SHUTDOWN_SECONDS` | 900 | stop stages this long before the deadline so the session can finish cleanly |
| `PACING_SEARCH` / `PACING_DL` | (0.3,0.7) / (0.3,0.5) | random sleep range between API calls (polite throttling) |
| `MAX_ATTEMPTS` | 4 | download retries before `failed` |
| `MAX_PDF_BYTES` | 200 MiB | size cap; oversized (HTTP 413) fails permanently, no retry/backoff |
| `MAX_EXTRACT_ATTEMPTS` | 3 | PDF-extraction retries before skip |
| `RETRY_HARD` | 0 (env `KY_RETRY_HARD`) | on resume, reset `failed` docs back to `discovered` |
| `PHASES` | discover,backfill,download,extract | comma-separated phases to run (env `KY_PHASES`) |
| `DRY_RUN` | 0 (env `KY_DRY`) | 1 = fully offline: discovery/download skip all network |
## Safety notes
- The pipeline **never deletes on Drive automatically**. `pdf_backup` is retained;
pre-restore move-aside only renames (`-pre-restore`), never deletes.
- Set `DRY_RUN=1` (`KY_DRY=1`) to exercise the whole flow offline with zero
network calls — the smoke script (`scripts/smoke_local.py`) does exactly this.
- Live API tests are gated behind `KY_LIVE=1` and share a ≤10-request budget;
keep them there so the ordinary test suite stays offline and fast.
## Local / tests
```bash
python3 -m venv .venv && .venv/bin/pip install -r <pinned deps>
.venv/bin/pytest tests -q # 18 offline tests (live ones skipped)
.venv/bin/python scripts/smoke_local.py # full pipeline over the real 98,724-row DB
.venv/bin/python notebook_builder/build.py # regenerate the notebook
```
+668
View File
@@ -0,0 +1,668 @@
**Tier 1 --- Must-Know Services**
=================================
These are the services I would expect most successful solo developers to know.
**Service** **Why it matters** **Worth learning?**
-------------------------- ------------------------------------ ---------------------
Vercel Frontend + serverless deployment ⭐⭐⭐⭐⭐
Neon Serverless PostgreSQL ⭐⭐⭐⭐⭐
Convex Backend-as-a-service with realtime ⭐⭐⭐⭐⭐
Upstash Redis + Queues + Rate limiting ⭐⭐⭐⭐⭐
Cloudflare Workers/R2/D1 Edge compute + storage ⭐⭐⭐⭐⭐
Clerk Authentication ⭐⭐⭐⭐⭐
Better Stack Logging + uptime ⭐⭐⭐⭐⭐
PostHog Product analytics ⭐⭐⭐⭐⭐
Sentry Error tracking ⭐⭐⭐⭐⭐
Resend Transactional email ⭐⭐⭐⭐⭐
Trigger.dev Background jobs ⭐⭐⭐⭐⭐
GitHub Actions CI/CD ⭐⭐⭐⭐⭐
**1. App Hosting & Deployment**
===============================
**Vercel**
----------
**What**
Deploy Next.js, React, Astro, Svelte, APIs, serverless functions.
**Why**
Still the easiest deployment experience.
**Free Tier**
Very generous Hobby tier for personal projects, including serverless functions, web analytics, image optimization, and Git integration.([[Vercel]{.underline}](https://vercel.com/docs/plans/hobby?utm_source=chatgpt.com))
**Best workflow**
GitHub → automatic deployments.
**Limitations**
Not ideal for heavy CPU workloads.
**Worth in 2026?**
Absolutely.
**Fly.io**
----------
**What**
Tiny VMs worldwide.
**Why**
Great when serverless isn\'t enough.
**Best workflow**
Background workers.
Persistent services.
Long-running APIs.
**Limitations**
More DevOps.
**Worth?**
Yes.
**Railway**
-----------
One of the simplest ways to deploy:
- PostgreSQL
- Redis
- Docker
- APIs
Very fast prototype platform.
**Coolify (self-host)**
-----------------------
Worth knowing if you later rent a VPS.
**2. Databases**
================
**Neon**
--------
**What**
Serverless PostgreSQL.
**Why**
Probably the best free SQL database today.
Free includes branching, autoscaling, and generous project limits.([[Neon]{.underline}](https://neon.com/pricing?utm_source=chatgpt.com))
Best workflow:
Backend\
+\
Prisma\
+\
Drizzle\
+\
Vercel
**Turso**
---------
SQLite at the edge.
Excellent for:
- personal tools
- edge apps
- AI agents
Much faster than people realize.
**Convex**
----------
Not just a database.
Entire backend.
Realtime.
Functions.
Authentication.
Reactive queries.
Worth learning because it replaces several services.
**MongoDB Atlas**
-----------------
Still useful.
Not as attractive as serverless SQL anymore.
**3. Vector Databases**
=======================
You already know:
- Pinecone
- Qdrant
Also learn:
**Weaviate Cloud**
------------------
Excellent hybrid search.
**Chroma Cloud**
----------------
Managed Chroma.
Great for RAG.
**Milvus (Zilliz Cloud)**
-------------------------
Good free tier.
More enterprise oriented.
**Turso + sqlite-vec**
----------------------
Surprisingly capable.
**4. File Storage**
===================
**Cloudflare R2**
-----------------
Probably the best overall.
No egress charges.
Excellent APIs.
**Cloudinary**
--------------
Excellent image transformation platform.
Free includes media management, transformations, CDN delivery, and monthly usage credits.([[Cloudinary]{.underline}](https://cloudinary.com/pricing?utm_source=chatgpt.com))
Best workflow:
Upload once
Automatically resize
Generate thumbnails
Convert formats
**Tigris Data**
---------------
One of the most underrated object storage providers.
Strong free tier.
No egress pricing has made it popular with solo builders. ([[Reddit]{.underline}](https://www.reddit.com/r/selfhosted/comments/1tcxb1b/services_with_actually_generous_free_tiers_for/?utm_source=chatgpt.com))
**Supabase Storage**
--------------------
Still excellent.
**5. Authentication**
=====================
**Clerk**
---------
Still my favorite.
Why?
- OAuth
- MFA
- Organizations
- User management
Almost zero backend code.
**Better Auth**
---------------
Open source.
Growing rapidly.
**Auth.js**
-----------
Excellent if using Next.js.
**WorkOS AuthKit**
------------------
Extremely generous.
Especially useful if you may eventually target enterprise customers.
**6. Analytics**
================
**PostHog**
-----------
Probably the best analytics platform.
Includes:
- feature flags
- experiments
- funnels
- session replay
Excellent free tier.
**Mixpanel**
------------
Still excellent.
Very mature.
**Umami**
---------
Privacy focused.
Simple.
**7. Monitoring / Logging**
===========================
**Better Stack**
----------------
Probably the best overall choice.
Includes:
- uptime
- incident alerts
- logs
**Grafana Cloud**
-----------------
Huge ecosystem.
Metrics
Logs
Tracing
Synthetic monitoring
Generous always-free observability tier with limited retention.([[Grafana Labs]{.underline}](https://grafana.com/pricing/?utm_source=chatgpt.com))
**Sentry**
----------
Still essential.
Error tracking.
Performance.
Replay.
**8. CI/CD**
============
**GitHub Actions**
------------------
Still king.
**Cloudflare Builds**
---------------------
Worth learning.
**CodeRabbit**
--------------
AI code review.
Huge productivity gain.
**9. Edge / Serverless**
========================
Besides Cloudflare:
**Deno Deploy**
---------------
Fantastic.
Simple.
Fast.
**Vercel Edge Functions**
-------------------------
Excellent.
**Netlify Edge**
----------------
Still relevant.
**10. AI APIs**
===============
These matter more than almost anything now.
**OpenAI**
----------
General reasoning.
**Anthropic**
-------------
Long-context reasoning.
Coding.
**Google Gemini API**
---------------------
Huge context.
Notebook workflows.
**Mistral**
-----------
Very affordable.
**Cohere**
----------
Retrieval.
Embeddings.
**Together AI**
---------------
One API
Hundreds of models.
**OpenRouter**
--------------
One endpoint
Many providers
Great for experimentation.
**Groq**
--------
Extremely fast inference.
Excellent free access for many workloads.
**Cerebras**
------------
Ultra-fast inference for supported models.
**Hugging Face Inference Providers**
------------------------------------
Gateway to many hosted OSS models without running them locally.
**11. Developer Productivity**
==============================
**Trigger.dev**
---------------
Background jobs.
Retries.
Scheduling.
One of the best services for replacing cron and queue infrastructure.
Free plan includes monthly credits, unlimited tasks, preview environments, and scheduling.([[Trigger]{.underline}](https://trigger.dev/pricing?utm_source=chatgpt.com))
**Inngest**
-----------
Alternative to Trigger.dev.
**Resend**
----------
Transactional email.
Fantastic developer experience.
**Novu**
--------
Notifications.
Email
SMS
Push
In-app
**Dub.co**
----------
Link shortening API.
Analytics.
**12. API Platforms**
=====================
**RapidAPI**
------------
Still useful.
**APILayer**
------------
Many utility APIs.
**Tavily**
----------
Search API built for AI agents.
**Firecrawl**
-------------
Website scraping.
Markdown extraction.
Excellent for AI workflows.
**Exa**
-------
Semantic search API.
**Hidden Gems**
===============
These deserve far more attention.
**Service** **Why**
-------------- -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Tinybird Real-time analytics APIs over ClickHouse with a production-grade free tier.([[Tinybird]{.underline}](https://tinybird-docs.vercel.app/docs/forward/pricing/shared-infrastructure?utm_source=chatgpt.com))
Tigris Object storage without egress fees
Trigger.dev Background jobs
Inngest Event-driven workflows
Convex Backend replacement
Better Stack Logging + uptime
Turso Edge SQLite
WorkOS Enterprise auth
Firecrawl AI web scraping
Exa AI-native search
**Free APIs Worth Bookmarking**
===============================
- OpenAI API
- Anthropic API
- Google Gemini API
- OpenRouter
- Together AI
- Groq
- Cerebras
- Tavily Search
- Exa Search
- Firecrawl
- Resend
- Cloudinary
- GitHub API
- Stripe API
- Discord API
- Slack API
- GitLab API
- Weather.gov (US)
- OpenStreetMap / Nominatim
- Open-Meteo
- ExchangeRate.host
**Best Free-Tier Stack (2026)**
===============================
For a solo developer with a weak laptop, I\'d recommend:
**Layer** **Choice**
----------------------- ------------------------------------------
Frontend Vercel
Backend Cloudflare Workers or Convex
SQL Database Neon
Vector DB Qdrant Cloud
Object Storage Cloudflare R2
Cache / Rate Limiting Upstash
Authentication Clerk
Email Resend
Background Jobs Trigger.dev
Analytics PostHog
Error Tracking Sentry
Logging / Uptime Better Stack
Observability Grafana Cloud
CI/CD GitHub Actions
AI Models OpenRouter + Gemini + Anthropic + OpenAI
Search Tavily + Exa
Web Scraping Firecrawl
**Nice-to-Have Services**
-------------------------
- Railway
- Fly.io
- Deno Deploy
- Netlify
- Turso
- Cloudinary
- Tinybird
- Mixpanel
- Novu
- Inngest
- WorkOS
- Dub.co
- Umami
- Coolify (for future self-hosting)
This stack minimizes local resource usage while covering hosting, databases, storage, authentication, AI, observability, and automation. It is also broadly aligned with what experienced solo founders report using successfully for low-cost production deployments in 2026. ([[Reddit]{.underline}](https://www.reddit.com/r/founder/comments/1uw4cxx/crossed_13k_this_month_and_heres_my_stack_mostly/?utm_source=chatgpt.com))
+675
View File
@@ -0,0 +1,675 @@
---
tags:
- research
- chatgpt
- services
---
**Tier 1 --- Must-Know Services**
=================================
These are the services I would expect most successful solo developers to know.
**Service** **Why it matters** **Worth learning?**
-------------------------- ------------------------------------ ---------------------
Vercel Frontend + serverless deployment ⭐⭐⭐⭐⭐
Neon Serverless PostgreSQL ⭐⭐⭐⭐⭐
Convex Backend-as-a-service with realtime ⭐⭐⭐⭐⭐
Upstash Redis + Queues + Rate limiting ⭐⭐⭐⭐⭐
Cloudflare Workers/R2/D1 Edge compute + storage ⭐⭐⭐⭐⭐
Clerk Authentication ⭐⭐⭐⭐⭐
Better Stack Logging + uptime ⭐⭐⭐⭐⭐
PostHog Product analytics ⭐⭐⭐⭐⭐
Sentry Error tracking ⭐⭐⭐⭐⭐
Resend Transactional email ⭐⭐⭐⭐⭐
Trigger.dev Background jobs ⭐⭐⭐⭐⭐
GitHub Actions CI/CD ⭐⭐⭐⭐⭐
**1. App Hosting & Deployment**
===============================
**Vercel**
----------
**What**
Deploy Next.js, React, Astro, Svelte, APIs, serverless functions.
**Why**
Still the easiest deployment experience.
**Free Tier**
Very generous Hobby tier for personal projects, including serverless functions, web analytics, image optimization, and Git integration.([[Vercel]{.underline}](https://vercel.com/docs/plans/hobby?utm_source=chatgpt.com))
**Best workflow**
GitHub → automatic deployments.
**Limitations**
Not ideal for heavy CPU workloads.
**Worth in 2026?**
Absolutely.
**Fly.io**
----------
**What**
Tiny VMs worldwide.
**Why**
Great when serverless isn\'t enough.
**Best workflow**
Background workers.
Persistent services.
Long-running APIs.
**Limitations**
More DevOps.
**Worth?**
Yes.
**Railway**
-----------
One of the simplest ways to deploy:
- PostgreSQL
- Redis
- Docker
- APIs
Very fast prototype platform.
**Coolify (self-host)**
-----------------------
Worth knowing if you later rent a VPS.
**2. Databases**
================
**Neon**
--------
**What**
Serverless PostgreSQL.
**Why**
Probably the best free SQL database today.
Free includes branching, autoscaling, and generous project limits.([[Neon]{.underline}](https://neon.com/pricing?utm_source=chatgpt.com))
Best workflow:
Backend\
+\
Prisma\
+\
Drizzle\
+\
Vercel
**Turso**
---------
SQLite at the edge.
Excellent for:
- personal tools
- edge apps
- AI agents
Much faster than people realize.
**Convex**
----------
Not just a database.
Entire backend.
Realtime.
Functions.
Authentication.
Reactive queries.
Worth learning because it replaces several services.
**MongoDB Atlas**
-----------------
Still useful.
Not as attractive as serverless SQL anymore.
**3. Vector Databases**
=======================
You already know:
- Pinecone
- Qdrant
Also learn:
**Weaviate Cloud**
------------------
Excellent hybrid search.
**Chroma Cloud**
----------------
Managed Chroma.
Great for RAG.
**Milvus (Zilliz Cloud)**
-------------------------
Good free tier.
More enterprise oriented.
**Turso + sqlite-vec**
----------------------
Surprisingly capable.
**4. File Storage**
===================
**Cloudflare R2**
-----------------
Probably the best overall.
No egress charges.
Excellent APIs.
**Cloudinary**
--------------
Excellent image transformation platform.
Free includes media management, transformations, CDN delivery, and monthly usage credits.([[Cloudinary]{.underline}](https://cloudinary.com/pricing?utm_source=chatgpt.com))
Best workflow:
Upload once
Automatically resize
Generate thumbnails
Convert formats
**Tigris Data**
---------------
One of the most underrated object storage providers.
Strong free tier.
No egress pricing has made it popular with solo builders. ([[Reddit]{.underline}](https://www.reddit.com/r/selfhosted/comments/1tcxb1b/services_with_actually_generous_free_tiers_for/?utm_source=chatgpt.com))
**Supabase Storage**
--------------------
Still excellent.
**5. Authentication**
=====================
**Clerk**
---------
Still my favorite.
Why?
- OAuth
- MFA
- Organizations
- User management
Almost zero backend code.
**Better Auth**
---------------
Open source.
Growing rapidly.
**Auth.js**
-----------
Excellent if using Next.js.
**WorkOS AuthKit**
------------------
Extremely generous.
Especially useful if you may eventually target enterprise customers.
**6. Analytics**
================
**PostHog**
-----------
Probably the best analytics platform.
Includes:
- feature flags
- experiments
- funnels
- session replay
Excellent free tier.
**Mixpanel**
------------
Still excellent.
Very mature.
**Umami**
---------
Privacy focused.
Simple.
**7. Monitoring / Logging**
===========================
**Better Stack**
----------------
Probably the best overall choice.
Includes:
- uptime
- incident alerts
- logs
**Grafana Cloud**
-----------------
Huge ecosystem.
Metrics
Logs
Tracing
Synthetic monitoring
Generous always-free observability tier with limited retention.([[Grafana Labs]{.underline}](https://grafana.com/pricing/?utm_source=chatgpt.com))
**Sentry**
----------
Still essential.
Error tracking.
Performance.
Replay.
**8. CI/CD**
============
**GitHub Actions**
------------------
Still king.
**Cloudflare Builds**
---------------------
Worth learning.
**CodeRabbit**
--------------
AI code review.
Huge productivity gain.
**9. Edge / Serverless**
========================
Besides Cloudflare:
**Deno Deploy**
---------------
Fantastic.
Simple.
Fast.
**Vercel Edge Functions**
-------------------------
Excellent.
**Netlify Edge**
----------------
Still relevant.
**10. AI APIs**
===============
These matter more than almost anything now.
**OpenAI**
----------
General reasoning.
**Anthropic**
-------------
Long-context reasoning.
Coding.
**Google Gemini API**
---------------------
Huge context.
Notebook workflows.
**Mistral**
-----------
Very affordable.
**Cohere**
----------
Retrieval.
Embeddings.
**Together AI**
---------------
One API
Hundreds of models.
**OpenRouter**
--------------
One endpoint
Many providers
Great for experimentation.
**Groq**
--------
Extremely fast inference.
Excellent free access for many workloads.
**Cerebras**
------------
Ultra-fast inference for supported models.
**Hugging Face Inference Providers**
------------------------------------
Gateway to many hosted OSS models without running them locally.
**11. Developer Productivity**
==============================
**Trigger.dev**
---------------
Background jobs.
Retries.
Scheduling.
One of the best services for replacing cron and queue infrastructure.
Free plan includes monthly credits, unlimited tasks, preview environments, and scheduling.([[Trigger]{.underline}](https://trigger.dev/pricing?utm_source=chatgpt.com))
**Inngest**
-----------
Alternative to Trigger.dev.
**Resend**
----------
Transactional email.
Fantastic developer experience.
**Novu**
--------
Notifications.
Email
SMS
Push
In-app
**Dub.co**
----------
Link shortening API.
Analytics.
**12. API Platforms**
=====================
**RapidAPI**
------------
Still useful.
**APILayer**
------------
Many utility APIs.
**Tavily**
----------
Search API built for AI agents.
**Firecrawl**
-------------
Website scraping.
Markdown extraction.
Excellent for AI workflows.
**Exa**
-------
Semantic search API.
**Hidden Gems**
===============
These deserve far more attention.
**Service** **Why**
-------------- -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Tinybird Real-time analytics APIs over ClickHouse with a production-grade free tier.([[Tinybird]{.underline}](https://tinybird-docs.vercel.app/docs/forward/pricing/shared-infrastructure?utm_source=chatgpt.com))
Tigris Object storage without egress fees
Trigger.dev Background jobs
Inngest Event-driven workflows
Convex Backend replacement
Better Stack Logging + uptime
Turso Edge SQLite
WorkOS Enterprise auth
Firecrawl AI web scraping
Exa AI-native search
**Free APIs Worth Bookmarking**
===============================
- OpenAI API
- Anthropic API
- Google Gemini API
- OpenRouter
- Together AI
- Groq
- Cerebras
- Tavily Search
- Exa Search
- Firecrawl
- Resend
- Cloudinary
- GitHub API
- Stripe API
- Discord API
- Slack API
- GitLab API
- Weather.gov (US)
- OpenStreetMap / Nominatim
- Open-Meteo
- ExchangeRate.host
**Best Free-Tier Stack (2026)**
===============================
For a solo developer with a weak laptop, I\'d recommend:
**Layer** **Choice**
----------------------- ------------------------------------------
Frontend Vercel
Backend Cloudflare Workers or Convex
SQL Database Neon
Vector DB Qdrant Cloud
Object Storage Cloudflare R2
Cache / Rate Limiting Upstash
Authentication Clerk
Email Resend
Background Jobs Trigger.dev
Analytics PostHog
Error Tracking Sentry
Logging / Uptime Better Stack
Observability Grafana Cloud
CI/CD GitHub Actions
AI Models OpenRouter + Gemini + Anthropic + OpenAI
Search Tavily + Exa
Web Scraping Firecrawl
**Nice-to-Have Services**
-------------------------
- Railway
- Fly.io
- Deno Deploy
- Netlify
- Turso
- Cloudinary
- Tinybird
- Mixpanel
- Novu
- Inngest
- WorkOS
- Dub.co
- Umami
- Coolify (for future self-hosting)
This stack minimizes local resource usage while covering hosting, databases, storage, authentication, AI, observability, and automation. It is also broadly aligned with what experienced solo founders report using successfully for low-cost production deployments in 2026. ([[Reddit]{.underline}](https://www.reddit.com/r/founder/comments/1uw4cxx/crossed_13k_this_month_and_heres_my_stack_mostly/?utm_source=chatgpt.com))
+34
View File
@@ -0,0 +1,34 @@
# \# google free tier
| Free Tier usage limits | |
| ----- | :---- |
| [Agent Engine](https://docs.cloud.google.com/agent-builder/agent-engine/overview) | vCPU \- First 180,000 vCPU-seconds (50 hours) per month RAM \- First 360,000 GiB-seconds (100 hours) per month Learn about [Agent Engine pricing](https://cloud.google.com/vertex-ai/pricing#vertex-ai-agent-engine). |
| [App Engine](https://docs.cloud.google.com/appengine/docs) | Free Tier benefits for App Engine are applicable only to usage within the Standard Environment: 28 hours per day of [F1 instances](https://docs.cloud.google.com/appengine/docs/standard#instance_classes). 9 hours per day of [B1 instances](https://docs.cloud.google.com/appengine/docs/standard#instance_classes). 1 GB of outbound data transfer per day. Learn about [App Engine pricing](https://cloud.google.com/appengine/pricing). |
| [Application Integration](https://docs.cloud.google.com/application-integration/docs) | Up to 400 [integration executions](https://docs.cloud.google.com/application-integration/docs/overview). Up to 20 GiB of data processed per month. First 2 connection nodes for Google services. Learn about [Application Integration pricing](https://cloud.google.com/application-integration/pricing). |
| [Artifact Registry](https://docs.cloud.google.com/artifact-registry/docs) | 0.5 GB of storage per month. Learn about [Artifact Registry pricing](https://cloud.google.com/artifact-registry/pricing). |
| [BigQuery](https://docs.cloud.google.com/bigquery/docs) | 1 TiB of querying per month. 10 GiB of storage per month. Learn about [BigQuery pricing](https://cloud.google.com/bigquery/pricing). |
| [Cloud Build](https://docs.cloud.google.com/build/docs) | 2,500 build-minutes per month for [machine type](https://docs.cloud.google.com/compute/docs/machine-resource) `e2-standard-2`. Learn about [Cloud Build pricing](https://cloud.google.com/build/pricing). |
| [Cloud Deploy](https://docs.cloud.google.com/build/docs) | First active delivery pipeline per billing account. Learn about [Cloud Deploy pricing](https://cloud.google.com/deploy/pricing). |
| [Cloud Key Management Service](https://docs.cloud.google.com/kms/docs/key-management-service) | 100 free active key versions per month. 10,000 free cryptographic operations per month. The monthly free usage only applies to key versions created using Cloud KMS Autokey. Learn about [Cloud Key Management Service pricing](https://cloud.google.com/kms/pricing). |
| [Cloud Natural Language API](https://docs.cloud.google.com/natural-language/docs) | 5,000 units per month. Learn about [Cloud Natural Language API pricing](https://cloud.google.com/natural-language/pricing). |
| [Cloud Run](https://docs.cloud.google.com/run/docs) | Limits for request-based billing: 2 million requests per month. 360,000 GB-seconds of memory, 180,000 vCPU-seconds of compute time. 1 GB of outbound data transfer from North America per month. To learn about the Free Tier usage limits for other billing configurations, see [Cloud Run pricing](https://cloud.google.com/run/pricing). |
| [Cloud Run functions](https://docs.cloud.google.com/functions/docs) | 2 million invocations per month (includes both background and HTTP invocations). 400,000 GB-seconds, 200,000 GHz-seconds of compute time. 5 GB of outbound data transfer per month. Learn about [Cloud Run functions (1st gen) pricing](https://cloud.google.com/functions/pricing-1stgen). |
| [Cloud Shell](https://docs.cloud.google.com/shell/docs) | Free access to Cloud Shell, including 5 GB of persistent disk storage. Learn about [Cloud Shell pricing](https://cloud.google.com/shell/pricing). |
| [Cloud Source Repositories](https://docs.cloud.google.com/source-repositories/docs) | Up to 5 users per billing account. 50 GB of storage per month. 50 GB of outbound data transfer per month. Learn about [Cloud Source Repositories pricing](https://cloud.google.com/source-repositories/pricing). |
| [Cloud Storage](https://docs.cloud.google.com/storage/docs) | 5 GB-months of regional storage (US regions only) per month, which corresponds to the storage of 5 GB of data for a period of 1 month. 5,000 Class A Operations per month. 50,000 Class B Operations per month. 100 GB of outbound data transfer from North America to all region destinations (excluding China and Australia) per month. The Free Tier benefits for Cloud Storage apply only to usage in the `us-east1`, `us-west1`, and `us-central1` [regions](https://docs.cloud.google.com/storage/docs/locations). Usage calculations are combined across these regions. Learn about [Cloud Storage pricing](https://cloud.google.com/storage/pricing). |
| [Cloud Vision](https://docs.cloud.google.com/vision/docs) | 1,000 units per month. Learn about [Cloud Vision pricing](https://cloud.google.com/vision/pricing). |
| [Compute Engine](https://docs.cloud.google.com/compute/docs) | 1 non-preemptible `e2-micro` VM instance per month in one of the following US regions: Oregon: `us-west1`. Iowa: `us-central1`. South Carolina: `us-east1`. 30 GB-months standard persistent disk. 1 GB of outbound data transfer from North America to all region destinations (excluding China and Australia) per month. Your Free Tier `e2-micro` instance limit is by time, not by instance. Each month, eligible use of all of your `e2-micro` instances is free until you have used a number of hours equal to the total hours in the current month. Usage calculations are combined across the supported [regions](https://docs.cloud.google.com/compute/docs/regions-zones). GPUs and TPUs are not included in the Free Tier offer. You are always charged for GPUs and TPUs that you add to VM instances. Learn about [Compute Engine pricing](https://docs.cloud.google.com/compute/pricing). |
| [Datastream](https://docs.cloud.google.com/datastream/docs) | Free Tier benefits for Datastream apply exclusively to streams originating from AlloyDB for PostgreSQL or Spanner and destined for BigQuery: 100 GiB of change data capture (CDC) per month, per billing account. Learn about [Datastream pricing](https://cloud.google.com/datastream/pricing). |
| [Firestore](https://docs.cloud.google.com/firestore/docs) | 1 GiB of storage per project. 50,000 reads, 20,000 writes, and 20,000 deletes per day per project. 10 GiB per month of outbound data transfer. Learn about [Firestore pricing](https://cloud.google.com/firestore/pricing). |
| [Google Cloud Observability](https://docs.cloud.google.com/stackdriver/docs) (Logging and Monitoring) | First 50 GiB of log data per project per month. Logs retained for the [default retention period](https://docs.cloud.google.com/logging/quotas#logs_retention_periods) don't incur a retention cost. All non-chargeable Google Cloud metrics. Cloud Monitoring API Read calls: First 1 million time series returned per billing account. Learn about [Google Cloud Observability pricing](https://cloud.google.com/products/observability/pricing). |
| [Google Kubernetes Engine (GKE)](https://docs.cloud.google.com/kubernetes-engine/docs) | One free Autopilot or zonal Standard cluster per month. The Free Tier credit applies to the cluster charge only. This credit doesn't apply to compute, networking, or other resources. Learn about [Google Kubernetes Engine pricing](https://cloud.google.com/kubernetes-engine/pricing). |
| [Pub/Sub](https://docs.cloud.google.com/pubsub/docs) | 10 GiB of messages per month. Learn about [Pub/Sub pricing](https://cloud.google.com/pubsub/pricing). |
| [reCAPTCHA](https://docs.cloud.google.com/recaptcha-enterprise/docs) | 10,000 assessments per month. Learn about [reCAPTCHA pricing](https://cloud.google.com/recaptcha-enterprise/pricing). |
| [Secret Manager](https://docs.cloud.google.com/secret-manager/docs) | 6 active secret versions per month. 10,000 access operations per month. 3 secret rotation notifications per month. Learn about [Secret Manager pricing.](https://cloud.google.com/secret-manager/pricing) |
| [Security Command Center](https://docs.cloud.google.com/security-command-center/docs) | Standard tier: Baseline security with misconfiguration and vulnerability scanning, data security, and compliance. Learn about [Security Command Center pricing](https://cloud.google.com/security-command-center/pricing) and [features in each tier](https://docs.cloud.google.com/security-command-center/docs/service-tiers#scc_tiers_comparison). |
| [Speech-to-Text](https://docs.cloud.google.com/speech/docs) | 60 minutes per minute per month per account for the Speech-to-Text V1 API. 60 minutes per minute per month per account for SKU IDs `6649-62EF-CB8F` and `7247-19E1-FB4D`. Learn about [Speech-to-Text pricing](https://cloud.google.com/speech/pricing). |
| [Video Intelligence API](https://docs.cloud.google.com/video-intelligence/docs) | 1,000 units per month. Learn about [Video Intelligence API pricing](https://cloud.google.com/video-intelligence/pricing). |
| [Web Risk](https://docs.cloud.google.com/web-risk/docs) | 100,000 `uris.search` calls per month. This Free Tier usage is also available when you have a negotiated pricing contract for Web Risk. Learn about [Web Risk pricing](https://cloud.google.com/web-risk/pricing). |
| [Workflows](https://docs.cloud.google.com/workflows/docs) | 5,000 internal steps per month. 2,000 external HTTP calls per month. Learn more [Workflows pricing](https://cloud.google.com/workflows/pricing). |
| [Workload Manager](https://docs.cloud.google.com/workload-manager/docs) | 5,000 resource evaluations per month. Learn more [Workload Manager pricing](https://cloud.google.com/workload-manager/pricing) |
+57
View File
@@ -0,0 +1,57 @@
---
created: 2026-08-13T21:43:00
tags:
- reference
- cmds
- medic8d-dev
---
| Email | medic8d.dev@gmail.com |
| ----------------- | ----------------------------------------------------------------- |
| cloudflare | |
| github | https://github.com/BoogerTimeClub/ |
| vercel | https://vercel.com/boogertimeclub |
| gmail | |
| Cloufflare | boogerclub.shop |
| account_id | 38af04c2e487bd3e7814844b8b150d09 |
| API_TOKEN | cfat_RwrAgyIpgg2Wu40mFBjwjXMlOLhzNdcslOoKC4FG813383d8 |
| Access_Key_ID | d0ee2441d4d10c8c5dc2eb186a3b1e25 |
| Secret_Access_Key | 953596a7b1419163f222a979ade9328db43fbc13d4b7618dc5c912156bca185d |
| S3_API_ENDPOINT | https://38af04c2e487bd3e7814844b8b150d09.r2.cloudflarestorage.com |
```
curl -X GET "https://api.cloudflare.com/client/v4/accounts/38af04c2e487bd3e7814844b8b150d09/tokens/verify" \
-H "Authorization: Bearer cfat_RwrAgyIpgg2Wu40mFBjwjXMlOLhzNdcslOoKC4FG813383d8"
```
## VERCEL
```
curl -X POST "https://project-n2rwh.vercel.app/api/convert" \
-H "Content-Type: application/json" \
-d '{"url":"https://example.com/article"}'
```
```
# medic8d.dev Boogertimeclub
VERCEL_API_TOKEN=vcp_2eOjFb0NuyPrlHc4m1leS5MsZgiLfLLWkRKxNL5KDdsLYLhUEj4fpxi4
```
---
| Email | debtcoder@gmail.com |
| ----------------- | ----------------------------------------------------------------- |
| cloudflare | |
| account_id | 1d3bb9b45bec7037f28a62e6ef2461c2 |
| API_TOKEN | cfat_j2J39tSrJhk5qJA8uHlHTWwk3l8nTQlELaQTopXAcbd6e785 |
| Access_Key_ID | 93b605e9ae41f34ea460fcc5119f4cdf |
| Secret_Access_Key | 9eb2d3447c522cd224e15abc4c50027e534eade4503267576fb967cb63d06635 |
| S3_API_ENDPOINT | https://1d3bb9b45bec7037f28a62e6ef2461c2.r2.cloudflarestorage.com |
| | |
`curl -X GET "https://api.cloudflare.com/client/v4/accounts/1d3bb9b45bec7037f28a62e6ef2461c2/tokens/verify" \`
`-H "Authorization: Bearer cfat_j2J39tSrJhk5qJA8uHlHTWwk3l8nTQlELaQTopXAcbd6e785"`
-43
View File
@@ -1,43 +0,0 @@
---
tags:
- nvm
- cmds
---
**Core commands:**
```powershell
nvm list # installed versions
nvm list available # versions you can install
nvm install <version> # e.g. nvm install 20.18.0
nvm use <version> # switch active version
nvm uninstall <version> # remove one
```
**Practical stuff you'll actually hit:**
1. **`nvm use` is per-shell, not per-project.** Every new terminal window defaults back to whatever was last set globally — it does NOT auto-detect per-folder like nvm on Mac/Linux does. nvm-windows has no built-in `.nvmrc` autoswitch.
2. **Fake it with `.nvmrc` + a wrapper function.** Add this to your PowerShell `$PROFILE` to auto-switch when you `cd` into a folder with a `.nvmrc`:
```powershell
function nvmrc-check {
if (Test-Path .nvmrc) {
$version = Get-Content .nvmrc -Raw
nvm use $version.Trim()
}
}
```
You'd need to hook this to directory changes yourself (no native hook in PowerShell) — or just manually run `nvm use` when you switch projects. Not worth automating unless you're juggling many projects daily.
3. **Global npm packages don't carry over between Node versions.** Installing `npm i -g something` under 24.18.1 means it's gone if you `nvm use 20.x`. Reinstall globals per version you actually use.
4. **`nvm use` requires admin the FIRST time after a fresh nvm-windows install**, then not after — it's flipping a symlink at `C:\Program Files\nodejs`. If PowerShell isn't elevated the first time, you'll get silent permission failures. You already got it working, so this is a non-issue now, but keep it in mind after Windows updates or profile changes.
5. **Check `npm config get prefix`** — with nvm-windows this should point to the nvm symlink path, not a per-user AppData path. If a global tool ever "disappears" after switching versions, that's why — it's expected, not broken.
6. **LTS vs current:** `nvm install lts` grabs whatever's tagged LTS at install time — it does NOT auto-update to newer LTS releases later. You'll need to rerun `nvm install lts` periodically and `nvm use` the new one.
That covers what actually bites people. Anything specific you're about to do with it (global CLI tools, multiple project versions, etc.) — I can give exact commands.