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 use
You do not need to install pnpm
, you just need have node 20
installed and then enable corepack
:
corepack enable
You should then be able to run pnpm normally in this project, e.g.
pnpm run fmt
Run pnpm run create-post
and follow the instructions.
HomePage content is defined in:
src/pages/api/hp/en.json.ts
src/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 necessary
See deploy.yaml for more details.
There's a cronjob defined in scheduled-deploys.yml that periodically triggers the deployment.
pnpm run dev
starts dev server at127.0.0.1:3000
.pnpm run build
builds project and emits site atdist/
folder.pnpm run fmt
format code using prettierpnpm run create-post
prompts to generate new postspnpm run preview
starts a server that serves the content ofdist/
pnpm run pre-commit
runs automatically on pre-commit; there's no need to call it directlypnpm run test
runs testspnpm run test:watch
runs tests in watch modepnpm run astro:upgrade
upgrade astro deps to latest
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.