René's URL Explorer Experiment


Title: GitHub - skcript/reverse-linear-sync-engine: A reverse engineering of Linear's sync engine for learning purposes. Endorsed by Linear's CTO.

Open Graph Title: GitHub - skcript/reverse-linear-sync-engine: A reverse engineering of Linear's sync engine for learning purposes. Endorsed by Linear's CTO.

X Title: GitHub - skcript/reverse-linear-sync-engine: A reverse engineering of Linear's sync engine for learning purposes. Endorsed by Linear's CTO.

Description: A reverse engineering of Linear's sync engine for learning purposes. Endorsed by Linear's CTO. - skcript/reverse-linear-sync-engine

Open Graph Description: A reverse engineering of Linear's sync engine for learning purposes. Endorsed by Linear's CTO. - skcript/reverse-linear-sync-engine

X Description: A reverse engineering of Linear's sync engine for learning purposes. Endorsed by Linear's CTO. - skcript/reverse-linear-sync-engine

Opengraph URL: https://github.com/skcript/reverse-linear-sync-engine

X: @github

direct link

Domain: patch-diff.githubusercontent.com

route-pattern/:user_id/:repository
route-controllerfiles
route-actiondisambiguate
fetch-noncev2:6dd54593-6cd2-7a1b-7a90-78e47bff6dc9
current-catalog-service-hashf3abb0cc802f3d7b95fc8762b94bdcb13bf39634c40c357301c4aa1d67a256fb
request-idD80E:16621D:1E49134:2AF3B5C:6978E269
html-safe-noncedbd4733cfe04c93801b4d1995f881157af57cf1dd398fa12a451f693b532ca7d
visitor-payloadeyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJEODBFOjE2NjIxRDoxRTQ5MTM0OjJBRjNCNUM6Njk3OEUyNjkiLCJ2aXNpdG9yX2lkIjoiNjc0Nzg1MjU2NjgxMDkxMTMzNyIsInJlZ2lvbl9lZGdlIjoiaWFkIiwicmVnaW9uX3JlbmRlciI6ImlhZCJ9
visitor-hmac800db0f45a7daf56bc3d109b479f41e3b59119fe8e01467d7229d6ae816a306b
hovercard-subject-tagrepository:993186728
github-keyboard-shortcutsrepository,copilot
google-site-verificationApib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I
octolytics-urlhttps://collector.github.com/github/collect
analytics-location//
fb:app_id1401488693436528
apple-itunes-appapp-id=1477376905, app-argument=https://github.com/skcript/reverse-linear-sync-engine
twitter:imagehttps://opengraph.githubassets.com/570515ad5f30bbb58dacc9453619d2ccbabfa3eebcf1bd71409b53dfb6dbae98/skcript/reverse-linear-sync-engine
twitter:cardsummary_large_image
og:imagehttps://opengraph.githubassets.com/570515ad5f30bbb58dacc9453619d2ccbabfa3eebcf1bd71409b53dfb6dbae98/skcript/reverse-linear-sync-engine
og:image:altA reverse engineering of Linear's sync engine for learning purposes. Endorsed by Linear's CTO. - skcript/reverse-linear-sync-engine
og:image:width1200
og:image:height600
og:site_nameGitHub
og:typeobject
hostnamegithub.com
expected-hostnamegithub.com
None8a71ca1f7ab5436216e1df86f398ef7a51ed3152c90e3f7332fc70cf97fcb9d6
turbo-cache-controlno-preview
go-importgithub.com/skcript/reverse-linear-sync-engine git https://github.com/skcript/reverse-linear-sync-engine.git
octolytics-dimension-user_id6213526
octolytics-dimension-user_loginskcript
octolytics-dimension-repository_id993186728
octolytics-dimension-repository_nwoskcript/reverse-linear-sync-engine
octolytics-dimension-repository_publictrue
octolytics-dimension-repository_is_forktrue
octolytics-dimension-repository_parent_id808536528
octolytics-dimension-repository_parent_nwowzhudev/reverse-linear-sync-engine
octolytics-dimension-repository_network_root_id808536528
octolytics-dimension-repository_network_root_nwowzhudev/reverse-linear-sync-engine
turbo-body-classeslogged-out env-production page-responsive
disable-turbofalse
browser-stats-urlhttps://api.github.com/_private/browser/stats
browser-errors-urlhttps://api.github.com/_private/browser/errors
releaseeaed570eead52a9920afef75dc3eb6d826fdc5ef
ui-targetfull
theme-color#1e2327
color-schemelight dark

Links:

Skip to contenthttps://patch-diff.githubusercontent.com/skcript/reverse-linear-sync-engine#start-of-content
https://patch-diff.githubusercontent.com/
Sign in https://patch-diff.githubusercontent.com/login?return_to=https%3A%2F%2Fgithub.com%2Fskcript%2Freverse-linear-sync-engine
GitHub CopilotWrite better code with AIhttps://github.com/features/copilot
GitHub SparkBuild and deploy intelligent appshttps://github.com/features/spark
GitHub ModelsManage and compare promptshttps://github.com/features/models
MCP RegistryNewIntegrate external toolshttps://github.com/mcp
ActionsAutomate any workflowhttps://github.com/features/actions
CodespacesInstant dev environmentshttps://github.com/features/codespaces
IssuesPlan and track workhttps://github.com/features/issues
Code ReviewManage code changeshttps://github.com/features/code-review
GitHub Advanced SecurityFind and fix vulnerabilitieshttps://github.com/security/advanced-security
Code securitySecure your code as you buildhttps://github.com/security/advanced-security/code-security
Secret protectionStop leaks before they starthttps://github.com/security/advanced-security/secret-protection
Why GitHubhttps://github.com/why-github
Documentationhttps://docs.github.com
Bloghttps://github.blog
Changeloghttps://github.blog/changelog
Marketplacehttps://github.com/marketplace
View all featureshttps://github.com/features
Enterpriseshttps://github.com/enterprise
Small and medium teamshttps://github.com/team
Startupshttps://github.com/enterprise/startups
Nonprofitshttps://github.com/solutions/industry/nonprofits
App Modernizationhttps://github.com/solutions/use-case/app-modernization
DevSecOpshttps://github.com/solutions/use-case/devsecops
DevOpshttps://github.com/solutions/use-case/devops
CI/CDhttps://github.com/solutions/use-case/ci-cd
View all use caseshttps://github.com/solutions/use-case
Healthcarehttps://github.com/solutions/industry/healthcare
Financial serviceshttps://github.com/solutions/industry/financial-services
Manufacturinghttps://github.com/solutions/industry/manufacturing
Governmenthttps://github.com/solutions/industry/government
View all industrieshttps://github.com/solutions/industry
View all solutionshttps://github.com/solutions
AIhttps://github.com/resources/articles?topic=ai
Software Developmenthttps://github.com/resources/articles?topic=software-development
DevOpshttps://github.com/resources/articles?topic=devops
Securityhttps://github.com/resources/articles?topic=security
View all topicshttps://github.com/resources/articles
Customer storieshttps://github.com/customer-stories
Events & webinarshttps://github.com/resources/events
Ebooks & reportshttps://github.com/resources/whitepapers
Business insightshttps://github.com/solutions/executive-insights
GitHub Skillshttps://skills.github.com
Documentationhttps://docs.github.com
Customer supporthttps://support.github.com
Community forumhttps://github.com/orgs/community/discussions
Trust centerhttps://github.com/trust-center
Partnershttps://github.com/partners
GitHub SponsorsFund open source developershttps://github.com/sponsors
Security Labhttps://securitylab.github.com
Maintainer Communityhttps://maintainers.github.com
Acceleratorhttps://github.com/accelerator
Archive Programhttps://archiveprogram.github.com
Topicshttps://github.com/topics
Trendinghttps://github.com/trending
Collectionshttps://github.com/collections
Enterprise platformAI-powered developer platformhttps://github.com/enterprise
GitHub Advanced SecurityEnterprise-grade security featureshttps://github.com/security/advanced-security
Copilot for BusinessEnterprise-grade AI featureshttps://github.com/features/copilot/copilot-business
Premium SupportEnterprise-grade 24/7 supporthttps://github.com/premium-support
Pricinghttps://github.com/pricing
Search syntax tipshttps://docs.github.com/search-github/github-code-search/understanding-github-code-search-syntax
documentationhttps://docs.github.com/search-github/github-code-search/understanding-github-code-search-syntax
Sign in https://patch-diff.githubusercontent.com/login?return_to=https%3A%2F%2Fgithub.com%2Fskcript%2Freverse-linear-sync-engine
Sign up https://patch-diff.githubusercontent.com/signup?ref_cta=Sign+up&ref_loc=header+logged+out&ref_page=%2F%3Cuser-name%3E%2F%3Crepo-name%3E&source=header-repo&source_repo=skcript%2Freverse-linear-sync-engine
Reloadhttps://patch-diff.githubusercontent.com/skcript/reverse-linear-sync-engine
Reloadhttps://patch-diff.githubusercontent.com/skcript/reverse-linear-sync-engine
Reloadhttps://patch-diff.githubusercontent.com/skcript/reverse-linear-sync-engine
skcript https://patch-diff.githubusercontent.com/skcript
reverse-linear-sync-enginehttps://patch-diff.githubusercontent.com/skcript/reverse-linear-sync-engine
wzhudev/reverse-linear-sync-enginehttps://patch-diff.githubusercontent.com/wzhudev/reverse-linear-sync-engine
Notifications https://patch-diff.githubusercontent.com/login?return_to=%2Fskcript%2Freverse-linear-sync-engine
Fork 0 https://patch-diff.githubusercontent.com/login?return_to=%2Fskcript%2Freverse-linear-sync-engine
Star 0 https://patch-diff.githubusercontent.com/login?return_to=%2Fskcript%2Freverse-linear-sync-engine
x.com/artman/status/1927808159139111007https://x.com/artman/status/1927808159139111007
0 stars https://patch-diff.githubusercontent.com/skcript/reverse-linear-sync-engine/stargazers
111 forks https://patch-diff.githubusercontent.com/skcript/reverse-linear-sync-engine/forks
Branches https://patch-diff.githubusercontent.com/skcript/reverse-linear-sync-engine/branches
Tags https://patch-diff.githubusercontent.com/skcript/reverse-linear-sync-engine/tags
Activity https://patch-diff.githubusercontent.com/skcript/reverse-linear-sync-engine/activity
Star https://patch-diff.githubusercontent.com/login?return_to=%2Fskcript%2Freverse-linear-sync-engine
Notifications https://patch-diff.githubusercontent.com/login?return_to=%2Fskcript%2Freverse-linear-sync-engine
Code https://patch-diff.githubusercontent.com/skcript/reverse-linear-sync-engine
Pull requests 0 https://patch-diff.githubusercontent.com/skcript/reverse-linear-sync-engine/pulls
Actions https://patch-diff.githubusercontent.com/skcript/reverse-linear-sync-engine/actions
Models https://patch-diff.githubusercontent.com/skcript/reverse-linear-sync-engine/models
Security 0 https://patch-diff.githubusercontent.com/skcript/reverse-linear-sync-engine/security
Insights https://patch-diff.githubusercontent.com/skcript/reverse-linear-sync-engine/pulse
Code https://patch-diff.githubusercontent.com/skcript/reverse-linear-sync-engine
Pull requests https://patch-diff.githubusercontent.com/skcript/reverse-linear-sync-engine/pulls
Actions https://patch-diff.githubusercontent.com/skcript/reverse-linear-sync-engine/actions
Models https://patch-diff.githubusercontent.com/skcript/reverse-linear-sync-engine/models
Security https://patch-diff.githubusercontent.com/skcript/reverse-linear-sync-engine/security
Insights https://patch-diff.githubusercontent.com/skcript/reverse-linear-sync-engine/pulse
Brancheshttps://patch-diff.githubusercontent.com/skcript/reverse-linear-sync-engine/branches
Tagshttps://patch-diff.githubusercontent.com/skcript/reverse-linear-sync-engine/tags
https://patch-diff.githubusercontent.com/skcript/reverse-linear-sync-engine/branches
https://patch-diff.githubusercontent.com/skcript/reverse-linear-sync-engine/tags
40 Commitshttps://patch-diff.githubusercontent.com/skcript/reverse-linear-sync-engine/commits/main/
https://patch-diff.githubusercontent.com/skcript/reverse-linear-sync-engine/commits/main/
.vscodehttps://patch-diff.githubusercontent.com/skcript/reverse-linear-sync-engine/tree/main/.vscode
.vscodehttps://patch-diff.githubusercontent.com/skcript/reverse-linear-sync-engine/tree/main/.vscode
codehttps://patch-diff.githubusercontent.com/skcript/reverse-linear-sync-engine/tree/main/code
codehttps://patch-diff.githubusercontent.com/skcript/reverse-linear-sync-engine/tree/main/code
imgshttps://patch-diff.githubusercontent.com/skcript/reverse-linear-sync-engine/tree/main/imgs
imgshttps://patch-diff.githubusercontent.com/skcript/reverse-linear-sync-engine/tree/main/imgs
README.mdhttps://patch-diff.githubusercontent.com/skcript/reverse-linear-sync-engine/blob/main/README.md
README.mdhttps://patch-diff.githubusercontent.com/skcript/reverse-linear-sync-engine/blob/main/README.md
SUMMARY.mdhttps://patch-diff.githubusercontent.com/skcript/reverse-linear-sync-engine/blob/main/SUMMARY.md
SUMMARY.mdhttps://patch-diff.githubusercontent.com/skcript/reverse-linear-sync-engine/blob/main/SUMMARY.md
reverse-lse.excalidrawhttps://patch-diff.githubusercontent.com/skcript/reverse-linear-sync-engine/blob/main/reverse-lse.excalidraw
reverse-lse.excalidrawhttps://patch-diff.githubusercontent.com/skcript/reverse-linear-sync-engine/blob/main/reverse-lse.excalidraw
READMEhttps://patch-diff.githubusercontent.com/skcript/reverse-linear-sync-engine
linkhttps://github.com/wzhudev/reverse-linear-sync-engine/discussions/2#discussioncomment-12892194
linkhttps://x.com/artman/status/1927808159139111007
SUMMARYhttps://patch-diff.githubusercontent.com/skcript/reverse-linear-sync-engine/blob/main/SUMMARY.md
https://patch-diff.githubusercontent.com/skcript/reverse-linear-sync-engine/blob/main/imgs/title-image.png
https://patch-diff.githubusercontent.com/skcript/reverse-linear-sync-engine#reverse-engineering-linears-sync-engine-a-detailed-study
discussionhttps://github.com/wzhudev/reverse-linear-sync-engine/discussions/2
Operational Transformation (OT)https://en.wikipedia.org/wiki/Operational_transformation
Conflict-free Replicated Data Types (CRDTs)https://en.wikipedia.org/wiki/Conflict-free_replicated_data_type
Linearhttps://linear.app
gisthttps://gist.github.com/pesterhazy/3e039677f2e314cb77ffe3497ebca07b#gistcomment-5184039
https://patch-diff.githubusercontent.com/skcript/reverse-linear-sync-engine/blob/main/imgs/search-for-symbols.png
curse of knowledgehttps://en.wikipedia.org/wiki/Curse_of_knowledge
https://patch-diff.githubusercontent.com/skcript/reverse-linear-sync-engine#introduction
twohttps://www.youtube.com/watch?v=WxK11RsLqp4&t=2175s
talkshttps://linear.app/blog/scaling-the-linear-sync-engine
podcasthttps://www.devtools.fm/episode/61
presentation at Local First Confhttps://www.youtube.com/watch?v=VLgmjzERT08
https://patch-diff.githubusercontent.com/skcript/reverse-linear-sync-engine/blob/main/imgs/introduction.png
https://patch-diff.githubusercontent.com/skcript/reverse-linear-sync-engine#chapter-1-defining-models-and-metadata
https://patch-diff.githubusercontent.com/skcript/reverse-linear-sync-engine#modelregistry
https://patch-diff.githubusercontent.com/skcript/reverse-linear-sync-engine/blob/main/imgs/model-registry.png
https://patch-diff.githubusercontent.com/skcript/reverse-linear-sync-engine#model
https://patch-diff.githubusercontent.com/skcript/reverse-linear-sync-engine/blob/main/imgs/models.png
https://patch-diff.githubusercontent.com/skcript/reverse-linear-sync-engine/blob/main/imgs/count-of-models.png
https://patch-diff.githubusercontent.com/skcript/reverse-linear-sync-engine#properties
https://patch-diff.githubusercontent.com/skcript/reverse-linear-sync-engine#property-w
Observabilityhttps://patch-diff.githubusercontent.com/skcript/reverse-linear-sync-engine#observability-m1
https://patch-diff.githubusercontent.com/skcript/reverse-linear-sync-engine#reference-pe-and-onetomany-nt
https://patch-diff.githubusercontent.com/skcript/reverse-linear-sync-engine/blob/main/imgs/model-property-lookup.png
https://patch-diff.githubusercontent.com/skcript/reverse-linear-sync-engine#schema-hash
https://patch-diff.githubusercontent.com/skcript/reverse-linear-sync-engine#observability-m1
https://patch-diff.githubusercontent.com/skcript/reverse-linear-sync-engine#takeaway-of-chapter-1
https://patch-diff.githubusercontent.com/skcript/reverse-linear-sync-engine#chapter-2-bootstrapping--lazy-loading
https://patch-diff.githubusercontent.com/skcript/reverse-linear-sync-engine/blob/main/imgs/bootstrapping-overview.png
https://patch-diff.githubusercontent.com/skcript/reverse-linear-sync-engine#create-objectstores
https://patch-diff.githubusercontent.com/skcript/reverse-linear-sync-engine/blob/main/imgs/object-stores.png
https://patch-diff.githubusercontent.com/skcript/reverse-linear-sync-engine/blob/main/imgs/model-store-class.png
https://patch-diff.githubusercontent.com/skcript/reverse-linear-sync-engine/blob/main/imgs/model-store-db.png
https://patch-diff.githubusercontent.com/skcript/reverse-linear-sync-engine/blob/main/imgs/model-partial-store-db.png
https://patch-diff.githubusercontent.com/skcript/reverse-linear-sync-engine#create-databases--tables-in-indexeddb
https://patch-diff.githubusercontent.com/skcript/reverse-linear-sync-engine/blob/main/imgs/linear-databases.png
IndexedDB.openhttp://indexdb.open/
https://patch-diff.githubusercontent.com/skcript/reverse-linear-sync-engine/blob/main/imgs/meta-persistence.png
https://patch-diff.githubusercontent.com/skcript/reverse-linear-sync-engine/blob/main/imgs/meta-meta.png
local-first softwarehttps://www.inkandswitch.com/local-first/
total orderhttps://en.wikipedia.org/wiki/Total_order
partial orderhttps://en.wikipedia.org/wiki/Partially_ordered_set
https://patch-diff.githubusercontent.com/skcript/reverse-linear-sync-engine/blob/main/imgs/lastsyncid.png
detailed article on OThttps://wzhu.dev/posts/ot
https://patch-diff.githubusercontent.com/skcript/reverse-linear-sync-engine/blob/main/imgs/cached-transactions.png
https://patch-diff.githubusercontent.com/skcript/reverse-linear-sync-engine#determine-the-bootstrapping-type
https://patch-diff.githubusercontent.com/skcript/reverse-linear-sync-engine#bootstrapping-the-database
https://patch-diff.githubusercontent.com/skcript/reverse-linear-sync-engine#hydration-and-object-pool
https://patch-diff.githubusercontent.com/skcript/reverse-linear-sync-engine#lazy-hydration
https://patch-diff.githubusercontent.com/skcript/reverse-linear-sync-engine/blob/main/imgs/direct-referencies.png
https://patch-diff.githubusercontent.com/skcript/reverse-linear-sync-engine/blob/main/imgs/references.png
https://patch-diff.githubusercontent.com/skcript/reverse-linear-sync-engine/blob/main/imgs/partial-index-values.png
https://patch-diff.githubusercontent.com/skcript/reverse-linear-sync-engine/blob/main/imgs/covering-partial-index-values.png
https://patch-diff.githubusercontent.com/skcript/reverse-linear-sync-engine/blob/main/imgs/partial-index-stores.png
https://patch-diff.githubusercontent.com/skcript/reverse-linear-sync-engine#takeaway-of-chapter-2
https://patch-diff.githubusercontent.com/skcript/reverse-linear-sync-engine#chapter-3-transactions
https://patch-diff.githubusercontent.com/skcript/reverse-linear-sync-engine/blob/main/imgs/transaction-overview.png
https://patch-diff.githubusercontent.com/skcript/reverse-linear-sync-engine#figuring-out-what-has-been-changed
Observabilityhttps://patch-diff.githubusercontent.com/skcript/reverse-linear-sync-engine#observability-m1
https://patch-diff.githubusercontent.com/skcript/reverse-linear-sync-engine/blob/main/imgs/modified-properties.png
https://patch-diff.githubusercontent.com/skcript/reverse-linear-sync-engine#generating-an-updatetransaction
https://patch-diff.githubusercontent.com/skcript/reverse-linear-sync-engine/blob/main/imgs/change-snapshot.png
https://patch-diff.githubusercontent.com/skcript/reverse-linear-sync-engine#queueing-transactions
https://patch-diff.githubusercontent.com/skcript/reverse-linear-sync-engine/blob/main/imgs/transaction-queues.png
https://patch-diff.githubusercontent.com/skcript/reverse-linear-sync-engine#executing-transactions
https://patch-diff.githubusercontent.com/skcript/reverse-linear-sync-engine#persisted-transactions
https://patch-diff.githubusercontent.com/skcript/reverse-linear-sync-engine#takeaway-of-chapter-3
https://patch-diff.githubusercontent.com/skcript/reverse-linear-sync-engine#chapter-4-delta-packets
https://patch-diff.githubusercontent.com/skcript/reverse-linear-sync-engine#establishing-connection
https://patch-diff.githubusercontent.com/skcript/reverse-linear-sync-engine#applying-deltas
https://patch-diff.githubusercontent.com/skcript/reverse-linear-sync-engine/blob/main/imgs/transient-partial-index-keys.png
https://patch-diff.githubusercontent.com/skcript/reverse-linear-sync-engine#takeaway-of-chapter-4
https://patch-diff.githubusercontent.com/skcript/reverse-linear-sync-engine#chapter-5-misc
https://patch-diff.githubusercontent.com/skcript/reverse-linear-sync-engine#undo--redo
https://patch-diff.githubusercontent.com/skcript/reverse-linear-sync-engine#conclusion
https://patch-diff.githubusercontent.com/skcript/reverse-linear-sync-engine#appendix-a-actions-and-computed-values
https://patch-diff.githubusercontent.com/skcript/reverse-linear-sync-engine#credits
@zxch3nhttps://github.com/zxch3n
@vincentdchanhttps://github.com/vincentdchan
@promer94https://github.com/promer94
https://creativecommons.org/licenses/by/4.0/https://creativecommons.org/licenses/by/4.0/
x.com/artman/status/1927808159139111007https://x.com/artman/status/1927808159139111007
Readme https://patch-diff.githubusercontent.com/skcript/reverse-linear-sync-engine#readme-ov-file
Please reload this pagehttps://patch-diff.githubusercontent.com/skcript/reverse-linear-sync-engine
Activityhttps://patch-diff.githubusercontent.com/skcript/reverse-linear-sync-engine/activity
Custom propertieshttps://patch-diff.githubusercontent.com/skcript/reverse-linear-sync-engine/custom-properties
0 starshttps://patch-diff.githubusercontent.com/skcript/reverse-linear-sync-engine/stargazers
0 watchinghttps://patch-diff.githubusercontent.com/skcript/reverse-linear-sync-engine/watchers
0 forkshttps://patch-diff.githubusercontent.com/skcript/reverse-linear-sync-engine/forks
Report repository https://patch-diff.githubusercontent.com/contact/report-content?content_url=https%3A%2F%2Fgithub.com%2Fskcript%2Freverse-linear-sync-engine&report=skcript+%28user%29
Releaseshttps://patch-diff.githubusercontent.com/skcript/reverse-linear-sync-engine/releases
Packages 0https://patch-diff.githubusercontent.com/orgs/skcript/packages?repo_name=reverse-linear-sync-engine
Please reload this pagehttps://patch-diff.githubusercontent.com/skcript/reverse-linear-sync-engine
https://github.com
Termshttps://docs.github.com/site-policy/github-terms/github-terms-of-service
Privacyhttps://docs.github.com/site-policy/privacy-policies/github-privacy-statement
Securityhttps://github.com/security
Statushttps://www.githubstatus.com/
Communityhttps://github.community/
Docshttps://docs.github.com/
Contacthttps://support.github.com?tags=dotcom-footer

Viewport: width=device-width


URLs of crawlers that visited me.