WEBVTT

00:00.000 --> 00:23.880
Thank you, everyone. Thank you so much for having me. I'm Silvan. I've been doing the development and

00:23.880 --> 00:30.280
open source and conferences for a while. Last year I wanted to do it full-time, full-time

00:30.280 --> 00:34.480
open source contributor and I thought well the best place to do it is actually a real

00:34.480 --> 00:40.280
open source project by the government. So I joined the DINUM, which is the French IT state

00:40.280 --> 00:48.880
departments and not state department. French IT management, let's say, as a non-tropical

00:48.880 --> 00:55.000
international kind of entrepreneur but in the public sector and they sent me to another

00:55.000 --> 01:01.080
administration which is NCT. So I will explain what that is. And I want to start maybe

01:01.080 --> 01:06.080
we are in the university, so let's start with the geography lesson of our friends. This is

01:06.080 --> 01:12.880
out front the region closer to here. And your friends is made of more than 35,000 small

01:12.880 --> 01:19.880
towns, municipalities, local administrative regions, each one as a mayor, as a few employees,

01:19.880 --> 01:26.240
as a domain name, maybe, as an email contact address, as, you know, software running

01:26.240 --> 01:33.120
windows, whatever but it's a really, really small, small unit that we have to work on in

01:33.120 --> 01:37.880
France and each of them is independent. The state can actually, cannot actually force them

01:37.880 --> 01:43.040
to use anything. It's written in our constitution. They are free to be administered as they

01:43.040 --> 01:47.960
like. So we have a huge problem and one of the first things I did when I arrived was to do a

01:47.960 --> 01:52.680
daily scan of all the domains, all the emails, and to check this is for instance the map

01:52.680 --> 01:57.440
of the DMACC with the quarantine records on all their contact email address. So you can see

01:57.440 --> 02:03.280
there is a lot of work to do. About 60% of them, all of them, all of them, don't even own

02:03.280 --> 02:08.240
a real domain name. So they might be on free web mail, they might be on Gmail. And this is

02:08.240 --> 02:14.520
like your mayor's contact address is a Gmail address. So you can see how this can be

02:14.520 --> 02:20.720
really true. So this is the mission of the agency I work on, the entity which is co-is

02:20.720 --> 02:27.000
unetator, which really the goal is to bring up all those smaller administrative municipalities

02:27.000 --> 02:31.520
to professional standards, to more secure standards, and to really give them the tools to

02:31.520 --> 02:38.520
add these to themselves, securely. Obviously, with open source, we are part of the broader

02:38.520 --> 02:42.520
last-sweet movements. We are not dealing, but we are kind of a sister-sweet to dealing,

02:42.520 --> 02:47.520
which we call last-sweet territorial, kind of distribution, if you will, of some of the same

02:47.520 --> 02:53.280
tools, some different specifically for those smaller municipalities. And so we have the same

02:53.360 --> 03:01.840
as the SO, we have messages which I am talking about, a lot more projection from last-sweet.

03:01.840 --> 03:06.360
We also, this is also different for instance. We strongly encourage the regional level to

03:06.360 --> 03:10.560
self-host the tools. We don't want to have one single national instance for that. We, you

03:10.560 --> 03:16.200
know, Aldi Lyskima, you know, every larger administrative region, we love his own instances,

03:16.200 --> 03:22.040
so that we can have a real federation of security, of government and of data. Of course,

03:22.080 --> 03:27.800
it's my mythelations. And yeah, I just wanted to, to say, we have come a long way, you know,

03:27.800 --> 03:33.800
since 10 years, I think, open source now is the default for most of you administration. So,

03:33.800 --> 03:39.000
just take a bit to reflect on what we are and we are through work for this. I mean, it

03:39.000 --> 03:46.000
won't happen without, without work. So, this is messages. This is our own email application.

03:46.320 --> 03:52.720
It's a thin beta state, but it's live. We have there the the busy address of our contact

03:52.720 --> 03:58.000
mailbox. This is a real screenshot from yesterday. I anonymized the bit. I hope I didn't miss anything.

03:58.880 --> 04:04.480
Personal information, but yeah. So, it works. So, we think it's a nice UI. It's really made

