corpus.blog
Most cited
Talked about
Blogs
41554 blogs · [ { "id": "01a087b2-67bb-70e9-9921-631131d0fcaa", "title": "nnn is so close to being great", "url": "https://notes.iansinnott.com/blog/posts/nnn+is+so+close+to+being+great", "published_at": null }, { "id": "01a087b2-67bb-70e9-9921-631132176edf", "title": "Your Browsing History is not Your Own", "url": "https://notes.iansinnott.com/blog/posts/Your+Browsing+History+is+not+Your+Own", "published_at": null }, { "id": "01a087b2-67bb-70e9-9921-631132e8c67a", "title": "Yazi is a better Finder TUI", "url": "https://notes.iansinnott.com/blog/posts/Yazi+is+a+better+Finder+TUI", "published_at": null }, { "id": "01a087b2-67bb-70e9-9921-631133e1d30b", "title": "Work Culture", "url": "https://notes.iansinnott.com/blog/posts/Work+Culture", "published_at": null }, { "id": "01a087b2-67bb-70e9-9921-63113407e021", "title": "WordPress Theming From Scratch", "url": "https://notes.iansinnott.com/blog/posts/WordPress+Theming+From+Scratch", "published_at": null }, { "id": "01a087b2-67bb-70e9-9921-631134de6719", "title": "WordPress Development Server - Full Set Up Guide", "url": "https://notes.iansinnott.com/blog/posts/WordPress+Development+Server+-+Full+Set+Up+Guide", "published_at": null }, { "id": "01a087b2-67bb-70e9-9921-6311358cdaa0", "title": "WordPress Needs Better Automation", "url": "https://notes.iansinnott.com/blog/posts/WordPress+Needs+Better+Automation", "published_at": null }, { "id": "01a087b2-67bb-70e9-9921-631136418c30", "title": "Why I Don't Paginate", "url": "https://notes.iansinnott.com/blog/posts/Why+I+Don't+Paginate", "published_at": null }, { "id": "01a087b2-67bb-70e9-9921-6311373c0075", "title": "What is going on with Quora's UI", "url": "https://notes.iansinnott.com/blog/posts/What+is+going+on+with+Quora's+UI", "published_at": null }, { "id": "01a087b2-67bb-70e9-9921-631138179292", "title": "Vim- It's Awesome", "url": "https://notes.iansinnott.com/blog/posts/Vim-+It's+Awesome", "published_at": null }, { "id": "01a087b2-67bb-70e9-9921-6311386c989f", "title": "Victory! The realization of a goal", "url": "https://notes.iansinnott.com/blog/posts/Victory!+The+realization+of+a+goal", "published_at": null }, { "id": "01a087b2-67bb-70e9-9921-631139182381", "title": "Using Key Remap 4 MacBook's Private", "url": "https://notes.iansinnott.com/blog/posts/Using+Key+Remap+4+MacBook's+Private.xml", "published_at": null }, { "id": "01a087b2-67bb-70e9-9921-6311399ff19f", "title": "Using Emoji in Excerpts on GitHub Pages", "url": "https://notes.iansinnott.com/blog/posts/Using+Emoji+in+Excerpts+on+GitHub+Pages", "published_at": null }, { "id": "01a087b2-67bb-70e9-9921-63113a7f5e91", "title": "Using Dokku As A Personal Heroku", "url": "https://notes.iansinnott.com/blog/posts/Using+Dokku+As+A+Personal+Heroku", "published_at": null }, { "id": "01a087b2-67bb-70e9-9921-63113ab1979d", "title": "Using Docker on a Mac with Boot2Docker", "url": "https://notes.iansinnott.com/blog/posts/Using+Docker+on+a+Mac+with+Boot2Docker", "published_at": null }, { "id": "01a087b2-67bb-70e9-9921-63113b763d54", "title": "Useful Bash Commands For Web Developers", "url": "https://notes.iansinnott.com/blog/posts/Useful+Bash+Commands+For+Web+Developers", "published_at": null }, { "id": "01a087b2-67bb-70e9-9921-63113b804890", "title": "Use SSH ForwardAgent for fun and profit", "url": "https://notes.iansinnott.com/blog/posts/Use+SSH+ForwardAgent+for+fun+and+profit", "published_at": null }, { "id": "01a087b2-67bb-70e9-9921-63113c336c40", "title": "Use RedCarpet to Render Markdown", "url": "https://notes.iansinnott.com/blog/posts/Use+RedCarpet+to+Render+Markdown", "published_at": null }, { "id": "01a087b2-67bb-70e9-9921-63113d022be6", "title": "TypeScript with implicit any is a great dynamic language", "url": "https://notes.iansinnott.com/blog/posts/TypeScript+with+implicit+any+is+a+great+dynamic+language", "published_at": null }, { "id": "01a087b2-67bb-70e9-9921-63113d7211cd", "title": "Time Machine to the Rescue", "url": "https://notes.iansinnott.com/blog/posts/Time+Machine+to+the+Rescue", "published_at": null }, { "id": "01a087b2-67bb-70e9-9921-63113e46d7da", "title": "The importance of Webpack context", "url": "https://notes.iansinnott.com/blog/posts/The+importance+of+Webpack+context", "published_at": null }, { "id": "01a087b2-67bb-70e9-9921-63113ee0e9e4", "title": "The death of a dog", "url": "https://notes.iansinnott.com/blog/posts/The+death+of+a+dog", "published_at": null }, { "id": "01a087b2-67bb-70e9-9921-63113fa90a50", "title": "The Wonders of CSS Frameworks", "url": "https://notes.iansinnott.com/blog/posts/The+Wonders+of+CSS+Frameworks", "published_at": null }, { "id": "01a087b2-67bb-70e9-9921-6311406d1435", "title": "The WP_Post Object", "url": "https://notes.iansinnott.com/blog/posts/The+WP_Post+Object", "published_at": null }, { "id": "01a087b2-67bb-70e9-9921-63114158ad90", "title": "The TL;DR Should Come First", "url": "https://notes.iansinnott.com/blog/posts/The+TL%3BDR+Should+Come+First", "published_at": null }, { "id": "01a087b2-67bb-70e9-9921-6311420710a7", "title": "The Steam Deck", "url": "https://notes.iansinnott.com/blog/posts/The+Steam+Deck", "published_at": null }, { "id": "01a087b2-67bb-70e9-9921-631142dc9865", "title": "The State of the Art", "url": "https://notes.iansinnott.com/blog/posts/The+State+of+the+Art", "published_at": null }, { "id": "01a087b2-67bb-70e9-9921-63114345374b", "title": "The Risk of Mediocrity", "url": "https://notes.iansinnott.com/blog/posts/The+Risk+of+Mediocrity", "published_at": null }, { "id": "01a087b2-67bb-70e9-9921-6311437f3a86", "title": "The Joys of Using What You Build", "url": "https://notes.iansinnott.com/blog/posts/The+Joys+of+Using+What+You+Build", "published_at": null }, { "id": "01a087b2-67bb-70e9-9921-6311447cbe8e", "title": "The Importance of Community", "url": "https://notes.iansinnott.com/blog/posts/The+Importance+of+Community", "published_at": null }, { "id": "01a087b2-67bb-70e9-9921-631144cd599a", "title": "The Hero JS Needs", "url": "https://notes.iansinnott.com/blog/posts/The+Hero+JS+Needs", "published_at": null }, { "id": "01a087b2-67bb-70e9-9921-6311451db44a", "title": "Testing Webpack Plugins", "url": "https://notes.iansinnott.com/blog/posts/Testing+Webpack+Plugins", "published_at": null }, { "id": "01a087b2-67bb-70e9-9921-631145ea6b2d", "title": "Teaching a React", "url": "https://notes.iansinnott.com/blog/posts/Teaching+a+React.js+Workshop", "published_at": null }, { "id": "01a087b2-67bb-70e9-9921-6311465cd015", "title": "Teaching My Brother To Code", "url": "https://notes.iansinnott.com/blog/posts/Teaching+My+Brother+To+Code", "published_at": null }, { "id": "01a087b2-67bb-70e9-9921-631146b88314", "title": "Switching Away From Mongoose", "url": "https://notes.iansinnott.com/blog/posts/Switching+Away+From+Mongoose", "published_at": null }, { "id": "01a087b2-67bb-70e9-9921-63114799d6f6", "title": "SvelteKit- Hitting the frontend sweet spot", "url": "https://notes.iansinnott.com/blog/posts/SvelteKit-+Hitting+the+frontend+sweet+spot", "published_at": null }, { "id": "01a087b2-67bb-70e9-9921-63114869f569", "title": "SvelteKit - A biased review", "url": "https://notes.iansinnott.com/blog/posts/SvelteKit+-+A+biased+review", "published_at": null }, { "id": "01a087b2-67bb-70e9-9921-6311491d3333", "title": "Solving problems is the biggest win", "url": "https://notes.iansinnott.com/blog/posts/Solving+problems+is+the+biggest+win", "published_at": null }, { "id": "01a087b2-67bb-70e9-9921-6311497e06f2", "title": "Solving Technical Education", "url": "https://notes.iansinnott.com/blog/posts/Solving+Technical+Education", "published_at": null }, { "id": "01a087b2-67bb-70e9-9921-631149ac5105", "title": "Software Optimism", "url": "https://notes.iansinnott.com/blog/posts/Software+Optimism", "published_at": null }, { "id": "01a087b2-67bb-70e9-9921-63114a7b8140", "title": "Software I Like", "url": "https://notes.iansinnott.com/blog/posts/Software+I+Like", "published_at": null }, { "id": "01a087b2-67bb-70e9-9921-63114aa79b83", "title": "Software Engineering is not Descriptive", "url": "https://notes.iansinnott.com/blog/posts/Software+Engineering+is+not+Descriptive", "published_at": null }, { "id": "01a087b2-67bb-70e9-9921-63114ae458b5", "title": "Show me the source or show me your business model", "url": "https://notes.iansinnott.com/blog/posts/Show+me+the+source+or+show+me+your+business+model", "published_at": null }, { "id": "01a087b2-67bb-70e9-9921-63114b7321d8", "title": "Setting Up a Python Project", "url": "https://notes.iansinnott.com/blog/posts/Setting+Up+a+Python+Project", "published_at": null }, { "id": "01a087b2-67bb-70e9-9921-63114c2901cc", "title": "Setting Up Hydra Config on A Mac", "url": "https://notes.iansinnott.com/blog/posts/Setting+Up+Hydra+Config+on+A+Mac", "published_at": null }, { "id": "01a087b2-67bb-70e9-9921-63114cd2050f", "title": "September Newsletter", "url": "https://notes.iansinnott.com/blog/posts/September+Newsletter", "published_at": null }, { "id": "01a087b2-67bb-70e9-9921-63114d63cb8c", "title": "Searching vs Filtering", "url": "https://notes.iansinnott.com/blog/posts/Searching+vs+Filtering", "published_at": null }, { "id": "01a087b2-67bb-70e9-9921-63114db6339f", "title": "Running a Meteor App on Dokku", "url": "https://notes.iansinnott.com/blog/posts/Running+a+Meteor+App+on+Dokku", "published_at": null }, { "id": "01a087b2-67bb-70e9-9921-63114e89f8c2", "title": "Road to Absterdam Part 1", "url": "https://notes.iansinnott.com/blog/posts/Road+to+Absterdam+Part+1", "published_at": null }, { "id": "01a087b2-67bb-70e9-9921-63114f82a035", "title": "Rewind", "url": "https://notes.iansinnott.com/blog/posts/Rewind.ai+Review", "published_at": null }, { "id": "01a087b2-67bb-70e9-9921-63115042fe93", "title": "Replacing Dropbox", "url": "https://notes.iansinnott.com/blog/posts/Replacing+Dropbox", "published_at": null }, { "id": "01a087b2-67bb-70e9-9921-631150c35952", "title": "Rent vs Buy", "url": "https://notes.iansinnott.com/blog/posts/Rent+vs+Buy", "published_at": null }, { "id": "01a087b2-67bb-70e9-9921-631150e9170e", "title": "Programmer, Maker or Both", "url": "https://notes.iansinnott.com/blog/posts/Programmer%2C+Maker+or+Both", "published_at": null }, { "id": "01a087b2-67bb-70e9-9921-6311513c6c7f", "title": "Predictable Progress", "url": "https://notes.iansinnott.com/blog/posts/Predictable+Progress", "published_at": null }, { "id": "01a087b2-67bb-70e9-9921-631151a0d44f", "title": "Portfolio Update + Future Site Update", "url": "https://notes.iansinnott.com/blog/posts/Portfolio+Update+%2B+Future+Site+Update", "published_at": null }, { "id": "01a087b2-67bb-70e9-9921-631151d6e742", "title": "Podcasts I Like", "url": "https://notes.iansinnott.com/blog/posts/Podcasts+I+Like", "published_at": null }, { "id": "01a087b2-67bb-70e9-9921-631151effec7", "title": "Pairwise- A retrospective", "url": "https://notes.iansinnott.com/blog/posts/Pairwise-+A+retrospective", "published_at": null }, { "id": "01a087b2-67bb-70e9-9921-631152e04cac", "title": "Page reloads are a thing of the past", "url": "https://notes.iansinnott.com/blog/posts/Page+reloads+are+a+thing+of+the+past", "published_at": null }, { "id": "01a087b2-67bb-70e9-9921-631153c2e897", "title": "On turning 30", "url": "https://notes.iansinnott.com/blog/posts/On+turning+30", "published_at": null }, { "id": "01a087b2-67bb-70e9-9921-631154716dd4", "title": "On Productivity", "url": "https://notes.iansinnott.com/blog/posts/On+Productivity", "published_at": null }, { "id": "01a087b2-67bb-70e9-9921-63115556b6c2", "title": "On Clojure", "url": "https://notes.iansinnott.com/blog/posts/On+Clojure", "published_at": null }, { "id": "01a087b2-67bb-70e9-9921-631155f09fe2", "title": "Notion as a backend for your bookmarks", "url": "https://notes.iansinnott.com/blog/posts/Notion+as+a+backend+for+your+bookmarks", "published_at": null }, { "id": "01a087b2-67bb-70e9-9921-6311568d1b73", "title": "New Site in the Works", "url": "https://notes.iansinnott.com/blog/posts/New+Site+in+the+Works", "published_at": null }, { "id": "01a087b2-67bb-70e9-9921-631157714162", "title": "New Site Is Live", "url": "https://notes.iansinnott.com/blog/posts/New+Site+Is+Live", "published_at": null }, { "id": "01a087b2-67bb-70e9-9921-631157f2cb18", "title": "Migrating to GatsbyJS Part 1", "url": "https://notes.iansinnott.com/blog/posts/Migrating+to+GatsbyJS+Part+1", "published_at": null }, { "id": "01a087b2-67bb-70e9-9921-6311589451e4", "title": "Migrating my blog to Gatsby (Part 2 of Gatsby migration)", "url": "https://notes.iansinnott.com/blog/posts/Migrating+my+blog+to+Gatsby+(Part+2+of+Gatsby+migration)", "published_at": null }, { "id": "01a087b2-67bb-70e9-9921-631158ed3854", "title": "Migrating from Jekyll to Hexo", "url": "https://notes.iansinnott.com/blog/posts/Migrating+from+Jekyll+to+Hexo", "published_at": null }, { "id": "01a087b2-67bb-70e9-9921-631159509218", "title": "Meteor is (Almost) Awesome", "url": "https://notes.iansinnott.com/blog/posts/Meteor+is+(Almost)+Awesome", "published_at": null }, { "id": "01a087b2-67bb-70e9-9921-631159ecec46", "title": "Managing state and controlled form fields with React", "url": "https://notes.iansinnott.com/blog/posts/Managing+state+and+controlled+form+fields+with+React", "published_at": null }, { "id": "01a087b2-67bb-70e9-9921-63115ac46779", "title": "Life Upgrades & Reasons To Write More", "url": "https://notes.iansinnott.com/blog/posts/Life+Upgrades+%26+Reasons+To+Write+More", "published_at": null }, { "id": "01a087b2-67bb-70e9-9921-63115b1d2f93", "title": "Learn Vim & Code Like a Boss", "url": "https://notes.iansinnott.com/blog/posts/Learn+Vim+%26+Code+Like+a+Boss", "published_at": null }, { "id": "01a087b2-67bb-70e9-9921-63115b45efd6", "title": "Jekyll Theming Like a Boss With Gulp", "url": "https://notes.iansinnott.com/blog/posts/Jekyll+Theming+Like+a+Boss+With+Gulp", "published_at": null }, { "id": "01a087b2-67bb-70e9-9921-63115bc18895", "title": "Jekyll Management Like a Boss", "url": "https://notes.iansinnott.com/blog/posts/Jekyll+Management+Like+a+Boss", "published_at": null }, { "id": "01a087b2-67bb-70e9-9921-63115bc8fd9c", "title": "JavaScript Everywhere", "url": "https://notes.iansinnott.com/blog/posts/JavaScript+Everywhere", "published_at": null }, { "id": "01a087b2-67bb-70e9-9921-63115c021e3d", "title": "Is my couch hurting my productivity", "url": "https://notes.iansinnott.com/blog/posts/Is+my+couch+hurting+my+productivity", "published_at": null }, { "id": "01a087b2-67bb-70e9-9921-63115c181609", "title": "Integrating Alfred With Keyboard Maestro", "url": "https://notes.iansinnott.com/blog/posts/Integrating+Alfred+With+Keyboard+Maestro", "published_at": null }, { "id": "01a087b2-67bb-70e9-9921-63115cb63582", "title": "In search of the ultimate tooling workflow", "url": "https://notes.iansinnott.com/blog/posts/In+search+of+the+ultimate+tooling+workflow", "published_at": null }, { "id": "01a087b2-67bb-70e9-9921-63115cfd3a06", "title": "I'm famous on GoBodyLanguage", "url": "https://notes.iansinnott.com/blog/posts/I'm+famous+on+GoBodyLanguage.com!", "published_at": null }, { "id": "01a087b2-67bb-70e9-9921-63115d471bf6", "title": "How to prioritize speed", "url": "https://notes.iansinnott.com/blog/posts/How+to+prioritize+speed", "published_at": null }, { "id": "01a087b2-67bb-70e9-9921-63115d9b76c0", "title": "How to get VSCode extensions in Windsurf", "url": "https://notes.iansinnott.com/blog/posts/How+to+get+VSCode+extensions+in+Windsurf", "published_at": null }, { "id": "01a087b2-67bb-70e9-9921-63115e093b59", "title": "How to Trade on the Taiwanese Stock Market", "url": "https://notes.iansinnott.com/blog/posts/How+to+Trade+on+the+Taiwanese+Stock+Market", "published_at": null }, { "id": "01a087b2-67bb-70e9-9921-63115e84d9f0", "title": "How to Disable Live Reload in create-react-app", "url": "https://notes.iansinnott.com/blog/posts/How+to+Disable+Live+Reload+in+create-react-app", "published_at": null }, { "id": "01a087b2-67bb-70e9-9921-63115f586e94", "title": "How I Nearly Gave Up Coffee", "url": "https://notes.iansinnott.com/blog/posts/How+I+Nearly+Gave+Up+Coffee", "published_at": null }, { "id": "01a087b2-67bb-70e9-9921-63115fe574ff", "title": "How I Learned to Code", "url": "https://notes.iansinnott.com/blog/posts/How+I+Learned+to+Code", "published_at": null }, { "id": "01a087b2-67bb-70e9-9921-6311604957d0", "title": "How I Ended Up In Taiwan", "url": "https://notes.iansinnott.com/blog/posts/How+I+Ended+Up+In+Taiwan", "published_at": null }, { "id": "01a087b2-67bb-70e9-9921-631160b90e54", "title": "Going fully HTTPS (SSL) fo' free", "url": "https://notes.iansinnott.com/blog/posts/Going+fully+HTTPS+(SSL)+fo'+free", "published_at": null }, { "id": "01a087b2-67bb-70e9-9921-6311618ebaa8", "title": "Goals 2025", "url": "https://notes.iansinnott.com/blog/posts/Goals+2025", "published_at": null }, { "id": "01a087b2-67bb-70e9-9921-6311628929bc", "title": "Getting Started with Flow and Webpack", "url": "https://notes.iansinnott.com/blog/posts/Getting+Started+with+Flow+and+Webpack", "published_at": null }, { "id": "01a087b2-67bb-70e9-9921-631162e5bd3c", "title": "Getting Productive With Fish Shell", "url": "https://notes.iansinnott.com/blog/posts/Getting+Productive+With+Fish+Shell", "published_at": null }, { "id": "01a087b2-67bb-70e9-9921-631163053614", "title": "Functional Pipelines in JavaScript Using async-await", "url": "https://notes.iansinnott.com/blog/posts/Functional+Pipelines+in+JavaScript+Using+async-await", "published_at": null }, { "id": "01a087b2-67bb-70e9-9921-6311636539cb", "title": "From Startup Idea to (In)validation in a Week", "url": "https://notes.iansinnott.com/blog/posts/From+Startup+Idea+to+(In)validation+in+a+Week", "published_at": null }, { "id": "01a087b2-67bb-70e9-9921-631163bf5ec9", "title": "Founder Diaries- Leaving the comfort zone", "url": "https://notes.iansinnott.com/blog/posts/Founder+Diaries-+Leaving+the+comfort+zone", "published_at": null }, { "id": "01a087b2-67bb-70e9-9921-631164ae7c5d", "title": "Faster unit tests with Bun", "url": "https://notes.iansinnott.com/blog/posts/Faster+unit+tests+with+Bun", "published_at": null }, { "id": "01a087b2-67bb-70e9-9921-631164b71e34", "title": "Express Basics", "url": "https://notes.iansinnott.com/blog/posts/Express+Basics", "published_at": null }, { "id": "01a087b2-67bb-70e9-9921-6311658c7bcb", "title": "Editor Overload", "url": "https://notes.iansinnott.com/blog/posts/Editor+Overload", "published_at": null }, { "id": "01a087b2-67bb-70e9-9921-6311659bdc07", "title": "Dokku, Mongo & Node", "url": "https://notes.iansinnott.com/blog/posts/Dokku%2C+Mongo+%26+Node.js", "published_at": null }, { "id": "01a087b2-67bb-70e9-9921-6311662c6040", "title": "Do you know what Github is", "url": "https://notes.iansinnott.com/blog/posts/Do+you+know+what+Github+is", "published_at": null }, { "id": "01a087b2-67bb-70e9-9921-6311664b7fa7", "title": "Discoverability vs Manipulability, GUI vs CLI", "url": "https://notes.iansinnott.com/blog/posts/Discoverability+vs+Manipulability%2C+GUI+vs+CLI", "published_at": null }, { "id": "01a087b2-67bb-70e9-9921-6311667232ab", "title": "Discoverability and Productivity", "url": "https://notes.iansinnott.com/blog/posts/Discoverability+and+Productivity", "published_at": null }, { "id": "01a087b2-67bb-70e9-9921-631167101d3a", "title": "Custom Post Types- A Great Article", "url": "https://notes.iansinnott.com/blog/posts/Custom+Post+Types-+A+Great+Article", "published_at": null } ] posts
Claim your blog
Back to notes.iansinnott.com
Blog · corpus.blog/blogs/notes.iansinnott.com/posts
notes.iansinnott.com
notes.iansinnott.com
Undated
nnn is so close to being great
original ↗
—
Your Browsing History is not Your Own
original ↗
—
Yazi is a better Finder TUI
original ↗
—
Work Culture
original ↗
—
WordPress Theming From Scratch
original ↗
—
WordPress Development Server - Full Set Up Guide
original ↗
—
WordPress Needs Better Automation
original ↗
—
Why I Don't Paginate
original ↗
—
What is going on with Quora's UI
original ↗
—
Vim- It's Awesome
original ↗
—
Victory! The realization of a goal
original ↗
—
Using Key Remap 4 MacBook's Private
original ↗
—
Using Emoji in Excerpts on GitHub Pages
original ↗
—
Using Dokku As A Personal Heroku
original ↗
—
Using Docker on a Mac with Boot2Docker
original ↗
—
Useful Bash Commands For Web Developers
original ↗
—
Use SSH ForwardAgent for fun and profit
original ↗
—
Use RedCarpet to Render Markdown
original ↗
—
TypeScript with implicit any is a great dynamic language
original ↗
—
Time Machine to the Rescue
original ↗
—
The importance of Webpack context
original ↗
—
The death of a dog
original ↗
—
The Wonders of CSS Frameworks
original ↗
—
The WP_Post Object
original ↗
—
The TL;DR Should Come First
original ↗
—
The Steam Deck
original ↗
—
The State of the Art
original ↗
—
The Risk of Mediocrity
original ↗
—
The Joys of Using What You Build
original ↗
—
The Importance of Community
original ↗
—
The Hero JS Needs
original ↗
—
Testing Webpack Plugins
original ↗
—
Teaching a React
original ↗
—
Teaching My Brother To Code
original ↗
—
Switching Away From Mongoose
original ↗
—
SvelteKit- Hitting the frontend sweet spot
original ↗
—
SvelteKit - A biased review
original ↗
—
Solving problems is the biggest win
original ↗
—
Solving Technical Education
original ↗
—
Software Optimism
original ↗
—
Software I Like
original ↗
—
Software Engineering is not Descriptive
original ↗
—
Show me the source or show me your business model
original ↗
—
Setting Up a Python Project
original ↗
—
Setting Up Hydra Config on A Mac
original ↗
—
September Newsletter
original ↗
—
Searching vs Filtering
original ↗
—
Running a Meteor App on Dokku
original ↗
—
Road to Absterdam Part 1
original ↗
—
Rewind
original ↗
—
Replacing Dropbox
original ↗
—
Rent vs Buy
original ↗
—
Programmer, Maker or Both
original ↗
—
Predictable Progress
original ↗
—
Portfolio Update + Future Site Update
original ↗
—
Podcasts I Like
original ↗
—
Pairwise- A retrospective
original ↗
—
Page reloads are a thing of the past
original ↗
—
On turning 30
original ↗
—
On Productivity
original ↗
—
On Clojure
original ↗
—
Notion as a backend for your bookmarks
original ↗
—
New Site in the Works
original ↗
—
New Site Is Live
original ↗
—
Migrating to GatsbyJS Part 1
original ↗
—
Migrating my blog to Gatsby (Part 2 of Gatsby migration)
original ↗
—
Migrating from Jekyll to Hexo
original ↗
—
Meteor is (Almost) Awesome
original ↗
—
Managing state and controlled form fields with React
original ↗
—
Life Upgrades & Reasons To Write More
original ↗
—
Learn Vim & Code Like a Boss
original ↗
—
Jekyll Theming Like a Boss With Gulp
original ↗
—
Jekyll Management Like a Boss
original ↗
—
JavaScript Everywhere
original ↗
—
Is my couch hurting my productivity
original ↗
—
Integrating Alfred With Keyboard Maestro
original ↗
—
In search of the ultimate tooling workflow
original ↗
—
I'm famous on GoBodyLanguage
original ↗
—
How to prioritize speed
original ↗
—
How to get VSCode extensions in Windsurf
original ↗
—
How to Trade on the Taiwanese Stock Market
original ↗
—
How to Disable Live Reload in create-react-app
original ↗
—
How I Nearly Gave Up Coffee
original ↗
—
How I Learned to Code
original ↗
—
How I Ended Up In Taiwan
original ↗
—
Going fully HTTPS (SSL) fo' free
original ↗
—
Goals 2025
original ↗
—
Getting Started with Flow and Webpack
original ↗
—
Getting Productive With Fish Shell
original ↗
—
Functional Pipelines in JavaScript Using async-await
original ↗
—
From Startup Idea to (In)validation in a Week
original ↗
—
Founder Diaries- Leaving the comfort zone
original ↗
—
Faster unit tests with Bun
original ↗
—
Express Basics
original ↗
—
Editor Overload
original ↗
—
Dokku, Mongo & Node
original ↗
—
Do you know what Github is
original ↗
—
Discoverability vs Manipulability, GUI vs CLI
original ↗
—
Discoverability and Productivity
original ↗
—
Custom Post Types- A Great Article
original ↗
—
Next