Purplelink

Blog

Writing from
Purplelink.

Notes for researchers on writing, citing and submitting papers, how the tools are built, and news from a one-person software studio in Atlanta.

Follow along: the blog's feed for a feed reader, or the Daily Digest by email.

Forward and inverse search aren't mirror images

A synced PDF preview needs two separate pieces of code, not one run backward. ModernTex shipped the harder direction wrong before getting it right, and the gap shows what counts as correct versus what counts as working.

The co-author who writes in Word

Converting cleanly between LaTeX and Word is the easy half of a coauthored manuscript. The harder half is getting a reviewed Word file's tracked changes and comments back into your LaTeX source without retyping them.

Mist rising from forested slopes above the Hozu River near Arashiyama
My travel photographs, now available as prints

About 500 photographs from the Alps, Japan, Iceland and more are for sale as prints. Where to find them, and the metadata field that cut 65 listing titles short.

Where Your Academic Record Actually Lives

Academics maintain their professional history in a dozen scattered places. When tenure reviews, grant applications, and annual reviews arrive, reconstructing the record from scratch is the problem.

Both bugs had the same symptom: zero

Building GlobePin's App Store analytics pipeline, I wrote code that treated absent data and broken requests identically. Two independent bugs, each enough to return nothing, sat undetected until Apple generated its first real reports.

TikZ diagrams and tables in ModernTex, without writing either by hand

A visual TikZ designer with live preview, and a Table Editor that pastes straight from Excel — both still write plain LaTeX underneath.

Checking your response letter before resubmission

A response letter can address every reviewer comment without actually resolving the underlying concern. This is how a researcher uses Response to Reviewers to check that gap before resubmitting.

Detecting checkout without a click handler

The kits page had visitors but Stripe showed no sessions. Here is how I instrumented the checkout boundary without adding click handlers to every buy button.

What Your Literature Search Misses

Most missed citations aren't papers you forgot to read. They're papers in adjacent fields using different terminology for the same problem, invisible to a keyword search.

The comment said this would break

The Purplelink stats endpoint read event blobs one at a time, and the code even included a comment noting it would fail at higher volume. The failure arrived through latency rather than traffic spikes.

Producing a diff PDF for journal resubmission

Many journal submission portals require a diff PDF alongside a revised manuscript. Here is how a researcher uses Purplelink's LaTeX Diff tool to produce one without a local LaTeX installation.

Why the cover letter generator doesn't see your manuscript

The Purplelink cover letter generator takes only your abstract, not the full manuscript. Here's the capability and privacy reasoning behind that design choice.

What counts as a run when the tool never calls the server

Two Purplelink tools that compute entirely in the browser had no usage data, because instrumentation relied on intercepting backend calls. Fixing that required defining what a run actually means, and the answer differed by tool.

What stays in a blinded manuscript

Double-blind peer review requires more than removing your name from the title page. Grant numbers, IRB protocols, citation prose, and named software all identify you to a reviewer who knows your field.

What OpenAlex returns when you ask for an abstract

OpenAlex stores paper abstracts as inverted indexes rather than strings. Building the Daily Digest's paper fetcher surfaced this, and the reconstruction has limits.

Running your manuscript through Paper Review

Paper Review scans your manuscript before submission with four adversarial passes: figure integrity, citation cross-check, a multi-persona reviewer debate, and a prioritized checklist. Here is what using it looks like from a researcher's side.

One curation call per day

The Purplelink Daily Digest harvests 400-800 items daily and picks 20 to publish. Here's why the design uses a single AI curation call instead of scoring items one at a time.

Keeping up when your research crosses fields

Academic researchers who work across multiple fast-moving fields have no good daily briefing built for them. Here's why the existing infrastructure falls short, and what I built to fix it.

Daily Digest

What caught my eye today at the intersection of cybersecurity, AI, research, and entrepreneurship. Curated every morning.

Where BibTeX errors actually come from

Most BibTeX errors don't come from researchers making mistakes. They come from the bibliography managers and export tools researchers trust to get it right.

Getting a research paper into an LLM without losing the math

PDF text extraction breaks on tables and equations. Here's how a researcher uses Purplelink's PDF to Structured Data tool to get clean, LLM-ready text out of an academic paper.

Seven free LaTeX tools, right in your browser

Compile to PDF, convert to and from Word, diff two versions, validate and build BibTeX, and render equations - no account, no install, nothing stored. They're live now.

What GlobePin does that no other travel app does

Every travel tracker on the App Store solves a piece of the problem. Most miss the same things. Here's what we built differently - and why.

Why we built Haea on-device

Your health data is the most personal data you have. Here's why we decided early on that none of it would leave your phone - and what that decision cost us.

The LaTeX editor that academics actually want

TeXShop is from 2000. Overleaf is a web app. Neither was designed around the manuscript workflow researchers actually live in. ModernTex is.

Starting Purplelink

Why I formed a software LLC, what I'm building with it, and the philosophy behind making software that's meant to last - not just ship.