# Shawn Wang (swyx) > The official site of Shawn @swyx Wang, a technologist and recovering finance geek. Shawn Wang writes about AI engineering, developer tools, learning in public, and software careers. ## Site - [Home](https://swyx.io/): Recent writing and updates from Shawn Wang (swyx). - [About](https://swyx.io/about): Background, biography, and contact information. - [Ideas](https://swyx.io/ideas): Complete archive of essays, notes, talks, and tutorials. - [Podcasts](https://swyx.io/podcasts): Podcasts and audio conversations. - [Portfolio](https://swyx.io/portfolio): Projects, work, and investments. - [Subscribe](https://swyx.io/subscribe): Newsletter subscription and updates. - [Box](https://swyx.io/box): A distraction-free, oversized text box for writing. - [Draw](https://swyx.io/draw): A fullscreen drawing canvas with organized pages and AI image tools. - [RSS feed](https://swyx.io/rss.xml): New writing and updates. - [XML sitemap](https://swyx.io/sitemap.xml): Every canonical public page. ## Writing - [What America has meant to me](https://swyx.io/america250): Every time I have given up on America, it has been a mistake. And yet, America has never, ever given up on me. ([Markdown](https://swyx.io/america250.md)) - [AIE Singapore: The Agentic Nation](https://swyx.io/aie-singapore-the-agentic-nation): i gave a little talk as closing keynote for the first AI Engineer Singapore. burned some bridges but said what i felt. ([Markdown](https://swyx.io/aie-singapore-the-agentic-nation.md)) - [What you can do in a decade](https://swyx.io/decade): I turned 40 today. For my 35th I did principles, but for my 40th, I wanted to offer perhaps more useful reflections. ([Markdown](https://swyx.io/decade.md)) - [How to Thought Lead (2026)](https://swyx.io/lead): I first started compiling "How To Thought Lead" in my notes 5 years ago, at first as an ironic parody and then slowly becoming sincere, and never published it, 1) because I don't… ([Markdown](https://swyx.io/lead.md)) - [Constance Crozier: Forecasting s-curves is hard](https://swyx.io/scurves): There was a famous Covid era chart that I always struggle to find, showing how hard it is to estimate an S curve while living through it. in the early days it seems that… ([Markdown](https://swyx.io/scurves.md)) - [Take a hard game, and make it shorter](https://swyx.io/shorter): You are of course aware that attention spans are shrinking. YouTube -> Shorts, Instagram Reels, Tiktoks, etc have taken over the world. ([Markdown](https://swyx.io/shorter.md)) - [How To Podcast](https://swyx.io/podcast): Through my 4 (!) podcasts I obviously have built up a lot of opinions on podcasting over the years. Here's some of them. The two outlier podcasts of our time are Dwarkesh and… ([Markdown](https://swyx.io/podcast.md)) - [The Impossible Triangle of LLM Infra](https://swyx.io/impossible-triangle): another talk I am giving at Mastra's TypeScript AI conf today https://docs.google.com/presentation/d/1NnQ3H5Bki3vWRRJdVXoCFJ5dsNKH9QrC-eEQ2Z8olck/edit?usp=sharing ([Markdown](https://swyx.io/impossible-triangle.md)) - [The only Permanent Underclass are the ones who believe it is permanent](https://swyx.io/permanent-underclass): For a while now there has been a persistent "gallows humor" meme about missing out on the generational wealth that will result in AI: ([Markdown](https://swyx.io/permanent-underclass.md)) - [The Year in Agents - AI Engineer Paris](https://swyx.io/aie-paris): I gave a short address for the first AIE Paris conference organized by Koyeb! ([Markdown](https://swyx.io/aie-paris.md)) - [Cognition: The Devin is in the Details](https://swyx.io/cognition): My thesis for the future of software dev agents. This is a hastily written blogpost done on not a lot of sleep, so pardon poor pacing and structure and typos and mistakes but… ([Markdown](https://swyx.io/cognition.md)) - [My 2025 New Mac Setup](https://swyx.io/new-mac-setup): I set up a new Mac for work today. Here's everything I use on a Mac for fullstack web development. ([Markdown](https://swyx.io/new-mac-setup.md)) - [Becoming a High Taste Tester](https://swyx.io/high-taste-tester): theres a specific reason why i'm writing this post i can't disclose yet. but am sharing my prep work in public ([Markdown](https://swyx.io/high-taste-tester.md)) - [Gemini Nano in Chrome 137: notes for AI Engineers](https://swyx.io/gemini-nano): at long last, Gemini Nano is almost here for all Chrome users (i was originally misinformed that it was in Chrome 138 - but i checked my own facts and since Chrome 137+ it is… ([Markdown](https://swyx.io/gemini-nano.md)) - [notes from Naval (2025)](https://swyx.io/naval-2025): someone I resonate a lot with is Naval Ravikant - his classic "How to Get Rich Without Getting Lucky" (henceforth HTGR) is formative to a lot of my thinking, including How to… ([Markdown](https://swyx.io/naval-2025.md)) - [Elixir/Phoenix Liveview was a mistake](https://swyx.io/liveview-mistake): I made an expensive technical decision on Phoenix Liveview for the Smol Talk webapp about a year ago that I now regret, and am jotting down some notes to self for why. ([Markdown](https://swyx.io/liveview-mistake.md)) - [2025 Advice to my old selves](https://swyx.io/2025-advice): I turned a birthday recently and it was so busy (DataCouncil + sg flight) that i never really got the chance to sit and reflect. a lot of things are going well, lots more could… ([Markdown](https://swyx.io/2025-advice.md)) - [Supa Pecha Kucha](https://swyx.io/supa-pecha-kucha): slug: supapechakucha ([Markdown](https://swyx.io/supa-pecha-kucha.md)) - [How to download YouTube Videos quickly](https://swyx.io/youtube-download): I used to use yt5s all the time to rip and remix videos: ([Markdown](https://swyx.io/youtube-download.md)) - [Home Assistant Voice Preview is an unusable mess.](https://swyx.io/home-assistant-struggles): I just got a Home Assistant Voice recently. I was so excited to try it out as a programmable Alexa. ([Markdown](https://swyx.io/home-assistant-struggles.md)) - [Designing a Logo](https://swyx.io/logo-design): I recently kicked off a 99designs contest for a new logo: https://99designs.com/logo-design/contests/logo-brand-ai-engineering-podcast-help-define-industry-1307842/ ([Markdown](https://swyx.io/logo-design.md)) - [Actually Structured Journaling (Jan 2025)](https://swyx.io/structured-journaling-jan-2025): I was very excited when I saw Cal Newport's episode on Structured Journaling come up, but I was disappointed by the recommendations: ([Markdown](https://swyx.io/structured-journaling-jan-2025.md)) - [Pseudocode for Intentionality](https://swyx.io/intentionality): I've been interested in being more intentional with my work, time and life recently. Here is my working definition of how to be more intentional. ([Markdown](https://swyx.io/intentionality.md)) - [Date Me!](https://swyx.io/date-me): if you like me, and you're interested but never thought to ask, just ask! ([Markdown](https://swyx.io/date-me.md)) - [swyx in 2024 End of Year wraps](https://swyx.io/2024-eoy): i was involved in 3 end of year-ish recaps today: ([Markdown](https://swyx.io/2024-eoy.md)) - [Holding Space for Wicked (Part One)](https://swyx.io/wicked): The first time i saw Wicked was on broadway, around 2006-2007 when i first moved to the US ([Markdown](https://swyx.io/wicked.md)) - [Engineering AI Agents - OpenAI DevDay Singapore talk](https://swyx.io/ai-eng-agents): this is the tracking doc for my talk on "Engineering AI Agents" for OpenAI DevDay Singapore. I'll add photos and notes and stuff when i'm done. note that the full slides contain… ([Markdown](https://swyx.io/ai-eng-agents.md)) - [My 2024 New Mac Setup](https://swyx.io/new-mac-setup-2024): I set up a new Mac for work today. Here's everything I use on a Mac for fullstack web development. ([Markdown](https://swyx.io/new-mac-setup-2024.md)) - [Moving in Big Cities: Lugg vs Clutter](https://swyx.io/lugg-vs-clutter): 2026 update: used Lugg to move a sectional sofabed couch and ended up regretting it - it cost $222.51 one way (44min labor pickup 55min labor dropoff, which i think was fraud, no… ([Markdown](https://swyx.io/lugg-vs-clutter.md)) - [Early Stage Company Offsites](https://swyx.io/early-offsites): this post was mostly dictated off the top of my head with Wispr AI ([Markdown](https://swyx.io/early-offsites.md)) - [My Fave Podcasts 2024 - The Big Reset](https://swyx.io/fave-podcasts-2024): 4.5 years after my initial podcast inventory, with COVID and a career change under my belt, with my OPML file growing from 566 rss feeds in 2022 to 771 in 2024 (with quite a few… ([Markdown](https://swyx.io/fave-podcasts-2024.md)) - [Organizing AI Engineer World's Fair 2024](https://swyx.io/aiewf-2024): note... this only represents my half of running AIE - the intention was to have Ben also write his side on the logistics and sponsorships but we never got round to it and its… ([Markdown](https://swyx.io/aiewf-2024.md)) - [The Upload (short story)](https://swyx.io/upload): My first attempt at bringing back the short story in 30 years. ([Markdown](https://swyx.io/upload.md)) - [Organizing State of Diffusion++](https://swyx.io/state-of-diffusion-2024): I manifested a "State of Diffusion++" meetup yesterday that I felt was a success. 200 people signed up! Here are some photos! ([Markdown](https://swyx.io/state-of-diffusion-2024.md)) - [Pensieve: Mar 8 2024 - on Dune 2](https://swyx.io/pensieve-mar-8-2024-on-dune-2): A collection of public thoughts that could be blogposts but i dont have time, so here, have the short form. I may upgrade these to full posts in future. ([Markdown](https://swyx.io/pensieve-mar-8-2024-on-dune-2.md)) - [Pensieve: Mar 7 2024 - on Agency](https://swyx.io/pensieve-mar-7-2024-on-agency): A collection of public thoughts that could be blogposts but i dont have time, so here, have the short form. I may upgrade these to full posts in future. ([Markdown](https://swyx.io/pensieve-mar-7-2024-on-agency.md)) - [Bring Back Short Stories](https://swyx.io/short-stories): There was a time, before the screens took over, when people read these things called "books". Remarkably efficient things. Always-on display. Could survive dropping from a great… ([Markdown](https://swyx.io/short-stories.md)) - [add Whisper to your iOS Action Button](https://swyx.io/add-whisper-to-your-ios-action-button): The new iPhones ditched the physical mute button with a software enabled action button, that allows some customization. the highest degree of customization is Shortcuts. Apple's… ([Markdown](https://swyx.io/add-whisper-to-your-ios-action-button.md)) - [You Should Have A Virtual Mailbox](https://swyx.io/virtual-mailbox): If you fit one of these criteria: ([Markdown](https://swyx.io/virtual-mailbox.md)) - [My Fave New Podcasts of 2023](https://swyx.io/fave-podcasts-2023): As someone who does a lot of my learning via podcasts, I've been putting up picks lists for 4 years straight (see main 2019 list, then my 2020 and 2021 and 2022 diffs), so it's… ([Markdown](https://swyx.io/fave-podcasts-2023.md)) - [Dwell and the Tools for Thought Hackathon](https://swyx.io/dwell-and-the-tools-for-thought-hackathon): I worked on a little hackathon project at AGI House with Sasha. We won! ([Markdown](https://swyx.io/dwell-and-the-tools-for-thought-hackathon.md)) - [Bouldering](https://swyx.io/bouldering): My first introduction to bouldering was in 2017, in DUMBO Boulders in Brooklyn Bridge Park (now closed): ([Markdown](https://swyx.io/bouldering.md)) - [Being a minor AI public figure](https://swyx.io/being-a-minor-ai-public-figure): I was recently involved in moderating a chat with Kanjun Qiu of Imbue at the MIT AI conf:… ([Markdown](https://swyx.io/being-a-minor-ai-public-figure.md)) - [Software 3.0 and the AI Engineer Landscape (talk notes & slides)](https://swyx.io/ai-landscape): I presented an updated version of this talk at CascadiaJS 2024! slides here, video pending. ([Markdown](https://swyx.io/ai-landscape.md)) - [Swyx's Simple Guide to Singapore](https://swyx.io/sg-guide): A personal guide to Singapore for foreign friends visiting. ([Markdown](https://swyx.io/sg-guide.md)) - [On Grind - from Investor to Creator to Founder](https://swyx.io/on-grind): Sarah asks a provoking question that has been on my mind a lot as I transition from part time creator to founder: ([Markdown](https://swyx.io/on-grind.md)) - [250k downloads of Latent Space Pod](https://swyx.io/latent-space-250k): I last talked about my Latent Space adventures in April and last December. Even as a well regarded developer-part-time-creator, the Latent Space Newsletter + Pod has done much… ([Markdown](https://swyx.io/latent-space-250k.md)) - [How to allow popups in dynamically created webviews in Electron.js](https://swyx.io/electron-webview-popups): My smol menubar project utilizes Electron's special webview tag to dynamically generate a list of sub browser windows for chat. For the last couple months I've had an issue with… ([Markdown](https://swyx.io/electron-webview-popups.md)) - [How to Blow Up a Category - Netlify's New Era and The JAMstack Endgame](https://swyx.io/netlify-era-jamstack-end): note - this is a hasty written braindump of feelings as emotions as I don't have the time to polish this essay up to my usual standards, but still wanted to capture this… ([Markdown](https://swyx.io/netlify-era-jamstack-end.md)) - [How to deal with fatal: bad object HEAD in git](https://swyx.io/solve-git-bad-object-head): as a cheapo who uses Apple iCloud (the world's worst sync service) as a sync service for my Obsidian Second Brain, I have recently run into this issue a lot: ([Markdown](https://swyx.io/solve-git-bad-object-head.md)) - [[Newbie Tip] What to do when you 403 during pypi twine upload](https://swyx.io/pypi-403): I'm pretty new to the pypi packaging ecosystem so recently ran into some trouble pushing a python package: ([Markdown](https://swyx.io/pypi-403.md)) - [Using Whisper to Transcribe Podcasts](https://swyx.io/whisper-for-podcasts): these are onetime setup things ([Markdown](https://swyx.io/whisper-for-podcasts.md)) - [The Traction vs Trust Equation of Cofounder Dating](https://swyx.io/traction-vs-trust): One of the most common problems in the beginning stage of a founder journey is establishing the cofounder group. I thought I would jot down some notes from my own experience +… ([Markdown](https://swyx.io/traction-vs-trust.md)) - [Searching for The Early Founder Cadence](https://swyx.io/early-cadence): I've been quite inspired by David Sacks' The Cadence ever since I read it. It prescribes an operational process and ideal team structure for a 50-500 person startup - running… ([Markdown](https://swyx.io/early-cadence.md)) - [My 2023 New Mac Setup](https://swyx.io/new-mac-setup-2023): I set up a new Mac for work today. Here's everything I use on a Mac for fullstack web development. ([Markdown](https://swyx.io/new-mac-setup-2023.md)) - [(incomplete) Getting your O1 Visa as Fast as Possible (2024)](https://swyx.io/o1): I have just received my O1A Visa and like for the H1B1, I figured I should write down my experience, thoughts, and tips for those who may wish to make the same journey. Note that… ([Markdown](https://swyx.io/o1.md)) - [My New Startup Checklist](https://swyx.io/my-new-startup-checklist): some of you may know I've recently started a new company. I'm not ready to talk about -that- yet, but I did want to capture some notes on logistical stuff I have had to ramp up… ([Markdown](https://swyx.io/my-new-startup-checklist.md)) - [How to change custom domain on Substack](https://swyx.io/substack-change-domain): Since September, I've been running my AI newsletter on https://lspace.swyx.io ([Markdown](https://swyx.io/substack-change-domain.md)) - [How to transcribe podcast audio (WhisperX with speaker diarization)](https://swyx.io/transcribe-podcasts-with-whisper): Note: sometimes WhisperX is WAAYYYY too slow so I often end up using https://github.com/ggerganov/whisper.cpp which somehow runs much faster. ([Markdown](https://swyx.io/transcribe-podcasts-with-whisper.md)) - [How to Find Podcasts That Have Been Deleted](https://swyx.io/how-to-find-podcasts-that-have-been-deleted): TLDR, https://megaphone.spotify.com/ rehosts all mp3s ([Markdown](https://swyx.io/how-to-find-podcasts-that-have-been-deleted.md)) - [How to Reverse Interview Investors](https://swyx.io/investor-questions): I honestly never expected this to be a topic that was common enough to write up, however, it suddenly hit me today that it is the ultra niche topics that deserve writing up since… ([Markdown](https://swyx.io/investor-questions.md)) - [The Swyx.io 2023 rewrite](https://swyx.io/rewrite-2023): Discussing the 2023 migration of swyx.io to the SvelteKit 1.0 and the swyxkit template ([Markdown](https://swyx.io/rewrite-2023.md)) - [Signs that a Startup is Going Bad](https://swyx.io/startups-going-bad): All rocketship startups are alike, but every fading startup is fading in its own way. ([Markdown](https://swyx.io/startups-going-bad.md)) - [Organizing Developer Writing Retreats](https://swyx.io/dwr-review): One of my biggest and scariest projects of 2022 was co-organizing the first-ever DEV | WRITERS | RETREAT in Miami! ([Markdown](https://swyx.io/dwr-review.md)) - [My Fave New Podcasts of 2022](https://swyx.io/fave-podcasts-2022): As someone who does a lot of my learning via podcasts, I've been putting up picks lists for 3 years straight (see main 2019 list, then my 2020 and 2021 diffs), so it's time to do… ([Markdown](https://swyx.io/fave-podcasts-2022.md)) - [Ranking #1 on HN in the December Dead Zone](https://swyx.io/lspace-2022): For those who weren't aware (you would be if you were subscribed on email!), I started a separate AI blog, L-space Diaries, this year to 1) try out Substack in anger and 2)… ([Markdown](https://swyx.io/lspace-2022.md)) - [The World Is Run By People No Smarter Than You](https://swyx.io/no-smarter): This post was written as a reflection at the first Dev Writers Retreat. It's been really weird doing this in the PermaParty city while the world seemingly falls apart outside.… ([Markdown](https://swyx.io/no-smarter.md)) - [How to add Tailwind 3 to Docusaurus 2 in 2022](https://swyx.io/tailwind-docusaurus-2022): We use Docusaurus at work, and while it shipped v2 this year it still has (as of v2.3) not shipped with any Tailwind support at all. Googled and found this post which was almost… ([Markdown](https://swyx.io/tailwind-docusaurus-2022.md)) - [The Absolute Best Way to Run Multiple npm Scripts in Parallel in 2022](https://swyx.io/parallel-npm-scripts): Just a quick tutorial and explanation of how best to set up concurrently with named and colored log output since I had to look it up today. ([Markdown](https://swyx.io/parallel-npm-scripts.md)) - [Talk Notes for The End of Localhost (Infobip Shift 2022)](https://swyx.io/end-of-localhost-infobip): I returned to Zadar! ([Markdown](https://swyx.io/end-of-localhost-infobip.md)) - [Getting Senpai To Notice You](https://swyx.io/notice-me): How to break the cold start problem in content creation as a new entrant to any field, and getting the leaders of that field to at least read your writing and know your name. ([Markdown](https://swyx.io/notice-me.md)) - [10x-ing Svelte (Svelte Summit 2022 Talk Notes)](https://swyx.io/svelte-2022): Some show notes for my Svelte Summit talk for those who are looking for all the references and cut content. ([Markdown](https://swyx.io/svelte-2022.md)) - [The God Endpoints will continue until morale improves](https://swyx.io/god-endpoints): a brief meditation on why we keep trying to build God Endpoints and why we will fail until we figure out interfaces. ([Markdown](https://swyx.io/god-endpoints.md)) - [Paradigm Lost (CascadiaJS 2022 Talk Notes)](https://swyx.io/paradigm-lost): Some show notes for my CascadiaJS talk for those who are looking for all the references and cut content. ([Markdown](https://swyx.io/paradigm-lost.md)) - [What if your Index Page was Smart?](https://swyx.io/smart-indexes): Let's rethink the humble Index Page from first principles. ([Markdown](https://swyx.io/smart-indexes.md)) - [The Surprisingly High Table Stakes of Modern Blogs](https://swyx.io/the-surprisingly-high-table-stakes-of-modern-blogs): Bottom Line Up Front: You are probably underestimating how much goes into blogging technology these days. ([Markdown](https://swyx.io/the-surprisingly-high-table-stakes-of-modern-blogs.md)) - [How to write a Python Twitter Unfollow Script in 2022](https://swyx.io/how-to-write-a-python-twitter-unfollow-script-in-2022): The Twitter API has changed (from v1 to v2), and Python has gone from 2 to 3, and Google is still serving up loads of outdated results. ([Markdown](https://swyx.io/how-to-write-a-python-twitter-unfollow-script-in-2022.md)) - [Writing my first Security blogpost](https://swyx.io/writing-my-first-security-blogpost): Today's fun emergency at work was a first - writing a security postmortem for a breach of an open source user (aka not a breach of us, which seems the norm). ([Markdown](https://swyx.io/writing-my-first-security-blogpost.md)) - [Breaking Barbarian](https://swyx.io/breaking-barbarian): This week in a Svelte Radio recording, @rich-harris commented that something I said was "uniquely swyx": an offhand observation that "we are all professional streamers now" ^1 .… ([Markdown](https://swyx.io/breaking-barbarian.md)) - [The Great Unzippening](https://swyx.io/the-great-unzippening): Society is splintering in an unacceptable way and I have a metaphor for it. ([Markdown](https://swyx.io/the-great-unzippening.md)) - [What to do when iCloud is stuck on uploading items](https://swyx.io/what-to-do-when-icloud-is-stuck-on-uploading-items): I use iCloud as my syncing engine for my Obsidian Second Brain, and twice now I've seen iCloud get corrupted into a really bad state. I also back up everything to github, so I… ([Markdown](https://swyx.io/what-to-do-when-icloud-is-stuck-on-uploading-items.md)) - [How to Manifest a Meetup](https://swyx.io/manifest-meetups): 2024 update: for those who work in devrel/organize less-social-more-technical meetups, I have now written How to Organize Meetups Good on Dx.tips ([Markdown](https://swyx.io/manifest-meetups.md)) - [Sharding Yourself](https://swyx.io/sharding-yourself): An advanced tip for high-volume writers. ([Markdown](https://swyx.io/sharding-yourself.md)) - [On The Importance of 15-5 Updates](https://swyx.io/the-importance-of-writing-weekly-updates): We had a delightful discussion on the importance of writing weekly updates in this week's Coding Career Community meetup. I rarely get so excited about an idea I immediately know… ([Markdown](https://swyx.io/the-importance-of-writing-weekly-updates.md)) - [Data outlasts Code, yet Code keeps winning](https://swyx.io/data-outlasts-code-but): My recent End of Localhost piece on Hacker News came with the usual dash of HN criticism devolving into blaming beginners for not knowing the same parts of the stack that they… ([Markdown](https://swyx.io/data-outlasts-code-but.md)) - [The 8 Jobs of Management](https://swyx.io/the-8-jobs-of-management): Recently, John Cutler tweeted a chart on the view of management: ([Markdown](https://swyx.io/the-8-jobs-of-management.md)) - [The Hard Problem of Rendering Tweets](https://swyx.io/the-hard-problem-of-rendering-tweets): I've been unhappy with my tweet rendering strategy for a while - Twitter encourages you to use their heavy JS script to render tweets, which undoubtedly heaps all sorts of… ([Markdown](https://swyx.io/the-hard-problem-of-rendering-tweets.md)) - [Why I Moved Off Dev.to](https://swyx.io/why-i-moved-off-devto): 2 years ago I moved all my blogging to Dev.to. Today my main blog is on Github Issues and I've just launched DXTips on Hashnode. ([Markdown](https://swyx.io/why-i-moved-off-devto.md)) - [Lessons in Competitive Comms from the Plaid-Stripe Kerfuffle](https://swyx.io/comms-plaid-stripe): Now that the dust has settled on the Plaid-Stripe thing it's time to recap lessons learned. ([Markdown](https://swyx.io/comms-plaid-stripe.md)) - [Running Docker without Docker Desktop](https://swyx.io/running-docker-without-docker-desktop): Docker is great. Docker Desktop sucks. Here's my fix. ([Markdown](https://swyx.io/running-docker-without-docker-desktop.md)) - [My 2022 New Mac Setup](https://swyx.io/new-mac-setup-2022): I set up a new Mac for work today. Here's everything I use on a Mac for fullstack web development. ([Markdown](https://swyx.io/new-mac-setup-2022.md)) - [The Law of Conservation of Risk](https://swyx.io/risk-conservation): Risk cannot be created or destroyed, it can only be redistributed ([Markdown](https://swyx.io/risk-conservation.md)) - [Talk Notes: Third Age of JavaScript - Three Years In](https://swyx.io/third-age-2022): Slides and show notes for my updated Talk at Reactathon ([Markdown](https://swyx.io/third-age-2022.md)) - [React Miami: Temporal - React for the Backend](https://swyx.io/temporal-miami): These are the raw notes of my talk prep for my React Miami 2022 talk - Temporal - React for the Backend. Includes links and initial draft at the bottom. ([Markdown](https://swyx.io/temporal-miami.md)) - [The $100b Bull Case for Temporal](https://swyx.io/temporal-centicorn): Why Temporal is worth >$1b now, why it will be worth >$10b, and how it could be worth $100b ([Markdown](https://swyx.io/temporal-centicorn.md)) - [How to Download Twitter Spaces That Aren't Yours](https://swyx.io/download-twitter-spaces): Grabbing the audio ([Markdown](https://swyx.io/download-twitter-spaces.md)) - [Unabridged Conclusion to the State of JS](https://swyx.io/state-of-js-2021): the full text of my State of JS writeup! ([Markdown](https://swyx.io/state-of-js-2021.md)) - [The McClusky Curve - Viral vs Evergreen Content](https://swyx.io/mcclusky-curve): An insightful discussion on how to trade off aiming for viral or permanent posts. ([Markdown](https://swyx.io/mcclusky-curve.md)) - [Moving to Obsidian as a Public Second Brain](https://swyx.io/obsidian-brain): The case for having a -Public- Second Brain, and why I picked Obsidian. ([Markdown](https://swyx.io/obsidian-brain.md)) - [The Swyx.io 2022 Rewrite](https://swyx.io/rewrite-2022): Discussing the 2022 migration of swyx.io to SvelteKit and GitHub Issues ([Markdown](https://swyx.io/rewrite-2022.md)) - [Why TurboRepo Will Be The First Big Trend of 2022](https://swyx.io/turborepo-why): TurboRepo is a big deal for the JS community because it addresses the monorepo problem head on, bringing 85% faster build speeds and great architecture/docs/marketing. ([Markdown](https://swyx.io/turborepo-why.md)) - [Using Datasette for an ELT Personal Twitter Data Warehouse](https://swyx.io/datasette-twitter): EDA tools like Datasette dramatically lower the cost of data analysis, with a surprisingly simple ELT contract - You handle the Extract phase, it handles the Load, and exposes a… ([Markdown](https://swyx.io/datasette-twitter.md)) - [How to customize your Transistor.fm Website with JS and CSS](https://swyx.io/customize-transistor-website): The default Transistor.fm website is kinda ugly. Here's how to customize your Transistor.fm website if you use Transistor. But also it's a simple guide to do clientside… ([Markdown](https://swyx.io/customize-transistor-website.md)) - [Fave New Podcasts in 2021](https://swyx.io/fave-podcasts-2021): My picks of best podcasts I found in 2021, across tech, business, and creator categories. I also pick up on best of the best from 2020. ([Markdown](https://swyx.io/fave-podcasts-2021.md)) - [Community Heat, or Why You Should Get Good at Events](https://swyx.io/community-heat): A piece of advice I heard about marketing and community that I've repeated to founders ever since - Get Good at Events. ([Markdown](https://swyx.io/community-heat.md)) - [100 Bytes of CSS to look great everywhere](https://swyx.io/css-100-bytes): Simple grab and go upgrade to the base user agent stylesheet to make for readable sites ([Markdown](https://swyx.io/css-100-bytes.md)) - [Eating the Cloud from Outside In](https://swyx.io/cloudflare-go): AWS is playing Chess. Cloudflare is playing Go. ([Markdown](https://swyx.io/cloudflare-go.md)) - [Why do Webdevs keep trying to kill REST?](https://swyx.io/client-server-battle): How I broke out of the tiresome REST vs GraphQL debate - by realizing that the real battle is between Smart Clients and Smart Servers! ([Markdown](https://swyx.io/client-server-battle.md)) - [September 11th from Singapore](https://swyx.io/sept-11-from-singapore): just some memories 20 years after 9/11. ([Markdown](https://swyx.io/sept-11-from-singapore.md)) - [The Swipe Files Strategy for Part Time Creators](https://swyx.io/swipe-files-strategy): Swipe Files are underrated, passively compounding sources of personal leverage for your creator journey. ([Markdown](https://swyx.io/swipe-files-strategy.md)) - [3 Reasons to Upgrade Git For The First Time Ever](https://swyx.io/upgrade-git): Relatively new Git features that actually have me excited ([Markdown](https://swyx.io/upgrade-git.md)) - [The Self Provisioning Runtime](https://swyx.io/self-provisioning-runtime): Improvements in DX in both programming languages and cloud infrastructure will eventually converge in a single paradigm, where you truly "just write business logic" and the… ([Markdown](https://swyx.io/self-provisioning-runtime.md)) - [Why Isn't Usage Based Billing A Bigger Category?](https://swyx.io/why-usage-billing): Usage billing is the new hotness for SaaS, and I have personally seen the pain it caused, but I was ultimately scared off from investing in it. ([Markdown](https://swyx.io/why-usage-billing.md)) - [Measuring Developer Relations](https://swyx.io/measuring-devrel): DevRel is hot but nobody knows how to measure it. That's because we don't agree on what effective DevRel is, and we don't agree on the tradeoffs of lagging vs leading metrics for… ([Markdown](https://swyx.io/measuring-devrel.md)) - [Why I'm not a VC (yet)](https://swyx.io/not-vc-yet): There is too much money chasing too few operators. ([Markdown](https://swyx.io/not-vc-yet.md)) - [The Genius of Apple's Name](https://swyx.io/apples-name): An excerpt from Becoming Steve Jobs that made me stop in my tracks. ([Markdown](https://swyx.io/apples-name.md)) - [Temporal - the iPhone of System Design](https://swyx.io/why-temporal): Temporal ties Orchestration, Event Sourcing, and Workflows-as-Code in one distributed system and it is eating the world. ([Markdown](https://swyx.io/why-temporal.md)) - [My 2021 New Mac Setup](https://swyx.io/new-mac-setup-2021): I set up a new Mac for work today. Here's everything I use on a Mac for fullstack web development. ([Markdown](https://swyx.io/new-mac-setup-2021.md)) - [The Particle/Wave Duality Theory of Knowledge](https://swyx.io/particle-wave-duality): Learning is BOTH a discrete and a continuous process. If the tools we use don't respect this duality, information is lost — either writing involves too much effort, or reading… ([Markdown](https://swyx.io/particle-wave-duality.md)) - [Memento Vivere](https://swyx.io/memento-vitae): Remember what life can do. ([Markdown](https://swyx.io/memento-vitae.md)) - [Why IaaS beat PaaS](https://swyx.io/why-iaas-beat-paas): The conclusions are far more nuanced when you ask the people involved at the time. ([Markdown](https://swyx.io/why-iaas-beat-paas.md)) - [Bottom-Up Idea Exploration](https://swyx.io/bottom-up-ideas): My own content creation philosophy, explored through my own personal story with React ([Markdown](https://swyx.io/bottom-up-ideas.md)) - [The Power of Personal Podcasting](https://swyx.io/personal-podcasting): Celebrating following 100 episodes of my mixtape, and reflecting on why this works ([Markdown](https://swyx.io/personal-podcasting.md)) - [Stripe Goes No-Code — Stripe Payment Links Explained](https://swyx.io/stripe-payment-links): Stripe has entered the No Code market in a big way! I take a crack at explaining what it's doing and why. ([Markdown](https://swyx.io/stripe-payment-links.md)) - [How To Add Prettier and ESLint Automation to a React Codebase](https://swyx.io/prettier-eslint-react): Automated code quality with GitHub Actions, Husky, Lint-staged, Prettier, and ESLint ([Markdown](https://swyx.io/prettier-eslint-react.md)) - [$120k in Infoproduct Sales - How to Extend the Long Tail](https://swyx.io/long-tail-infoproduct): This post originated as an AMA on IndieHackers ([Markdown](https://swyx.io/long-tail-infoproduct.md)) - [Why Creator Clones Fail](https://swyx.io/clones-fail): The Innovator's Dilemma according to MKBHD, applied to YouTube's attempt to clone TikTok ([Markdown](https://swyx.io/clones-fail.md)) - [Don't Rush to Simplicity](https://swyx.io/simplicity-rush): Expertise in a subject often goes in a bell curve of simple → complex → simple. Can we skip the complexity? ([Markdown](https://swyx.io/simplicity-rush.md)) - [What if Stripe is the next Google?](https://swyx.io/stripe-next-google): Working out a thought exercise by Paul Graham. ([Markdown](https://swyx.io/stripe-next-google.md)) - [80/20 is the new Half-Ass](https://swyx.io/8020): Don't spend your life spraying 20% effort all over the place, hoping for 80% results, only to look back and wonder why you never hit 100% on anything. ([Markdown](https://swyx.io/8020.md)) - [How to use SvelteKit with Netlify Forms](https://swyx.io/sveltekit-netlify-forms): a simple tutorial ([Markdown](https://swyx.io/sveltekit-netlify-forms.md)) - [35 Principles for 35 Years](https://swyx.io/35-principles): I turn 35 today. Here are 35 principles I have accumulated and try to live by. ([Markdown](https://swyx.io/35-principles.md)) - [Reflexive McLuhanism](https://swyx.io/reflexive-mcluhanism): First we shape X, then X shapes us. ([Markdown](https://swyx.io/reflexive-mcluhanism.md)) - [Set Explicit Help Timeouts](https://swyx.io/help-timeouts): A simple way to normalize asking for help. ([Markdown](https://swyx.io/help-timeouts.md)) - [Blogpost Annealing](https://swyx.io/blogpost-annealing): Letting my writing improve under the heat of feedback ([Markdown](https://swyx.io/blogpost-annealing.md)) - [Shortcodes vs MDX](https://swyx.io/shortcodes-vs-mdx-3d4e): Comparing the two popular custom dynamic content solutions! ([Markdown](https://swyx.io/shortcodes-vs-mdx-3d4e.md)) - [The Part Time Creator Manifesto](https://swyx.io/part-time-creator-manifesto): Why we need more people creating Part Time and how you can do it too. ([Markdown](https://swyx.io/part-time-creator-manifesto.md)) - [Preemptive Pluralization is (Probably) Not Evil](https://swyx.io/preemptive-pluralization): What if we just assumed we might have two of everything? ([Markdown](https://swyx.io/preemptive-pluralization.md)) - [TL;DR of Why React is Not Reactive](https://swyx.io/ReactRally): A recap of my first ever conference talk ([Markdown](https://swyx.io/reactrally.md)) - [Workshopping](https://swyx.io/workshopping): Produce Consistency, Publish Quality by buffering. ([Markdown](https://swyx.io/workshopping.md)) - [Love Letter to Singapore Mixed Rice](https://swyx.io/mixed-rice): The most underrated part of Singapore that foreigners don't appreciate ([Markdown](https://swyx.io/mixed-rice.md)) - [Reviewing "TypeScript in 50 Lessons"](https://swyx.io/ts-50-lessons): My first time being a technical reviewer for a published book! ([Markdown](https://swyx.io/ts-50-lessons.md)) - [The Simple Magic of Prefixed URLs](https://swyx.io/prefixed-urls): You can enhance the web by making wrappers around it. ([Markdown](https://swyx.io/prefixed-urls.md)) - [Enablement vs Ownership Roles](https://swyx.io/enablement-vs-ownership): Two ways to approach responsibility in a company. ([Markdown](https://swyx.io/enablement-vs-ownership.md)) - [Everything You Hate About Clubhouse Is Why It Will Win](https://swyx.io/clubhouse-hate): Understanding new social media is a sociological exercise, not a logical one. ([Markdown](https://swyx.io/clubhouse-hate.md)) - [Errors Are Not Exceptions](https://swyx.io/errors-not-exceptions): Many language ecosystems use try/catch paradigms to represent both errors and exceptions. This is wrong. ([Markdown](https://swyx.io/errors-not-exceptions.md)) - [Solving the Quality vs Consistency Tradeoff](https://swyx.io/quality-vs-consistency): Every creator wrestles with the tradeoff between quality and consistency. The answer - Default to consistency, and cut scope. ([Markdown](https://swyx.io/quality-vs-consistency.md)) - [The Meta-Creator Ceiling](https://swyx.io/meta-creator-ceiling): Don't play games you don't want to win. ([Markdown](https://swyx.io/meta-creator-ceiling.md)) - [My Three Strikes Rule for Blogging](https://swyx.io/three-strikes): A simple way to decide when and what to write. ([Markdown](https://swyx.io/three-strikes.md)) - [Strategy Turns](https://swyx.io/strategy-turns): What got you here won't get you there. ([Markdown](https://swyx.io/strategy-turns.md)) - [Super Easy Automated Scraping with AWS Amplify](https://swyx.io/aws-amplify-scraping): A tutorial on data scraping with AWS Amplify ([Markdown](https://swyx.io/aws-amplify-scraping.md)) - [What drives Optimal Overhead?](https://swyx.io/optimal-overhead): The biggest unanswered question in the study of systems. ([Markdown](https://swyx.io/optimal-overhead.md)) - [Notes on The Psychology of Money](https://swyx.io/psychology-of-money): A review and reflection of Morgan Housel's bestselling collection of essays on personal/behavioral finance ([Markdown](https://swyx.io/psychology-of-money.md)) - [Fibonacci Goals](https://swyx.io/fibonacci-goals): A system for goalsetting. ([Markdown](https://swyx.io/fibonacci-goals.md)) - [My Path to Developer Relations and Thoughts on the Future of DevRel](https://swyx.io/adventcado-qna): Alex Lakatos interviewed me for the Devrel Advent calendar he put together ([Markdown](https://swyx.io/adventcado-qna.md)) - [My Journey from No CS Degree to AWS from Age 30 - 34](https://swyx.io/nocsdegree-pete): I was interviewed by Pete from No CS Degree on my journey, here are some extracts! ([Markdown](https://swyx.io/nocsdegree-pete.md)) - [Swyx Interview on Daily Dev Tips](https://swyx.io/dailydevtips1): I was interviewed by Chris Bongers on Daily Dev Tips, here are some extracts. ([Markdown](https://swyx.io/dailydevtips1.md)) - [You're Allowed To Make Your Own Tools](https://swyx.io/make-your-own-tools): Making personal side projects for fun and profit. ([Markdown](https://swyx.io/make-your-own-tools.md)) - [An Annotated Guide to React Server Components](https://swyx.io/react-server-components-demo): React Server Components are a nuanced, sweeping addition to React's existing capabilities. This is my guide. ([Markdown](https://swyx.io/react-server-components-demo.md)) - [Why You Should Pre-Sell](https://swyx.io/pre-sell): My thoughts on preselling, from having done it successfully exactly one time. ([Markdown](https://swyx.io/pre-sell.md)) - [Mimicry vs Reflexivity](https://swyx.io/mimicry-reflexivity): Two opposing forces that describe how perception and reality do battle. ([Markdown](https://swyx.io/mimicry-reflexivity.md)) - [You Can Run Containers on AWS Amplify Now](https://swyx.io/amplify-serverless-containers): AWS just added the easiest way to deploy long running serverful code alongside a serverless architecture. ([Markdown](https://swyx.io/amplify-serverless-containers.md)) - [The Strange Case of the Danish Aarhus Mafia](https://swyx.io/danish-mafia): Why are so many CS pioneers from Denmark? ([Markdown](https://swyx.io/danish-mafia.md)) - [Language Servers are the New Frameworks](https://swyx.io/language-servers): Developer Experience is shifting left, all the way to onKeyUp. ([Markdown](https://swyx.io/language-servers.md)) - [The UX of Proving Our Humanity To Machines](https://swyx.io/proving-our-humanity): What happens when we can't convince machines that we are human? ([Markdown](https://swyx.io/proving-our-humanity.md)) - [My Favorite New Podcasts in 2020](https://swyx.io/fave-podcasts-2020): An update to my favorite podcasts list with the ones I have found this year ([Markdown](https://swyx.io/fave-podcasts-2020.md)) - [Write Errors That Don't Make Me Think](https://swyx.io/write-errors-that-don-t-make-me-think-24hg): How we plan to fail with Thoughtful Error Message Design at Temporal. ([Markdown](https://swyx.io/write-errors-that-don-t-make-me-think-24hg.md)) - [The Roaring 2020's](https://swyx.io/roaring-2020s): Five themes I am optimistic about for the next decade - and more open questions I have no idea about. ([Markdown](https://swyx.io/roaring-2020s.md)) - [The Light and Dark Side of the API Economy](https://swyx.io/api-economy): The 'API Economy' is a popular term for VC's and tech media, however Developers seem ironically out of the loop despite their central importance to the whole story. Here's my… ([Markdown](https://swyx.io/api-economy.md)) - [Naked Emperors in Tech](https://swyx.io/naked-emperors): Some things we often repeat as truth just aren't. We should call bullshit more often. ([Markdown](https://swyx.io/naked-emperors.md)) - [Notes on Serverless GraphQL with AWS AppSync](https://swyx.io/serverless-graphql-appsync): My Notes on Slobodan Stojanovic's Serverless GraphQL with AppSync talk ([Markdown](https://swyx.io/serverless-graphql-appsync.md)) - [Found-Money Startups](https://swyx.io/found-money): 'I will find free money for you' is one of my favorite business models. Here's a quick definition of Found-Money Startups and a short list I've been keeping. ([Markdown](https://swyx.io/found-money.md)) - [Moderating a 220k Developer Community](https://swyx.io/moderating-rreactjs): Reflections from two-and-a bit years helping to run /r/Reactjs ([Markdown](https://swyx.io/moderating-rreactjs.md)) - [Svelte for Sites, React for Apps](https://swyx.io/svelte-sites-react-apps): Why we should stop trying to use the same tool for different jobs. ([Markdown](https://swyx.io/svelte-sites-react-apps.md)) - [AmpliBox - a Self Hosted File Storage App with AWS Amplify](https://swyx.io/amplify-storage-demo): A demo using AWS S3 (Simple Storage Service) using Amplify Storage, Svelte, and Tailwind CSS ([Markdown](https://swyx.io/amplify-storage-demo.md)) - [Notes on Time Management from a Dying Professor](https://swyx.io/time-management-randy-pausch): Notes on Randy Pausch's lecture on Time Management ([Markdown](https://swyx.io/time-management-randy-pausch.md)) - [Choice Architecture](https://swyx.io/choice-architecture): Reflection on how both gyms and startups do choice architecture and how we can be more conscious of this ([Markdown](https://swyx.io/choice-architecture.md)) - [Service as a Service](https://swyx.io/service-as-a-service): Before you start offering Software as a Service, perhaps just offer a Service. ([Markdown](https://swyx.io/service-as-a-service.md)) - [Follow Up](https://swyx.io/follow-up): Following up and following through is a well known formula for success. Yet people don't do it. Why? ([Markdown](https://swyx.io/follow-up.md)) - [Why Tailwind CSS](https://swyx.io/why-tailwind): Why I changed my mind on Tailwind CSS, and why I now consider it the Goldilocks Styling Solution ([Markdown](https://swyx.io/why-tailwind.md)) - [Beware The Fallacy of Composition](https://swyx.io/composition-fallacy): Many things that make sense individually don't make sense as a group. ([Markdown](https://swyx.io/composition-fallacy.md)) - [5 TILs about Node.js Fundamentals from the Node.js Design Patterns Book](https://swyx.io/til-node-fundamentals-design-patterns-book): 5 Things I Learned about Node.js Fundamentals from the Node.js Design Patterns Book ([Markdown](https://swyx.io/til-node-fundamentals-design-patterns-book.md)) - [REST Endpoint + CRUD with AWS Lambda and DynamoDB in 2 minutes](https://swyx.io/writing/amplify_rest_crud): A lightning fast overview of everything you need to know to set up a REST endpoint with full CRUD capability with AWS Lambda, DynamoDB and AWS Amplify in 2 minutes. ([Markdown](https://swyx.io/amplify_rest_crud.md)) - [Notes from Amir Shevat on Measuring & Managing Developer Relations](https://swyx.io/writing/a16z_devrel_amir_shevat): Notes from an a16z podcast about developer relations that I thought was valuable ([Markdown](https://swyx.io/a16z_devrel_amir_shevat.md)) - [Typesafe, Fullstack React & GraphQL with AWS Amplify](https://swyx.io/writing/aws_typesafe_fullstack_react): This is the blog version of a talk I am giving at React Summit 2020 ([Markdown](https://swyx.io/aws_typesafe_fullstack_react.md)) - [Book Review - Shoe Dog by Phil Knight](https://swyx.io/writing/shoe-dog): One of the greatest autobiographies by a business icon and great writer ([Markdown](https://swyx.io/shoe-dog.md)) - [Notes on Adversarial Interoperability](https://swyx.io/writing/adversarial_interoperability): Summarizing thoughts from Seth Godin and Cory Doctorow on Interoperability ([Markdown](https://swyx.io/adversarial_interoperability.md)) - [Against Namespacing Personal Sites](https://swyx.io/writing/namespacing-sites): I care a lot about creating Cool URIs so I have been paralyzed more than I should be about what I'm calling "URL Architecture". In true fashion, I'm blogging about it. ([Markdown](https://swyx.io/namespacing-sites.md)) - [How to Set Up SvelteKit with Tailwind CSS](https://swyx.io/writing/svelte_tailwind_setup): A quick 3 step guide for myself on how to set up Svelte with Tailwind CSS ([Markdown](https://swyx.io/svelte_tailwind_setup.md)) - [If You Sell Anything Online, This Book Will Make You Money](https://swyx.io/writing/rob_hope_hot_tips): My glowing review of Rob Hope's Landing Page Hot Tips Book ([Markdown](https://swyx.io/rob_hope_hot_tips.md)) - [How to Create Luck](https://swyx.io/writing/create-luck): Your entire worldview changes when you realize you can create luck. ([Markdown](https://swyx.io/create-luck.md)) - [Putting your Keyboard on Steroids with Karabiner Elements](https://swyx.io/writing/karabiner_lindquist): I did a livestream with John Lindquist from Egghead.io today, and he blew my mind on how much mileage you can get out of your keyboard! ([Markdown](https://swyx.io/karabiner_lindquist.md)) - [First Look at AWS Amplify Flutter (Developer Preview)](https://swyx.io/amplify-flutter): AWS Amplify launched a Flutter Integration, so I thought I would record a quick video and blogpost ([Markdown](https://swyx.io/amplify-flutter.md)) - [Cheatsheet for moving from Master to Main](https://swyx.io/writing/master_to_main): Notes I have collected on how to renaming the Git default/primary branch ([Markdown](https://swyx.io/master_to_main.md)) - [Prerecording Talks for Online Conferences](https://swyx.io/prerecording-talks): Tips for Speakers Prerecording Talks for Online Conferences ([Markdown](https://swyx.io/prerecording-talks.md)) - [Developer Exception Engineering](https://swyx.io/writing/developer-exception): It's time we look beyond the easy questions in developer experience, and start addressing the uncomfortable ones. ([Markdown](https://swyx.io/developer-exception.md)) - [Realtime Offline-First Chat App in 100 Seconds](https://swyx.io/realtime-offline-first-chat-app-in-100-seconds-with-amplify-datastore-react-and-graphql-47d4): A quick demo of how easy it is to add realtime, offline persistence to an app with Amplify DataStore ([Markdown](https://swyx.io/realtime-offline-first-chat-app-in-100-seconds-with-amplify-datastore-react-and-graphql-47d4.md)) - [A Developer's Guide to Startup Fundraising](https://swyx.io/brief-guide-to-startup-fundraising-terminology-7k2): A Brief Guide to Startup Fundraising Terminology for Beginners ([Markdown](https://swyx.io/brief-guide-to-startup-fundraising-terminology-7k2.md)) - [5 Q&A's on Writing and Selling My First Book](https://swyx.io/5-q-a-s-on-writing-and-selling-my-first-book-18d1): I answered some questions from someone planning to write their first book ([Markdown](https://swyx.io/5-q-a-s-on-writing-and-selling-my-first-book-18d1.md)) - [Notes on "Growing a Language"](https://swyx.io/notes-on-growing-a-language-by-guy-steele-5501): Revisiting one of my favorite talks ever, on designing programming languages for user extensibility and collaboration ([Markdown](https://swyx.io/notes-on-growing-a-language-by-guy-steele-5501.md)) - [4 Things I Learned from Mastering Mongoose.js](https://swyx.io/4-things-i-learned-from-mastering-mongoose-js-25e): A quick book review of the new Mongoose.js book from Val Karpov ([Markdown](https://swyx.io/4-things-i-learned-from-mastering-mongoose-js-25e.md)) - [8 Landing Page Tips from Rob Hope](https://swyx.io/8-landing-page-tips-from-rob-hope-338l): I submitted my book's landing page for Rob Hope's review and he obliged! Brutal feedback incoming. ([Markdown](https://swyx.io/8-landing-page-tips-from-rob-hope-338l.md)) - [8 Q&A's for Bootcamp Students in 2020](https://swyx.io/8-q-a-s-for-pre-bootcamp-students-in-2020-1phh): I did a Q&A for Fullstack Academy Bootcamp Prep students - copying out my answers here! ([Markdown](https://swyx.io/8-q-a-s-for-pre-bootcamp-students-in-2020-1phh.md)) - [Unofficial VS Code Snippets for AWS Amplify](https://swyx.io/unofficial-vs-code-snippets-for-aws-amplify-1959): making my own vs code snippets helpers for working with AWS Amplify ([Markdown](https://swyx.io/unofficial-vs-code-snippets-for-aws-amplify-1959.md)) - [Semi-Automatic npm and GitHub Releases with `gh-release` and `auto-changelog`](https://swyx.io/writing/release-automation): A snippet I use all the time ([Markdown](https://swyx.io/release-automation.md)) - [Lessons and Regrets from My $25000 Book Launch](https://swyx.io/writing/coding-career-launch): Reflections on the Coding Career book launch ([Markdown](https://swyx.io/coding-career-launch.md)) - [Launching the Coding Career Handbook!](https://swyx.io/writing/launching-coding-career): I'm launching my career advice book today! ([Markdown](https://swyx.io/launching-coding-career.md)) - [Versioned Docs in 30 Seconds with Amplify Console's Branch Subdomains](https://swyx.io/writing/amplify-console-branch-subdomains): Amplify Console just got the ability to create a custom subdomain for every new branch. This makes creating versioned docs a cinch! ([Markdown](https://swyx.io/amplify-console-branch-subdomains.md)) - [Notes on RSI for Developers](https://swyx.io/rsi-tips): I'm starting to feel some RSI in my left hand. It's a matter of time. I decided to collect some information about it to make improvements now rather than later. ([Markdown](https://swyx.io/rsi-tips.md)) - [#HeyForGood](https://swyx.io/writing/hey-for-good): Recounting my process of how I started with 2 HEY email invites and ended up raising $2575 in Donations to Support Diversity in Tech! ([Markdown](https://swyx.io/hey-for-good.md)) - [My Life as a Con Man](https://swyx.io/con-man-life): Confidence is a dual edged sword. I trafficked in confidence when I was in finance, and now I see it everywhere I look. ([Markdown](https://swyx.io/con-man-life.md)) - [4 Q&A's on Blogging for Developers](https://swyx.io/4-q-a-s-on-blogging-for-developers-lc9): Answering Q&A's ([Markdown](https://swyx.io/4-q-a-s-on-blogging-for-developers-lc9.md)) - [Making AWS Amplify work with Rollup](https://swyx.io/making-aws-amplify-work-with-rollup-2d9m): AWS Amplify assumes CommonJS, which Rollup is allergic to. I recently discovered that you can make it work with Rollup with a few tweaks. ([Markdown](https://swyx.io/making-aws-amplify-work-with-rollup-2d9m.md)) - [Bringing AWS to App Developers](https://swyx.io/writing/hello-aws): Where Amplify fits in AWS' trajectory, and why I am joining ([Markdown](https://swyx.io/hello-aws.md)) - [The Third Age of JavaScript](https://swyx.io/js-third-age): A bunch of things are moving in JavaScript - it is quite feasible that the JS of 10 years from now will look totally unrecognizable ([Markdown](https://swyx.io/js-third-age.md)) - [Working The Reverse 9 to 5](https://swyx.io/writing/working-reverse-9-5): Having weird sleeping hours is working out... very well for me. ([Markdown](https://swyx.io/working-reverse-9-5.md)) - [Slack is Fumbling Developers](https://swyx.io/writing/slack-fumble): Reflecting on the sudden switch away from Slack for Developer communities ([Markdown](https://swyx.io/slack-fumble.md)) - [IE11 Mainstream End Of Life in Oct 2020](https://swyx.io/ie11-eol): Making the case for Mainstream EOL of IE 11. ([Markdown](https://swyx.io/ie11-eol.md)) - [The Day I Became A Software Engineer](https://swyx.io/writing/the-day-I-became-a-software-engineer): A single mindset shift that changed my entire attitude to software. ([Markdown](https://swyx.io/the-day-i-became-a-software-engineer.md)) - [Developer's Guide to Tech Strategy](https://swyx.io/dev-guide-to-tech-strategy): This is a very high level overview of tech strategy; that is, the business of software rather than the art and science of creating software itself. ([Markdown](https://swyx.io/dev-guide-to-tech-strategy.md)) - [Cloud Distros](https://swyx.io/cloud-distros): The next step in the evolution of the Cloud is specialized distros. ([Markdown](https://swyx.io/cloud-distros.md)) - [OSI Layers for Coding Careers](https://swyx.io/writing/osi-layers-coding-careers): Let's think about the value chain of humans that code and how we interact. ([Markdown](https://swyx.io/osi-layers-coding-careers.md)) - [How to Market Yourself](https://swyx.io/writing/marketing-yourself): Assemble your Personal Brand, your Domain, and your Coding Skills/Business Value, then Market Yourself in Public + at Work. ([Markdown](https://swyx.io/marketing-yourself.md)) - [I'm Writing A Book!](https://swyx.io/i-m-writing-a-book-45a8): I'm writing a Dev Career Advice book... and I'm scared shitless! ([Markdown](https://swyx.io/i-m-writing-a-book-45a8.md)) - [5 Things I Learned from The DynamoDB Book](https://swyx.io/writing/dynamodb-book): Reviewing Alex DeBrie's new the DynamoDB Book ([Markdown](https://swyx.io/dynamodb-book.md)) - [How to Use class instead of className with Preact and TypeScript](https://swyx.io/how-to-use-class-instead-of-classname-with-preact-and-typescript-2bjh): If you are using TypeScript with Preact aliased as React, you can add an ambient declaration to use class instead of className: ([Markdown](https://swyx.io/how-to-use-class-instead-of-classname-with-preact-and-typescript-2bjh.md)) - [Want Better Design/CSS Skills? Spot the Difference!](https://swyx.io/writing/spot-the-difference): A quick exercise to improve your attention to detail when implementing/designing with CSS. ([Markdown](https://swyx.io/spot-the-difference.md)) - [How and Why to Un-Reset Tailwind's CSS Reset](https://swyx.io/writing/tailwind-unreset): 2021 edit: note that tailwind typography now comes with a not-prose class that unsets typography styles ([Markdown](https://swyx.io/tailwind-unreset.md)) - [Instant GraphQL with OneGraph](https://swyx.io/writing/instant-graphql-onegraph): Here's a recorded screenshare chat I had with Sean Grove (https://twitter.com/sgrove), Cofounder of OneGraph! We swapped out the Next.js API Routes that I manually set up in my… ([Markdown](https://swyx.io/instant-graphql-onegraph.md)) - [How to use Web Components with Next.js and TypeScript](https://swyx.io/how-to-use-web-components-with-next-js-and-typescript-4gg1): In my livestream today I had the need to bring in a spinner component to show work in progress in my app. However found that existing React spinners were too heavy. That's when I… ([Markdown](https://swyx.io/how-to-use-web-components-with-next-js-and-typescript-4gg1.md)) - [Make your own Dev.to CMS livestream - Part 4](https://swyx.io/make-your-own-dev-to-cms-livestream-part-4-6em): This is day 4 of my livecode Dev.to CMS. ([Markdown](https://swyx.io/make-your-own-dev-to-cms-livestream-part-4-6em.md)) - [A World Without Plugins](https://swyx.io/a-world-without-plugins-cig): What happens if we did away with plugins altogether? The case for Imperative Recipes ([Markdown](https://swyx.io/a-world-without-plugins-cig.md)) - [10 Principles I Learned from Tiago Forte's Building a Second Brain](https://swyx.io/tiago-forte-second-brain): 10 Principles I Learned ([Markdown](https://swyx.io/tiago-forte-second-brain.md)) - [Make your own Dev.to CMS livestream - Part 3](https://swyx.io/make-your-own-dev-to-cms-livestream-part-3-c65): This is day 3 of my livecode Dev.to CMS. ([Markdown](https://swyx.io/make-your-own-dev-to-cms-livestream-part-3-c65.md)) - [How To Add Monaco Editor to a Next.js app](https://swyx.io/how-to-add-monaco-editor-to-a-next-js-app-ha3): I use a slightly modified version of the steps mentioned in this GitHub comment. Modifications were necessary because I use TailwindCSS with Next.js. ([Markdown](https://swyx.io/how-to-add-monaco-editor-to-a-next-js-app-ha3.md)) - [Make your own Dev.to CMS livestream - Part 2](https://swyx.io/make-your-own-dev-to-cms-livestream-part-2-6mf): This is day 2 of my livecode Dev.to CMS. See Day 1 here ([Markdown](https://swyx.io/make-your-own-dev-to-cms-livestream-part-2-6mf.md)) - [Make your own Dev.to CMS livestream - Part 1](https://swyx.io/writing/dev-to-cms-stream-1): Livecoding my own Dev.to CMS with Next.js + Preact + TypeScript + Tailwind UI ([Markdown](https://swyx.io/dev-to-cms-stream-1.md)) - [The Computer History Museum YouTube Channel](https://swyx.io/writing/computer-history-museum-youtube): I have been enjoying the CHM's YouTube Channel. ([Markdown](https://swyx.io/computer-history-museum-youtube.md)) - [Every Public Engineering Career Ladder](https://swyx.io/writing/career-ladders): A list of the public engineering career ladders I've found ([Markdown](https://swyx.io/career-ladders.md)) - [Mise en Place Writing](https://swyx.io/writing/writing-mise-en-place): How to write more, faster, and better by decoupling writing from pre-writing ([Markdown](https://swyx.io/writing-mise-en-place.md)) - [6 Things Markdown Got Wrong](https://swyx.io/writing/markdown-mistakes): John Gruber's Markdown is almost a perfect content authoring format. Here are 6 things it got wrong. ([Markdown](https://swyx.io/markdown-mistakes.md)) - [Farewell, Netlify](https://swyx.io/writing/farewell-netlify): On leaving Netlify ([Markdown](https://swyx.io/farewell-netlify.md)) - [What You Can Do with Netlify Build Plugins](https://swyx.io/writing/netlify-build-plugins): Netlify Build Plugins are here! Here's a smattering of thoughts on what you can do with them. ([Markdown](https://swyx.io/netlify-build-plugins.md)) - [Twitter as Universal Meta-Commentary Layer](https://swyx.io/twitter-metacommentary): Musing about how Twitter can enhance your Internet reading experience ([Markdown](https://swyx.io/twitter-metacommentary.md)) - [Observability for Frontend Developers](https://swyx.io/frontend-observability): Some thoughts on how frontend developers can also embrace instrumenting their apps for observability ([Markdown](https://swyx.io/frontend-observability.md)) - [Every Web Performance Test Tool](https://swyx.io/writing/webperf-tests): Check your site's speed quickly with a battery of tests ([Markdown](https://swyx.io/webperf-tests.md)) - [Essential Plugins for Gatsby Remark](https://swyx.io/writing/gatsby-remark-essential-plugins): Gatsby-Remark is one of those fun plugins that have their own plugins - but there are a lot of them. Here's a list I wrote down a few months ago of plugins I think everyone… ([Markdown](https://swyx.io/gatsby-remark-essential-plugins.md)) - [Formats over Functions](https://swyx.io/formats): Why we should focus less on Implementation and more on Standardization ([Markdown](https://swyx.io/formats.md)) - [JavaScript: the First 20 Years by Allen Wirfs-Brock and Brendan Eich](https://swyx.io/js-20-years): A link to the 190 page history of JS by its original creator and the editor of ES6. ([Markdown](https://swyx.io/js-20-years.md)) - [The Power of Lampshading](https://swyx.io/lampshading): How to turn Ignorance into Power ([Markdown](https://swyx.io/lampshading.md)) - [Unit and Integration Testing for Plugin Authors](https://swyx.io/testing-plugin-authors): Some thoughts on how to set up testing with plugins ([Markdown](https://swyx.io/testing-plugin-authors.md)) - [React Single File Components Are Here](https://swyx.io/react-sfcs-here): React has long eschewed convention in favor of the extreme flexibility of JS. It is time for the next level in React authorship formats. ([Markdown](https://swyx.io/react-sfcs-here.md)) - [You May Not Need Controlled Form Components](https://swyx.io/no-controlled-forms): A common design pattern for forms in React is using Controlled Components - but involves a lot of boilerplate code. Here's another way. ([Markdown](https://swyx.io/no-controlled-forms.md)) - [The Coronavirus Recession and What it Means for Developers](https://swyx.io/writing/coronavirus-recession): The US is probably going into recession - here's why I'm talking about it now, what it could look like, what Devs can do to prepare, and why it's not the End of the World. ([Markdown](https://swyx.io/coronavirus-recession.md)) - [Guo Lai Ren (过来人)](https://swyx.io/guo-lai-ren): One of the most powerful forms of persuasion is the argument from crossover people ([Markdown](https://swyx.io/guo-lai-ren.md)) - [Working at a Startup From Series B to C](https://swyx.io/working-from-series-b-to-c): Some careful thoughts from joining a startup from Series B to C. ([Markdown](https://swyx.io/working-from-series-b-to-c.md)) - [Why Svelte? (The Short Version)](https://swyx.io/why-svelte-short): The short version of Why Svelte ([Markdown](https://swyx.io/why-svelte-short.md)) - [Compile Svelte in Your Head by Tan Li Hau](https://swyx.io/compile-svelte-lihau): Linking to a blogpost I was too lazy to do ([Markdown](https://swyx.io/compile-svelte-lihau.md)) - [Three Jobs of Containers](https://swyx.io/containers-3-jobs): A great nugget I learned from watching Brian Holt's Intro to Containers workshop ([Markdown](https://swyx.io/containers-3-jobs.md)) - [Starting Svelte Society](https://swyx.io/starting-dev-community-meetup): Thoughts on how I am doing with 4 months of Svelte Society in the bag. ([Markdown](https://swyx.io/starting-dev-community-meetup.md)) - [Switching to Android after 13 years of iOS](https://swyx.io/writing/android-vs-ios): I have used iPhone/iOS for the longest time. Last month I switched to OnePlus 6T/Android. Here are my impressions. ([Markdown](https://swyx.io/android-vs-ios.md)) - [Mocking and Using CRUD APIs with MirageJS and React-Query](https://swyx.io/react-query-miragejs-crud): This is how to pair two newcomers on the React scene for mocking and using CRUD APIs, for a great developer experience. ([Markdown](https://swyx.io/react-query-miragejs-crud.md)) - [How I Approach First Principles Thinking](https://swyx.io/first-principles-approach): An explanation of First Principles via comparing Inductive vs Deductive Reasoning, and thoughts on Applications ([Markdown](https://swyx.io/first-principles-approach.md)) - [Digital Garden Terms of Service](https://swyx.io/digital-garden-tos): This is my attempt to explicitly define a not-legally-binding "terms of service" for people who peruse Digital Gardens, and the people who Learn in Public with them. ([Markdown](https://swyx.io/digital-garden-tos.md)) - [Metrics, Logs, and Traces in JavaScript Tools](https://swyx.io/js-tools-metrics-logs-traces): The DX of JavaScript Developer Tools could be better if we added Metrics, Logs, and Traces ([Markdown](https://swyx.io/js-tools-metrics-logs-traces.md)) - [Fixing Up the Svelte Community Site](https://swyx.io/svelte-community-fixup): Adding GitHub Actions and Updating Data Dependencies ([Markdown](https://swyx.io/svelte-community-fixup.md)) - [Using DEV.to as a CMS](https://swyx.io/devto-cms): Blog on DEV.to, publish on your own domain, using the DEV.to API! ([Markdown](https://swyx.io/devto-cms.md)) - [Serverless Functions are Stateful](https://swyx.io/stateful-serverless): A reminder that serverless functions actually have a lot of state, and how the "function" analogy breaks down when you look through the abstraction ([Markdown](https://swyx.io/stateful-serverless.md)) - [Good Enough](https://swyx.io/good-enough): In general, you move faster and feel a lot less stress once you realize - You don't need "the best", you just need "good enough". ([Markdown](https://swyx.io/good-enough.md)) - [React Distros](https://swyx.io/react-distros): Why we no longer have frontend framework wars, and musing on the state of React metaframeworks today and tomorrow ([Markdown](https://swyx.io/react-distros.md)) - [The Platinum Rule](https://swyx.io/platinum-rule): You've heard of the Golden Rule? "Treat others as you want to be treated." Introducing the Platinum and Silver Rules. ([Markdown](https://swyx.io/platinum-rule.md)) - [Avoiding Flash of Unthemed Code](https://swyx.io/avoid-fotc): If your site has a dark mode or custom theme, you might have a flash of the default theme before JavaScript loads. Here is the solution. ([Markdown](https://swyx.io/avoid-fotc.md)) - [Branding Bundles](https://swyx.io/branding-bundles): The best way to communicate a group of benefits is to slap a label on it. ([Markdown](https://swyx.io/branding-bundles.md)) - [How to Contribute to Open Source Frameworks](https://swyx.io/svelte-contributing): One of the best ways to level up in programming is to contribute to a high quality open source project, especially a framework. ([Markdown](https://swyx.io/svelte-contributing.md)) - [Google Sheets v4 API with Netlify Dev](https://swyx.io/netlify-google-sheets): wiring up Google Sheets via a Netlify Function ([Markdown](https://swyx.io/netlify-google-sheets.md)) - [2019 /r/ReactJS Survey Results](https://swyx.io/react-survey-2019): https://pbs.twimg.com/media/EQrqygkW4AIxT0c?format=jpg&name=large ([Markdown](https://swyx.io/react-survey-2019.md)) - [Clientside Webmentions](https://swyx.io/clientside-webmentions): How you can enhance your blog with webmentions without adding heavy build times. ([Markdown](https://swyx.io/clientside-webmentions.md)) - [To Understand Concurrent React, Look Outside React](https://swyx.io/react-outside): Watch these 3 talks: ([Markdown](https://swyx.io/react-outside.md)) - [Big L Notation](https://swyx.io/big-l-notation): In this post I sketch out Big L notation, which plots your learning as a function of N years of experience, with P peers. ([Markdown](https://swyx.io/big-l-notation.md)) - ["No Code" vs RPA](https://swyx.io/no-code-rpa): RPA seems to be NoCode Enterprise Edition™ and the pricing disparity is wild. But there are real differences and I am trying to note them down here. ([Markdown](https://swyx.io/no-code-rpa.md)) - [Intro to Node-RED](https://swyx.io/node-red-intro): I dipped into my automation repo today and explored Huginn. It didn't really appeal so I looked for alternatives and found Node-RED. It uses a much more familiar toolchain (JS)… ([Markdown](https://swyx.io/node-red-intro.md)) - [How To Deploy a Django App to Render.com](https://swyx.io/django-on-render): Messing around learning Django and deploying ([Markdown](https://swyx.io/django-on-render.md)) - [Scrollbar Shenanigans](https://swyx.io/scrollbar-shenanigans): Styling scrollbars for my space on the Internet ([Markdown](https://swyx.io/scrollbar-shenanigans.md)) - [Jan 2020 Recap](https://swyx.io/recap-2020-jan): a belated recap, highlighting my best writing over the past couple months ([Markdown](https://swyx.io/recap-2020-jan.md)) - [Scaling Coding Communities](https://swyx.io/scaling-coding-communities): People who can scale coding communities are 🔥 🔥 🔥 ([Markdown](https://swyx.io/scaling-coding-communities.md)) - [Friendcatchers](https://swyx.io/friendcatchers): Patrick McKenzie's simple concept for making friends on the Internet. ([Markdown](https://swyx.io/friendcatchers.md)) - [My Favorite Podcasts](https://swyx.io/fave-podcasts): 250 Podcasts I enjoy listening to ([Markdown](https://swyx.io/fave-podcasts.md)) - [Svelte as an Eleventy Template Engine](https://swyx.io/svelte-eleventy): Svelte is a really nice authoring format for HTML components. I wanted to explore if I could extend Eleventy to use it. ([Markdown](https://swyx.io/svelte-eleventy.md)) - [How rollup-plugin-svelte Works](https://swyx.io/rollup-plugin-svelte): Svelte is often thought of as a compiler. But really it is a compiler within a bundler. ([Markdown](https://swyx.io/rollup-plugin-svelte.md)) - [Line Lengths](https://swyx.io/line-lengths): Reflecting on what I have learned about CSS Units and Line Lengths ([Markdown](https://swyx.io/line-lengths.md)) - [Documentation Levels](https://swyx.io/documentation-levels): People can't use your code without docs. People might get overwhelmed with too many docs. How can we match the maturity of docs to the maturity of the project? ([Markdown](https://swyx.io/documentation-levels.md)) - [Failing to use HSL to do Palette Theming](https://swyx.io/failure-hsl-palette-theming): Learning from Slack and Refactoring UI to create color palettes, then using HSL colors to do customizable theming with CSS variables ([Markdown](https://swyx.io/failure-hsl-palette-theming.md)) - [Eponymous Laws](https://swyx.io/eponymous-laws): Interesting Two Word ideas with names of people on them ([Markdown](https://swyx.io/eponymous-laws.md)) - [Why I Enjoy Svelte](https://swyx.io/svelte-why): Reasons I enjoy Svelte, despite not using it for work. ([Markdown](https://swyx.io/svelte-why.md)) - [Two Words](https://swyx.io/two-words): The best way to sell to, brand, persuade, or inspire people is to condense your idea down to Two Words. ([Markdown](https://swyx.io/two-words.md)) - [Svelte Zen Garden](https://swyx.io/svelte-zen-garden): reigniting the Zen Garden era with modern technology ([Markdown](https://swyx.io/svelte-zen-garden.md)) - [Optimistic, Offline-First Apps](https://swyx.io/svelte-amplify-datastore): This is my attempt adapting an Amplify DataStore tutorial to Svelte ([Markdown](https://swyx.io/svelte-amplify-datastore.md)) - [Writing an Authentication Store in Svelte](https://swyx.io/svelte-auth): This is my attempt today wrapping an Authentication workflow into a Svelte Store ([Markdown](https://swyx.io/svelte-auth.md)) - [Automated Data Scraping with Github Actions](https://swyx.io/github-scraping): A neat trick I discovered from Mikeal Rogers ([Markdown](https://swyx.io/github-scraping.md)) - [Collapsing Layers](https://swyx.io/collapsing-layers): As Moore's Law ends, devices multiply, and software becomes critical to life, we must take another look at our full stack for continued gains in efficiency, reliability and… ([Markdown](https://swyx.io/collapsing-layers.md)) - [Best Practice Open Source Repo Setup](https://swyx.io/oss-repo-setup): Quick and simple ways to set up Open Source Repos with Best Practices ([Markdown](https://swyx.io/oss-repo-setup.md)) - [writing Advice](https://swyx.io/writing-advice): Some thoughts on writing your first few writings ([Markdown](https://swyx.io/writing-advice.md)) - [CFP Advice](https://swyx.io/cfp-advice): Some thoughts on writing your first few CFPs ([Markdown](https://swyx.io/cfp-advice.md)) - [How To Learn In Private](https://swyx.io/learn-in-private): Of course I don't think that everything should be public. I don't even think everyone should Learn In Public. The majority of the time you are still learning in private. Here are… ([Markdown](https://swyx.io/learn-in-private.md)) - [The Many Jobs of JS Build Tools](https://swyx.io/jobs-of-js-build-tools): A discussion of why JS developers use build tools like Webpack and what we do with them, for new JS developers. ([Markdown](https://swyx.io/jobs-of-js-build-tools.md)) - [Pick Up What They Put Down](https://swyx.io/puwtpd): Translations welcome! (Português) ([Markdown](https://swyx.io/puwtpd.md)) - [In Defense of Hammers](https://swyx.io/hammers): Let's say you needed a multipurpose tool. Which of these would you pick? ([Markdown](https://swyx.io/hammers.md)) - [BHAGs](https://swyx.io/bhags): Recently, I asked tweeple: ([Markdown](https://swyx.io/bhags.md)) - [Nov 2019 Recap](https://swyx.io/recap-nov-2019): Hello mailing list friends! ([Markdown](https://swyx.io/recap-nov-2019.md)) - [Swyx Faves: Software Engineering Daily](https://swyx.io/faves-se-daily): "How to become a 10x engineer: listen to @softwaredaily everyday." - Amjad Masad ([Markdown](https://swyx.io/faves-se-daily.md)) - [Narrow Waists](https://swyx.io/narrow-waists): When talking about "Narrow Waists" I should clarify that I'm only referring to the term from the somewhat obscure "Internet Architecture" model of the different technology layers… ([Markdown](https://swyx.io/narrow-waists.md)) - [The Perfect Restaurant](https://swyx.io/perfect-restaurant): This is a rant of uninformed thoughts and theories about running a restaurant. ([Markdown](https://swyx.io/perfect-restaurant.md)) - [Oct 2019 Recap](https://swyx.io/recap-oct-2019): Hello mailing list friends! ([Markdown](https://swyx.io/recap-oct-2019.md)) - [Private Conversations are Private](https://swyx.io/private): I recently made a mistake. I make many, but this involved someone important to me and to people I know, so it stands out among the general cacophony of my many other failures. I… ([Markdown](https://swyx.io/private.md)) - [Ensembles vs Committees](https://swyx.io/ensembles-vs-committees): A useful dichotomy for team dynamics. ([Markdown](https://swyx.io/ensembles-vs-committees.md)) - [Donating $10k to FreeCodeCamp](https://swyx.io/donating-to-freecodecamp): I benefited from FreeCodeCamp and would like to give back ([Markdown](https://swyx.io/donating-to-freecodecamp.md)) - [API Design: Modifying Defaults](https://swyx.io/api-design-modifying-defaults): This is a quick note on a API Design. I hope to make this an ongoing series. ([Markdown](https://swyx.io/api-design-modifying-defaults.md)) - [Ejectable Defaults](https://swyx.io/ejectable-defaults): Borrowing heavily from Gatsby Themes to improve the Sapper developer experience, and a discussion of how Ejectable Defaults fits with the Zero Config movement ([Markdown](https://swyx.io/ejectable-defaults.md)) - [Sept 2019 Recap](https://swyx.io/recap-sept-2019): Hello mailing list friends! ([Markdown](https://swyx.io/recap-sept-2019.md)) - [Why I Won't Choose To Be A Manager](https://swyx.io/not-manager): I recently decided that I will not choose to be a manager. This is how I arrived at that conclusion. ([Markdown](https://swyx.io/not-manager.md)) - [The World's Greatest Netlify Demo 2019](https://swyx.io/netlify-worlds-greatest-demo-v0): Note: this was published as the Complete Intro to Netlify on the Netlify Blog and the FreeCodeCamp Channel ([Markdown](https://swyx.io/netlify-worlds-greatest-demo-v0.md)) - [Adverse Status Updates and Trust](https://swyx.io/adverse-status-updates-trust): I noticed an asymmetry between adverse status updates and trust that I figured it would be worth a quick comment on. ([Markdown](https://swyx.io/adverse-status-updates-trust.md)) - [Waterfall](https://swyx.io/waterfall): The worlds of software, business, and music use the word "Waterfall" incredibly differently and they are completely ignorant of each other. I figured I would make a quick note to… ([Markdown](https://swyx.io/waterfall.md)) - [Your Site's Calling Card](https://swyx.io/jamstack-og-images): Note: this tutorial is now out of date - I don't pre-generate og:image cards anymore as it added too much time to my builds ([Markdown](https://swyx.io/jamstack-og-images.md)) - [A Better Way to Get Data](https://swyx.io/better-way-to-get-data): Note: this was an unfinished draft, i published it anyway but it is incomplete ([Markdown](https://swyx.io/better-way-to-get-data.md)) - [Why JavaScript Tooling Sucks](https://swyx.io/js-tooling): JavaScript Tooling is just too hard to use, and it's not your fault. ([Markdown](https://swyx.io/js-tooling.md)) - [Bad Ways to Get Data](https://swyx.io/bad-ways-to-get-data): In working on my Sapper export library, I ran into a very peculiar problem: my pages were being generated a lot more slowly than expected: ([Markdown](https://swyx.io/bad-ways-to-get-data.md)) - [Static Svelte: JavaScript Blogging with 93% less JavaScript](https://swyx.io/svelte-static): This blog now uses Svelte & Sapper as a static site generator, where it previously used React & Gatsby. This is achieved through Sapper's sapper export feature. ([Markdown](https://swyx.io/svelte-static.md)) - [Using Next.js as a Static Site Generator for Netlify](https://swyx.io/netlify-nextjs-ssg): How to deploy a Static Next.js Site to Netlify, and then upgrade it to use Dynamic Route Segments to become a full fledged Static Site Generator! ([Markdown](https://swyx.io/netlify-nextjs-ssg.md)) - [GraphQL Variables and Persisted Queries](https://swyx.io/why-graphql-variables): My mistakes and insights on GraphQL Variables and Persisted Queries. ([Markdown](https://swyx.io/why-graphql-variables.md)) - [Keyboard First](https://swyx.io/keyboard-first): I enjoyed listening to Des and Paul's discussion of keyboard-first apps on their podcast today. They discussed the rise of the cmd+K UI paradigm in apps like: ([Markdown](https://swyx.io/keyboard-first.md)) - [Compilers Copout](https://swyx.io/compilers-copout): Today I dropped out of the Compilers course I accidentally registered myself for. I'm not proud of it but there's too much I want to do and I know I'm just going to do a shit job… ([Markdown](https://swyx.io/compilers-copout.md)) - [Book Poll 2019](https://swyx.io/book-poll-2019): I've been feeling like I've skewed too much on empty calories recently. So I ran this poll: ([Markdown](https://swyx.io/book-poll-2019.md)) - [Netlify Year One - 360 Review](https://swyx.io/netlify-year-one-360-review): I thought I would write a quick coda to my Netlify Year One Recap. That post was entirely me looking back at myself. It's helpful to see what others said about me at my review. ([Markdown](https://swyx.io/netlify-year-one-360-review.md)) - [(Incomplete) The introduction to TypeScript Generics you've been missing](https://swyx.io/typescript-generics): Note: this is an unfinished draft ([Markdown](https://swyx.io/typescript-generics.md)) - [The Case for the React Native Web Singularity](https://swyx.io/react-native-web-singularity): There is a possible "React Native Web Singularity", when it starts being a better standalone choice for developing for the mobile web than react-dom. If this speculation comes… ([Markdown](https://swyx.io/react-native-web-singularity.md)) - [Notes on 'Metaphysics and JavaScript'](https://swyx.io/svelte-metaphysics): Slides here ([Markdown](https://swyx.io/svelte-metaphysics.md)) - [How to run Python and Portray on Netlify](https://swyx.io/netlify-python-ssg): How to deploy Python projects to Netlify ([Markdown](https://swyx.io/netlify-python-ssg.md)) - [JAMstack or 'Pilha de Atolamento'? i18n in Gatsby + Netlify](https://swyx.io/netlify-redirects-i18n): Originally published on Scotch.io ([Markdown](https://swyx.io/netlify-redirects-i18n.md)) - [Slowmad Q&A](https://swyx.io/slowmad-qna): The other thing about Netlify Year One that people are generally interested in is my experience of remote work. As I put it recently: ([Markdown](https://swyx.io/slowmad-qna.md)) - [10,000 Loose Fans](https://swyx.io/10000-loose-fans): I broke past 10,000 Twitter followers on Saturday. Obviously this is a completely arbitrary milestone and pretty minor in the hierarchy of needs. I'm not celebrating. ([Markdown](https://swyx.io/10000-loose-fans.md)) - [Netlify Environment Variables](https://swyx.io/netlify-env-vars): We usually use Environment Variables as (global) variables, but did you know they can literally configure your environments as well? ([Markdown](https://swyx.io/netlify-env-vars.md)) - [Netlify Year One](https://swyx.io/netlify-year-one): Update: I have since left Netlify. Alex has published his own writeup on The Mo. ([Markdown](https://swyx.io/netlify-year-one.md)) - [Using Novela by Narative (updated)](https://swyx.io/moving-to-novela): With the growing community interest in Gatsby, we hope to create more resources that make it easier for anyone to grasp the power of this incredible tool. ([Markdown](https://swyx.io/moving-to-novela.md)) - [Fight Link Rot with Server- and Client-side Redirects (Netlify and Gatsby)](https://swyx.io/fight-link-rot-with-server-and-client-side-redirects-netlify-and-gatsby-29jn): Why you need redirects on clientside and serverside and how to set that up with Gatsby and Netlify ([Markdown](https://swyx.io/fight-link-rot-with-server-and-client-side-redirects-netlify-and-gatsby-29jn.md)) - [Deploying a Create-React-App Website to Netlify with HTTPS](https://swyx.io/tutorial-on-deploying-a-create-react-app-website-to-netlify-418l): Tutorial on Deploying a Create-React-App Website to Netlify with HTTPS ([Markdown](https://swyx.io/tutorial-on-deploying-a-create-react-app-website-to-netlify-418l.md)) - [Betwixt Reason and Result](https://swyx.io/betwixt-reason-and-result): I'm writing to you from a cheap hostel in downtown Toronto (Hostelling International, highly recommend for solo travel, I have stayed in SF, LA, NY, PHL, TO, NZ and more I… ([Markdown](https://swyx.io/betwixt-reason-and-result.md)) - [Add Netlify Identity Authentication to any React App in 5 minutes with React Context, Hooks and Suspense](https://swyx.io/add-netlify-identity-authentication-to-any-react-app-in-5-minutes-with-react-context-hooks-and-suspense-5gci): Adding authentication is a pain point for many React beginners. We’ve made it ridiculously easy to add Netlify Identity onto any React app, including create-react-app, Gatsby,… ([Markdown](https://swyx.io/add-netlify-identity-authentication-to-any-react-app-in-5-minutes-with-react-context-hooks-and-suspense-5gci.md)) - [How To Name Things](https://swyx.io/how-to-name-things): There are 2 hard problems in computer science: cache invalidation, naming things, and off-by-1 errors. - Leon Bambrick ([Markdown](https://swyx.io/how-to-name-things.md)) - [Reinforcement Learning: Game Theory](https://swyx.io/reinforcement-learning-game-theory-336a): RL with multiple actors ([Markdown](https://swyx.io/reinforcement-learning-game-theory-336a.md)) - [Learning Gears](https://swyx.io/learning-gears): Translations welcome! (Português) ([Markdown](https://swyx.io/learning-gears.md)) - [Unsupervised Learning: Feature Transformation](https://swyx.io/unsupervised-learning-feature-transformation-pcf): Presenting the same information a different way... helps! Plus, one algorithm that does better than Principal Components Analysis! ([Markdown](https://swyx.io/unsupervised-learning-feature-transformation-pcf.md)) - [Unsupervised Learning: Feature Selection](https://swyx.io/unsupervised-learning-feature-selection-84f): Breaking the Curse of Dimensionality!! ([Markdown](https://swyx.io/unsupervised-learning-feature-selection-84f.md)) - [Unsupervised Learning: Clustering](https://swyx.io/unsupervised-learning-clustering-42mi): Single Linkage, K-Means, Soft Clustering, and Kleinberg Impossibility ([Markdown](https://swyx.io/unsupervised-learning-clustering-42mi.md)) - [Write My Code For Me](https://swyx.io/write-my-code-for-me): My thoughts to self while weighing adding netlify functions:create to Netlify Dev. Originally a gist ([Markdown](https://swyx.io/write-my-code-for-me.md)) - [Getting Closure on React Hooks](https://swyx.io/hooks): Learn React Hooks by building a clone of React - in 30 minutes! ([Markdown](https://swyx.io/hooks.md)) - [Unsupervised Learning: Information Theory Recap](https://swyx.io/unsupervised-learning-information-theory-recap-4iem): A small detour to catch up on the basics of Information Theory we'll need ([Markdown](https://swyx.io/unsupervised-learning-information-theory-recap-4iem.md)) - [Unsupervised Learning: Randomized Optimization](https://swyx.io/unsupervised-learning-randomized-optimization-4c1i): Hill Climbing, Simulated Annealing, Genetic Algorithms, oh my! ([Markdown](https://swyx.io/unsupervised-learning-randomized-optimization-4c1i.md)) - [Unsupervised Learning: Randomized Optimization](https://swyx.io/unsupervised-learning-randomized-optimization-d2j): Hill Climbing, Simulated Annealing, Genetic Algorithms, oh my! ([Markdown](https://swyx.io/unsupervised-learning-randomized-optimization-d2j.md)) - [Supervised Learning: Bayesian Inference](https://swyx.io/supervised-learning-bayesian-inference-4l72): Or, the unreasonable effectiveness of dumb rules ([Markdown](https://swyx.io/supervised-learning-bayesian-inference-4l72.md)) - [Post Bootcamp Mindmap](https://swyx.io/post-graduation): What are all the things you can do to improve as a developer after graduating from college or bootcamp? ([Markdown](https://swyx.io/post-graduation.md)) - [Supervised Learning: Bayesian Learning](https://swyx.io/supervised-learning-bayesian-learning-403l): Lets update our priors! Oh wait we have none. ([Markdown](https://swyx.io/supervised-learning-bayesian-learning-403l.md)) - [Supervised Learning: VC Dimensions](https://swyx.io/supervised-learning-vc-dimensions-10b): It's not venture capital, that's for sure ([Markdown](https://swyx.io/supervised-learning-vc-dimensions-10b.md)) - [Supervised Learning: Computational Learning Theory](https://swyx.io/supervised-learning-computational-learning-theory-160h): What's the big O of machine learning? Lets put some formal theory around HOW we learn! ([Markdown](https://swyx.io/supervised-learning-computational-learning-theory-160h.md)) - [Supervised Learning: Support Vector Machines](https://swyx.io/supervised-learning-support-vector-machines-3mgk): Transforming dimensions, nearest neighbors, and boosting, all in service of "drawing the best line". ([Markdown](https://swyx.io/supervised-learning-support-vector-machines-3mgk.md)) - [Supervised Learning: Ensemble Learning and AdaBoost](https://swyx.io/supervised-learning-ensemble-learning-lim): Better together - how bootstrapping samples of data can work better than the entire dataset, and how to boost it even further, and faster ([Markdown](https://swyx.io/supervised-learning-ensemble-learning-lim.md)) - [Supervised Learning: Instance-based Learning and K-Nearest Neighbors](https://swyx.io/supervised-learning-instance-based-learning-and-k-nearest-neighbors-kge): Regression isn't the only way. What if we were far, far... lazier about it? ([Markdown](https://swyx.io/supervised-learning-instance-based-learning-and-k-nearest-neighbors-kge.md)) - [Supervised Learning: Neural Networks](https://swyx.io/supervised-learning-neural-networks-mpo): That one time we tried to emulate our brains with computer chips ([Markdown](https://swyx.io/supervised-learning-neural-networks-mpo.md)) - [Supervised Learning: Regression](https://swyx.io/supervised-learning-regression-4d17): Drawing lines among dots and more! ([Markdown](https://swyx.io/supervised-learning-regression-4d17.md)) - [Supervised Learning: Classification Learning & Decision Trees](https://swyx.io/machine-learning-classification-learning--decision-trees-1mbh): The simplest form of Classification algorithm ([Markdown](https://swyx.io/machine-learning-classification-learning--decision-trees-1mbh.md)) - [Machine Learning: An Overview](https://swyx.io/machine-learning-an-overview-216n): The three major branches of ML ([Markdown](https://swyx.io/machine-learning-an-overview-216n.md)) - [Cool Facts about Cuttlefish](https://swyx.io/cuttlefish): This was just a short rant I prepared for Netlify's Allhands where we were asked to give a short lightning talk on any topic we wished. I picked cuttles. I actually saw one in… ([Markdown](https://swyx.io/cuttlefish.md)) - [Turning the Static Dynamic with Gatsby + Netlify Functions + Netlify Identity](https://swyx.io/gatsby-static-dynamic): Gatsby is great for not only static sites but also traditional web applications. You can add authentication and serverless functionality and get up and running incredibly quickly… ([Markdown](https://swyx.io/gatsby-static-dynamic.md)) - [Networking Essentials: Network Security](https://swyx.io/networking-essentials-network-security-1fcp): What is Traffic Engineering? ([Markdown](https://swyx.io/networking-essentials-network-security-1fcp.md)) - [Networking Essentials: Traffic Engineering](https://swyx.io/networking-essentials-traffic-engineering-13c4): What is Traffic Engineering? ([Markdown](https://swyx.io/networking-essentials-traffic-engineering-13c4.md)) - [Networking Essentials: Software Defined Networking](https://swyx.io/networking-essentials-software-defined-networking-35n9): Why Software Defined Networking is taking the networking world by storm ([Markdown](https://swyx.io/networking-essentials-software-defined-networking-35n9.md)) - [My New Mac Setup (2018-2020)](https://swyx.io/my-new-mac-setup-4ibi): quick checklist for setting up a new macbook ([Markdown](https://swyx.io/my-new-mac-setup-4ibi.md)) - [Networking Essentials: Content Distribution](https://swyx.io/networking-essentials-content-distribution-jag): How CDNs, BitTorrent and Distributed Hash tables work ([Markdown](https://swyx.io/networking-essentials-content-distribution-jag.md)) - [Networking Essentials: Rate Limiting and Traffic Shaping](https://swyx.io/networking-essentials-rate-limiting-and-traffic-shaping-43ii): How Computer Networks shape, police, measure, and limit the traffic that flow across them. ([Markdown](https://swyx.io/networking-essentials-rate-limiting-and-traffic-shaping-43ii.md)) - [3 Tips from Kent C Dodds for People Just Getting Started](https://swyx.io/3-tips-from-kent-c-dodds-for-people-just-getting-started-ik8): advice for beginners from a podcast ([Markdown](https://swyx.io/3-tips-from-kent-c-dodds-for-people-just-getting-started-ik8.md)) - [Networking Essentials: Congestion Control](https://swyx.io/networking-essentials-congestion-control-26n2): Bottlenecks inevitably arise in networks. How do we deal with them in TCP? How about in practical streaming applications like Youtube and Skype? ([Markdown](https://swyx.io/networking-essentials-congestion-control-26n2.md)) - [Networking Essentials: DNS](https://swyx.io/networking-essentials-dns-1dl7): Domain names, you buy them, you sell them, but how do they work? ([Markdown](https://swyx.io/networking-essentials-dns-1dl7.md)) - [Networking Essentials: Router Design](https://swyx.io/networking-essentials-router-design-ahc): A small detour into Router Hardware! ([Markdown](https://swyx.io/networking-essentials-router-design-ahc.md)) - [Networking Essentials: Naming, Addressing, and Forwarding](https://swyx.io/networking-essentials-naming-addressing-and-forwarding-13kk): How IP Addressing evolved over time, how it works today, and how we can transition to IPv6 in future ([Markdown](https://swyx.io/networking-essentials-naming-addressing-and-forwarding-13kk.md)) - [Networking Essentials: Routing](https://swyx.io/networking-essentials-routing-5gb7): How the Internet cobbles together thousands of Autonomous Systems with the Border Gateway Protocol ([Markdown](https://swyx.io/networking-essentials-routing-5gb7.md)) - [Networking Essentials: Switching](https://swyx.io/networking-essentials-switching-3eba): Discussing why we need Switches in a network and how they work ([Markdown](https://swyx.io/networking-essentials-switching-3eba.md)) - [Networking Essentials: Architecture and Principles](https://swyx.io/networking-essentials-architecture-and-principles-2g5e): Discussing the architecture of the Internet and its the principles that guided its original design. ([Markdown](https://swyx.io/networking-essentials-architecture-and-principles-2g5e.md)) - [Singapore H1B1 Tips](https://swyx.io/h1b1): May 2024 edit: Prices to pay are now here - everything went up with inflation. payment is now done via VFS Cash or Debit (To pay your nonimmigrant visa (NIV) application fee in… ([Markdown](https://swyx.io/h1b1.md)) - [A Glance through Docusaurus, Docz, and React-Static](https://swyx.io/a-glance-through-docusaurus-docz-and-react-static-47in): a survey of new documentation/static site generators ([Markdown](https://swyx.io/a-glance-through-docusaurus-docz-and-react-static-47in.md)) - [Specialize In The New](https://swyx.io/specialize-in-the-new): Author's note: This is part 4 of a series of essays I originally drafted about Opinions for your Tech Career. Part 1 is Learn in Public. ([Markdown](https://swyx.io/specialize-in-the-new.md)) - [Clone Open Source Apps](https://swyx.io/clone-open-source-apps): Author's note: This is part 3 of a series of essays I originally drafted about Opinions for your Tech Career. Part 1 is Learn in Public. ([Markdown](https://swyx.io/clone-open-source-apps.md)) - [Know Your Tools](https://swyx.io/know-your-tools): Author's note: This is part 2 of a series of essays I originally drafted about Opinions for your Tech Career. Part 1 is Learn in Public. ([Markdown](https://swyx.io/know-your-tools.md)) - [Learn In Public](https://swyx.io/learn-in-public): The fastest way to build your expertise, network, and second brain. ([Markdown](https://swyx.io/learn-in-public.md)) - [Quick Guide to setup your React + Typescript Storybook Design System](https://swyx.io/quick-guide-to-setup-your-react--typescript-storybook-design-system-1c51): a no-bs guide to set up your new React and Typescript Design System powered by Storybook! ([Markdown](https://swyx.io/quick-guide-to-setup-your-react--typescript-storybook-design-system-1c51.md)) - [Try React Suspense In 5 Minutes](https://swyx.io/how-to-try-react-suspense-in-5-minutes-474c): title: Try React Suspense In 5 Minutes ([Markdown](https://swyx.io/how-to-try-react-suspense-in-5-minutes-474c.md)) - [Source Code for Life v0.1](https://swyx.io/source-code-for-life-v01-3pal): Compiled Insights for Infinite Learners ([Markdown](https://swyx.io/source-code-for-life-v01-3pal.md)) - [React Suspense Q&A](https://swyx.io/react-suspense-qa-28lc): a friendly cheat sheet for those wondering what React Suspense is and if they should care ([Markdown](https://swyx.io/react-suspense-qa-28lc.md)) - [OCaml Speedrun! 🐫🐪](https://swyx.io/ocaml-speedrun-3f7g): a guided walk through Jane Street's OCaml workshop ([Markdown](https://swyx.io/ocaml-speedrun-3f7g.md)) - [Introduction to MobX 4 for React/Redux Developers](https://swyx.io/introduction-to-mobx-4-for-reactredux-developers-3k07): an introduction to mobx 4 for people coming from react and redux ([Markdown](https://swyx.io/introduction-to-mobx-4-for-reactredux-developers-3k07.md)) - [A Walkthrough of *that* React Suspense Demo](https://swyx.io/a-walkthrough-of-that-react-suspense-demo--4j6a): Annotated commentary on the code behind the Movie search demo featuring React Suspense ([Markdown](https://swyx.io/a-walkthrough-of-that-react-suspense-demo--4j6a.md)) - [Scraping my Twitter Social Graph with Python and Selenium](https://swyx.io/scraping-my-twitter-social-graph-with-python-and-selenium--hn8): Using python and selenium to find better follows on Twitter ([Markdown](https://swyx.io/scraping-my-twitter-social-graph-with-python-and-selenium--hn8.md)) - [What Happens When A User Edits A Post on Dev.to?](https://swyx.io/what-happens-when-a-user-edits-a-post-on-devto-a58): title: What Happens When A User Edits A Post on Dev.to? ([Markdown](https://swyx.io/what-happens-when-a-user-edits-a-post-on-devto-a58.md)) - [Hello, I am making a modern fullstack JS tutorial livestream. What questions do you have for me?](https://swyx.io/hello-i-am-making-a-modern-fullstack-js-tutorial-what-questions-do-you-have-for-me-dg3): title: Hello, I am making a modern fullstack JS tutorial livestream. What questions do you have for me? ([Markdown](https://swyx.io/hello-i-am-making-a-modern-fullstack-js-tutorial-what-questions-do-you-have-for-me-dg3.md)) - [How To Google Your Errors](https://swyx.io/how-to-google-your-errors-2l6o): title: How To Google Your Errors ([Markdown](https://swyx.io/how-to-google-your-errors-2l6o.md)) - [Flutter for React Native Devs in 30 Seconds](https://swyx.io/flutter-for-react-native-devs-in-30-seconds-78g): You may have heard of Flutter, Google's answer to React Native. What should you know? ([Markdown](https://swyx.io/flutter-for-react-native-devs-in-30-seconds-78g.md)) - [Serverless Machine Learning at Google](https://swyx.io/serverless-machine-learning-at-google-cp9): title: Serverless Machine Learning at Google ([Markdown](https://swyx.io/serverless-machine-learning-at-google-cp9.md)) - [Are we human? Or are we reCAPTCHA?](https://swyx.io/are-we-human-or-are-we-recaptcha-blm): title: Are we human? Or are we reCAPTCHA? ([Markdown](https://swyx.io/are-we-human-or-are-we-recaptcha-blm.md)) - [Firebase Analytics in 30 Seconds](https://swyx.io/firebase-analytics-in-30-seconds-6pp): title: Firebase Analytics in 30 Seconds ([Markdown](https://swyx.io/firebase-analytics-in-30-seconds-6pp.md)) - [Medical Machine Learning in 30 Seconds](https://swyx.io/medical-machine-learning-in-30-seconds-dh1): title: Medical Machine Learning in 30 Seconds ([Markdown](https://swyx.io/medical-machine-learning-in-30-seconds-dh1.md))