The source of the ActivityPub4J landing page at https://activitypub4j.org/ https://activitypub4j.org/
  • HTML 89.6%
  • JavaScript 10.4%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
McPringle 4b54ec2179
All checks were successful
Deploy Pages / deploy (push) Successful in 4s
chore(ci): deploy www redirect
2026-11-06 17:08:41 +01:00
.forgejo/workflows chore(ci): deploy www redirect 2026-11-06 17:08:41 +01:00
public chore: redesign milestone layout 2026-10-29 08:56:16 +01:00
www chore: add www redirect 2026-11-06 17:07:29 +01:00
README.md docs: add README file 2026-10-28 15:11:10 +01:00

ActivityPub4J Website

The landing page for ActivityPub4J, an open-source Java library being developed to help Java applications join the Fediverse through ActivityPub, the W3C standard.

This repository contains the project website. The library’s planned building blocks include ActivityStreams data models, JSON-LD serialization and parsing, inbox and outbox utilities, HTTP signatures, and WebFinger discovery.

The website introduces the library and its intended users, explains the roadmap, and presents the people, planned adopters, and funding partners behind the project.

Technology

The website uses plain HTML, CSS, and JavaScript, with no external runtime dependencies, build step, or package installation required. All images and logos are served locally.

Features include:

  • Responsive layouts for phones, tablets, and desktop computers.
  • Light and dark themes, initially following the system preference. A manual choice is saved in the browser’s local storage when available.
  • Accessibility features including a skip link, visible keyboard focus, image alternatives, adaptable layouts, and support for reduced motion and forced colours.
  • An English-language project presentation and a legal notice.

Repository structure

.
├── .forgejo/
│   └── workflows/
│       └── publish.yml   # Deployment to iJUG Pages
├── public/               # Complete publishable website
│   ├── assets/           # Logos and portraits
│   ├── index.html        # Page content and semantic structure
│   ├── script.js         # Theme selection and persistence
│   └── styles.css        # Layout, themes, and responsive styles
└── README.md

Only the contents of public/ should be published. Keep source material, temporary files, credentials, and development tooling outside this directory.

Local preview

Open public/index.html directly in a browser, or serve the website locally. With jwebserver available in your JDK installation, run this command from the repository root:

jwebserver -p 8000 -d public

Then visit http://localhost:8000. Stop the server with Ctrl+C.

Making changes

Edit the files in public/ directly; no compilation is needed.

  • Update content and links in public/index.html.
  • Update layout, colours, and responsive behaviour in public/styles.css.
  • Update theme behaviour in public/script.js.
  • Use lowercase asset filenames with hyphens instead of spaces, and update their references when renaming files.
  • Keep planned library capabilities clearly distinguished from released functionality.
  • Preserve the supplied logos and their links, and keep funding acknowledgements accurate.

Validation and accessibility

Before publishing, check:

  • All links and local assets resolve correctly.
  • The page works at narrow and wide viewport sizes, in both colour themes.
  • Navigation and the theme switch work using only the keyboard, with a visible focus indicator.
  • The skip link moves focus to the main content.
  • Content remains readable with enlarged text and up to 400% browser zoom.
  • Headings, links, and controls make sense when read with a screenreader.
  • Content remains usable with reduced motion and high-contrast settings.

If Node.js is available, check JavaScript syntax with:

node --check public/script.js

Browser tools such as axe DevTools can help identify accessibility issues. Playwright with axe-core can support repeatable browser checks, but is not currently configured in this repository.

Automated checks complement manual testing; they do not establish full WCAG conformance. A practical browser and screenreader assessment is still needed.

Deployment

The Forgejo workflow in .forgejo/workflows/publish.yml publishes public/ to iJUG Pages using actions/git-pages@v2.

Deployment runs on pushes to main and can also be started manually through workflow_dispatch. Configure the repository variable PAGES_SITE for the intended site. The workflow uses the automatically provided forgejo.token for authentication.

The same public/ directory can also be served by a static web host without a build step.

Funding

ActivityPub4J is supported by the NGI0 Commons Fund, established by NLnet Foundation, with financial support from the European Commission’s Next Generation Internet programme, under the aegis of DG Communications Networks, Content and Technology, under grant agreement No. 101135429.

Additional funding is provided by the Swiss State Secretariat for Education, Research and Innovation (SERI).

See the ActivityPub4J project page at NLnet and the NGI0 Commons Fund for more information.

Contact

For project and website enquiries, contact Marcus Fihlon.