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-29 04:23:44 +00:00
< link rel = "preload stylesheet" href = "/assets/style.Dyr1wKxP.css" as = "style" >
2024-11-08 12:06:49 +00:00
2024-11-29 04:23:44 +00:00
< script type = "module" src = "/assets/app.CjRwD5T4.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-29 04:23:44 +00:00
< link rel = "modulepreload" href = "/assets/chunks/theme.DpCaOULF.js" >
< link rel = "modulepreload" href = "/assets/chunks/git.data.BcrWSzMU.js" >
< link rel = "modulepreload" href = "/assets/garden_local-first-software_index.md.Cb7v9klo.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-29 04:23:44 +00:00
< div id = "app" > < div class = "Layout" data-v-4f9a2448 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-4f9a2448 > < div data-v-4f9a2448 > CC 2024 < a class = "h-card" rel = "me" href = "/about" data-v-4f9a2448 > < img src = "/me.jpg" alt = "" data-v-4f9a2448 > The Paper Pilot< / a > . < a rel = "license" href = "https://creativecommons.org/licenses/by-nc-sa/4.0/" data-v-4f9a2448 > CC BY-NC-SA 4.0< / a > .< / div > < div data-v-4f9a2448 > Any and all opinions listed here are my own and not representative of my employers; future, past and present.< / div > < div data-v-4f9a2448 > < a href = "https://resume.incremental.social/thepaperpilot/thepaperpilot" data-v-4f9a2448 > Resume< / a > (not actively seeking new opportunities).< / div > < div data-v-4f9a2448 > Site built from < a href = "https://code.incremental.social/thepaperpilot/pages/commit/50fc43997fde6ba5648dcf9bb2ad34df5e125be5" data-v-4f9a2448 > this commit< / a > on < time data-v-4f9a2448 > Thursday, November 28, 2024 at 22:20:23< / time > . < a href = "https://www.thepaperpilot.org/licenses.txt" data-v-4f9a2448 > 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 _ w e b r i n g s _ i n d e x . m d \ " : \ " C 9 Y R Z 8 v b \ " , \ " 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 \ " : \ " B p q 1 5 U a X \ " , \ " 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 5 q P B o - S \ " , \ " g a r d e n _ w e i r d _ i n d e x . m d \ " : \ " B j Z i 1 M D u \ " , \ " 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 \ " : \ " C 4 - B O O 4 I \ " , \ " g a r d e n _ b a b b l e - b u d s _ i n d e x . m d \ " : \ " C R l l a z Q 1 \ " , \ " 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 A l S W W x 9 \ " , \ " g a r d e n _ s y n a p s e _ i n d e x . m d \ " : \ " j 2 M W s u O _ \ " , \ " g a r d e n _ a t p r o t o _ i n d e x . m d \ " : \ " I T A Y O G J R \ " , \ " g a r d e n _ f e d i v e r s e _ i n d e x . m d \ " : \ " D d s b J h R P \ " , \ " g a r d e n _ c i n n y _ i n d e x . m d \ " : \ " C K X J 1 b b s \ " , \ " g a r d e n _ t e c h n o c r a c y _ i n d e x . m d \ " : \ " C X 0 D w K 9 Y \ " , \ " 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 9 s _ U l L - \ " , \ " g a r d e n _ t h e - c o z y - w e b _ i n d e x . m d \ " : \ " D a h e N E d p \ " , \ " g a r d e n _ i m p e r i a l i s m _ i n d e x . m d \ " : \ " C s h u e x h P \ " , \ " g a r d e n _ a r t - i s - n e v e r - c o m p l e t e _ i n d e x . m d \ " : \ " B t I Y Q j o w \ " , \ " g a r d e n _ c o m m a n d - p a l e t t e s _ i n d e x . m d \ " : \ " D P k T i Z S A \ " , \ " g a r d e n _ f i l t e r - b u b b l e s _ i n d e x . m d \ " : \ " q L D B K f 9 8 \ " , \ " 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 \ " : \ " 3 x 5 V q Z 8 0 \ " , \ " a b o u t _ i n d e x . m d \ " : \ " Y p m a D m _ z \ " , \ " 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 \ " : \ " C F 3 p t i y g \ " , \ " 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 - g a m e r s _ i n d e x . m d \ " : \ " C m p v y a 3 x \ " , \ " 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 \ " : \ " C i m y B W K E \ " , \ " g a r d e n _ a n a r c h i s m _ i n d e x . m d \ " : \ " C E R _ o 3 n m \ " , \ " 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 \ " : \ " V F i 9 p c q A \ " , \ " g a r d e n _ d e c e n t r a l i z e d _ i n d e x . m d \ " : \ " b r y h D 8 x j \ " , \ " 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 m E e _ r Y O \ " , \ " g a r d e n _ c h a t - g l u e _ i n d e x . m d \ " : \ " B U F D c a M 4 \ " , \ " g a r d e n _ e v e r y t h i n g - i s - p o l i t i c a l _ i n d e x . m d \ " : \ " r b S D w q Z c \ " , \ " 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 \ " : \ " D Z 5 p J U - H \ " , \ " 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 \ " : \ " C o f u R d B H \ " , \ " g a r d e n _ d e c e n t r a l i z e d - i d e n t i t y _ i n d e x . m d \ " : \ " B E I M l p i 0 \ " , \ " g a r d e n _ d e c e n t r a l i z e d - m o d e r a t i o n _ i n d e x . m d \ " : \ " u e a X Q z n W \ " , \ " 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 _ n a v i g a t i n g - c r i t i c i s m _ i n d e x . m d \ " : \ " D i v Z 7 6 B D \ " , \ " g a r d e n _ d a v e y - w r e d e n _ i n d e x . m d \ " : \ " g X Q R u u U m \ " , \ " c h a n g e l o g _ i n d e x . m d \ " : \ " i l n y z B D 3 \ " , \ " g a r d e n _ m o d e r a t i o n _ i n d e x . m d \ " : \ " B 7 R P _ V Z _ \ " , \ " g a r d e n _ g a r d e n - r s s _ i n d e x . m d \ " : \ " B u A H k 1 M Q \ " , \ " g a r d e n _ g e n d e r _ i n d e x . m d \ " : \ " D o Q h D j K l \ " , \ " g a r d e n _ m t x _ i n d e x . m d \ " : \ " B s a q l B Y K \ " , \ " 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 \ " , \ " g a r d e n _ m y - b r o w s e r - s t a c k _ i n d e x . m d \ " : \ " u k s L Z 8 9 5 \ " , \ " g a r d e n _ d i r e c t - d e m o c r a c y _ i n d e x . m d \ " : \ " D r d 3 b O t 8 \ " , \ " 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 _ k r o n o s _ d o c s _ l a y e r - f e a t u r e s . m d \ " : \ " B 0 i j h o i p \ " , \ " g a r d e n _ l e f t i s m _ i n d e x . m d \ " : \ " D U 6 1 D 0 2 1 \ " , \ " p u b l i c _ k r o n o s _ d o c s _ i n f o b o x e s . m d \ " : \ " D o J E Z - c o \ " , \ " g a r d e n _ l i f e - i s - s t r a n g e _ i n d e x . m d \ " : \ " C i H E Z N o V \ " , \ " p u b l i c _ k r o n o s _ d o c s _ g r i d s . m d \ " : \ " D 6 W 3 a Z v d \ " , \ " g a r d e n _ l o g s e q _ i n d e x . m d \ " : \ " B j Y P X 9 U _ \ " , \ " g a r d e n _ m a t r i x _ i n d e x . m d \ " : \ " B 2 a z u 3 W c \ " , \ " g a r d e n _ l o c a l - f i r s t - s o f t w a r e _ i n d e x . m d \ " : \ " C b 7 v 9 k l o \ " , \ " g a r d e n _ d i c e - a r m o r _ i n d e x . m d \ " : \ " B v c L 1 X m x \ " , \ " g a r d e n _ m b i n _ i n d e x . m d \ " : \ " D q n l h o R c \ " , \ " g a r d e n _ f e d i - v 2 _ i n d e x . m d \ " : \ " C T h Q v - z y \ " , \ " g a r d e n _ l o c a l - c o m m u n i t i e s _ i n d e x . m d \ " : \ " C A E N 6 S 2 r \ " , \ " g a r d e n _ m y - p o l i t i c a l - b e l i e f s _ i n d e x . m d \ " : \ " B Y X c V _ f b \ " , \ " g a r d e n _ m y - p o l i t i c a l - j o u r n e y _ i n d e x . m d \ " : \ " B X r 8 M F u 7 \ " , \ " g a r d e n _ m y - p r o j e c t s _ i n d e x . m d \ " : \ " w i E 6 9 C C E \ " , \ " g a r d e n _ m y - p e r s o n a l - w e b s i t e _ i n d e x . m d \ " : \ " D 9 R x R 9 G e \ " , \ " g a r d e n _ n e o l i b e r a l i s m _ i n d e x . m d \ " : \ " u i 0 8 w b f a \ " , \ " g a r d e n _ g e r r y m a n d e r i n g _ i n d e x . m d \ " : \ " C s B _ Y W S B \ " , \ " g a r d e n _ o b j e c t i v i t y _ i n d e x . m d \ " : \ " D V n c c Z z k \ " , \ " g a r d e n _ n e t w o r k - o f - k n o w l e d g e _ i n d e x . m d \ " : \ " C y D - T R X 8 \ " , \ " g a r d e n _ n o s t r _ i n d e x . m d \ " : \ " C E X J K Y H s \ " , \ " 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 \ " : \ " B c 4 L j 9 3 E \ " , \ " g a r d e n _ f o r g e j o _ i n d e x . m d \ " : \ " 4 k X C 1 s _ Z \ " , \ " g a r d e n _ d i g i t a l - g a r d e n s _ i n d e x . m d \ " : \ " C B A U Q V h O \ " , \ " g a r d e n _ d i g i t a l - l o c a l i t y _ i n d e x . m d \ " : \ " C q P 1 _ X y W \ " , \ " g a r d e n _ e n s h i t t i f i c a t i o n _ i n d e x . m d \ " : \ " D P N q V 2 1 w \ " , \ " g a r d e n _ g a m e - d e v - t r e e _ i n d e x . m d \ " : \ " B Y D V g N y E \ " , \ " g a r d e n _ n o - p o l i t i c s - r u l e s _ i n d e x . m d \ " : \ " C _ d y d A d q \ " , \ " 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 \ " , \ " p u b l i c _ k r o n o s _ d o c s _ g e t t i n g - s t a r t e d . m d \ " : \ " m x o 4 i i r j \ " , \ " 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 _ 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 _ b u y a b l e s . m d \ " : \ " B 2 3 L D g I 6 \ " , \ " 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 _ g a m e d e v t r e e _ r e a d m e . m d \ " : \ " D E 0 t b l t W \ " , \ " g a r d e n _ p l a n a r - p i o n e e r s _ i n d e x . m d \ " : \ " k - R k m o S H \ " , \ " 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
2024-11-08 12:06:49 +00:00
< / body >
< / html >