
Security News
Attackers Are Hunting High-Impact Node.js Maintainers in a Coordinated Social Engineering Campaign
Multiple high-impact npm maintainers confirm they have been targeted in the same social engineering campaign that compromised Axios.
astro-eecms
Advanced tools
A simple Node.js connector to pull entries, categories, and Structure navigation from an ExpressionEngine Bones JSON API and use them in your Astro site.
Built for fast content sourcing, ideal for JAMstack builds powered by ExpressionEngine.
npm install astro-eecms
Or for local development:
npm install /path/to/your/astro-eecms
Create a .env file in your project root with:
BONES_API_URL=https://your-site.com/api
BONES_API_KEY=your-bones-api-key
In addition, in your ExpressionEngine site, you'll need to set up four templates with each call, assuming your template group (i.e. api.group.
{exp:bones:entries}
{exp:bones:categories}
{exp:bones:nav}
{exp:bones:variables}
const {
fetchEntries,
fetchCategories,
fetchNav
} = require('astro-eecms');
(async () => {
const entries = await fetchEntries({ channel: 'blog', limit: 10 });
const categories = await fetchCategories();
const nav = await fetchNav();
console.log('Entries:', entries);
console.log('Categories:', categories);
console.log('Navigation:', nav);
})();
Each function accepts optional query parameters, which will be merged with the required API key. Any query string accepted by your Bones API can be passed in.
| Function | Description |
|---|---|
fetchEntries() | Returns entries from Bones (optionally filtered) |
fetchCategories() | Returns all categories |
fetchNav() | Returns nav data from Structure JSON |
Each function returns a Promise that resolves to the JSON data from Bones.
<script>
import { fetchEntries } from 'astro-eecms';
export default {
data() {
return {
posts: [],
loading: true
};
},
async mounted() {
this.posts = await fetchEntries({ channel: 'blog' });
this.loading = false;
}
};
</script>
You can run a sync manually with:
npm run sync
astro-eecms/
├── index.js # Entry point
├── bones.js # Exports fetch functions
├── utils/
│ └── fetch.js # Axios wrapper
├── .env # API key & URL
├── README.md
├── LICENSE
└── package.json
MIT License — use freely in personal and commercial projects.
Made by tripleNERDscore — built for JAMstack sites powered by ExpressionEngine + Astro.
FAQs
Connect ExpressionEngine to Astro with the help of Bones
We found that astro-eecms demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Security News
Multiple high-impact npm maintainers confirm they have been targeted in the same social engineering campaign that compromised Axios.

Security News
Axios compromise traced to social engineering, showing how attacks on maintainers can bypass controls and expose the broader software supply chain.

Security News
Node.js has paused its bug bounty program after funding ended, removing payouts for vulnerability reports but keeping its security process unchanged.