04:04.480 --> 04:09.280
simple for, you know, for people that might not be very technical. Again, they are coming from

04:09.280 --> 04:14.720
free web mails, they are coming from Gmail when we are lucky. So, we want to, to build for

04:14.720 --> 04:21.520
something that they want us, a lot of questions to configure or to use. And for now, the, you know,

04:21.520 --> 04:27.360
the views that we have have confirmed that. I want to talk, you know, today and not to so much

04:27.360 --> 04:34.240
demos, but talk about the design. But the design choices we made, when building that, we, we know

04:34.240 --> 04:40.160
we, we came, our funding was actually from the French security office. And one of the top

04:40.320 --> 04:47.200
requirements was we don't want any password of any kind anywhere full stop. There is no password

04:47.200 --> 04:51.840
in the system. We have some agents, you know, that have the hardware devices to log in themselves.

04:52.640 --> 04:57.200
Some might have, you know, prior SSO, we have the still password, but even that will be new

04:57.200 --> 05:02.160
of the eventually. The goal is that for the scope of the made application, there is absolutely no password,

05:02.160 --> 05:07.440
which is also true for the rest of the, the suite, but at least for us. Of course, it's a bit

05:07.440 --> 05:12.640
pram because I'm up, it's built on passwords. There is some extensions, but no mainstream clients

05:12.640 --> 05:20.000
support them. So this was really a foundation all the, the ensures. Also, we want to have like a

05:20.000 --> 05:25.440
multiplayer experience on the made boxes. You know, our, the contact addresses of our, of our

05:25.440 --> 05:30.880
tons. We see them, we are super addresses, you know, not so much individual made boxes, but I think

05:30.880 --> 05:37.440
more of like Zendesk or Zamad or, uh, really things that you have, maybe, one, maybe 10, maybe 100

05:37.440 --> 05:42.400
people working together on the same email address at the same time. And this is what's happening.

05:42.400 --> 05:49.120
You know, with the contact at your time, the phone. So, so that shaped the data model quite a bit.

05:49.120 --> 05:53.040
We want to use the UI kit, which made us build a new front end. We need to be very

05:53.040 --> 05:59.120
cost efficient. We have objects to register for the mails. As I said, easy self-esteem. And of course,

05:59.200 --> 06:03.200
we know that, you know, we are building this for all needs, which are kind of specific, obviously.

06:04.240 --> 06:08.400
We totally, you know, uh, we are totally aware that we still want to do open source, we still want

06:08.400 --> 06:13.840
other people to use that, which might mean different configurations, in different instances.

06:13.840 --> 06:18.720
We are definitely open to that as an open source project. Even if we want to make those choices,

06:19.440 --> 06:24.080
it's completely free for people that we use to to make them. And so I want to focus on that.

06:24.080 --> 06:28.320
Obviously, it's the title of the talk. It's what maybe the most, I don't know, controversial,

06:28.320 --> 06:32.320
at least that was the most new for us. In a dropping email, meant that we cannot have had the

06:32.320 --> 06:37.120
blank page, you know, to design. Okay, what would it look like if we went, you know, 100% into that,

06:37.120 --> 06:42.960
into that design? We forget everything we knew. So there's no folders, no persistent connections,

06:42.960 --> 06:48.240
you know, nothing else. We can, we can actually also build a kind of different data model. I mean,

06:48.240 --> 06:51.840
if you're just dropping email to drop email, we could have just shut down, you know, the

06:51.920 --> 06:57.760
part of the server and then we'd be fine. We took that as an opportunity to go further and to build,

06:57.760 --> 07:03.920
we knew that a model centered around the threads, not our messages, you know. So the primary

07:03.920 --> 07:10.000
data model for us is a thread. A thread isn't even linked specifically to a mailbox. It's an

07:10.000 --> 07:15.600
object of its own and a mailbox, several mailboxes actually can also have access to a thread. So

07:15.600 --> 07:20.880
if you receive the email in the wrong contact address, you never actually have to forward it again,

07:20.960 --> 07:26.640
which is not the source of so many issues. You can just swap its pointer to a different email address

07:26.640 --> 07:31.040
and it will be transferred. The access to it will be transferred automatically. This is something

07:31.040 --> 07:36.320
that's obviously very hard to do if you don't start from scratch. Also, you know, obviously not

07:36.320 --> 07:41.360
having I map, you know, I mean, as you can't use our hook at all, which actually for us is a

07:41.360 --> 07:45.600
huge bonus. Of course, it will be also the core of our mission. I mean, like, you know, we are

07:45.600 --> 07:50.960
talking about 70. It's fine to do anything you want to open source. If I then use our

07:50.960 --> 07:56.320
continue to use our hook, you can already last. So for us, the fight goes to that. I think it

07:56.320 --> 08:02.880
goes on sort of replacing Windows, but that's from the talk. But still, it's a way to force them to

08:02.880 --> 08:07.600
use open source to use your tool that it's thought for them and that it's secured for them the

08:07.600 --> 08:13.600
way you want. And so the ability to build a tightly-coupled front end, which comes with that,

08:13.680 --> 08:18.720
no, a lot of new things. We use the same editing component as docs, as you saw before,

08:18.720 --> 08:23.440
which is block. Now, JS, there's another talk about it today, it was them. We use it for the

08:23.440 --> 08:29.040
editor that you can write from it with the exact same experience as all the other lathe components.

08:29.040 --> 08:34.240
Obviously, you can do a little lens, you can do custom self. You can also do rich threads that

08:34.240 --> 08:39.680
we call them, where you can have private messages between users that don't go out. You can bring

08:39.760 --> 08:45.600
into anything you like. I want the thread message, the thread model, which is a big plus to

08:45.600 --> 08:49.360
to innovate, I guess. You can also do real-time. You can also also have to stuff.

08:50.960 --> 08:55.120
Though, we did, when something from scratch, we didn't want a blank page reader. We didn't

08:55.120 --> 08:59.440
want to make the same mistakes or the other, I mean, before. And when we looked at, you know, how

08:59.440 --> 09:05.680
to design the data model on mail, it was more than obvious that JMAP was the right foundation

09:05.680 --> 09:15.120
to build it. As you know, JMAP is a protocol, but it's so spec. What is the thread, what is the

09:15.120 --> 09:19.840
message, what is the field, what is the blob, and all those notions, we actually took them

09:19.840 --> 09:25.280
natively and built the data model around that. Even if we didn't build on day one, JMAP

09:25.280 --> 09:32.240
endpoint to interact with the protocol, we add JMAP objects in the core from day one. And today,

09:32.320 --> 09:37.200
we actually have a PR open, which you can try to use, to actually interact with the server

09:37.200 --> 09:41.920
with the JMAP compatible clients. You will miss some features, but the basic data exchanges

09:42.640 --> 09:48.800
do work already. It's fine. Thank you. Quickly, the architecture of the system,

09:50.800 --> 09:55.200
about using the most components that we can from other last-week projects. So, all the last-week

09:55.200 --> 10:00.640
projects have Django backend that we used it. They are silly workers, we did use that,

10:00.640 --> 10:06.880
post-gress everywhere. All the front ends are built with next. So, we really made the exercise,

10:06.880 --> 10:10.480
okay. Let's look at those, let's look at video, all the last-week types that have been widely

10:10.480 --> 10:15.360
successful. What would it look like if we took the exact same frameworks and breaks,

10:15.360 --> 10:21.680
and we built a map with that. And we ended up on this kind of architecture. So, it's nothing

10:21.680 --> 10:27.200
not so incredibly. There are a bit more stuff when you complexify that are all optional.

10:27.280 --> 10:32.240
No, you can add AI on the side, you can add spam processing, you can add even hooks,

10:32.240 --> 10:37.040
you know, to receive messages. We really, you know, we call that messages and not mails,

10:37.920 --> 10:42.880
because we think even contact forms that you might have on website should end up there,

10:42.880 --> 10:47.680
without a gateway. You should have a native API call with a token or whatever,

10:47.680 --> 10:52.800
to send a message into the platform, which is kind of a window view if you have a Django basis.

