- HTML 89.6%
- JavaScript 10.4%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
|
|
||
| .forgejo/workflows | ||
| public | ||
| www | ||
| README.md | ||
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.