Paid open source project: create Rollup plugin to generate static site from Svelte/Markdown files

Job ID: 32326385

Budget: $30 – $250 USD

The goal of this project is to create a static site generator system based on Rollup and Svelte.

I'm looking for someone with significant experience developing Rollup plugins and working with Svelte - or frontend experience and an ability to quickly get up to speed with both of these.

Similar to how Jekyll and other static site generators work, this plugin(s) will take a bunch of pages as input and create a ready-to-serve folder of HTML, JavaScript, and CSS files as output.

The project should integrate nicely with the existing Svelte and Rollup ecosystem - $ rollup -c should compile everything for prod and $ rollup -cw should compile for dev with the ability to use rollup-plugin-live-reload etc. Prod and dev files should be output to separate dirs.

The goal is to be able to write pages as a combination of Svelte and Markdown (with YAML front matter), for example:

---
title: "My blog post"
publishOn: "2021-12-10"
---

<script>
import Widget from "./components/Widget.svelte";
</script>

<style lang="scss">
// ...
</style>

My blog post
===

Lorem ipsum dolor sit amet

- list item 1
- list item 2

<Widget/>

etc
This will require pre-parsing the Svelte file with a Markdown parser, so there'll need to be a plugin that parses Markdown before the Svelte plugin - perhaps https://github.com/jackfranklin/rollup-plugin-markdown.

Pages should be rendered with SSR and hydration, so the plugin will need to actually load and call the Svelte component to generate the static HTML as part of the build process.

I wrote https://github.com/svelte-view-engine/svelte-view-engine to solve a similar problem but for Express as opposed to static files - it might be useful to have a look at it for reference.

I've sketched out a possible way of interfacing with the project in the following repo. Feel free to deviate from this if you have a better idea: https://github.com/user896724/svelte-static-example

Deliverables
Code for the project as described, either as a link (e.g. to a public GitHub repo) or as a zip file.

Copyright & licensing: the project must be licensed under the MIT licence. You will keep all copyright to the project.
Related categories: JavaScript Svelte