10:53.120 --> 10:59.520
We also embed, you know, keyclock, which is, again, optional, but is a way for,

10:59.520 --> 11:04.560
when you create a mailbox, to also create an identity that's linked to it, that can then,

11:04.560 --> 11:09.760
you know, flows through the SSO, and then, again, not just in messages, but, you know, in the

11:09.760 --> 11:15.600
suite of apps, it may as a special place, because it's where I know the identity is confirmed.

11:15.600 --> 11:18.720
So, this is also integrated into the design of the project.

11:18.720 --> 11:25.360
I want to also focus on why, first, making states minimal, what's really important,

11:25.360 --> 11:30.160
you know, when you want to self-host, speak a limited system, you know, we didn't use a benchmark

11:30.160 --> 11:35.920
before going on in that past, you know, you have, I don't know, like, Docker compose with, like,

11:35.920 --> 11:41.520
tens of, maybe, 20 different components, each of them have states, and if you want to back up,

11:41.520 --> 11:46.000
if you want to restore, if you want to crash something and restart it or to scale it or to,

11:46.160 --> 11:51.600
it's, it's a use pen India. So, we read through the aim to try to minimize where the primary state

11:51.600 --> 11:56.240
is stored, so that we have only one single place to back up, there is no cues anywhere,

11:56.240 --> 12:02.560
there is no, you know, intransit sessions that we have to persist, everything actually can be restarted

12:02.560 --> 12:08.240
from postgres, you know, we have an open search on the site, you know, to make sure, but even that,

12:08.240 --> 12:13.520
can be entirely rebuilt from the primary database. It's also because of our scale, you know,

12:13.520 --> 12:18.160
there's a total total total in Gmail scale, you know, for StarWart, and I think that's, that's a

12:18.160 --> 12:22.800
huge thing to have in the, you know, a little source community, for us, for our scope, we don't target

12:22.800 --> 12:28.720
a billion users, you know, there are two million local legends for the, for the, for the municipalities in

12:28.720 --> 12:33.920
trends, all of that can for sure run on a single postgres, but even then we want to, you know,

12:33.920 --> 12:38.400
as I said, self-host on, on bigger administrative regions, so for sure, you know, if we're

12:38.400 --> 12:45.600
going to hire a single postgres, we can run all the metadata about the emails on that as well,

12:45.600 --> 12:50.720
and then offload the bodies on object storage to have big storage for that. But those two are

12:50.720 --> 12:55.360
really the only primary storage, and that's really a huge place when you, when you self-host.

12:55.920 --> 13:00.960
How do we do that, you know, at the, at the inbound level on SNTP, with just, you know,

13:00.960 --> 13:04.720
instead of, we, we still have postfix, you know, it's a nice piece of software, again,

13:04.800 --> 13:10.080
but we don't use it to queue anything, it delivers to the NDA, to the backend,

13:10.640 --> 13:15.360
as the, as the SNTP session is open, no, it does, like, recommending first,

13:16.560 --> 13:21.760
rough checks on the email, then sends it to the backend, which does, like, does this mailbox

13:21.760 --> 13:26.400
exist, and the few more, a few more checks, but very fast checks that can be in line,

13:26.720 --> 13:31.280
and then it drops it to a postgres, and then returns directly to the, to the connected SNTP.

13:31.360 --> 13:36.080
So that means that we can crash postfix, we can restart it, we can scale it to 1,000 postfixes,

13:36.480 --> 13:42.320
and it will be easy, as, as, by. Then we have, you know, a system of workers, I think,

13:42.320 --> 13:47.280
which workers that can do all the processing of the email from from queue, they can check if it's

13:47.280 --> 13:52.160
spam, they can flag it, they can offload it to a three later, we can do anything we want, but the,

13:52.160 --> 13:56.240
the hot pass at the beginning is done entirely in session.

13:56.800 --> 14:02.080
Same for a bound, and then, and there we, kind of, did something, which I think is a bit new,

14:02.080 --> 14:07.120
is that, you know, we do, uh, we direct MX delivery right from the, right from the backend,

14:07.680 --> 14:13.440
of course, we can proxy, you know, to have, to manage IP reputations, but that allows us inside the code,

