Search results

0
0
0
32
0

Loops just shipped support for more interactionPolicy types, giving our community more control to limit certain interactions, like disabling comments or QuotePosts.

Huge shout out to GotoSocial and @dumpsterqueertobi (they/them) is writing bugs :terminal_cursor: for stewarding this ActivityPub extension to better protect our communities.

Isn't it amazing what is possible when projects that would normally compete with each other, can instead collaborate and build safer communities for all?

We all win when we put people first.

0
0
0

()아시아에도 FediCon 같은 行事(행사)가 있으면 좋겠다는 말을 여러 () 해왔는데요. 獨立的(독립적)인 컨퍼런스는 아직 어렵더라도, 작은 첫걸음으로 생각해보고 있는 게 있습니다.

@COSCUP 2026(臺北(타이베이), 8() 8()–9())이 커뮤니티 트랙 提案(제안)을 받고 있어요. FOSDEM의 Social Web devroom 같은 느낌으로, 거기서 Social Web 트랙을 열 수 있지 않을까 하고 構想(구상) 중입니다.

아직 確定(확정)된 건 아무것도 없지만, , , ()은 소셜 웹 全般(전반)을 다루고 있고 發表(발표)共同(공동) 오거나이징에 關心(관심)이 있으신 분이 있다면 이야기 걸어주세요.

https://floss.social/@COSCUP/116152356550445285

以前から、東アジアにもFediConのようなイベントがあればいいなと言い続けてきました。独自のカンファレンスはまだ難しそうですが、小さな一歩として考えていることがあります。

@COSCUP 2026(台北、8月8日〜9日)がコミュニティトラックの提案を受け付けています。FOSDEMのSocial Web devroomのような感じで、Social Webトラックを開けないかなと思っているところです。

まだ構想段階ですが、ActivityPubやフェディバース、ソーシャルウェブ全般に取り組んでいて、発表や共同オーガナイズに興味があるという方がいれば、ぜひ話しかけてください。

https://floss.social/@COSCUP/116152356550445285

1

I've been saying for a while that we need something like FediCon in East Asia. A dedicated conference is still a stretch, but I've been thinking about a smaller step:

@COSCUP 2026 (Taipei, Aug 8–9) is accepting proposals for community tracks. It might be worth trying to open a Social Web track there—something in the spirit of the Social Web devroom at FOSDEM.

Nothing is decided yet, but if you're working on , the , or anything in the social web space and might be interested in speaking (or co-organizing), I'd love to hear from you.

https://floss.social/@COSCUP/116152356550445285

()아시아에도 FediCon 같은 行事(행사)가 있으면 좋겠다는 말을 여러 () 해왔는데요. 獨立的(독립적)인 컨퍼런스는 아직 어렵더라도, 작은 첫걸음으로 생각해보고 있는 게 있습니다.

@COSCUP 2026(臺北(타이베이), 8() 8()–9())이 커뮤니티 트랙 提案(제안)을 받고 있어요. FOSDEM의 Social Web devroom 같은 느낌으로, 거기서 Social Web 트랙을 열 수 있지 않을까 하고 構想(구상) 중입니다.

아직 確定(확정)된 건 아무것도 없지만, , , ()은 소셜 웹 全般(전반)을 다루고 있고 發表(발표)共同(공동) 오거나이징에 關心(관심)이 있으신 분이 있다면 이야기 걸어주세요.

https://floss.social/@COSCUP/116152356550445285

0
0
0

I've been saying for a while that we need something like FediCon in East Asia. A dedicated conference is still a stretch, but I've been thinking about a smaller step:

@COSCUP 2026 (Taipei, Aug 8–9) is accepting proposals for community tracks. It might be worth trying to open a Social Web track there—something in the spirit of the Social Web devroom at FOSDEM.

Nothing is decided yet, but if you're working on , the , or anything in the social web space and might be interested in speaking (or co-organizing), I'd love to hear from you.

https://floss.social/@COSCUP/116152356550445285

0
1
0

@lapriceLocal Agency yes. Though it is not always clear what was the reason for the edit.

(Update: Now I edited because I too hurriedly reacted just to the first part of your reply, and repeated your point, which I now removed from the text 😅 )

But there are other (ab)uses I see from time to time. Some people use editing to turn their post into something of a real-time live blog, e.g. where they update who just presented at a conference. That is very annoying, and I would call it an anti-pattern, an undesirable side effect.

