diff --git a/README.md b/README.md index 7077bc00..1e9038f7 100644 --- a/README.md +++ b/README.md @@ -1,46 +1,90 @@ -[![CI](https://github.com/electric-sql/electric/workflows/CI/badge.svg)](https://github.com/electric-sql/electric/actions) -[![License - Apache 2.0](https://img.shields.io/badge/license-Apache_2.0-blue)](LICENSE) -[![Status - Alpha](https://img.shields.io/badge/status-alpha-red)](https://electric-sql.com/docs/reference/limitations) -[![Chat - Discord](https://img.shields.io/discord/933657521581858818?color=5969EA&label=discord)](https://discord.gg/B7kHGwDcbj) +

+ + + + + ElectricSQL logo + + +

- - - - - ElectricSQL logo - - +

+ Local-first software platform for developing web and mobile apps with instant reactivity, realtime multi-user collaboration and conflict-free offline. From the inventors of CRDTs. Based on standard open source Postgres and SQLite. +

-# ElectricSQL +

+ + CI + License - Apache 2.0 + Status - Alpha + Chat - Discord + + +

-Local-first. Electrified. +

+ + + + + +
+

-You develop local-first apps. We provide the cloud sync. Without changing your database or your code. +# Quick links -## What is ElectricSQL? +- [Documentation](https://electric-sql.com/docs) +- [Technical intro](https://electric-sql.com/docs/overview/technical-intro) +- [Quickstart](https://electric-sql.com/docs/usage/quickstart) +- [Examples](https://github.com/electric-sql/examples) +- [FAQs](https://electric-sql.com/docs/overview/faqs) -ElectricSQL is a local-first SQL system that adds active-active replication and reactive queries to SQLite and Postgres. Use it to make local-first apps that feel instant, work offline and sync via the cloud. +# What is ElectricSQL? -## Getting started +ElectricSQL is a local-first software platform that makes it easy to develop high-quality, modern apps with instant reactivity, realtime multi-user collaboration and conflict-free offline support. -- [Quickstart](https://electric-sql.com/docs/usage/quickstart) -- [Examples](https://github.com/electric-sql/examples) -- [Documentation](https://electric-sql.com/docs) +[Local-first](https://www.inkandswitch.com/local-first/) is a new development paradigm where your app code talks directly to an embedded local database and data syncs in the background via active-active database replication. Because the app code talks directly to a local database, apps feel instant. Because data syncs in the background via active-active replication it naturally supports multi-user collaboration and conflict-free offline. + +# How do I use it? + +ElectricSQL gives you instant local-first for your Postgres. Think of it like "Hasura for local-first". Drop ElectricSQL onto an existing Postgres-based system and you get instant local-first data synced into your apps. + +ElectricSQL then provides a whole developer experience for you to control what data syncs where and to work with it locally in your app code. See the [Documentation](https://electric-sql.com/docs) and the [Quickstart guide](https://electric-sql.com/docs/usage/quickstart) to get started. + +# Repo structure + +This is the main repository for the ElectricSQL source code. Key components include: + +- [clients/typescript](https://github.com/electric-sql/electric/tree/main/clients/typescript) — Typescript client that provides SQLite driver adapters, reactivity and +- [components/electric](https://github.com/electric-sql/electric/tree/main/components/electric) — Elixir sync service that manages active-active replication between Postgres and SQLite +- [generator](https://github.com/electric-sql/electric/tree/main/generator) — Prisma generator that creates the type safe data access library +- [local-stack](https://github.com/electric-sql/electric/tree/main/local-stack) — Docker Compose stack to run the backend services locally +- [protocol/satellite.proto](https://github.com/electric-sql/electric/tree/main/protocol/satellite.proto) — Protocol Buffers definition of the Satellite replication protocol + +See the Makefiles for test and build instructions and the [e2e](https://github.com/electric-sql/electric/tree/main/e2e) folder for integration tests. + +# Team + +ElectricSQL was founded by [@thruflo](https://github.com/thruflo) and [@balegas](https://github.com/balegas), under the guidance of: + +- [Marc Shapiro](https://lip6.fr/Marc.Shapiro) and [Nuno Preguiça](https://asc.di.fct.unl.pt/~nmp), the co-inventors of CRDTs +- [@bieniusa](https://linkedin.com/in/annette-bieniusa-b0807b145), the lead developer of [AntidoteDB](https://www.antidotedb.eu) +- [@josevalim](https://www.linkedin.com/in/josevalim), the creator of the [Elixir](https://elixir-lang.org) programming language -## Repo structure +See the [Team](https://electric-sql.com/about/team) and [Literature](https://electric-sql.com/docs/reference/literature) pages for more details. -This repository contains the main parts of the sync layer in the `components` directory, the clients that are meant to interface with that sync layer in the `clients` directory, e2e tests in `e2e` directory. +# Contributing -## Contributing +See the [Community Guidelines](https://github.com/electric-sql/electric/blob/main/CODE_OF_CONDUCT.md) including the [Guide to Contributing](https://github.com/electric-sql/electric/blob/main/CONTRIBUTING.md) and [Contributor License Agreement](https://github.com/electric-sql/electric/blob/main/CLA.md). -See the [Community Guidelines](https://github.com/electric-sql/meta) including the [Guide to Contributing](https://github.com/electric-sql/meta/blob/main/CONTRIBUTING.md) and [Contributor License Agreement](https://github.com/electric-sql/meta/blob/main/CLA.md). +# Support -## Support +We have an [open community Discord](https://discord.gg/B7kHGwDcbj). Come and say hello and let us know if you have any questions or need any help getting things running. -We have an [open community Discord](https://discord.gg/B7kHGwDcbj). If you’re interested in the project, please come and say hello and let us know if you have any questions or need any help or support getting things running. +It's also super helpful if you leave the project a star here at the [top of the page☝️](#start-of-content)