14:13.440 --> 14:18.000
to have differentiated returns statistics for each of the recipients of a single message, which

14:18.000 --> 14:23.280
means that, you know, you, you don't receive any bounds if one of your recipients fail the message,

14:23.360 --> 14:28.320
you can actually get the status directly, uh, and show in the UI, you know, well, all of those

14:28.320 --> 14:32.400
were sent correctly, but this one failed, and you can actually choose to retry a single recipient

14:32.400 --> 14:36.560
from a message, or maybe to edit it and send it again because you messed up the email,

14:36.560 --> 14:40.320
or you can just dismiss it because it's a permanent error, that's also something,

14:40.320 --> 14:44.400
which is made possible, you know, by a new data model, that, that we enjoy a very much.

14:46.000 --> 14:50.960
Uh, what's next for us, so, uh, you know, everything I showed is on production, or,

14:51.040 --> 14:55.040
OpenPR, as I said, you know, it's still beta, we are still working hard at each, you know,

14:55.040 --> 15:00.960
it's still not, uh, at the level of, you know, maturity as, also, last week project, but we hope it will be,

15:00.960 --> 15:04.800
uh, it will be this year, we are building the missing bridge, you know, when you say no, I'm up,

15:04.800 --> 15:08.960
of course, the next question that comes is what about mobile, we're also building, you know,

15:08.960 --> 15:13.040
mobile apps from, from the, from the get go, we, we build the front end to the package

15:13.040 --> 15:17.920
ball into a reactive app, so it will be the same front end, the same code base, the package that's native

15:18.800 --> 15:24.400
we also have at work on calendar, it's the exact same kind of choices, and the centralize the contact

15:24.400 --> 15:30.000
repository. So we hope to have all of that, you know, ready in production deployed this year,

15:30.880 --> 15:35.040
I want to give another also to some of the first people that are using, you know, this, uh,

15:35.040 --> 15:40.160
this open source project and using it for further on uses, uh, Mosa Cloud, you know, which

15:40.160 --> 15:47.040
of some of you may know is a, is a, is a, a company that sees, you know, hosting and offering

15:47.200 --> 15:53.440
instances of, of some of those open source projects to the, to the, to the public, you can,

15:53.440 --> 15:58.080
you know, you'll be able to go there, create a domain and, and use the, the same, the same

15:58.720 --> 16:03.840
project, but for your own private use or for your enterprise or for whatever, and we are really,

16:03.840 --> 16:08.320
you know, open to get in touch with any other people that may want to start their own suite,

16:08.320 --> 16:12.400
their own web mail, their own, uh, server with those kind of these entrances, and we'll help them

16:12.480 --> 16:17.360
do it for sure. You know, there is, you might have seen the, the last few days, you know,

16:17.360 --> 16:22.240
a few announcements that, that prove, you know, that we think, uh, you know, government,

16:22.240 --> 16:27.120
made and supported platforms and open source, uh, as a bright future to replace, you know, some

16:27.120 --> 16:33.120
of the proprietary software, uh, we think, you know, it's, uh, it's a fight worth fighting and we

16:33.120 --> 16:38.320
hope to, uh, to do it all together. This is, uh, fueling, you know, to join with an open

16:38.320 --> 16:42.960
metric channel where you can chat, we have a contact email, you already showed what it looks like

16:42.960 --> 16:46.720
from the inside, uh, I'll be there all weekend, you know, if you feel free to ask questions,

16:46.720 --> 16:50.320
is on now or later, and thank you in advance. Thanks a lot.

16:58.160 --> 17:01.600
In questions. Thank you, sir. I'm also, it was for, that's fine.

17:02.000 --> 17:08.560
Is there any feature or use case that is specific to the fact that you're, uh, delivering

17:08.560 --> 17:14.320
for, uh, uh, municipalities, small municipalities, because this looks like anything that an organization

17:14.320 --> 17:18.640
could use, whether it's government or not. Is there anything specific or, uh, it's just

17:18.640 --> 17:23.600
legendary. So, yeah, uh, yeah, is there anything specific, you know, for small towns or in