@lapriceLocal Agency

A client sotware might add extra friction to discourage the anti-pattern, e.g. by requiring the formulation of a reason for the edit with a minimum amount of chars.

Also this reason might be federated. After all a 'federated edit' is something very different than an edit in your personal notepad in a local file. There are more abusive patterns that relate to editing. Thus enforce provisioning a good reason for edits.

(Update: Now I edited to add an important extra point to the post. And this is indiscernable from a growth hacker tactic. Plus if one isn't a growth hacker, and ones toot becomes popular - "goes viral", I hate that term - it is attractive and tempting to keep it all together in that post.)

This will make editing generally be less accessible, more unfriendly UX-wise, but there's something to say for having "Minimize post edits" be a best-practice on the social web.

0

🤔

Noting a small likely unintentional side effect of the ability to edit posts on the fediverse..

It enables would-be influencers to use that as a growth-hacking tactic in their arsenal. Whereby editing a post some time after it was published, will serve to remind all people who interacted with it before (by receiving the 'edited' notification). And for those who only favorited another stimulus and opportunity to boost the post as well.

0

In the , most software is built around a specific platform model. One for microblogging, one for video, one for photos... and new ones will keep coming.
With , your phone runs your own server. You control your data and can use your own domain as your identity.
Built on the protocol, not a platform model, Holos is not limited to a single use case. One account that adapts to your needs.
That's where we're heading, and we hope for your support.

0
1
0

@smallcircles🫧 socialcoding.. @silverpill @raphaelRaphael Lullis @julian @mariusormarius ActivityPub as a space is just a mess, we have multiple types of social media clashing all over one protocoll whcih has a bunch of extensions with some being duplicates of other extensions and then diffrent people fighting over which one is the proper one to implement. At somepoint we just need to reset everything and start from a clean plate cause this shit cant go on forever.

@foxFox Ritch :fjoxicon:🇩🇪 @silverpill @raphaelRaphael Lullis @julian @mariusormarius

Yes. I tooted about the need for Grassroots open standards and Grassroots standardization this morning..

social.coop/@smallcircles/1161

In a decentralized grassroots movement, somewhere there needs to an aggregation of the solution artifact. In this case a robust, comprehensible standard that can be readily implemented in libraries, frameworks and SDK's upon which then subsequently solution design can take place.

This is not centralization, this artifact can be federated. But there must be a place of convergence where consensus on protocol design comes together.

There might be a crowdsourced ActivityPub 2.0 specs + documentation site, plus a process around it to make it work.

0

@hongminhee洪 民憙 (Hong Minhee) :nonbinary: @kopperkopper :colon_three:

This thread, in particular the starting post, are direction to move towards. We know this for years. Somehow there's a deep inertia to correct course. This "somehow" is the area of applied research that Social experience design focuses on and intends to provide solutions for: the very particular social dynamics that exist in grassroots environment, such as the FOSS movement and fediverse.

0
0

Today @kopperkopper :colon_three: shared a post on the fediverse titled how to not regret c2s, and I found it genuinely interesting to read, even if I'm not sure its proposed architecture actually solves what it sets out to solve.

The author's frustration with naïve implementations is well-founded. Slapping an facade onto an existing Mastodon-like server and calling it C2S doesn't buy you much—you end up with the rigidity of a bespoke API without any of the interoperability C2S is supposed to offer. The “JSON-LD flavored Mastodon API” framing is apt.

The proposed solution is to split responsibility more aggressively: the C2S server should be nearly stateless and dumb, storing ActivityPub objects without interpreting them, while a separate “client” layer handles indexing, timelines, moderation, and exposes its own API to the frontend running on the user's device. It's a clean separation of concerns on paper.

But here's what bothers me. When you map this architecture onto familiar terms, it looks roughly like this:

  • C2S server ≈ a database (PostgreSQL, say)
  • “Client” ≈ an application server (Mastodon, Misskey)
  • “Frontend” ≈ the actual client app on your phone

That's not a new architecture. That's just the current architecture with the labels shifted. The interesting question is which interface gets standardized, and the author's answer is the one between the C2S server and the “client” layer—the bottom boundary.

The problem is that what people actually want from C2S is to connect any frontend to any server. The portability they're after lives at the top boundary, between the frontend and whatever is behind it. But the author explicitly argues against standardizing that layer: “we don't really need a standardized api,” they write, leaving each client free to expose whatever API it likes.

Which means frontends remain locked to specific clients, just as Mastodon apps are locked to the Mastodon API today. The interoperability promise of C2S—log in to any server with any app—isn't actually delivered. It's been pushed one layer down, out of reach of the end user.

There's real value in the post's thinking about data hosting vs. interpretation, and about the security implications of servers that understand too much. But as an answer to the question C2S is supposed to answer, I'm not convinced.

1

@benpateBen Pate 🤘🏻 @steveSteve Bate @mariusormarius

For Protosocial I was musing on a role for the Profile in modeling identity. Protosocial emphasizes the actor-based nature of and folllows the actor model in general.

Though these are just showerthoughts atm, a solution on the wire is represented with an Application actor, which can be introspected to find the services it offers, and these are accessible as service actors.

The Protosocial fediverse is an actor-based service-oriented distributed messaging architecture, combined with a linked data social and knowledge graph distributed data store.

A person should be able to have as many identities as they wish, some anonymous, some pseudonymous, some fully verified. These are all Person actors.

All actors have an ActorID, but they only identify the actor objects themself. The Profile would be a verifiable identity statement. A contextual visitor's card to pass along.

0

@silverpill @raphaelRaphael Lullis @julian @mariusormarius

Btw, damn we should've caused this entire discussion thread to somehow flow to to have it in the archives. Instead of on "now you see me, now you don't" channel. Peekaboo. 🫣

social.coop/@smallcircles/1161

Here today, gone tomorrow, who made notes? The post-facto interoperability leaders did. Those who happened to be around at the right time to hear things being said on the grapevine.

We need a proper Grassroots standardization process, and a Grassroots open standard that is able to healthily evolve. The good organization of this is just as important as the technical robustness of the protocol, which is the solution artifact at the end of the open standards cocreation pipeline.

@silverpill @raphaelRaphael Lullis @julian @mariusormarius

The killer app for the fediverse is not nomadic identity. That is either a protocol capability or may refer to an Identity Management app, a solution design.

Problem is, it is no use discussing here. No convergence takes place, other than spontaneous / random convergence. But it does not lead anywhere, not to a common consensus. Not to robust foundations to build on without continuous worries that things break. Microblog communications does not support this, and lacking that support manual processes are needed.

Even the only offers convergence to certain extent. The process is a band-aid, a best-we-have.

In analogy of the horserace, spontaneous convergence and ad-hoc alignment on FEP puzzle pieces by implementers equates to the horseback riders figuring out some basic rules to avoid serious accidents. But this FEP adoption at the same time warps the track, hems them in, alters reality and the future.

social.coop/@smallcircles/1161

0

@silverpill @raphaelRaphael Lullis @julian @mariusormarius

Yes, I agree. Though I would rather see a generic server having much less functionality than a Mastodon API exposes, since much of that is app-specific, Microblogging domain already. The generic server should make Mastodon possible as a solution design modeled on top of its networking layer.

In such a way where we can finally consider the protocol layer to be robust, and are able to treat it as a black box, and are not confronted with all its implementation details when we are doing a solution design.

I think we are probably on the same page, but..

> If you want to go beyond Mastodon API capabilities, you need a truly generic server. Something akin to Nostr relay.

This I would reformulate as:

"If you want to go beyond an app-centric fediverse bound to a Microblogging domain, then you need a generic server conformant to the ActivityPub specification."

Which also indicates I think we need to aggregate puzzle pieces into an AP 2.0

0

@silverpill @raphaelRaphael Lullis @julian @mariusormarius

In my book if a side effect is part of the protocol specification, then it constitutes a protocol capability. If not, then it is part of some app's / solution's business logic.

The definition of "ActivityPub extension" by itself is unclear. With overloaded use causing confusion. It may refer to:

- Protocol extension
- App / solution built on top of the protocol

To deal with protocol capabilities they must have water-tight specs, well-defined behavior and strict consistent use across the fediverse.

To deal with side effects that are part of solution designs for a particular application or business domain things go from simple to very complex in the amount of introspection and machine-readability that the Actor abstraction offers.

Simplest is finding the URL where the docs of the extension / solution design sit. Most complex is full introspection and handshaking. The latter is the Solid route.

social.coop/@smallcircles/1161

0

@silverpill @raphaelRaphael Lullis @julian @mariusormarius

Yes, I see you working hard in that quest.

But in the chaotic fediverse that evolved by post-facto interoperability that is a wicked challenge. Post-facto interop means "if I am first I can become law, and drag fediverse sideways in my image".

In another branch of this thread, there's another confusing thing. "how can a mastodon client ask the server .." and you respond with a possible URL pattern that may be defined.

> Maybe something like `/api/v1/timelines/tag/{tag}?only_media=true` ?

Perhaps Mastodon's non-generic server may have that, but not a generic server, but it is unclear which one is referred to.

Since microblogging nowhere aggregates comprehensive overview it is an echo chamber for confusion.

@silverpill @raphaelRaphael Lullis @julian @mariusormarius

I sometimes picture fediverse as one of these old horseracing toys from the 50s, where the horses represent all the various perspectives and expectations people have of the fediverse. There is no horse to bet on, positions change all the time, horses change tracks randomly. And furthermore there no finish line, the race is an endless slog. The prize of a robust protocol forever out of reach, getting more elusive as time progresses.

Antique horseracing game from the fiftees, small horse figures on a plastic track, that can be slid forward.
0

@raphaelRaphael Lullis @silverpill @julian @mariusormarius

I agree. Aboveall we need to know where protocol ends and 'app' begins. Be generally more deliberate in terminology use, and no longer talk in overloaded terms that have different unclear meanings to different people in different settings (to avoid using 'contexts' one of such overloaded words)

I've noticed for instance people having a very different notion of what a 'generic server' is, in definitions that are almost diametrical opposites.

My definition of generic is 'not specific' i.e. a generic server is a pure protocol implementation (which is something to agree upon, what that exactly entails), having no knowledge of *any* app / solution built on top of it or 'passing through' its messaging architecture.

In the other meaning a generic server 'knows/does/has it all' i.e. it understands everything we comprise to be 'the fediverse' in a kind of hard-wired fashion based on the functionalities that (marginally) interoperate today.

@raphaelRaphael Lullis @julian @mariusormarius

Another example of the need for careful terminology use is in the post that @silverpill quoted above:

> prevent actors on the same server from deleting each other posts

"post"? There is no post in , not as a verb and neither as a noun. While I am not worried that silverpill used the word in a wrong meaning here, the terminology easily leads to confusion where someone who interprets AS/AP to be equivalent to the fediverse we have today, pictures in their mind as Mastodon posts or toots in fedi slang, or elsewhere called statuses.

That is app terminology. AP only knows Actor, Activities, Objects, and perhaps Collections. Period. The rest is solution design.

Where they are transferred they can be said to be messages, and messaging happens.

0

@raphaelRaphael Lullis @silverpill @julian @mariusormarius

I agree. Aboveall we need to know where protocol ends and 'app' begins. Be generally more deliberate in terminology use, and no longer talk in overloaded terms that have different unclear meanings to different people in different settings (to avoid using 'contexts' one of such overloaded words)

I've noticed for instance people having a very different notion of what a 'generic server' is, in definitions that are almost diametrical opposites.

My definition of generic is 'not specific' i.e. a generic server is a pure protocol implementation (which is something to agree upon, what that exactly entails), having no knowledge of *any* app / solution built on top of it or 'passing through' its messaging architecture.

In the other meaning a generic server 'knows/does/has it all' i.e. it understands everything we comprise to be 'the fediverse' in a kind of hard-wired fashion based on the functionalities that (marginally) interoperate today.

0
1

When I first started working with , before existed, it felt like writing web apps in Perl and CGI in the late '90s. Interesting, even exciting—but never comfortable. That era where your business logic and your protocol plumbing were just… the same thing:

print "HTTP/1.1 200 OK"
print "Content-Type: text/html"
print
print "Hello, world!"

Decades of web development have given us layers of abstraction we now take for granted. Nobody hand-parses application/x-www-form-urlencoded query strings anymore. Nobody writes their own JSON codec, or manually constructs HTTP request/response messages. These things just aren't your problem when you're building an app.

ActivityPub development still feels like they are your problem. What do you do when the https://www.w3.org/ns/activitystreams#actor property comes in as a string instead of an array? What about when https://www.w3.org/ns/activitystreams#object is an embedded entity rather than a URI? How exactly do you implement HTTP Signatures? And wait—what's Linked Data Signatures, and do you need that too?

The real issue isn't that ActivityPub is complicated per se. It's that you can't get away with understanding it at a high level. You have to know it the way an implementor knows it—every edge case, every inconsistency in how different servers serialize JSON-LD, every signature scheme that exists in the wild. That's a lot to learn before you can even start thinking about your actual app. And when developers understandably cut corners on the protocol to focus on their product, it quietly becomes an interoperability problem for the whole ecosystem.

What I want ActivityPub development to feel like: you spend a day understanding the big picture, and then you just… build your app. That was the goal when I started Fedify, and honestly, we're not fully there yet. But it's where I want to get.

0
6
0
0

Recently, there was a discussion about generic #ActivityPub servers. Several people claimed that they were working on one, but it turned out that their "generic" servers only support activities defined in the ActivityPub specification. Such a server shouldn't be called generic. It is not difficult to build, neither it is an interesting concept because competing protocols (e.g. Nostr) already offer much more.

I've been writing a #FEP that describes how to build a real generic server. It is not finished yet, but I feel like now is a good time to publish it:

FEP-fc48: Generic ActivityPub server

This kind of server:

- Can process any object type, and can process non-standard activities like EmojiReact.
- Compatible with FEP-ae97 clients.
- Does not require JSON-LD.

I attempted to implement it when I was researching security properties of FEP-ae97 API: https://codeberg.org/silverpill/fep-ae97-server. Back then I didn't know what to do with side effects, but now I think that we can simply force clients to specify them.

Special thanks to @mariusormarius and @trwnhinfinite love ⴳ for their input.

#C2S

0

Started laying out a rough plan for implementing FEP-ef61: Portable Objects in —server-independent identities backed by , multi-server replication, and client-side signing. It's going to be a long road (13 tasks across 5 phases, with a few open questions that need answering before we even begin), but I think it's worth doing right.

https://github.com/fedify-dev/fedify/issues/288#issuecomment-3971459585

1
5
0

Anyone asked where the dev community’s communication went to, can let a broad beaming smile come to their face, svivel their eyes skywards, then make a broad gesture with their arms, and exclaim solemnly “To the fediverse, my friend. To the fediverse”. And the dotted clouds high above in the steel blue sky will smile back at them, wave and gesture, and sing in a non-melodious cacophony “Here we are, come join us”.

And so we all do. It is a sight to behold. 🥹

Or with a tad less sarcasm, you might also say: Even though it is a medium that is not up to the task of holding a grassroots open-standards based ecosystem together, has become the preferred channel for communication in the app-centric . Majority of dev happens in the federated cloud and is driven by app owners.

Though luckily there is also a minority of ecosystem atmosphere custodians who help study the weather patterns of the future .

Clouds in the sky, with a radiant sun.
0
0
0

I’m building a new tool and looking for volunteers to test it! A linktree.

It’s designed for two types of people:

Normies / newcomers – Think of it like a free, privacy-respecting Linktree. No trackers, no ads. But here's the cool part: it's a Trojan horse for the fediverse. Your profile link is itself an ActivityPub actor. That means people can interact with it directly in the fediverse, and it encourages exploration of open platforms.

Fediverse users, If you have multiple accounts (, , Loops, a federated blog…), you know the struggle: sometimes you just want one persona to follow. This tool gives you that. It doesn’t post on its own (read-only), but it boosts all your other accounts and even has its own inbox. PLUS it can receive and show your badges issued by @badgefedThe BadgeFed Project !

Interested in testing? Reply here, I will reach out in the next 24-48hrs with an invitation link.

One webpage screenshot in white background and big letters saying Your links, Your Identity our NetworkA screenshot of links in rows, showing a profile with Pixelfed, Blog, Mastodon, LinkedIn links among others.
0
50
1

#Introduction - A new home for longer mountain ramblings & tech dabbling!

After years on a managed Mastodon instance, I've finally jumped into the #selfhosted world! Say hello to my new personal #ActivityPub instance, powered by #GoToSocial from home.

While I test the waters here (and learn all the complexities of managing self-hosting!), this space will be for the longer-form, deeper-dive content:

1. Extended mountain trip reports with more photos.

2. Ramblings on my rather amateur adventures in #technology, #landscapephotography, #lora mesh networks, #degoogling efforts, and #linuxphone solutions.

Think of it as my digital base camp. If you're a mountain person who loves tech (or a tech person who loves mountains), we probably have things in common. Boosts and introductions are welcome!

0

Release v3.3.1 of Ktistec

Todd Sundsted @toddsundsted@epiktistes.com

The latest release of Ktistec addresses the shortcomings of the previous release that became apparent after using quote posts in production for a few days. So far, there have been no major bugs, but there was room for improvement.

Here's the full changelog.

Added

  • Federation documentation (FEDERATION.md).
  • Visibility (private or direct) icon in object summary.
  • Object social activity details include dislikes.
  • "quotes-me" theming class for objects.
  • Notification for quote posts.
  • MCP integration for quote posts.

Changed

  • Renamed NodeInfo siteName to more standard nodeName.
  • Increased hard-coded limits for actor attachments and pinned collections.

Fixed

  • Displaying quoted posts in draft view.
  • Visual indication of nested quotes in object view.

I added a FEDERATION.md document to the project. This is documentation required by FEP-67ff on "information necessary for achieving interoperability with a federated service". The document describes, at a high level, what federation protocols and standards Ktistec currently supports.

#ktistec #crystallang #activitypub #fediverse

Read more →
0
0
0

@damon

Thank you. Yes, indeed. As it happens I was just in chat with Sébastien yesterday. They'll give a presentation at the Practitioners Meetings on the 5th of March.

is positioned to bring "app development" to the intersection of the and ecosystems, and that is very valuable. And also an focused initiative.

I have revamped the delightful lists to de-emphasize app domains and apps that have already established themselves, to highlight the innovative projects that can bring fedi to higher levels. @activitypods is on the developer list.. delightful.coding.social/delig

They are well positioned to offer the 'Solution developer' stakeholders an attractive set of tools. And the opportunity is to marriage the best of 2 worlds. Which is at the same time the big challenge, coping with the worst of 2 worlds. The other day I tooted about this here: social.coop/@smallcircles/1161

0

There's now a proper rendered web interface for FEPs at https://fediverse.codeberg.page/fep/fep/*/, which is much nicer to read than the raw Markdown source on Codeberg. But the canonical permalink, https://w3id.org/fep/*, still redirects to the Markdown file rather than the rendered page.

Would it make sense to update the w3id.org redirect to point to the rendered version instead? It seems like the better experience for anyone following a FEP link, and arguably what a “permanent” link should resolve to—something human-readable.

I'm not sure who manages the w3id.org/fep/ redirect configuration. (It lives in the perma-id/w3id.org GitHub repo, so it would just be a PR, but I'd want to get community consensus first rather than just send one in unilaterally.)

