PageSourceSearch

https://tella.app/assets/js/fe5b801d.1a69e7ff.js

js tella.app collected 2026-10-09 04:42:39 UTC 13,025 bytes, 1 lines download raw bytes

1"use strict";(self.webpackChunktella_site=self.webpackChunktella_site||[]).push([[8146],{9034:(e,r,t)=>{t.r(r),t.d(r,{assets:()=>o,contentTitle:()=>c,default:()=>x,frontMatter:()=>l,metadata:()=>s,toc:()=>a});const s=JSON.parse('{"id":"Community/open-source","title":"Open Source","description":"Information on Tella\'s commitment to Open Source and links to repositories","source":"@site/docs/Community/open-source.mdx","sourceDirName":"Community","slug":"/open-source","permalink":"/open-source","draft":false,"unlisted":false,"tags":[],"version":"current","sidebarPosition":2,"frontMatter":{"id":"open-source","title":"Open Source","description":"Information on Tella\'s commitment to Open Source and links to repositories","slug":"/open-source","sidebar_position":2},"sidebar":"generalSidebar","previous":{"title":"Community","permalink":"/community"},"next":{"title":"Translating Tella","permalink":"/translating-tella"}}');var n=t(4848),d=t(8453),i=t(5102);const l={id:"open-source",title:"Open Source",description:"Information on Tella's commitment to Open Source and links to repositories",slug:"/open-source",sidebar_position:2},c="Tella is Open source",o={},a=[...i.RM];function h(e){const r={a:"a",h1:"h1",header:"header",p:"p",...(0,d.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(r.header,{children:(0,n.jsx)(r.h1,{id:"tella-is-open-source",children:"Tella is Open source"})}),"\n",(0,n.jsx)(r.p,{children:"The security and privacy of Tella users is at the core of our mission. It is therefore natural for the application's code to be entirely open-source. This means that it is publicly available for review: anyone can audit our code to verify that we don't misuse user data, that we actually do what we say, and that our code is robust."}),"\n",(0,n.jsxs)(r.p,{children:["Tella's code is publicly available for all platforms: ",(0,n.jsx)(r.a,{href:"https://github.com/Horizontal-org/Tella-Android",children:"Tella Android"}),", ",(0,n.jsx)(r.a,{href:"https://github.com/Horizontal-org/Tella-iOS",children:"Tella iOS"}),", ",(0,n.jsx)(r.a,{href:"https://github.com/Horizontal-org/Tella-Desktop",children:"Tella Desktop"}),", and ",(0,n.jsx)(r.a,{href:"https://github.com/Horizontal-org/tellaweb",children:"Tella Web"}),". Rather than trust us, you can audit the code yourself or ask someone you trust to do it, or read the ",(0,n.jsx)(r.a,{href:"/security-and-privacy#security-audits",children:"reports"})," that independent security firms wrote after auditing Tella's code."]}),"\n",(0,n.jsxs)(r.p,{children:["We also publish and maintain a Free and Open Source version (FOSS) of Tella for Android, which doesn't contain any closed-source or proprietary library or dependency. The code is shared across all Android's version of Tella ",(0,n.jsx)(r.a,{href:"https://github.com/Horizontal-org/Tella-Android/",children:"and we generate the FOSS or regular Android Tella using product flavors at build time"}),". When possible, we use FOSS libraries and dependencies for both versions of Tella Android. The FOSS version of Tella Android is available on the ",(0,n.jsx)(r.a,{href:"https://f-droid.org/en/packages/org.hzontal.tellaFOSS/",children:"F-droid store"}),"."]}),"\n",(0,n.jsx)(r.p,{children:"A detailed list of features available on each platform is available here:"}),"\n",(0,n.jsx)(i.Ay,{})]})}function x(e={}){const{wrapper:r}={...(0,d.R)(),...e.components};return r?(0,n.jsx)(r,{...e,children:(0,n.jsx)(h,{...e})}):h(e)}},5102:(e,r,t)=>{t.d(r,{Ay:()=>l,RM:()=>d});var s=t(4848),n=t(8453);const d=[];function i(e){const r={a:"a",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,n.R)(),...e.components};return(0,s.jsxs)(r.table,{children:[(0,s.jsx)(r.thead,{children:(0,s.jsxs)(r.tr,{children:[(0,s.jsx)(r.th,{children:(0,s.jsx)(r.strong,{children:"Feature"})}),(0,s.jsx)(r.th,{children:(0,s.jsx)(r.strong,{children:"Android"})}),(0,s.jsx)(r.th,{children:(0,s.jsx)(r.strong,{children:"iOS"})}),(0,s.jsx)(r.th,{children:(0,s.jsx)(r.strong,{children:"Android FOSS"})})]})}),(0,s.jsxs)(r.tbody,{children:[(0,s.jsxs)(r.tr,{children:[(0,s.jsx)(r.td,{children:(0,s.jsx)(r.a,{href:"/features#app-lock",children:"App Lock"})}),(0,s.jsx)(r.td,{children:"Password, PIN, Pattern"}),(0,s.jsx)(r.td,{children:"Password, PIN"}),(0,s.jsx)(r.td,{children:"Password, PIN, Pattern"})]}),(0,s.jsxs)(r.tr,{children:[(0,s.jsx)(r.td,{children:(0,s.jsx)(r.a,{href:"/features#background-encryption",children:"Backgroun
1d encryption"})}),(0,s.jsx)(r.td,{children:"\u2714\ufe0f"}),(0,s.jsx)(r.td,{children:"\u2714\ufe0f"}),(0,s.jsx)(r.td,{children:"\u2714\ufe0f"})]}),(0,s.jsxs)(r.tr,{children:[(0,s.jsx)(r.td,{children:(0,s.jsx)(r.a,{href:"/features#backup-files",children:"Backups (to another Tella or to a server)"})}),(0,s.jsx)(r.td,{children:"\u2714\ufe0f"}),(0,s.jsx)(r.td,{children:"\u2714\ufe0f"}),(0,s.jsx)(r.td,{children:"\u2714\ufe0f"})]}),(0,s.jsxs)(r.tr,{children:[(0,s.jsx)(r.td,{children:(0,s.jsx)(r.a,{href:"/features#lock-timeout-configuration",children:"Lock timeout configuration"})}),(0,s.jsx)(r.td,{children:"\u2714\ufe0f"}),(0,s.jsx)(r.td,{children:"\u2714\ufe0f"}),(0,s.jsx)(r.td,{children:"\u2714\ufe0f"})]}),(0,s.jsxs)(r.tr,{children:[(0,s.jsx)(r.td,{children:(0,s.jsx)(r.a,{href:"/features#camera-silent-mode",children:"Camera silent mode"})}),(0,s.jsx)(r.td,{children:"\u2714\ufe0f"}),(0,s.jsx)(r.td,{children:"Not yet"}),(0,s.jsx)(r.td,{children:"\u2714\ufe0f"})]}),(0,s.jsxs)(r.tr,{children:[(0,s.jsx)(r.td,{children:(0,s.jsx)(r.a,{href:"/features#screen-security",children:"Screen Security"})}),(0,s.jsx)(r.td,{children:"\u2714\ufe0f"}),(0,s.jsx)(r.td,{children:"\u2714\ufe0f"}),(0,s.jsx)(r.td,{children:"\u2714\ufe0f"})]}),(0,s.jsxs)(r.tr,{children:[(0,s.jsx)(r.td,{children:(0,s.jsx)(r.a,{href:"features#restrict-unlocking-attempts",children:"Restrict unlocking attempts"})}),(0,s.jsx)(r.td,{children:"\u2714\ufe0f"}),(0,s.jsx)(r.td,{children:"\u2714\ufe0f"}),(0,s.jsx)(r.td,{children:"\u2714\ufe0f"})]}),(0,s.jsxs)(r.tr,{children:[(0,s.jsx)(r.td,{children:(0,s.jsx)(r.a,{href:"/features#edit-media",children:"Edit Media"})}),(0,s.jsx)(r.td,{children:"Crop, Rotate, Flip and Zoom Photos"}),(0,s.jsx)(r.td,{children:"Crop, Rotate and Zoom Photos, Trim Audio and Videos, Rotate Video"}),(0,s.jsx)(r.td,{children:"Crop, Rotate, Flip and Zoom Photos"})]}),(0,s.jsxs)(r.tr,{children:[(0,s.jsx)(r.td,{children:(0,s.jsx)(r.a,{href:"/features#encryption",children:"Encryption"})}),(0,s.jsx)(r.td,{children:"\u2714\ufe0f"}),(0,s.jsx)(r.td,{children:"\u2714\ufe0f"}),(0,s.jsx)(r.td,{children:"\u2714\ufe0f"})]}),(0,s.jsxs)(r.tr,{children:[(0,s.jsx)(r.td,{children:(0,s.jsx)(r.a,{href:"/features#file-management",children:"Encrypted file management"})}),(0,s.jsx)(r.td,{children:"\u2714\ufe0f"}),(0,s.jsx)(r.td,{children:"\u2714\ufe0f"}),(0,s.jsx)(r.td,{children:"\u2714\ufe0f"})]}),(0,s.jsxs)(r.tr,{children:[(0,s.jsx)(r.td,{children:(0,s.jsx)(r.a,{href:"/features#feedback",children:"Feedback"})}),(0,s.jsx)(r.td,{children:"\u2714\ufe0f"}),(0,s.jsx)(r.td,{children:"\u2714\ufe0f"}),(0,s.jsx)(r.td,{children:"\u2714\ufe0f"})]}),(0,s.jsxs)(r.tr,{children:[(0,s.jsx)(r.td,{children:(0,s.jsx)(r.a,{href:"/features#import-files-from-device",children:"Import files from device"})}),(0,s.jsx)(r.td,{children:"\u2714\ufe0f"}),(0,s.jsx)(r.td,{children:"\u2714\ufe0f"}),(0,s.jsx)(r.td,{children:"\u2714\ufe0f"})]}),(0,s.jsxs)(r.tr,{children:[(0,s.jsx)(r.td,{children:(0,s.jsx)(r.a,{href:"/features#preserve-metadata-when-importing",children:"Preserve metadata when importing"})}),(0,s.jsx)(r.td,{children:"\u2714\ufe0f"}),(0,s.jsx)(r.td,{children:"\u2714\ufe0f"}),(0,s.jsx)(r.td,{children:"\u2714\ufe0f"})]}),(0,s.jsxs)(r.tr,{children:[(0,s.jsx)(r.td,{children:(0,s.jsx)(r.a,{href:"/features#privacy-preserving-analytics",children:"Privacy preserving analytics (opt-in)"})}),(0,s.jsx)(r.td,{children:"\u2714\ufe0f"}),(0,s.jsx)(r.td,{children:"Not yet"}),(0,s.jsx)(r.td,{children:"\u2714\ufe0f"})]}),(0,s.jsxs)(r.tr,{children:[(0,s.jsx)(r.td,{children:(0,s.jsx)(r.a,{href:"/features#camouflage",children:"Camouflage"})}),(0,s.jsx)(r.td,{children:"\u2714\ufe0f"}),(0,s.jsx)(r.td,{children:"Not possible in iOS"}),(0,s.jsx)(r.td,{children:"\u2714\ufe0f"})]}),(0,s.jsxs)(r.tr,{children:[(0,s.jsx)(r.td,{children:(0,s.jsx)(r.a,{href:"/features#homescreen-customization",children:"Homescreen customization"})}),(0,s.jsx)(r.td,{children:"\u2714\ufe0f"}),(0,s.jsx)(r.td,{children:"\u2714\ufe0f"}),(0,s.jsx)(r.td,{children:"\u2714\ufe0f"})]}),(0,s.jsxs)(r.tr,{children:[(0,s.jsx)(r.td,{children:(0,s.jsx)(r.a,{href:"/features#camera-photos-and-videos",children:"Camera (photos and videos)"})}),(0,s.jsx)(r.td,{children:"\u2714\ufe0f"}),(0,s.jsx)(r.td,{children:"\u2714\ufe0f"}),(0,s.jsx)(r.td,{children:"\u2714\ufe0f"})]}),(0,s.jsxs)(r.tr,{children:[(0,s.jsx)(r.td,{children:(0,s.jsx)(r.a,{href:"/features#select-video-resolution",children:"Select video resolution"})}),(0,s.jsx)(r.td,{children:"\u2714\ufe0f"}),(0,s.jsx)(r.td,{children:"Not yet"}),(0,s.jsx)(r.td,{children:"\u2714\ufe0f"})]}),(0,s.jsxs)(r.tr,{children:[(0,s.jsx)(r.td,{children:(0,s.jsx)(r.a,{href:"/features#audio-recorder",children:"Audio Recorder"})}),(0,s.jsx)(r.td,{children:"\u2714\ufe0f"}),(0,s.jsx)(r.td,{children:"\u2714\ufe0f"}),(0,s.jsx)(r.td,{children:"\u2714\ufe0f"})]}),(0,s.jsxs)(r.tr,{children:[(0,s.jsx)(r.td,{children:(0,s.jsx)(r.a,{href:"/features#open-files-in-tella",children:"Open files in Tella"})}),(0,s.jsx)(r.td,{children:"\u2714\ufe0f"}),(0,s.jsx)(r.td,{children:"\u2714\ufe0f"}),(0,s.jsx)(r.td,{children:"\u2714\ufe0f"})]}),(0,s.jsxs)(r.tr,{children:[(0,s.jsx)(r.td,{children:(0,s.jsx)(r.a,{href:"/features#verification-mode",children:"Verification mode"})}),(0,s.jsx)(r.td,{children:"\u2714\ufe0f"}),(0,s.jsx)(r.td,{children:"Not yet"}),(0,s.jsx)(r.td,{children:"\u2714\ufe0f"})]}),(0,s.jsxs)(r.tr,{children:[(0,s.jsx)(r.td,{children:(0,s.jsx)(r.a,{href:"/features#quick-delete",children:"Qu
1ick delete"})}),(0,s.jsx)(r.td,{children:"Files, Connections and Tella"}),(0,s.jsx)(r.td,{children:"Files and Connections"}),(0,s.jsx)(r.td,{children:"Files, Connections and Tella"})]}),(0,s.jsxs)(r.tr,{children:[(0,s.jsx)(r.td,{children:(0,s.jsx)(r.a,{href:"/features#quick-exit",children:"Quick exit"})}),(0,s.jsx)(r.td,{children:"Locks and close"}),(0,s.jsx)(r.td,{children:"Locks"}),(0,s.jsx)(r.td,{children:"Locks and close"})]}),(0,s.jsxs)(r.tr,{children:[(0,s.jsx)(r.td,{children:(0,s.jsx)(r.a,{href:"/features#share-button",children:"Share button"})}),(0,s.jsx)(r.td,{children:"\u2714\ufe0f"}),(0,s.jsx)(r.td,{children:"\u2714\ufe0f"}),(0,s.jsx)(r.td,{children:"\u2714\ufe0f"})]}),(0,s.jsxs)(r.tr,{children:[(0,s.jsx)(r.td,{children:(0,s.jsx)(r.a,{href:"/features#connecting-to-servers",children:"Server connections"})}),(0,s.jsxs)(r.td,{children:["- ",(0,s.jsx)(r.a,{href:"/tella-web",children:"Tella Web"})," ",(0,s.jsx)("br",{}),"- ",(0,s.jsx)(r.a,{href:"/uwazi",children:"Uwazi"})," ",(0,s.jsx)("br",{}),"- ",(0,s.jsx)(r.a,{href:"/g-drive",children:"Google Drive"})," ",(0,s.jsx)("br",{}),"- ",(0,s.jsx)(r.a,{href:"/dropbox",children:"Dropbox"})," ",(0,s.jsx)("br",{}),"- ",(0,s.jsx)(r.a,{href:"/nextcloud",children:"Nextcloud"})," ",(0,s.jsx)("br",{})," - ",(0,s.jsx)(r.a,{href:"/odk",children:"Open Data Kit (Forms)"})]}),(0,s.jsxs)(r.td,{children:["- ",(0,s.jsx)(r.a,{href:"/tella-web",children:"Tella Web"})," ",(0,s.jsx)("br",{}),"- ",(0,s.jsx)(r.a,{href:"/uwazi",children:"Uwazi"})," ",(0,s.jsx)("br",{}),"- ",(0,s.jsx)(r.a,{href:"/g-drive",children:"Google Drive"})," ",(0,s.jsx)("br",{}),"- ",(0,s.jsx)(r.a,{href:"/dropbox",children:"Dropbox"})," ",(0,s.jsx)("br",{}),"- ",(0,s.jsx)(r.a,{href:"/nextcloud",children:"Nextcloud"})]}),(0,s.jsxs)(r.td,{children:["- ",(0,s.jsx)(r.a,{href:"/tella-web",children:"Tella Web"})," ",(0,s.jsx)("br",{}),"- ",(0,s.jsx)(r.a,{href:"/uwazi",children:"Uwazi"})," ",(0,s.jsx)("br",{}),"- ",(0,s.jsx)(r.a,{href:"/odk",children:"Open Data Kit (Forms)"})]})]}),(0,s.jsxs)(r.tr,{children:[(0,s.jsx)(r.td,{children:(0,s.jsx)(r.a,{href:"/features#nearby-sharing",children:"Nearby Sharing"})}),(0,s.jsx)(r.td,{children:"\u2714\ufe0f"}),(0,s.jsx)(r.td,{children:"\u2714\ufe0f"}),(0,s.jsx)(r.td,{children:"\u2714\ufe0f"})]}),(0,s.jsxs)(r.tr,{children:[(0,s.jsx)(r.td,{children:(0,s.jsx)(r.a,{href:"/features#offline-data-collection",children:"Offline data collection"})}),(0,s.jsx)(r.td,{children:"\u2714\ufe0f"}),(0,s.jsx)(r.td,{children:"\u2714\ufe0f"}),(0,s.jsx)(r.td,{children:"\u2714\ufe0f"})]})]})]})}function l(e={}){const{wrapper:r}={...(0,n.R)(),...e.components};return r?(0,s.jsx)(r,{...e,children:(0,s.jsx)(i,{...e})}):i(e)}},8453:(e,r,t)=>{t.d(r,{R:()=>i,x:()=>l});var s=t(6540);const n={},d=s.createContext(n);function i(e){const r=s.useContext(d);return s.useMemo((function(){return"function"==typeof e?e(r):{...r,...e}}),[r,e])}function l(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:i(e.components),s.createElement(d.Provider,{value:r},e.children)}}}]);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.