{"id":15314426,"url":"https://github.com/barelyhuman/preact-ssr-starter","last_synced_at":"2026-04-17T15:03:11.018Z","repository":{"id":66019951,"uuid":"594584654","full_name":"barelyhuman/preact-ssr-starter","owner":"barelyhuman","description":"Node base preact SSR starter template","archived":false,"fork":false,"pushed_at":"2023-10-30T05:44:07.000Z","size":456,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-01-25T04:37:31.525Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/barelyhuman.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2023-01-29T01:45:40.000Z","updated_at":"2023-03-07T13:12:43.000Z","dependencies_parsed_at":"2023-03-05T09:15:31.140Z","dependency_job_id":null,"html_url":"https://github.com/barelyhuman/preact-ssr-starter","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/barelyhuman%2Fpreact-ssr-starter","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/barelyhuman%2Fpreact-ssr-starter/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/barelyhuman%2Fpreact-ssr-starter/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/barelyhuman%2Fpreact-ssr-starter/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/barelyhuman","download_url":"https://codeload.github.com/barelyhuman/preact-ssr-starter/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244460238,"owners_count":20456301,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-01T08:45:27.425Z","updated_at":"2026-04-17T15:03:05.990Z","avatar_url":"https://github.com/barelyhuman.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# preact-ssr-starter\n\n\u003e **Note**: This is not official or supported by the official preact team\n\n## Why?\n\nIt's the combination of all the ideas and tiny tools I've been working on.\n\n- httpengine (a smaller version of that is a part of this codebase)\n- typeable (a on the fly type generator for objects)\n\nThe entire point is to keep it very simple for things where the tooling is not\ncoupled to a framework and instead be fixable by yourself if needed. Hence the\ninline existence of both the routing engine and view engine.\n\nIt uses webpack to handle the development and build work, it might be a little\nslower\n\n## Highlights\n\n- Loosely coupled\n- File/Folder based routing\n- Pure and Simple SSR, no magic, it's all DIY[^1]\n- Preact\n- GooberJS\n\n[^1]:\n    other than the auto-generated types in `app.d.ts` which is handled by a\n    subset library, and can be disabled, but in a full fledged app where you\n    might add in helpers for email etc, it's good to have some form of\n    intellisense.\n\nThe entire thing is based on tools that can be curated and used with anything that you already use. You might not need \nthis starter altogether considering all the options you have today. Astro, nextjs but lately, or more specifically while writing and fixing \ntillwhen I realised that no matter how much the project is maintained if it's a big complex blob then the breaking changes pushes you back. \n\nExample, \nIt's not preact's job to support next, nor is it's next's job to make sure preact works with their framework but I've gotten used to \nhaving it as the view layer for my projects and instead of re-writing the whole app I settled to just upgrading next to 13 and working \nwith react. \n\nThis is where this repo comes into picture. Frameworks are great, getting tied down to them, not so much (At least for me). \n\n## Usage\n\n1. Clone the repo.\n2. Install the deps\n\n```sh\n# install yarn if you don't have it\nnpm i -g yarn\nyarn install\n```\n\n3. run the `dev` and `watch` command for the dev server\n\n```sh\nyarn watch\nyarn dev\n```\n\n4. run the `build` command to create a production build\n\n```sh\nyarn build\n```\n\n5. run the `start` command for running the production build\n\n```sh\nyarn start\n```\n\n## Troubleshooting\n\n#### `Could not resolve \"../manifest.gen.js\"`\n\nRollup will stop bundling if this file isn't found even though it's a dynamic\nimport, this was avoidable with webpack but then webpack requires configuration\nwhich would get hard to maintain over time,so it's easier to just add this file.\n\nJust create a `manifest.gen.js` file in the `src` folder. if on linux, run this\nfrom the root of the project\n\n```sh\n$ touch src/manifest.gen.ts\n```\n\n[MIT](/LICENSE)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbarelyhuman%2Fpreact-ssr-starter","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbarelyhuman%2Fpreact-ssr-starter","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbarelyhuman%2Fpreact-ssr-starter/lists"}