{"id":26776195,"url":"https://github.com/ndreckshage/sambell","last_synced_at":"2025-04-16T01:43:18.869Z","repository":{"id":65492549,"uuid":"51708363","full_name":"ndreckshage/sambell","owner":"ndreckshage","description":"wake me when it's quitting time","archived":false,"fork":false,"pushed_at":"2020-12-18T06:37:18.000Z","size":289,"stargazers_count":102,"open_issues_count":0,"forks_count":6,"subscribers_count":3,"default_branch":"master","last_synced_at":"2024-04-17T00:00:40.423Z","etag":null,"topics":["create-react-app","critical-styles","nextjs","react","server-side-rendering","universal","webpack"],"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/ndreckshage.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}},"created_at":"2016-02-14T18:56:02.000Z","updated_at":"2024-02-19T18:50:36.000Z","dependencies_parsed_at":"2023-01-25T19:55:13.559Z","dependency_job_id":null,"html_url":"https://github.com/ndreckshage/sambell","commit_stats":null,"previous_names":["humblespark/sambell"],"tags_count":9,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ndreckshage%2Fsambell","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ndreckshage%2Fsambell/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ndreckshage%2Fsambell/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ndreckshage%2Fsambell/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ndreckshage","download_url":"https://codeload.github.com/ndreckshage/sambell/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":249182817,"owners_count":21226123,"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":["create-react-app","critical-styles","nextjs","react","server-side-rendering","universal","webpack"],"created_at":"2025-03-29T03:34:18.214Z","updated_at":"2025-04-16T01:43:18.828Z","avatar_url":"https://github.com/ndreckshage.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# DEPRECATED\n\nThis project is deprecated. Use next.js, etc.\n\n---\n\n# :new_moon::new_moon::new_moon: sambell :new_moon::new_moon::new_moon:\ncreate performant server-rendered React applications with no build configuration; ideal for universal react-router projects.\n\n- similar to [create-react-app](https://github.com/facebookincubator/create-react-app), but server side rendering.\n- similar to [next.js](https://github.com/zeit/next.js), but with [react-router](https://github.com/ReactTraining/react-router).\n- `sambell` came first! commit history proof :stuck_out_tongue_closed_eyes:\n\nBoth [create-react-app](https://github.com/facebookincubator/create-react-app) and [next.js](https://github.com/zeit/next.js) are great projects, try them! I like aspects of both. But you don't get a **universal react-router** application out of the box.\n\n## What will my app look like?!?\n\nCheck out [the template](template)!\n\n## Install\n\n```\nyarn global add sambell\nsambell new app\ncd app\nyarn start\n```\n\n## Features\n\n**Dev experience**\n\n- Everything you (or at least, I) want without setting anything up!\n- Client side SPA with [react-router](https://github.com/ReactTraining/react-router) **version 4**.\n- [styled-jsx](https://github.com/zeit/styled-jsx) is a great feature of Next.js that I bring in here. I find it to be more pleasant than `css-modules`, and eaiser to work with for a universal application (critical styles, etc).\n\n**Performant**\n\n- React **16**\n- Server side rendering. Universal.\n- Critical styles with [styled-jsx](https://github.com/zeit/styled-jsx).\n- Async loading of routes with `react-loadable` (forked version `@humblespark/react-loadable`).\n- Async (`\u003cscript async /\u003e`) loading of all webpack scripts.\n- Webpack build optimized for production.\n\n**Async components**\n\n- Full client \u0026 server side support for async loading components, with `react-loadable`\n- Forked version (`@humblespark/react-loadable`) to work with server side webpack build \u0026 a fix for checksum mismatch.\n\n```\nconst Moon = Loadable(() =\u003e import(/* webpackChunkName: \"components/Moon\" */'components/Moon'));\n```\n\n**Webpack / Babel**\n\n- Webpack 2 (code splitting, tree shaking, etc).\n- Webpack runs for **both** client and server code.\n- Minimal loaders (only a JS loader). But it is configurable if you want to add more.\n- **absolute path** requires from your project root. `import App from 'App'`.\n- Sourcemaps for client \u0026 server.\n- Babel Presets: es2015, stage-1, react\n- Babel Plugins: [styled-jsx](https://github.com/zeit/styled-jsx)\n- Polyfills: `isomorphic-fetch`, `babel-polyfill`\n\n**Configurable**\n\n\\**gerty.js* (basic configuration to control where stuff goes)\n\n```javascript\nmodule.exports = {\n  clientEntry: 'client',\n  serverEntry: 'server',\n  clientOutputDirectory: '.sambell/client',\n  serverOutputDirectory: '.sambell/server',\n  publicPath: '/static/webpack/',\n  webpack: config =\u003e config,\n};\n```\n\n:rocket: -\u003e :no_entry_sign: :earth_americas:\n\n:alien:\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fndreckshage%2Fsambell","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fndreckshage%2Fsambell","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fndreckshage%2Fsambell/lists"}