The new RomaJS website built with astro and SolidJS.
- Seo Support | automatic sitemap generation, robots.txt,
link[rel="alternate"]etc... - Localized routes
/it/**italian and/en/**english. - Homepage.
- Blog section.
- Blog category pages.
- Upcoming events page.
- Previous events page.
- feed rss available at
<SITE>/blog/rss.xml. - opengraph and twitter social cards.
- headless blog posts available at
/api/blog/post.json. - headless blog posts categories available at
/api/blog/category.json. - headless homepage content available at
/api/hp/it.json&/api/hp/en.json - About page
- homepage
- script that generates blog post files from a template
- github action pipeline that deploys to github pages
- blog post categories pages
- categories index page
- blog post comments powered by giscus
- copy facebook posts 2022, 2020, 2019
- generate blog homepage
- build about page
- setup PR pipeline
- setup deploy to GH pages pipeline
- page with browsable meetups list
- video section with tags + comments
- more...
This project requires node 18 and uses pnpm as package manager.
If you have nvm installed run
nvm useYou do not need to install pnpm, you just need have node 20 installed and then enable corepack:
corepack enableYou should then be able to run pnpm normally in this project, e.g.
pnpm run fmtRun pnpm run create-post and follow the instructions.
HomePage content is defined in:
src/pages/api/hp/en.json.tssrc/pages/api/hp/it.json.ts
Edit enHpContent to modify the english homepage and itHpContent to change the italian one.
The upcoming events page is populated using the meetup api (env.MEETUP_GRAPHQL_ENDPOINT).
The page generation logic automatically adds placeholders after the current month.
You can use the env var PUBLIC_MONTHS_WITHOUT_GENERATED_UPCOMING_EVENTS to filter out placeholder months.
PUBLIC_MONTHS_WITHOUT_GENERATED_UPCOMING_EVENTS="08,10" # Hide August and October placeholders.To deploy push the content of main to release:
git fetch --all
git switch main
git pull origin main
git diff --quiet && git diff --cached --quiet && git push origin main:release # --force push if necessarySee deploy.yaml for more details.
There's a cronjob defined in scheduled-deploys.yml that periodically triggers the deployment.
pnpm run devstarts dev server at127.0.0.1:3000.pnpm run buildbuilds project and emits site atdist/folder.pnpm run fmtformat code using prettierpnpm run create-postprompts to generate new postspnpm run previewstarts a server that serves the content ofdist/pnpm run pre-commitruns automatically on pre-commit; there's no need to call it directlypnpm run testruns testspnpm run test:watchruns tests in watch modepnpm run astro:upgradeupgrade astro deps to latestpnpm run test:e2erun e2e testspnpm run test:e2e:uirun e2e2 tests in UI mode
We are using Figma to do our sketches.
This is the link to our workspace.
The previous version of romajs.org has been developed by Luca Lanziani and its source code is available at https://github.com/Roma-JS/romajs-on-metalsmith.