17:23.600 --> 17:28.640
France or into this product, we try not to be too specific, I think we, we took the kind of population,

17:28.800 --> 17:33.920
the kind of users, we took the security, uh, you know, challenges or constraints that we had,

17:33.920 --> 17:38.080
and we did something that, of course, would be useful, not just for us, but for, yeah, for the

17:38.080 --> 17:43.120
wider range of people. So, yeah, I think any organization, we, you know, uh,

17:43.120 --> 17:47.040
reactive share the mailboxes could get a huge value from, from that, you know,

17:47.040 --> 17:51.040
our primary target, you know, is not necessarily to, yeah, we place all the agents,

17:51.040 --> 17:56.400
the personnel, the private web mails, but first, uh, you know, to replace the, the contact,

17:56.400 --> 18:00.880
the share mailboxes that have a lot of concurrent users, we're applying to the same email address,

18:00.880 --> 18:05.280
and the currently we need to use hacks, you know, with labels, with whatever, uh, so that,

18:05.280 --> 18:09.120
that's is a primary target, and I think that's is, uh, what we try to do first, yeah.

18:11.920 --> 18:17.760
Thank you for sharing your architecture, very, uh, very useful. And, uh, that brings a question.

18:17.760 --> 18:21.200
Well, how do you handle, uh, I see that you have a lot of, uh,

18:21.200 --> 18:26.560
single points of failure. You know, how do you handle, actually, here, uh, uh,

18:26.560 --> 18:32.560
relative, uh, fail over on the SC, on the postgres, on redness. So, I think, I mean,

18:32.560 --> 18:35.760
I have just that this is a lot of simplification, just curious, like, what's your take,

18:35.760 --> 18:40.320
because, uh, your architecture, yeah, again, we'll be serving the whole government.

18:41.360 --> 18:46.160
Sure, but actually, the whole government is pretty small, you know, by, by, uh, I'm sorry, yeah,

18:46.160 --> 18:47.200
uh, I can risk it.

18:48.160 --> 18:49.200
It's too good.

18:50.640 --> 18:56.480
Sure, yeah, no, the question is, how can we scale, uh, with, uh, a few points of failure, like in that scheme?

18:57.840 --> 19:02.480
We think it's not to be, actually, you know, a few million people on a single postgres instance,

19:02.480 --> 19:07.680
uh, to the by today's standards, it's fine, you know, again, like, open AI as, uh, 900 million,

19:08.320 --> 19:12.160
people on on on on a scale postgres. So, uh, we think the, the single point of failure

19:12.160 --> 19:16.800
of, uh, I've become quite, quite big. And as I said, you know, uh, we try to keep the primary state in

19:16.800 --> 19:22.160
a single location. So, yeah, the postgres is the big, uh, if that fails, the most of, uh, the infrastructure

19:22.160 --> 19:27.600
fails, but if the redness, the open search, the workers, if anything else fails, actually, the system

19:27.600 --> 19:31.840
stays up and you can read your emails. Uh, uh, the, uh, the, the, the, the fact is that we, we, we, we've

19:31.840 --> 19:36.800
tried to push as much processing to the salary workers and the salary workers, or, you know,

19:36.800 --> 19:41.360
can, can crash, you can scale them up and down, they're fully, you know, a, uh, a state less.

19:41.360 --> 19:46.880
But if they, if they fail, then you're not going to have as, as far as your previous slide,

19:46.880 --> 19:51.600
then you're not going to have the delivery, or, uh, on the message. Yeah, we, we, we, we, we, we, we

19:51.600 --> 19:54.640
have, we have, we have, we have, like, if they crash for a few minutes, we have a few minutes,

19:54.640 --> 19:58.880
delay in email delivery, but then we start again and we will be fine, you know, like, uh, I think

19:58.880 --> 20:02.880
the, the, our past is, uh, the, our parts are the part that families be happy, you know, 100

20:02.960 --> 20:07.440
percent, like the post west server, that's yeah, that's the center, uh, you have to be able

20:07.440 --> 20:11.440
to manage post west, but many cloud services today, you know, give you managed post west with

