AI 资讯
I Built a Self-Hostable URL Shortener Because Bitly Now Charges $10/Month for Basic Links
In 2023, Bitly's free plan gave you 100 links per month with full analytics. In 2025, they slashed it to 5 links per month . Five. And they started showing full-screen interstitial ads before redirecting — even on links you created years ago. In 2026, their cheapest paid plan is $10/month — just to shorten links without ads. I was paying $120/year to turn long URLs into short ones. A problem that takes 3 lines of code to solve. So I solved it myself. For free. Forever. Introducing ZipLink ZipLink is a fast, self-hostable URL shortener built with Next.js and Firebase. Deploy it once, use it forever. No monthly fees. No link limits. No ads. No "upgrade to unlock analytics." Your links. Your data. Your domain. Your rules. https://yourdomain.com/abc123 → https://some-really-long-url.com/path/to/thing?utm=whatever That's it. That's the product. Except you own it completely. The State of URL Shorteners in 2026 (It's Embarrassing) Let me show you what the "industry leaders" are charging for what is essentially a database lookup: The Comparison Table Feature Bitly Rebrandly Short.io Dub.co TinyURL Pro ZipLink Monthly cost $10-$300/mo $13-$349/mo $19-$149/mo $24-$299/mo $9.99/mo $0 Annual cost $96-$2,388/yr $156-$4,188/yr $228-$1,788/yr $288-$3,588/yr $119.88/yr $0 Free tier links 5/month 10/month 1,000 total 25/month Unlimited (no analytics) Unlimited Custom domain Paid only Free (1 domain) Required Paid only Paid only Yes (yours) Click analytics Paid only Paid only Free (basic) Paid only Paid only Full, free Link expiration Paid only Paid only Yes Yes No Yes Password protection Enterprise only Paid only Paid Paid No Yes API access Paid only Paid only Yes Yes Paid Full, free QR codes 2 free, then paid Paid Yes Paid Paid Unlimited Self-hostable No No No Yes (complex) No Yes (simple) Data ownership Their servers Their servers Their servers Their servers Their servers Your Firebase Ads/interstitials Yes (free tier) No No No Yes (free tier) Never Links disappear if you stop pay
AI 资讯
#21 So, What's Your First One?
Before I hand this over, I want to tell you where I'm actually standing right now. I'm looking at the biggest mountain yet: building our hospital's own ERP and EMR — the systems that run the business side and the medical records side of the whole place. That's usually the job of specialized companies, and it's tangled up with outside regulators too. Nobody knows how long it'll take. I'm assuming at least three years. Honestly, it feels overwhelming. The size of the fear hasn't changed. My grip on it has. Here's the strange part. That overwhelmed feeling isn't unfamiliar at all. A year ago, staring at a blank screen and not knowing what code even was, I felt exactly this lost. What's different isn't the size of the fear. It's that I now know what to do with it. Get curious, look it up. Look it up, a direction shows up. See a direction, find a method, and just start. Fail, and you've learned something. Succeed, and you move to the next thing. That loop is the only thing that ever carried me anywhere , and it's the same loop I'm running at the foot of this much bigger mountain. Right now the wall isn't technical The thing I don't know isn't code. It's other departments. I moved from the treatment room to the planning office not long ago, and I still don't really know how the other departments do their work. You can't automate what you don't understand. So before anything else, I'm doing the one thing that actually comes first: listening. Hearing what people in the field actually need, what's grinding on them, and figuring out the shape of a fix together, one conversation at a time. I've noticed something before, more than once: problems that look completely different from the outside — counting a stack of forms, tracking down misplaced supplies, sorting a pile of ID cards — usually reduce to the exact same shape underneath. Make the pile of things findable. I suspect the same pattern is waiting inside every other department too. I just haven't looked yet. That's how I
科技前沿
22 Back-to-School College Dorm Room Essentials (2026)
Deck out your room and make class a cinch with these WIRED-tested favorites.
AI 资讯
The Best Vacuum for Pet Hair—We Tested Many to Find Which Ones Work Best (2026)
Cordless, handheld, robot, and traditional—we tested them all to find the vacuum that’s fantastic for fur.
产品设计
Matthew Slack Perth Executive Leadership
Executive Leadership Focused on Growth and Innovation Discussion | Link
科技前沿
The Best MagSafe Wallets for Your Everyday Carry (2026)
The slim and convenient magnetic wallets you’ll actually want stuck to the back of your phone.
科技前沿
10 Best Meal Delivery Services, Tested by an Ex-Restaurant Critic
Here are the best delivery services and meal kits in 2026, including Martha Stewart’s meal service, a GLP-1–supportive plan, and a budget-friendly option.
产品设计
Fathom
Turn messy bank exports into clear financial decisions Discussion | Link
AI 资讯
AI Agents Inside CI/CD: How We Automated PR Triage and Reduced Review Bottlenecks
Over the past few months, I've been exploring how AI agents can fit into a modern CI/CD pipeline—not to replace engineers, but to eliminate repetitive work that slows teams down. Here's what worked well: ✅ Automatically categorized incoming pull requests ✅ Flagged potential security and dependency issues ✅ Suggested fixes for linting and test failures ✅ Generated review summaries for faster code reviews ✅ Reduced context switching for reviewers The biggest lesson? AI is most valuable before the human review begins. The Problem Every engineering team eventually runs into the same issue. Developers submit pull requests faster than reviewers can process them. A typical PR often goes through several repetitive steps: CI builds Unit tests Linting Dependency checks Security scanning Style comments Reviewer assignment Documentation validation None of these tasks require deep architectural thinking, yet they consume valuable engineering time. I started wondering: What if an AI agent handled the first round of triage automatically? The Workflow Instead of waiting for a human reviewer, the pipeline lets an AI agent inspect every pull request immediately after CI starts. Developer │ ▼ Pull Request Created │ ▼ CI Pipeline Starts │ ▼ AI Agent ├── Analyze changed files ├── Review commit summary ├── Detect risky changes ├── Check coding standards ├── Explain failing tests ├── Suggest fixes └── Generate PR summary │ ▼ Human Review By the time a reviewer opens the PR, much of the routine analysis is already complete. Example GitHub Actions Workflow A simplified workflow might look like this: name: AI Pull Request Review on: pull_request: types: [opened, synchronize] jobs: ai-review: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Run Tests run: npm test - name: Run Linter run: npm run lint - name: AI PR Analysis run: ./scripts/ai-review.sh The AI step can analyze: Test failures Lint violations Changed files Security findings Dependency updates before publishing a r
产品设计
My Week of Transparent Living With Apple’s ‘More Clear’ Liquid Glass Setting
I cranked Apple’s iOS 27 beta to maximum transparency on my iPhone and enjoyed every warped second.
AI 资讯
PromptScout
Increase your brand's AI visibility on autopilot Discussion | Link
AI 资讯
AI Eyes
Permission-first real-time senses for AI companions Discussion | Link
产品设计
Empathy Engine
A human-in-loop support agent that tracks customer signals Discussion | Link
产品设计
Hotspot Meter
A private data-usage meter for your Mac menu bar Discussion | Link
AI 资讯
Chimlo
Track Codex and Claude Code and respond from your Notch Discussion | Link
产品设计
Rehello
Made for introverts to remember people & reconnect naturally Discussion | Link
AI 资讯
OpenCode Superapp
The power of Codex with local, self-hosted models and voice Discussion | Link
产品设计
NotifyBridge
Dead-Simple IoT Push Notifications for Makers & Hobbyists Discussion | Link
产品设计
Liso
Highlight text on any page and turn it into audio. Discussion | Link
AI 资讯
How to Convert Bank Statements to CSV (Without Losing Data Accuracy)
If you've ever tried converting a bank statement PDF to CSV and ended up with a jumbled mess of merged cells, missing rows, or split transaction descriptions — you're not alone. This is one of the most common data pain points for accountants, bookkeepers, and anyone who does their own finances. In this post, I'll walk through why this happens, what the right approach looks like, and how to get clean, analysis-ready CSV output from any bank statement. Why Bank Statement PDFs Are So Hard to Parse Bank statements aren't structured documents — they're designed for printing, not data extraction. Here's what generic converters run into: Merged cells : PDF renderers often group date + description + amount into a single visual block. Naive converters pick one cell boundary and split it wrong. Multi-line transactions : A single transaction entry (especially with memos) can span 2–3 lines in the PDF, but gets split into separate rows in the spreadsheet. Negative vs. positive amounts : Debit/credit columns vary by bank.Chase uses a single "Amount" column with negatives for debits. BoA uses two separate columns. A generic converter treats them identically and produces wrong signs. Running balance drift : If even one row is misaligned, every balance figure below it is off. Method 1: Manual Copy-Paste (What You're Probably Doing Now) The baseline. Open the PDF, select all, paste into Excel, then spend 30 minutes fixing column alignment. Pros: Free, no tools required. Cons: Slow (20–40 minutes per statement), error-prone, completely unscalable if you have multiple accounts or months to process. Method 2: Python + pdfplumber For developers who want a scriptable solution: import pdfplumber import csv with pdfplumber . open ( " statement.pdf " ) as pdf : rows = [] for page in pdf . pages : table = page . extract_table () if table : rows . extend ( table ) with open ( " output.csv " , " w " , newline = "" ) as f : writer = csv . writer ( f ) writer . writerows ( rows ) This works reas