2024-11-08 12:06:49 +00:00
<!DOCTYPE html>
< html lang = "en-US" dir = "ltr" >
< head >
< meta charset = "utf-8" >
< meta name = "viewport" content = "width=device-width,initial-scale=1" >
< title > Local-First Software | The Paper Pilot< / title >
< meta name = "description" content = "The Paper Pilot's Digital Garden" >
< meta name = "generator" content = "VitePress v1.2.2" >
2024-11-21 00:08:11 +00:00
< link rel = "preload stylesheet" href = "/assets/style.DrJNvSQz.css" as = "style" >
2024-11-08 12:06:49 +00:00
2024-11-21 00:08:11 +00:00
< script type = "module" src = "/assets/app.S96_Rjtb.js" > < / script >
2024-11-08 12:06:49 +00:00
< link rel = "preload" href = "/assets/inter-roman-latin.Di8DUHzh.woff2" as = "font" type = "font/woff2" crossorigin = "" >
< link rel = "modulepreload" href = "/assets/chunks/framework.Sr2_9k8k.js" >
2024-11-21 00:08:11 +00:00
< link rel = "modulepreload" href = "/assets/chunks/theme.DIkDoSxp.js" >
< link rel = "modulepreload" href = "/assets/chunks/git.data.DXuIlcCL.js" >
< link rel = "modulepreload" href = "/assets/garden_local-first-software_index.md.MpbMZNPD.lean.js" >
2024-11-08 12:06:49 +00:00
< link rel = "preconnect" href = "https://fonts.googleapis.com" >
< link rel = "stylesheet" href = "https://fonts.googleapis.com/css2?family=Itim&family=Roboto+Mono:ital,wght@0,400;0,600;1,400&display=block" >
< link rel = "apple-touch-icon" sizes = "180x180" href = "/apple-touch-icon.png" >
< link rel = "icon" type = "image/png" sizes = "32x32" href = "/favicon-32x32.png" >
< link rel = "icon" type = "image/png" sizes = "16x16" href = "/favicon-16x16.png" >
< link rel = "manifest" href = "/site.webmanifest" >
< link rel = "mask-icon" href = "/safari-pinned-tab.svg" color = "#3a0839" >
< link rel = "shortcut icon" href = "/favicon.ico" >
< meta name = "msapplication-TileColor" content = "#00FFFF" >
< meta name = "msapplication-config" content = "/browserconfig.xml" >
< meta name = "theme-color" content = "#3B4252" >
< link rel = "alternate" type = "text/mf2+html" href = "/changelog" >
< link rel = "alternate" type = "application/rss+xml" title = "Changelog" href = "/changelog/rss" >
< link rel = "alternate" type = "application/atom+xml" title = "Changelog" href = "/changelog/atom" >
< link rel = "alternate" type = "application/json+xml" title = "Changelog" href = "/changelog/json" >
< link rel = "me" href = "mailto:thepaperpilot@incremental.social" >
< link rel = "me" href = "https://incremental.social/u/thepaperpilot" >
< link rel = "me" href = "https://matrix.to/#/@thepaperpilot:incremental.social" >
< link rel = "me" href = "https://code.incremental.social/thepaperpilot" >
< link rel = "me" href = "https://www.linkedin.com/in/anthony-lawn/" >
< link rel = "me" href = "https://mastodon.gamedev.place/@thepaperpilot" >
< link rel = "me" href = "https://beehaw.org/u/thepaperpilot" >
< link rel = "me" href = "https://www.reddit.com/user/ThePaperPilot/" >
< link rel = "me" href = "https://github.com/thepaperpilot" >
< link rel = "me" href = "https://twitter.com/ThePaperPilot" >
< link rel = "authorization_endpoint" href = "https://indie.incremental.social/auth" >
< link rel = "token_endpoint" href = "https://indie.incremental.social/auth/token" >
< link rel = "micropub" href = "https://indie.incremental.social/micropub" >
< link rel = "indieauth-metadata" href = "https://indie.incremental.social/.well-known/oauth-authorization-server" >
< script data-goatcounter = "https://thepaperpilot.goatcounter.com/count" async src = "//gc.zgo.at/count.js" > < / script >
< script id = "check-mac-os" > document . documentElement . classList . toggle ( "mac" , /Mac|iPhone|iPod|iPad/i . test ( navigator . platform ) ) ; < / script >
< meta name = "og:title" content = "Local-First Software" >
< meta name = "og:description" content = "" >
< meta name = "og:image" content = "https://www.thepaperpilot.org/paperpilot_thumb.png" >
< meta name = "og:site_name" content = "The Paper Pilot's Digital Garden" >
< meta name = "og:type" content = "article" >
< meta name = "article:author" content = "https://www.thepaperpilot.org/about" >
< / head >
< body >
2024-11-21 00:08:11 +00:00
< div id = "app" > < div class = "Layout" data-v-9c819c6a data-v-5d98c3a5 > <!-- [ --> <!-- [ --> <!-- ] --> <!-- --> <!-- ] --> <!-- [ --> < span tabindex = "-1" data-v-0f60ec36 > < / span > < a href = "#VPContent" class = "VPSkipLink visually-hidden" data-v-0f60ec36 > Skip to content < / a > <!-- ] --> <!-- --> < header class = "VPNav" data-v-5d98c3a5 data-v-ae24b3ad > < div class = "VPNavBar has-sidebar top" data-v-ae24b3ad data-v-ccf7ddec > < div class = "wrapper" data-v-ccf7ddec > < div class = "container" data-v-ccf7ddec > < div class = "title" data-v-ccf7ddec > < div class = "VPNavBarTitle has-sidebar" data-v-ccf7ddec data-v-ab179fa1 > < a class = "title" href = "/" data-v-ab179fa1 > <!-- [ --> <!-- ] --> <!-- --> < span data-v-ab179fa1 > The Paper Pilot< / span > <!-- [ --> <!-- ] --> < / a > < / div > < / div > < div class = "content" data-v-ccf7ddec > < div class = "content-body" data-v-ccf7ddec > <!-- [ --> <!-- ] --> < div class = "VPNavBarSearch search" data-v-ccf7ddec > <!-- [ --> <!-- --> < div id = "local-search" > < button type = "button" class = "DocSearch DocSearch-Button" aria-label = "Search" > < span class = "DocSearch-Button-Container" > < span class = "vp-icon DocSearch-Search-Icon" > < / span > < span class = "DocSearch-Button-Placeholder" > Search< / span > < / span > < span class = "DocSearch-Button-Keys" > < kbd class = "DocSearch-Button-Key" > < / kbd > < kbd class = "DocSearch-Button-Key" > K< / kbd > < / span > < / button > < / div > <!-- ] --> < / div > < nav aria-labelledby = "main-nav-aria-label" class = "VPNavBarMenu menu" data-v-ccf7ddec data-v-7f418b0f > < span id = "main-nav-aria-label" class = "visually-hidden" data-v-7f418b0f > Main Navigation< / span > <!-- [ --> <!-- [ --> < a class = "VPLink link vp-external-link-icon VPNavBarMenuLink" href = "https://moddingtree.com" target = "_blank" rel = "noreferrer" tabindex = "0" data-v-7f418b0f data-v-9c663999 > <!-- [ --> < span data-v-9c663999 > Profectus< / span > <!-- ] --> < / a > <!-- ] --> <!-- [ --> < a class = "VPLink link vp-external-link-icon VPNavBarMenuLink" href = "https://incremental.social" target = "_blank" rel = "noreferrer" tabindex = "0" data-v-7f418b0f data-v-9c663999 > <!-- [ --> < span data-v-9c663999 > Incremental Social< / span > <!-- ] --> < / a > <!-- ] --> <!-- ] --> < / nav > <!-- --> <!-- --> < div class = "VPSocialLinks VPNavBarSocialLinks social-links" data-v-ccf7ddec data-v-0394ad82 data-v-7bc22406 > <!-- [ --> < a class = "VPSocialLink no-icon" href = "https://code.incremental.social/thepaperpilot" aria-label target = "_blank" rel = "noopener" data-v-7bc22406 data-v-eee4e7cb > < svg role = "img" viewBox = "0 0 24 24" xmlns = "http://www.w3.org/2000/svg" > < title > Forgejo< / title > < path d = "M16.7773 0c1.6018 0 2.9004 1.2986 2.9004 2.9005s-1.2986 2.9004-2.9004 2.9004c-1.0854 0-2.0315-.596-2.5288-1.4787H12.91c-2.3322 0-4.2272 1.8718-4.2649 4.195l-.0007 2.1175a7.0759 7.0759 0 0 1 4.148-1.4205l.1176-.001 1.3385.0002c.4973-.8827 1.4434-1.4788 2.5288-1.4788 1.6018 0 2.9004 1.2986 2.9004 2.9005s-1.2986 2.9004-2.9004 2.9004c-1.0854 0-2.0315-.596-2.5288-1.4787H12.91c-2.3322 0-4.2272 1.8718-4.2649 4.195l-.0007 2.319c.8827.4973 1.4788 1.4434 1.4788 2.5287 0 1.602-1.2986 2.9005-2.9005 2.9005-1.6018 0-2.9004-1.2986-2.9004-2.9005 0-1.0853.596-2.0314 1.4788-2.5287l-.0002-9.9831c0-3.887 3.1195-7.0453 6.9915-7.108l.1176-.001h1.3385C14.7458.5962 15.692 0 16.7773 0ZM7.2227 19.9052c-.6596 0-1.1943.5347-1.1943 1.1943s.5347 1.1943 1.1943 1.1943 1.1944-.5347 1.1944-1.1943-.5348-1.1943-1.1944-1.1943Zm9.5546-10.4644c-.6596 0-1.1944.5347-1.1944 1.1943s.5348 1.1943 1.1944 1.1943c.6596 0 1.1943-.5347 1.1943-1.1943s-.5347-1.1943-1.1943-1.1943Zm0-7.7346c-.6596 0-1.1944.5347-1.1944 1.1943s.5348 1.1943 1.1944 1.1943c.6596 0 1.1943-.5347 1.1943-1.1943s-.5347-1.1943-1.1943-1.1943Z" / > < / svg > < / a > < a class = "VPSocialLink no-icon" href = "https://matrix.to/#/@thepaperpilot:incremental.social" aria-label target = "_blank" rel = "noopener" data-v-7bc22406 data-v-eee4e7cb > < svg role = "img" viewBox = "0 0 24 24" xmlns = "http://www.w3.org/2000/svg" > < title > Matrix< / title > < path d = "M.632.55v22.9H2.28V24H0V0h2.28v.55zm7.043 7 . 26v1 . 157h . 033c . 309- . 443 . 683- . 784 1 . 117-1 . 024 . 433- . 245 . 936- . 365 1 . 5- . 365 . 54 0 1 . 033 . 107 1 . 481 . 314 . 448 . 208 . 785 . 582 1 . 02 1 . 108 . 254- . 374 . 6- . 706 1 . 034- . 992 . 434- . 287 . 95- . 43 1 . 546- . 43 . 453 0 . 872 . 056 1 . 26 . 167 . 388 . 11 . 716 . 286 . 993 . 53 . 276 . 245 . 489 . 559 . 646 . 951 . 152 . 392 . 23 . 863 . 23 1 . 417v5 . 728h-2 . 349V11 . 52c0- . 286- . 01
.< / span > < / p > < hr > < details > < summary > Referenced by:< / summary > < a href = "/garden/orchard/index.md" > Orchard< / a > < / details > < p > Software that is designed to operate fully offline, that can sync when connected to other clients. This means giving users ownership over their data while still allowing for collaboration.< / p > < p > Find a bunch of resources explaining the concept, how to implement it, and some examples at < a href = "https://localfirstweb.dev/" target = "_blank" rel = "noreferrer" > https://localfirstweb.dev/< / a > < / p > < / div > < / div > < / main > <!-- --> <!-- [ --> <!-- ] --> < / div > < / div > < / div > <!-- [ --> <!-- ] --> < / div > < / div > <!-- --> <!-- [ --> < footer class = "vp-doc" data-v-9c819c6a > < div data-v-9c819c6a > CC 2024 < a class = "h-card" rel = "me" href = "/about" data-v-9c819c6a > < img src = "/me.jpg" alt = "" data-v-9c819c6a > The Paper Pilot< / a > . < a rel = "license" href = "https://creativecommons.org/licenses/by-nc-sa/4.0/" data-v-9c819c6a > CC BY-NC-SA 4.0< / a > .< / div > < div data-v-9c819c6a > Any and all opinions listed here are my own and not representative of my employers; future, past and present.< / div > < div data-v-9c819c6a > < a href = "https://resume.incremental.social/thepaperpilot/thepaperpilot" data-v-9c819c6a > Resume< / a > (not actively seeking new opportunities).< / div > < div data-v-9c819c6a > Site built from < a href = "https://code.incremental.social/thepaperpilot/pages/commit/46548f5078c1ec182f8171a1111c7d2efdcdd707" data-v-9c819c6a > this commit< / a > on < time data-v-9c819c6a > Wednesday, November 20, 2024 at 18:06:07< / time > . < a href = "https://www.thepaperpilot.org/licenses.txt" data-v-9c819c6a > Legal disclaimers< / a > .< / div > < / footer > <!-- ] --> < / div > < / div >
< script > w i n d o w . _ _ V P _ H A S H _ M A P _ _ = J S O N . p a r s e ( " { \ " g a r d e n _ a n a r c h i s m _ i n d e x . m d \ " : \ " B h D P z F t s \ " , \ " g a r d e n _ a d v e n t - i n c r e m e n t a l _ i n d e x . m d \ " : \ " D s f I y m t 0 \ " , \ " g a r d e n _ a c t i v i t y p u b _ i n d e x . m d \ " : \ " C b z V N V P l \ " , \ " g a r d e n _ g a m e - d e v - t r e e _ i n d e x . m d \ " : \ " D V D S 7 I 7 9 \ " , \ " g a r d e n _ g a r d e n - r s s _ i n d e x . m d \ " : \ " C a C D L d 5 e \ " , \ " g a r d e n _ p r e - o r d e r - b o n u s e s _ i n d e x . m d \ " : \ " B 0 f H _ g C M \ " , \ " g a r d e n _ g e n d e r _ i n d e x . m d \ " : \ " 6 Y u h Y N 2 4 \ " , \ " g a r d e n _ g e n d e r - p e r f o r m a t i v i t y _ i n d e x . m d \ " : \ " C J E z t h 7 w \ " , \ " p u b l i c _ g a m e d e v t r e e _ d o c s _ l a y e r - f e a t u r e s . m d \ " : \ " C r q 8 3 l M F \ " , \ " g a r d e n _ f o r g e j o _ i n d e x . m d \ " : \ " s J 3 Q t L c m \ " , \ " g a r d e n _ f r e e f o r m - v s - c h r o n o l o g i c a l - d i c h o t o m y _ i n d e x . m d \ " : \ " C r g R - M t C \ " , \ " g a r d e n _ c i n n y _ i n d e x . m d \ " : \ " - i K V F f 7 z \ " , \ " g a r d e n _ c a p t u r e - t h e - c i t a d e l _ i n d e x . m d \ " : \ " M 5 3 L V w 2 Z \ " , \ " p u b l i c _ l i t _ d o c s _ i n f o b o x e s . m d \ " : \ " C u Z o 0 M 8 o \ " , \ " g a r d e n _ k r o n o s _ i n d e x . m d \ " : \ " D U 4 k A 8 K d \ " , \ " g a r d e n _ c o n s e n s u s - d e m o c r a c y _ i n d e x . m d \ " : \ " u f 6 8 H C u G \ " , \ " g a r d e n _ c h r o m a t i c - l a t t i c e _ i n d e x . m d \ " : \ " B k - E 3 Z 1 3 \ " , \ " g a r d e n _ c h r o n o l o g i c a l _ i n d e x . m d \ " : \ " B U p S 7 p 6 T \ " , \ " g a r d e n _ b a b b l e - b u d s _ i n d e x . m d \ " : \ " L _ I B s D C 5 \ " , \ " g a r d e n _ g u i d e - t o - i n c r e m e n t a l s _ i n d e x . m d \ " : \ " C 3 2 G L 1 Y A \ " , \ " g a r d e n _ a r t i f i c i a l - i n t e l l i g e n c e _ i n d e x . m d \ " : \ " n w 7 H m y B q \ " , \ " g a r d e n _ d a v e y - w r e d e n _ i n d e x . m d \ " : \ " B G W y N t a X \ " , \ " g a r d e n _ p o l i t i c a l - q u i z z e s _ i n d e x . m d \ " : \ " C - h B v H w t \ " , \ " g a r d e n _ c h a t - g l u e _ i n d e x . m d \ " : \ " D - I G b P w 2 \ " , \ " g a r d e n _ g u i d e - t o - i n c r e m e n t a l s _ w h a t - i s - c o n t e n t _ i n d e x . m d \ " : \ " B D G D x A 3 0 \ " , \ " g a r d e n _ a - p l e a - t o - o r g a n i z e _ i n d e x . m d \ " : \ " D P 9 b u t p X \ " , \ " g a r d e n _ i v y - r o a d _ i n d e x . m d \ " : \ " j - v B Y q Y D \ " , \ " g a r d e n _ t h e - b e g i n n e r - s - g u i d e _ i n d e x . m d \ " : \ " B n 6 t x C Y 5 \ " , \ " g a r d e n _ t h e - i n d i e w e b _ s i g n a t u r e - b l o c k s _ i n d e x . m d \ " : \ " D G L b Z g t l \ " , \ " g a r d e n _ t e c h n o c r a c y _ i n d e x . m d \ " : \ " 0 T T r t V - d \ " , \ " g a r d e n _ t h e - c o z y - w e b _ i n d e x . m d \ " : \ " D p I l 5 7 9 2 \ " , \ " g a r d e n _ t r a n s - a t h l e t e s - i n - s p o r t s _ i n d e x . m d \ " : \ " B L k m j o X H \ " , \ " g a r d e n _ v i d e o - g a m e - m o n e t i z a t i o n _ i n d e x . m d \ " : \ " C i S 3 a C I O \ " , \ " g a r d e n _ v - e c s _ i n d e x . m d \ " : \ " C J z 5 s x y v \ " , \ " g a r d e n _ t h e - s m a l l - w e b _ i n d e x . m d \ " : \ " C Z 9 A W q 6 C \ " , \ " g a r d e n _ t h i s - k n o w l e d g e - h u b _ i n d e x . m d \ " : \ " B 3 V l 4 I d N \ " , \ " g a r d e n _ t h e - i n d i e w e b _ a m p l i f i c a t i o n _ i n d e x . m d \ " : \ " o 9 D n X o G W \ " , \ " g a r d e n _ w e b r i n g s _ i n d e x . m d \ " : \ " B 4 u h 3 u z x \ " , \ " g a r d e n _ w e i r d _ i n d e x . m d \ " : \ " C 7 2 R d 2 U _ \ " , \ " g u i d e - t o - i n c r e m e n t a l s _ i n d e x . m d \ " : \ " D H u q i k t n \ " , \ " g a r d e n _ w a n d e r s t o p _ i n d e x . m d \ " : \ " D S 8 j v O l C \ " , \ " g a r d e n _ v i t e p r e s s _ i n d e x . m d \ " : \ " e p H 9 r l 5 e \ " , \ " g u i d e - t o - i n c r e m e n t a l s _ d e s i g n _ c r i t i c i s m _ i n d e x . m d \ " : \ " f C 3 R V N x 7 \ " , \ " g u i d e - t o - i n c r e m e n t a l s _ l u d o l o g y _ a p p e a l - d e v e l o p e r s _ i n d e x . m d \ " : \ " G g R _ u H 4 5 \ " , \ " g u i d e - t o - i n c r e m e n t a l s _ l u d o l o g y _ c o n t e n t _ i n d e x . m d \ " : \ " B u c k h G q e \ " , \ " g u i d e - t o - i n c r e m e n t a l s _ l u d o l o g y _ d e f i n i t i o n _ i n d e x . m d \ " : \ " C B 1 Y D n K Y \ " , \ " i n d e x . m d \ " : \ " C V 7 P y M G c \ " , \ " p u b l i c _ g a m e d e v t r e e _ d o c s _ ! g e n e r a l - i n f o . m d \ " : \ " D E 0 K e 1 e 2 \ " , \ " p u b l i c _ g a m e d e v t r e e _ c h a n g e l o g . m d \ " : \ " 3 3 C N N J K T \ " , \ " p u b l i c _ g a m e d e v t r e e _ d o c s _ a c h i e v e m e n t s . m d \ " : \ " C 0 y B 9 5 W u \ " , \ " p u b l i c _ g a m e d e v t r e e _ d o c s _ b a r s . m d \ " : \ " C U b X g o s N \ " , \ " p u b l i c _ g a m e d e v t r e e _ d o c s _ b a s i c - l a y e r - b r e a k d o w n . m d \ " : \ " Y q w j _ x f c \ " , \ " p u b l i c _ k r o n o s _ d o c s _ b a s i c - l a y e r - b r e a k d o w n . m d \ " : \ " B 8 H 1 f h g A \ " , \ " p u b l i c _ g a m e d e v t r e e _ d o c s _ c h a l l e n g e s . m d \ " : \ " C E _ e H H w f \ " , \ " p u b l i c _ g a m e d e v t r e e _ d o c s _ b u y a b l e s . m d \ " : \ " B 2 3 L D g I 6 \ " , \ " p u b l i c _ g a m e d e v t r e e _ d o c s _ c l i c k a b l e s . m d \ " : \ " C k 1 H 6 V J z \ " , \ " p u b l i c _ g a m e d e v t r e e _ d o c s _ g e t t i n g - s t a r t e d . m d \ " : \ " h N e D D q a D \ " , \ " g a r d e n _ m a t r i x _ i n d e x . m d \ " : \ " C a S U S K D B \ " , \ " p u b l i c _ g a m e d e v t r e e _ d o c s _ i n f o b o x e s . m d \ " : \ " b L l o e I u f \ " , \ " p u b l i c _ g a m e d e v t r e e _ d o c s _ s u b t a b s - a n d - m i c r o t a b s . m d \ " : \ " C M F h z x t B \ " , \ " g a r d e n _ m b i n _ i n d e x . m d \ " : \ " D h D M m M p L \ " , \ " p u b l i c _ g a m e d e v t r e e _ d o c s _ m i l e s t o n e s . m d \ " : \ " C W a Y O b Z s \ " , \ " p u b l i c _ g a m e d e v t r e e _ d o c s _ m a i n - m o d - i n f o . m d \ " : \ " B C N a Y - _ 6 \ " , \ " p u b l i c _ g a m e d e v t r e e _ d o c s _ c u s t o m - t a b - l a y o u t s . m d \ " : \ " D N T f G u b 2 \ " , \ " p u b l i c _ k r o n o s _ d o c s _ a c h i e v e m e n t s . m d \ " : \ " K s b X J C 1 r \ " , \ " p u b l i c _ k r o n o s _ d o c s _ ! g e n e r a l - i n f o . m d \ " : \ " D B O K R L m e \ " , \ " p u b l i c _ k r o n o s _ d o c s _ b a r s . m d \ " : \ " C S g u F Z p _ \ " , \ " p u b l i c _ k r o n o s _ d o c s _ c h a l l e n g e s . m d \ " : \ " C s 3 V f g w - \ " , \ " p u b l i c _ k r o n o s _ d o c s _ c l i c k a b l e s . m d \ " : \ " B j E 1 3 u 2 w \ " , \ " p u b l i c _ k r o n o s _ d o c s _ c u s t o m - t a b - l a y o u t s . m d \ " : \ " l i v v a l 5 T \ " , \ " p u b l i c _ k r o n o s _ d o c s _ u p d a t i n g - t m t . m d \ " : \ " M 9 T 2 2 m d H \ " , \ " p u b l i c _ k r o n o s _ d o c s _ b u y a b l e s . m d \ " : \ " B n k 8 z k u a \ " , \ " p u b l i c _ k r o n o s _ d o c s _ m i l e s t o n e s . m d \ " : \ " C 1 5 Q t F f 1 \ " , \ " p u b l i c _ l i t _ d o c s _ b a s i c - l a y e r - b r e a k d o w n . m d \ " : \ " C s Z K n x w f \ " , \ " p u b l i c _ l i t _ d o c s _ c h a l l e n g e s . m d \ " : \ " Z 9 R j 0 Y I U \ " , \ " p u b l i c _ l i t _ d o c s _ b u y a b l e s . m d \ " : \ " 7 8 V p 9 b 6 u \ " , \ " p u b l i c _ l i t _ d o c s _ c l i c k a b l e s . m d \ " : \ " B H 0 x y i 8 n \ " , \ " p u b l i c _ l i t _ d o c s _ c u s t o m - t a b - l a y o u t s . m d \ " : \ " B o Q J F t T n \ " , \ " g a r d e n _ m y - p o l i t i c a l - b e l i e f
2024-11-08 12:06:49 +00:00
< / body >
< / html >