0
0

@testman oh hey, interesting story behind this!

What I shared was a link to the actual post on Liliputing, but when I pasted in the URL it suddenly disappeared leaving behind what I thought was a link preview.

But now I see it's actually not a link preview but a quote post! So, the Liliputing *website* itself hooked up directly to , is that how it works @liliputing? 😮

0
0

Now on stage, the man who published the very first post on the #SocialWeb in May 2008 and is often called the father of the #Fediverse: Evan Prodromou @evanEvan Prodromou Co-author of the #ActivityPub protocol at @swf
He presents the structure and dynamics of the social web, including the benefits and disadvantages of this architecture, the products and protocols, people and organizations involved in its development.

#FediMTL #DigitalSovereignty

0

What if... you had one Fedi account on a generic headless server that simply hosts and federates your data... and had C2S UIs for microblogging, long form writing, media editing and sharing, link aggregation, games, fitness tracking, and so on, that all used that same Fedi account. Technically, it's a similar concept as ATProto (but no relay and app view) and Solid Pods (but no RDF).

It seems possible... if we can improve the AP C2S API/protocol sufficiently.

0

What if... you had one Fedi account on a generic headless server that simply hosts and federates your data... and had C2S UIs for microblogging, long form writing, media editing and sharing, link aggregation, games, fitness tracking, and so on, that all used that same Fedi account. Technically, it's a similar concept as ATProto (but no relay and app view) and Solid Pods (but no RDF).

It seems possible... if we can improve the AP C2S API/protocol sufficiently.

0
10
0
0
0
0