20:11.440 --> 20:16.320
a incredible time and a locust and backups and everything that you need. So first that is

20:16.320 --> 20:20.400
our primary, you know, points, and you of course, uh, all around, we try to build things that

20:20.400 --> 20:25.840
can crash and and be restarted the, or be scale. Thank you. Thank you. Thank you.

20:26.800 --> 20:34.240
Yes, I'll just, uh, Jima was a future exploration, um, if there are any reason you didn't

20:34.240 --> 20:43.360
actually just, Jima or maybe extent to Jima. Sure, uh, so the question, yeah, I got it. I was going to do it.

20:46.080 --> 20:49.680
Yeah, the question is, why, why didn't we use, like, for instance, Star Wars on the back end, or

20:49.680 --> 20:56.080
like, Jima server and then, uh, and then use that natively, um, you know, we, we had, um, we had

20:56.080 --> 21:01.120
different, you know, prison, we, we have constrained the budget, we have existing technologies,

21:01.120 --> 21:05.760
we have existing back ends, we also wanted, you know, to be, uh, to be very good at shared mailboxes.

21:05.760 --> 21:10.320
So all the, all the design, you know, inputs that, that, that, that we took, we did the, we did

21:10.320 --> 21:14.880
the next intensive benchmark at the beginning and we pushed it, pushed it to reuse, you know,

21:15.440 --> 21:20.880
that, uh, that kind of, uh, back end, which is, you know, entirely open source, uh, which we can tweak

21:20.880 --> 21:26.080
as we want, you know, we, we, uh, as an agency, also we love to support, you know, uh,

21:26.080 --> 21:32.400
tens of, uh, thousands of users, uh, uh, on the phone by email that that won't be very technical.

21:32.400 --> 21:37.440
So we really want to, we 100 percent, you know, uh, servering on, on, on, on the, the, the back end

21:37.440 --> 21:44.320
and the, the things we would be able to fix, uh, and I, I love rest, but there's almost zero rest,

21:44.320 --> 21:49.280
you know, uh, uh, people in the, in the French government or in the French agencies where we,

21:49.280 --> 21:53.120
where we are that, that we, that we would have the manpower in the two, to contribute to that.

21:53.120 --> 21:57.600
So, uh, we were in the Python environment, we just, you know, built, uh, built the Python server

21:57.600 --> 22:01.280
like all the rest, I think that was the primary, uh, for my, we started it.

22:07.280 --> 22:13.440
So, uh, in the German, uh, simulations, we see a lot of specific feature requests for the

22:13.520 --> 22:16.400
functional mayboxes, or shared mayboxes in the, uh,

22:16.400 --> 22:19.200
municive product is also in the state right platforms.

22:19.200 --> 22:26.080
We spend quite a lot effort into better, better, if delegation whatsoever, what is your experience

22:26.080 --> 22:31.920
in, uh, French administration regarding sharing of user mayboxes and functional mayboxes,

22:31.920 --> 22:34.960
and if you also do a lot of feature development there.

22:34.960 --> 22:40.560
Yes, so the question is, uh, uh, uh, how do we support, uh, share main boxes, uh, what the

22:40.560 --> 22:46.640
weapons do we do? So, yeah, as I said, when we started, uh, the, uh, the data model and we

22:46.640 --> 22:50.800
need a project to share mailboxes where the center of what we want to do. So, uh, for instance,

22:50.800 --> 22:56.240
for the editor, we use, uh, blockchain.js, which it's not yet live, but, uh, it's doable in, in

22:56.240 --> 23:00.720
Docs already, which you can actually sort of, you can actually see the cursors of other people

23:00.720 --> 23:04.560
writing, uh, you know, the same document, that, that would be doable inside because we are

23:04.560 --> 23:09.600
using that, that component. So, you have, you have, uh, multiplayer at, at the very low level in

23:10.480 --> 23:13.680
the editor, but you also have multiplayer at the higher level, on the, you know, on the

23:13.680 --> 23:18.160
threads that you collaborate on, on the, on the, on the open ID accesses, you know, we have, we have a

23:18.160 --> 23:24.480
brick that maps any open ID user to any number of mailboxes that they have access to. Uh, so we have,

