Socket
Socket
Sign inDemoInstall

astro-content

Package Overview
Dependencies
16
Maintainers
1
Versions
26
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    astro-content


Version published
Weekly downloads
37
increased by208.33%
Maintainers
1
Created
Weekly downloads
 

Readme

Source
Astro Content logo

~

Documentation / Live demo website

❀✿❀
𝚊𝚕𝚙𝚑𝚊

👷🏻‍♂️  Under heavy development, use it at your own risk!   🚧

~
Contributions are welcome
👐


What is it?

Think of it as an hybrid of Wordpress + ACF, Obsidian and Ulysses, with a sprinkle of tRPC and nuxt/content.

What it does?

✨  Adds a thin layer between Astro and your templates, bringing automatic typings, runtime validation and a handful of DX goodies.

🏗  Brings evolved authoring assistance, in a full-fledged back-office, inside your IDE or with CLI, as you prefer.

Main goals

Being content centric, this set of tools will give you:

  • Focus when designing 👌
  • Confidence when authoring ✍️
  • Predictability when integrating 🤝
  • Certainty while delivering 💪
  • Peace of mind when refactoring 👍

Warning: This is an alpha product — Heavy changes are on-going — Suggestions are welcome 👐

Method 1: Add to Astro project with CLI

With yarn, npm or pnpm, run this in your existing Astro project:

# If you want a fresh start ——v
# pnpm create astro && cd ./my-astro-site

pnpm astro add astro-content
pnpm content setup

Follow the prompts… 🐇

Method 2: Clone demo project

Shallow clone this minimal Astro starter, which comes with dummy content for you to play with:

pnpx degit JulianCataldo/astro-content/demo ./ac-demo
cd ./ac-demo && pnpm install

# Clone dummy content
pnpx degit JulianCataldo/astro-content/docs/content/@dummy ./content
# —OR— setup a minimal content base with Astro Content CLI
pnpm content setup

# Open project in VS Code
code .

Warning: Only Node 17 or higher is actually supported by Astro Content.

Launch project

OK, project is ready. It's time to:

pnpm run dev

Now head over to http://localhost:3000/__content to take a deep dive in Astro Content.

TypeScript setup

It's OK to use an absolute path, so you don't have to do tedious relative imports:

import { get } from '../../content';
// Versus:
import { get } from '/content';

Astro / Vite resolve absolute paths from project root.
That's cool, but TypeScript language server (in your IDE) will likely break, while showing red squiggles 🤨.

A very simple fix is adding this to your tsconfig.json > compilerOptions.paths:

{
  "compilerOptions": {
    // …
    "paths": {
      // Make TS happy with absolute path
      "/content": ["./content"]
    }
  }
}

Development

Setup

Note: pnpm is the package manager of choice for developing this mono-repo.
macOS / Node >= 17 is the most tested environment. Please note that end-user can use anything recommended for a typical Astro project while using Astro Content distributables.

git clone git@github.com:JulianCataldo/astro-content.git
cd astro-content

pnpm -r i

# ———— Watch / build mono-repo. (turbo)
pnpm run dev

# ———— Doc. website (astro)
cd docs && pnpm run dev

Packages

RoleNotesNameArtefact
Integration (Entrypoint)Extends Astro / Vite capabilitiesastro-contentNPM
ServerData handlers, API provider, helpers generator@astro-content/serverNPM
Command lineProject setups and content manipulation@astro-content/cliNPM
Web app (Optional)Full-fledge content editor / monitor@astro-content/guiNPM
TypeScript typingsInternal types for development use@astro-content/typesNPM
Docs (Private)Using and demonstrating all tools aboveastro-content.netlify.app
Demo (Clonable)Minimal boilerplate./demo

@astro-content/* are all internal dependencies of the main astro-content integration package, which act as a bridge for them.
Web GUI can be opted out by user settings.

Deployment environments

BranchDescriptionDeployment URL
Feature (<feat_branch>)Preview experiments or future additions in isolation.[branch]--astro-content.netlify.app/__content
Production (master)Stable release.astro-content.netlify.app/__content
🆕  Next! (develop)All future features.develop--astro-content.netlify.app/__content

🔗  JulianCataldo.com

Keywords

FAQs

Last updated on 23 Oct 2022

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.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc