Fully open source, End to End Encrypted alternative to Google Photos and Apple Photos
Find a file
Manav Rathi 85aaf1d27e Deduce type from values
It is indeed possible to have a TypeScript type and an array of all of its
possible values without repeating ourselves.

The trick is - while we cannot go from types to values, we can go the other way
around. The sidetrick is - typeof array[number] gives us type of an array's
elements.

Combined, we get this pattern

    const fruits = ["banana", "orange"] as const;
    type Fruits = (typeof fruits)[number];

Refs:
- https://stackoverflow.com/questions/53154564/how-to-get-all-possible-values-of-a-union-type-to-an-array-or-the-other-way-aro
- https://www.typescriptlang.org/docs/handbook/2/indexed-access-types.html
2024-02-23 10:25:58 +05:30
.github Prettier the yamls too 2024-02-22 11:57:55 +05:30
apps Move to ui package 2024-02-23 09:41:42 +05:30
docs Document 2/3 2024-02-23 09:59:29 +05:30
packages Deduce type from values 2024-02-23 10:25:58 +05:30
scripts Add deployment entry for cast 2024-02-20 11:18:28 +05:30
.gitignore gitignore next-env.d.ts 2024-02-20 11:08:51 +05:30
.gitmodules fix: add gitmodules branches 2023-04-26 21:59:18 -04:00
.prettierignore Prettier the yamls too 2024-02-22 11:57:55 +05:30
.prettierrc.json Update to Prettier 3 2024-02-22 11:41:13 +05:30
crowdin.yml Prettier the yamls too 2024-02-22 11:57:55 +05:30
LICENSE Initial commit 2020-09-07 07:24:00 +05:30
package.json Move the UI dependencies down to the ui package from the top level 2024-02-22 21:52:08 +05:30
README.md Add shortcuts 2024-02-22 12:22:07 +05:30
SECURITY.md Create SECURITY.md 2022-01-11 20:42:48 +05:30
tsconfig.base.json fix build 2023-11-08 09:15:35 +05:30
yarn.lock Move the UI dependencies down to the ui package from the top level 2024-02-22 21:52:08 +05:30

Ente Simple, safe photo storage

Ente is a cloud storage that provides end-to-end encryption for your data.

We have open-source apps across Android, iOS, web 👋 and desktop that automatically backup your photos and videos.

This repository contains the code for our web app, built with a lot of ❤️, and a little bit of TypeScript.




App Screenshots

Features

  • Client side encryption (only you can view your photos and videos)
  • Bulk uploader (from hard disk, Google Photos, Apple Photos, ...)
  • Shareable links for albums
  • Ability to filter photos by places, days, album and file names
  • 2FA
  • EXIF viewer
  • Many, many more features..., and,
  • Zero third-party tracking / analytics

💻 Production Application

The app is deployed to web.ente.io


🧑‍💻 Building from source

  1. Clone this repository with git clone https://github.com/ente-io/photos-web.git
  2. Pull in all submodules with git submodule update --init --recursive
  3. Install dependencies with yarn install
  4. Finally, run the development server with yarn dev

Open http://localhost:3000 to see the live app (with hot reload).

yarn dev runs the photos app. To run the auth app, do yarn dev:auth.


🙋 Help

We provide human support to our customers. Please write to support@ente.io sharing as many details as possible about whatever it is that you need help with, and we will get back to you as soon as possible.


🧭 Roadmap

We maintain a public roadmap driven by our community.


🤗 Support

If you like this project, please consider upgrading to a paid subscription.

And star this repo!


🌍 Translate

Crowdin

If you're interested in helping out with translation, please visit our Crowdin project to get started. Thank you for your support.


🏙️ Attributions

City coordinates from Simple Maps


❤️ Join the Community

Join us on Twitter / Mastodon / Discord / Reddit to get regular updates, connect with other customers, and discuss your ideas.

An important part of our journey is to build better software by consistently listening to our customers. Please feel free to share your thoughts with us at any time.