23:24.480 --> 23:29.200
you know, the, the right management system is, uh, is really flexible because, you know, we don't,

23:29.200 --> 23:33.840
we, we don't have passwords, we don't have, you know, the right way to delegate the access to a mailbox,

23:33.840 --> 23:38.640
is just to add a new ID, uh, you know, user to that mailbox as, as a, as a data record. Uh,

23:38.800 --> 23:43.280
we can, we can, we can really find a manager who has access to what. And as I said, in on that

23:43.280 --> 23:49.040
a model, even the mailbox is not even the top level of, of access is the thread. So, we can actually,

23:49.040 --> 23:53.120
if you receive a thread on a mailbox, you can share it with other mailboxes. And they will see the

23:53.120 --> 23:58.640
same thread. They won't see a copy in the email. Uh, this is for the, the, the, the, the, the, the,

23:58.640 --> 24:03.440
to be able with several, maybe services or administrations to collaborate on the same discussion with

24:03.920 --> 24:08.960
this, with only a single, you know, a single mail, uh, from the exterior for the end user. So,

24:08.960 --> 24:13.520
yeah, first, it was really close to the data manager to search to share threads and not mailboxes

24:13.520 --> 24:19.920
and surely not password. Thank you. Yeah. So, I'm putting myself on the queue with my head of data

24:19.920 --> 24:25.360
credibility enthusiasts. I was wondering, uh, how do you consider the same, like, it may be migration,

24:25.360 --> 24:29.520
or also like, people exercise a ride of, uh, exploring data, even though probably like,

24:29.600 --> 24:34.560
cover the product's particular announcements, um, uh, something people necessarily need,

24:34.560 --> 24:38.960
but I assume this is also supposed to be used probably. Yeah. All types of apps,

24:38.960 --> 24:43.120
is the jammer, maybe I, is the solution you have in mind for that, or is there any other API's

24:43.120 --> 24:47.600
of plans for that? Okay. So, I will repeat your question. So, because you don't have a mic, right?

24:47.600 --> 24:52.880
Yeah. Okay. Uh, so what about export and data portability? Uh, so for sure, it's a, it's a

24:52.880 --> 24:57.520
core feature. Uh, the, one of the first features we did was the import, so we can import inbox,

24:57.600 --> 25:02.640
we can import, uh, I map, can not import jammer, but maybe we, we call it in the future.

25:02.640 --> 25:07.360
Uh, and there is a peer open actually to export also as well, all of your data in the same

25:07.360 --> 25:14.400
inbox format. Yeah. So, uh, it's not so much, uh, yeah, for, well, for, for moving data around,

25:14.400 --> 25:19.440
but, uh, yeah, we have to, uh, to, to be, uh, to be really tight with, uh, you know, with, uh, with personal

25:19.440 --> 25:24.320
data and, uh, and with, uh, with people's data in the environment for sure. So, that that's close

25:25.280 --> 25:29.760
So, so you see any challenges that's right small, because, you know, uh, uh, I understood it's very

25:29.760 --> 25:36.720
flexible to, you know, the side data from some x to y. So, put that all to be data, uh, do you think

25:36.720 --> 25:42.080
that way in the next business? So, we, we, we think that, uh, the, uh, the surface is smaller,

25:42.080 --> 25:46.480
because, you know, we, we control, we, we, we, we know, this is the single place that will be able

25:46.480 --> 25:52.080
to access the, uh, the users. Um, so we think we, we can build, you know, we, we, uh, the, the talk

25:52.080 --> 25:55.840
or the CSS before was a film interesting, you know, we already, I frame, uh,

25:55.840 --> 26:00.080
H single message, uh, like what I like was recommended and we can really be in control of the

26:00.080 --> 26:04.720
environment so I'm sure they might be new straight models, uh, and we, uh, we, uh, we, uh,

26:04.720 --> 26:08.880
impatient to discover them, but, uh, for sure, we'll be able to fix them in a, uh,

26:08.880 --> 26:13.120
a single time for all the users at once. All right. Thank you so much.

26:22.080 --> 26:25.840
So, it's not really nice, of course.

